..


Sponsorerede links

Samtidig programmering i C + +

Artikel skrevet af Stefano Cancedda
Side 1 af 6

Sekvensprogrammering giver garanti for, at vejledningen altid udføres i orden, uden variationer. Den resulterende opførsel er deterministisk: indrykke den samme input, er output opnås det samme resultat.
For hvert program, der kører operativsystemet skaber en proces, der giver en beskyttet plads i hukommelsen. Det giver mulighed for, at uafhængige processer er i drift samtidig uden fejl.

Forskellige (og mere avancerede) er parallel programmering. Før belejringen skal indføres, og hvordan det virker, efter min mening, kaldes en bestemt type objekt en kerne tråd.

Som objekter Kernel tråde styres af operativsystemet, og har to grundlæggende funktioner:

  • Hver tråd har en privat datastruktur, der gemmer sine egen stack, bortset fra oplysninger, den næste instruktion der skal udføres;
  • Hver tråd aktier med hele processen en fælles hukommelse område.
Brugen af ​​tråde, har flere fordele i form af udførelse. I særdeleshed, vi fuldt ud at udnytte udførelsen af ​​multi-core CPU'er, som i øjeblikket er den dominerende teknologi på markedet for personlige computere. Det er utænkeligt, at en vis kompleksitet moderne programmer er udviklet på en sekventiel måde, kunne således drage fordel af den tid, kun én af de centrale, at maskinen giver.

Som en anden fordel, kan det ses som to forskellige processer, der kører den samme kode, måske med forskellige parametre, er mindre effektive end to tråde, der direkte kan udnytte den delte hukommelse. I et system, der ikke understøtter tråde, hvis du ønsker at køre flere gange det samme program, skal du oprette flere arbejdspladser baseret på det samme program. Denne teknik virker, men er spild af ressourcer og er langsommere.

For det tredje trådene har den fordel, hvis de kaldes I / O-blokkere: I stedet for at vente til arrangementet udløst af brugeren at standse henrettelsen af den algoritme, kan du starte en ny tråd og forebygge unødvendig nedetid , der forværrer de samlede resultater.

I modsætning til den samtidige programmering behov for støtte fra synkronisering konstruktioner, som er grundlæggende for at undgå tilfældige adgange til delt hukommelse forårsage fejl i produktionen. Også udsætter programmøren en række fejl ofte dårligt næring på grund af uforudsigelige adfærd deterministisk program.

Ud over dette, har synkroniseringen konstruerer en omkostning, både med hensyn til maskinens tid, det tager at udføre deres kode i et bestemt resultat tab som følge af de forventninger, der genereres af disse konstruktioner for at sikre retfærdighed i forbindelse med udførelsen konkurrent.

De vigtigste objekter, give mulighed for styring af konkurrencen forventes nedenfor og beskrevet i detaljer i de følgende afsnit:

  • Flygtige grundstoffer
  • Låst Funktioner
  • Trafiklys
  • Kritiske sektioner
  • Arrangementer
  • Timer
  • Mutex
Hvert af disse elementer passer på en naturlig måde at løse en bestemt klasse af simple problemer. For mere komplekse problemer simpelthen kombinere disse objekter sammen for at få et korrekt resultat og tilfredsstillende passage af løsningen af ​​problemer, der kræver brug af en af ​​de tidligste og de problemer, der er defineret som ovenfor er en kompleks meget kritisk. Kombinationen af ​​synkronisering objekter kan være kompliceret, i bedste, fordi du ikke kan få en tilstrækkelig høj ydeevne i et worst case, fordi man ikke let kan finde den løsning, der sikrer rigtigheden af ​​resultatet. Ikke mindst det værst tænkelige: Der er en fatal fejl og ikke umiddelbart identificere. Dette tidspunkt er meget hyppig, både på grund af følsomheden af de emner, vi vil diskutere, er, at debugging altid er problematisk i samtidige miljø, strømmene faktisk deterministiske udførelse, hver udførelse af programmet, ordren processoren udfører operationer er altid anderledes.

I den samme kategori ...
E-Learning
Excel (Ebook) Excel (Ebook)
Opret regneark og beregning. Bare 25 €.
Javascript (Kursus) Javascript (Kursus)
Komplet guide til klient-side scripting. Fra 39 €.
Ruby og Ruby on Rails (Kursus) Ruby og Ruby on Rails (Kursus)
Opret software og web-applikationer med Ruby og RoR. Fra 39 €.
Sponsorerede links