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