..


Sponsede Lenker

Samtidig programmering i C + +

Artikkel skrevet av Stefano Cancedda
Side 1 av 6

Sequence programmering tilbyr garanti for at instruksjonene er alltid utført i rekkefølge, med noen variasjoner. Den resulterende atferden er deterministisk: sette inn samme inngang, utgang fått samme resultat.
For hvert program som kjører operativsystemet skaper en prosess som gir en beskyttet plass i minnet. Dette gir muligheten for at uavhengige prosesser opererer samtidig uten feil.

Ulike (og mer avanserte) er samtidig programmering. Før beleiringen skal innføres og hvordan det fungerer, etter min mening, kalles en bestemt type objekt en kjerne tråd.

Som objekter Kernel emner styres av operativsystemet, og har to grunnleggende funksjoner:

  • Hver tråd har en egen datastruktur som lagrer sine egne stack, unntak informasjon, neste instruksjon som skal utføres;
  • Hver tråd aksjer med hele prosessen et felles minne område.
Bruken av trådene har flere fordeler i form av gjennomføring. Spesielt vi fullt utnytte ytelsen til multi-core prosessorer, som for tiden er den dominerende teknologien i markedet for personlige datamaskiner. Det er utenkelig at en viss kompleksitet moderne programmer er utformet i en sekvensiell måte, kunne dermed dra nytte av tiden, bare en av kjerne som maskinen gir.

Som en annen fordel, kan det ses som to ulike prosesser som kjører den samme koden, kanskje med forskjellige parametre, er mindre effektive enn to tråder som kan direkte utnytte det delte minnet. I et system som ikke støtter tråder, hvis du ønsker å kjøre flere ganger det samme programmet, må du opprette flere arbeidsplasser basert på samme program. Denne teknikken fungerer, men er sløsing av ressurser og er tregere.

For det tredje trådene har fordelen hvis de er kalt I / O-stopper: I stedet for å vente for hendelsen utløses av brukeren å stoppe henrettelsen av algoritmen, kan du starte en ny tråd og hindre unødvendig nedetid som forverres den generelle ytelsen.

I motsetning til samtidige programmering trenger støtte for synkronisering konstruerer, som er grunnleggende for å unngå tilfeldig tilgang til delt minne føre til feil i produksjonen. Også utsetter programmerer til en rekke feil ofte dårlig ernært på grunn av uforutsigbar oppførsel deterministisk program.

Utenom dette synkroniseringen konstruerer har en kostnad, både i form av maskin tiden som trengs for å utføre koden sin i en bestemt ytelse tap forårsaket av forventninger som genereres av disse konstruksjoner for å sikre rettferdighet i å utføre konkurrent.

De viktigste objektene som tillater styring av konkurransen er forventet under og beskrevet i detalj i følgende avsnitt:

  • Flyktige elementer
  • Forriglet Funksjoner
  • Trafikklys
  • Kritisk seksjoner
  • Hendelser
  • Timer
  • Mutex
Hver av disse elementene passer på en naturlig måte å løse en bestemt klasse av enkle problemer. For mer komplekse problemer bare kombinere disse objektene sammen for å få et korrekt resultat og tilfredsstillende passasjen av oppløsningen av problemer som krever bruk av en av de tidligste og problemene som er definert som ovenfor er en kompleks svært kritisk. Kombinasjonen av synkronisering objekter kan være komplisert, i beste fall fordi du ikke får en tilstrekkelig høy ytelse i verste fall, fordi du ikke kan lett finne den løsning som sikrer riktigheten av resultatet. Ikke minst verste fall: det er en fatal feil, og ikke umiddelbart identifisere. Dette tidspunktet er svært hyppig, både på grunn av sensitiviteten på de sakene vi vil diskutere, er det faktum at debugging er alltid problematisk i samtidige miljø, strømmer er faktisk deterministisk utførelse, hver gjennomføring av programmet, rekkefølgen prosessoren utfører operasjoner er alltid annerledes.

I samme kategori ...
E-læring
ASP og Access (Ebook) ASP og Access (Ebook)
Administrerende en MS Access database med ASP. At kun 29 €.
Javascript (Course) Javascript (Course)
Komplett guide til klient-side scripting. Fra € 39.
Paint Shop Pro (First) Paint Shop Pro (First)
Web grafikk og foto redigering med Corel PSP kjent. Fra 49 €.
Sponsede Lenker