Процес (информатика)
В информатиката, процес се нарича програма в етап на изпълнение от многозадачна операционна система. За разлика от процеса, програмата е просто пасивен набор от инструкции, съхраняван в някаква памет. След като програмата се зареди в оперативната памет и бъде стартирана, вече става въпрос за процес. Той е съвкупност както от кода и данните, които обработва, и намиращи се в оперативната памет, така и от служебните структури от данни, свързани с него, които се генерират и управляват от операционната система (ОС).
Многозадачност
редактиранеПроцесът е в основата на многозадачните компютърни системи. Един едноядрен процесор може да изпълнява само една или няколко последователни инструкции в даден момент. За да се реализира едновременното изпълнение на няколко отделни програми, процесорът трябва постоянно да превключва от един на друг процес. Това не е апаратен паралелизъм, какъвто може да има при многопроцесорните (или многоядрените) системи, а логически паралелизъм. Това ще рече, че процесите се изпълняват едновременно, сякаш за всеки от тях има отделен процесор и системни ресурси, въпреки че физически това не е така. Многозадачност може да съществува и в многопроцесорните системи, което позволява да се изпълняват повече програми, отколкото има процесори на разположение.
Управление на процеси
редактиранеПроцесите са организирани в дървовидна структура, като първичният процес създава вторични процеси, които на свой ред могат да създават процеси, и т.н. При създаването на всеки процес, той получава уникален идентификатор. ОС заделя пространството, необходимо за изпълнението му, инициализира контролен блок (дескриптор) на процеса и го добавя във всички необходими таблици, с които ОС контролира работата му[1]. Всеки дескриптор представлява структура от данни, съдържаща следната информация за конкретния процес[2]:
- Идентификация на процеса (например име и вътрешен идентификатор).
- Състояние на процеса (готов, изпълняван, блокиран).
- Регистри на процесора (брояч на командите, общи регистри, статус и др.).
- Възможности на процеса (например режим на работа на процесора).
- Информация за връзките му с други процеси.
- Информация за планирането на процесора (например приоритет).
- Информация за ресурсите, които процесорът владее или има право да получи – памет (база и гранични регистри или таблица на страниците), устройства, отворени файлове и т.н.
- Статистически информация (използвано време на процесора, време на престой, брой породени процеси, отчетен номер и т.н.).
Съдържанието и организацията на дескрипторите до голяма степен зависи от особеностите на конкретната ОС. Те се изграждат при създаването на процеса и го определят по време на съществуването му. Дескрипторите обикновено се пазят в областта на ядрото (където са защитени), но могат да се поместят и в адресното пространство на процесите.
Всяка ОС изисква някакъв алгоритъм, съгласно който от многото процеси, конкуриращи се за достъп до процесора, се избира един. За стартиране на намиращите се в състояние на готовност процеси отговаря програмата за планиране на ниско ниво (програмата за планиране на процеси, диспечер) (scheduling). Прието е планиращата програма да се разглежда като елемент на ядрото, но принципно е възможно ядрото да не съдържа подобен механизъм.
Източници
редактиране- ↑ Чорбаджиев, Любомир. Процеси // Технологическо училище „Електронни системи“, Технически университет, София. Посетен на 17 септември 2015.
- ↑ Операционни системи // Архивиран от оригинала на 2016-03-04. Посетен на 11 август 2015.