Multithreading - живот-прог

Какво е многонишкова

Изпълнение на машинни инструкции
Фиг. 4.1. Потоци и процеси [ANDE97]

В многонишкова среда, процесът се определя като структурно звено на разпределението на ресурсите, както и структурно звено на защита. В процесите на следните елементи са свързани.







Като част от процеса може да бъде един или повече потоци, всеки от които има следните характеристики.

  • Тема държави (бягане, изпълнима, и т.н.).
  • Запазената контекста не се изпълнява нишка; Един от начините за разглеждане на потока - смята независим програмен брояч, които работят по време на процеса.
  • стека изпълнение.
  • Статично заделена памет за локални променливи потоци.
  • Достъп до паметта и процеса на ресурси, които принадлежат към този поток; този достъп се споделя от всички теми в процеса.

Какво е многонишкова

Фиг. 4.2. Еднонишкови и многонишковите модел процес

  1. Създаване на нова тема в съществуващ процес отнема много по-малко време, отколкото създаването на напълно нов процес. Изследване, проведено от разработчиците на операционната система Mach, показват, че скоростта на създаване на процес, в сравнение със същата скорост На UNIX-съвместими приложения, които не използват потоци, увеличава 10 пъти [TEVA87].
  2. Потокът може да бъде завършена много по-бързо, отколкото на процеса.
  3. превключване на тема е много по-бързо в рамките на един и същ процес.
  4. При използване на поток повишава ефективността на обмена на информация между два изпълними програми. Най между Независимия процеси операционна система идва с ядро, чиято функция е да гарантира защитата и реда за осъществяване на обмен. Въпреки това, поради факта, че различните нишки на един и същ процес споделят една и съща област на паметта и едни и същи файлове, те могат да обменят информация без ядро.






Така че, ако трябва да бъде реализирана като съвкупност от свързани помежду си модули прилагането или функцията, е много по-ефективно да го приложат като набор от потоци, отколкото набор от отделни процеси.

Пример за приложение, което може да се приложи успешно поток е файлов сървър. При получаване на всяко ново искане файл програмата за управление на файловете може да генерира нова тема. Поради факта, че сървърът трябва да се справят с много голям брой заявки за кратък период от време, за да бъде създадена и заличава множество потоци. Ако такъв сървър програма, работеща на многопроцесорна машина, на различни процесори в множество нишки може да работи едновременно в рамките на един процес. Освен това, поради факта, че процесите на файлов сървър или нишките трябва да споделят данни от файлове и, следователно, да координират своите дейности, по-добро използване на конци и споделена памет площ, отколкото процеси и съобщения.

процес Streaming дизайн и полезно за еднопроцесорни машини. Той помага да опрости структурата на една програма да изпълнява няколко различни функции логично.

В [LETW88] предвижда четири примери за използването на следните потоци в един потребител система многозадачност.