Потоци - системен софтуер

Многозадачността е съществена характеристика на операционната система. За да поддържа това свойство, ОС дефинира и формализира за себе си онези вътрешни работни единици, между които процесорът и другите компютърни ресурси ще бъдат разделени. Тези вътрешни единици за работа в различни операционни системи имат различни имена - задача, задача, процес, нишка (нишка). В някои случаи субектите, обозначени от тези понятия, са коренно различни помежду си.

Мултипрограмирането увеличава производителността на системата, но отделен процес никога не може да бъде изпълнен по-бързо, отколкото ако се изпълнява в режим на една програма (всяко споделяне на ресурси забавя работата на един от участниците поради допълнителното време, прекарано в очакване на ресурс, който ще бъде освободен). Обаче задача, решена в рамките на един процес, може да има вътрешен паралелизъм, който по принцип ви позволява да ускорите нейното решение. Например по време на изпълнението на дадена задача се осъществява достъп до външно устройство и по време на тази операция е възможно не да се блокира напълно изпълнението на процеса, а да се продължат изчисленията по друг „клон“ на процеса.

За тези цели съвременните операционни системи предлагат да се използва относително нов механизъм на многопоточност. В същото време се въвежда нова концепция за „нишка“ и понятието „процес“ значително променя значението.

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

Нишките понякога се наричат ​​леки процеси или мини процеси. Всъщност нишките в много отношения са подобни на процесите. Всяка нишка се изпълнява строго последователно и има свой собствен брояч на програми и стек. Нишките, като процеси, например могат да създават дъщерни нишки, могат да преминават от състояние в състояние. Подобно на традиционните процеси (т.е. процеси с една нишка), нишките могат да бъдат в едно от следните състояния: RUNNING, WAITING и READY. Докато една нишка е блокирана, може да се изпълни друга нишка от същия процес. Нишките споделят процесора по начина, по който процесите го правят, според различни опции за планиране.

И така, нишките имат свои собствени: брояч на програми, стек, регистри, дъщерни нишки, състояние.

Освен това студентът трябва да изучи материала по темата „Процеси в Unix-система“. Референции - в края на урока.