Multithreading - живот-прог
Изпълнение на машинни инструкции
Фиг. 4.1. Потоци и процеси [ANDE97]
В многонишкова среда, процесът се определя като структурно звено на разпределението на ресурсите, както и структурно звено на защита. В процесите на следните елементи са свързани.
Като част от процеса може да бъде един или повече потоци, всеки от които има следните характеристики.
- Тема държави (бягане, изпълнима, и т.н.).
- Запазената контекста не се изпълнява нишка; Един от начините за разглеждане на потока - смята независим програмен брояч, които работят по време на процеса.
- стека изпълнение.
- Статично заделена памет за локални променливи потоци.
- Достъп до паметта и процеса на ресурси, които принадлежат към този поток; този достъп се споделя от всички теми в процеса.
Фиг. 4.2. Еднонишкови и многонишковите модел процес
- Създаване на нова тема в съществуващ процес отнема много по-малко време, отколкото създаването на напълно нов процес. Изследване, проведено от разработчиците на операционната система Mach, показват, че скоростта на създаване на процес, в сравнение със същата скорост На UNIX-съвместими приложения, които не използват потоци, увеличава 10 пъти [TEVA87].
- Потокът може да бъде завършена много по-бързо, отколкото на процеса.
- превключване на тема е много по-бързо в рамките на един и същ процес.
- При използване на поток повишава ефективността на обмена на информация между два изпълними програми. Най между Независимия процеси операционна система идва с ядро, чиято функция е да гарантира защитата и реда за осъществяване на обмен. Въпреки това, поради факта, че различните нишки на един и същ процес споделят една и съща област на паметта и едни и същи файлове, те могат да обменят информация без ядро.
Така че, ако трябва да бъде реализирана като съвкупност от свързани помежду си модули прилагането или функцията, е много по-ефективно да го приложат като набор от потоци, отколкото набор от отделни процеси.
Пример за приложение, което може да се приложи успешно поток е файлов сървър. При получаване на всяко ново искане файл програмата за управление на файловете може да генерира нова тема. Поради факта, че сървърът трябва да се справят с много голям брой заявки за кратък период от време, за да бъде създадена и заличава множество потоци. Ако такъв сървър програма, работеща на многопроцесорна машина, на различни процесори в множество нишки може да работи едновременно в рамките на един процес. Освен това, поради факта, че процесите на файлов сървър или нишките трябва да споделят данни от файлове и, следователно, да координират своите дейности, по-добро използване на конци и споделена памет площ, отколкото процеси и съобщения.
процес Streaming дизайн и полезно за еднопроцесорни машини. Той помага да опрости структурата на една програма да изпълнява няколко различни функции логично.
В [LETW88] предвижда четири примери за използването на следните потоци в един потребител система многозадачност.