..


Sponzorované odkazy

Súčasné programovanie v C + +

Článok napísal Stefano Cancedda
Strana 1 z 6

Sekvenčné programovanie ponúka záruku, že pokyny sú vždy vykonávané tak, aby sa žiadne zmeny. Výsledné správanie je deterministická: vloženie rovnaké vstupy, výstup dostanete rovnaký výsledok.
Pre každý program, ktorý je spustený operačný systém vytvára proces, ktorý priraďuje zabezpečenej časti pamäte. Tým je zaistená možnosť nezávislé procesy, ktoré fungujú zároveň bez chýb.

Rôzne (a pokročilejšie) je súbežné programovanie. Pred obliehaním má byť zavedená a ako to funguje, podľa môjho názoru, určitý typ objektu tzv vlákno jadra.

Ako objekty vlákna jadra sú riadené operačným systémom, a majú dve základné funkcie:

  • Každé vlákno má vlastnú dátovú štruktúru, ktorá uchováva svoj ​​vlastný zásobník, okrem informácie, že ďalšie inštrukcie má byť vykonaný;
  • Každé vlákno zdieľa s celým procesom spoločné oblasti pamäte.
Použitie vlákien ponúka niekoľko výhod, pokiaľ ide o vykonanie. Najmä sme plne využiť výkon viacjadrových procesorov, ktoré sú v súčasnej dobe dominantné technológií na trhu osobných počítačov. Je nemysliteľné, že určitá zložitosť moderných aplikácií je v sekvenčnom spôsobom, môže tak využiť čas, len jeden z hlavných, že zariadenie poskytuje.

Ako ďalšia výhoda, to môže byť videné ako dva odlišné procesy, ktoré používajú rovnaký kód, prípadne s rôznymi parametrami, sú menej účinné ako dve vlákna, ktoré môžu priamo používať zdieľanú pamäť. V systéme, ktorý nepodporuje vlákna, ak chcete spustiť viackrát rovnaký program, je potrebné vytvoriť viac procesy založené na rovnakom programe. Táto technika funguje, ale je to plytvanie prostriedkami a je pomalší.

Po tretie, vlákna majú tú výhodu, ak sa nazývajú I / O zablokovanie: namiesto čakania na udalosti vyvolané užívateľom zastaví vykonávanie algoritmu, môžete začať nové vlákno a zabrániť zbytočným prestojom čo zhoršuje jeho celkovú výkonnosť.

Na druhej strane potrebuje podporu súbežného synchronizácia programových konštrukcií, ktorá je nevyhnutná, aby sa zabránilo náhodnej prístupy k zdieľaným chýb pamäte spôsobí na výstupe. Tiež odhaľuje programátor kŕmiť sérii chýb, často nepredvídateľné vzhľadom k nedeterministické správanie programu.

Za týmto synchronizácia pojmy majú cenu, a to ako z hľadiska stroja času potrebného na vykonanie ich kód v určitej straty výkonu spôsobené očakávaním generované týmito pojmami v záujme zabezpečenia spravodlivosti pri výkone súťažiaceho.

Medzi hlavné objekty, ktoré umožňuje správu súťaže sa očakávajú nižšie a podrobne popísané v nasledujúcich odsekoch:

  • Prchavé prvky
  • Blokované funkcie
  • Semafory
  • Kritické sekcie
  • Udalosti
  • Timer
  • Mutex
Každý z týchto prvkov sa zmestia do prírodný spôsob, ako vyriešiť konkrétne triedy jednoduchých problémov. U zložitejších problémov, rovnako položky, spojí dohromady získať správny výsledok uspokojivý a priechod riešenie problémov, ktoré vyžadujú použitie jedného z prvých a problémy, ktoré sú definované ako vyššie, je komplexný veľmi kritická. Kombinácia synchronizácia objektov môže byť zložitá, v najlepšom, pretože nemôžete získať dostatočne vysoký výkon v najhoršom prípade, pretože nemožno ľahko nájsť riešenie, ktoré zaisťuje správnosť výsledku. V neposlednom rade najhorší prípad: je vážna chyba a nie okamžite identifikovať. Toto spojenie je veľmi časté, a to ako na pochúťku z problémov sa budeme zaoberať, je skutočnosť, že ladenie je vždy problematické v súčasnom prostredí, toky sú v skutočnosti non-deterministický výkonu, každá realizácia programu, aby Procesor vykonáva operácie je vždy iný.

V rovnakej kategórii ...
E-Learning
ASP.NET (kurz) ASP.NET (kurz)
Celý kurz pre tvorbu webových aplikácií od 49 €.
Excel (ebook) Excel (ebook)
Vytvorte tabuľky a výpočty. Na iba 25 €.
MySQL (kurz) MySQL (kurz)
Správa open-source databázu. Od 39 €.
Sponzorované odkazy