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

Възможните състояния на един процес ((ru)).

Многозадачност

редактиране

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

Управление на процеси

редактиране

Процесите са организирани в дървовидна структура, като първичният процес създава вторични процеси, които на свой ред могат да създават процеси, и т.н. При създаването на всеки процес, той получава уникален идентификатор. ОС заделя пространството, необходимо за изпълнението му, инициализира контролен блок (дескриптор) на процеса и го добавя във всички необходими таблици, с които ОС контролира работата му[1]. Всеки дескриптор представлява структура от данни, съдържаща следната информация за конкретния процес[2]:

  • Идентификация на процеса (например име и вътрешен идентификатор).
  • Състояние на процеса (готов, изпълняван, блокиран).
  • Регистри на процесора (брояч на командите, общи регистри, статус и др.).
  • Възможности на процеса (например режим на работа на процесора).
  • Информация за връзките му с други процеси.
  • Информация за планирането на процесора (например приоритет).
  • Информация за ресурсите, които процесорът владее или има право да получи – памет (база и гранични регистри или таблица на страниците), устройства, отворени файлове и т.н.
  • Статистически информация (използвано време на процесора, време на престой, брой породени процеси, отчетен номер и т.н.).

Съдържанието и организацията на дескрипторите до голяма степен зависи от особеностите на конкретната ОС. Те се изграждат при създаването на процеса и го определят по време на съществуването му. Дескрипторите обикновено се пазят в областта на ядрото (където са защитени), но могат да се поместят и в адресното пространство на процесите.

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

Източници

редактиране
  1. Чорбаджиев, Любомир. Процеси // Технологическо училище „Електронни системи“, Технически университет, София. Посетен на 17 септември 2015.
  2. Операционни системи // Архивиран от оригинала на 2016-03-04. Посетен на 11 август 2015.