Операционни системи
3 (3). Описание и управление на процеси
* ОС трябва да организира изпълнението на няколко процеса (multiprogramming),
за да максимизира използването на процесора, докато осигурява разумно време
за отговор (multiuser).
* ОС трябва да разпределя ресурси на процесите в съответствие със специфичните
им изисквания и приоритети, като в същото време избягва "мъртва хватка".
* ОС поддържа връзките между процесите и създаването на процеси от
потребителите.
3.1 Състояния на процеси
Процесорът изпълнява машинни инструкции, съхраняващи
се в ОП. Списъкът на инструкциите на един процес се нарича следа на процеса.
Пример:
** Модел с 2 състояния:
-- изпълнение (running);
-- неизпълнение (nonrunning).
** Създаване на процеси.
Причини за създаване на процес:
- ново пакетно задание (new batch job) - с команди на ОС;
- диалогов login - потребител влиза в системата;
- създаден от ОС за осигуряване на услуга - във връзка с потребителска
програма, без да чака потребителят;
- породен от съществуващ процес (parent and child processes).
** Унищожаване на процеси.
Причини за унищожаване на процес:
- нормално завършване;
- превишаване на максималната време;
- няма памет;
- нарушаване на границите на паметта;
- грешка от защита;
- аритметична грешка;
- превишаване на времето за чакане на събитие;
- входно-изходна грешка;
- невалидна инструкция;
- инструкция, изпълнявана само от ОС;
- неправилна работа с данни;
- намеса на оператор или ОС;
- завършване на родителски процес;
- по заявка на родителски процес.
** Модел с 5 състояния.
Състоянията са:
1. Running - изпълнение;
2. Ready - готов;
3. Blocked- блокиран (чака събитие);
4. New - нов;
5. Exit - прекратен;
Преходи между различните състояния:
** Преустановени процеси (suspended processes).
Необходимостта от размяна (swapping).
Нови състояния на процесите:
3. Blocked, suspend
4. Ready, suspend
Преходи между различните състояния:
Обобщени характеристики на преустановени процеси:
1. Процесът не е готов за непосредствено изпълнение.
2. Независимост от блокировка.
3. Поставяне в това състояние с цел недопускане до изпълнение.
4. Смяна на това състояние става само с "нарочна заповед".
Причини за преустановяване на процес:
- размяна;
- друга причина за ОС;
- диалогово искане на потребителя;
- по време, ако се изпълнява периодично;
- искане на родителя.
3.2 Описание на процеси
** Структури на ОС за управление на процеси.
-- таблици на паметта за:
ОП - оперативна памет (main memory)
ВП - виртуална памет (virtual
memory)
-- I/O таблици;
-- таблици за файлове;
-- таблици на процеси.
** Структури за управление на процеси
-- разполагане на процесите (process location).
Типични елементи на изображение на процеса (process image):
User Data
User Program
System Stack
Process Control Block (PCB)
-- атрибути на процесите.
Типични елементи на контролния блок на процес (PCB):
3.3 Управление на процеси
** Режими на изпълнение (modes of execution).
Функции на ядрото:
- организация на процесите;
- организация на паметта;
- органицация на входа и изхода;
- поддържащи функции.
** Създаване на процеси.
Дейности на ОС за създаване на процес:
1. Създаване на идентификатор на процеса и
записването му в таблицата на процесите (primary process table).
2. Отделяне на памет за процеса.
3. Инициализация на контролния блок.
4. Създаване на необходимите връзки.
5. Други структури от данни.
** Превключване на процеси.
-- Кога ? - прекъсване на часовника; - I/O прекъсване; - недостатъчно
памет;
-- Превключване на режими: ядро-потребител;
-- Промяна на състоянията на процесите.
Действия на ОС при превключване на процеси:
1. Запазване на контекста на процеса, който
ще се прекъсва.
2. Обновяване на PCB.
3. Преместване на PCB в съответната опашка.
4. Избиране на друг процес за изпълнение.
5. Обновяване на PCB на избрания процес.
6. Обновяване на паметта с новите данни.
7. Възстановяване на състоянието на процесора
във вида при предишното прекъсване на процеса.
** Изпълнение на ОС:
-- ядро, което не е процес;
-- изпълнение в потребителски процеси;
-- базирана на процеси ОС.