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

Multithreading - платформа собственост (например, операционна система, виртуална машина, и т.н. ...), или приложение, състояща се в това, че на процеса, генерирани от операционната система може да се състои от няколко потока, които се изпълняват "паралелно", т.е. без да е предписан реда, в време. Някои задачи, като разделяне може да се постигне по-ефективно използване на ресурсите на компютъра.







Такива потоци се наричат ​​също нишки на изпълнение (от английски резба на изпълнение.); понякога наричани "конци" (буквален превод на английски език. резба) или неофициално "тегло нишки."

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

Предимствата на многонишкова включват следното:

По-малък в сравнение с времето на процес изисква да се създаде поток.

Повишаване на производителността на процеса, като parallelizing изчисления и обработка на входно / изходни операции.

Multithreading (многонишкова) се нарича способността на операционната система да се запази същото изпълнение процес на множество нишки.

Фиг. 4.1. Потоци и процеси

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

Сигурен достъп до процесорите, други процеси (за обмен на информация между тях), както и входно-изходни ресурси (устройства и канали) на файла.

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

Тема държави (бягане, изпълнима, и т.н.).

Запазената контекста не се изпълнява нишка;

стека по време на работа (Stack - това е такава структура от данни в паметта се използва за временно съхраняване).







Статично заделена памет за локални променливи потоци.

Достъп до паметта и процеса на ресурси, които принадлежат към този поток; този достъп се споделя от всички теми в процеса.

Ние списък на основните ползи от използването на конци от гледна точка на изпълнение:

Създаване на нова тема в съществуващ процес отнема много по-малко време, отколкото създаването на напълно нов процес. Проучвания, проведени от разработчиците на операционната система на Мах, показват, че скоростта на създаване на процес, в сравнение със същата скорост На UNIX-съвместими приложения, които не използват потоци, увеличена 10 пъти.

Потокът може да бъде завършена много по-бързо, отколкото на процеса.

превключване на тема е много по-бързо в рамките на един и същ процес.

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

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

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

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

За разлика от процесите потоци: процеси - контейнер ресурс потоци - са обекти, от своя страна работи на процесора. Всяка нишка има своя собствена програма брояч, регистри, стек.

Multithreading - OS е способността да се запази същото изпълнение процес на множество нишки.