From Wikipedia, the free encyclopedia
В информатиката, процес се нарича програма в етап на изпълнение от многозадачна операционна система. За разлика от процеса, програмата е просто пасивен набор от инструкции, съхраняван в някаква памет. След като програмата се зареди в оперативната памет и бъде стартирана, вече става въпрос за процес. Той е съвкупност както от кода и данните, които обработва, и намиращи се в оперативната памет, така и от служебните структури от данни, свързани с него, които се генерират и управляват от операционната система (ОС).
Процесът е в основата на многозадачните компютърни системи. Един едноядрен процесор може да изпълнява само една или няколко последователни инструкции в даден момент. За да се реализира едновременното изпълнение на няколко отделни програми, процесорът трябва постоянно да превключва от един на друг процес. Това не е апаратен паралелизъм, какъвто може да има при многопроцесорните (или многоядрените) системи, а логически паралелизъм. Това ще рече, че процесите се изпълняват едновременно, сякаш за всеки от тях има отделен процесор и системни ресурси, въпреки че физически това не е така. Многозадачност може да съществува и в многопроцесорните системи, което позволява да се изпълняват повече програми, отколкото има процесори на разположение.
Процесите са организирани в дървовидна структура, като първичният процес създава вторични процеси, които на свой ред могат да създават процеси, и т.н. При създаването на всеки процес, той получава уникален идентификатор. ОС заделя пространството, необходимо за изпълнението му, инициализира контролен блок (дескриптор) на процеса и го добавя във всички необходими таблици, с които ОС контролира работата му[1]. Всеки дескриптор представлява структура от данни, съдържаща следната информация за конкретния процес[2]:
Съдържанието и организацията на дескрипторите до голяма степен зависи от особеностите на конкретната ОС. Те се изграждат при създаването на процеса и го определят по време на съществуването му. Дескрипторите обикновено се пазят в областта на ядрото (където са защитени), но могат да се поместят и в адресното пространство на процесите.
Всяка ОС изисква някакъв алгоритъм, съгласно който от многото процеси, конкуриращи се за достъп до процесора, се избира един. За стартиране на намиращите се в състояние на готовност процеси отговаря програмата за планиране на ниско ниво (програмата за планиране на процеси, диспечер) (scheduling). Прието е планиращата програма да се разглежда като елемент на ядрото, но принципно е възможно ядрото да не съдържа подобен механизъм.
Seamless Wikipedia browsing. On steroids.