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

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

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

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

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

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

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

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

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

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

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

  1. Операционни системи. // Посетен на 11 август 2015.