Процес (информатика)

от Уикипедия, свободната енциклопедия
Направо към: навигация, търсене
Възможните състояния на един процес (на руски).

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

Многозадачност[редактиране | редактиране на кода]

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

Управление на процеси[редактиране | редактиране на кода]

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

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

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

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

Източници[редактиране | редактиране на кода]

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