3. Описание и управление на процеси
* ОС трябва да организира изпълнението на няколко процеса, за да максимизира
използването на процесора докато осигурява разумно време за отговор.
* ОС трябва да разпределя ресурси на процесите в съответствие със специфичните
им изисквания и приоритети, като в същото време избягва "мъртва хватка".
* ОС поддържа връзките между процесите и създаването на процеси от
потребителите.
3.1 Състояния на процеси
Процесорът изпълнява машинни инструкции, съхраняващи се в ОП.
Списъкът на инструкциите на един процес се нарича следа на процеса.
Пример:
--- FIGURE
3.1 ---
--- FIGURE 3.2 ---
--- FIGURE 3.3 ---
** Модел с 2 състояния
-- изпълнение (running)
-- неизпълнение (nonrunning)
--- FIGURE
3.4 ---
** Създаване и унищожаване на процеси
- създаване на процеси
Причини за създаване на процес:
--- ново пакетно задание (new batch job) - с команди на ОС
--- диалогов login - потребител влиза в системата
--- създаден от ОС за осигуряване на услуга - във връзка с потребителска
програма, без да чака потребителят
--- породен от съществуващ процес (parent and child processes)
- унищожаване на процеси
Причини за унищожаване на процес:
--- нормално завършване
--- превишаване на максималната време
--- няма памет
--- нарушаване на границите на паметта
--- грешка от защита
--- аритметична грешка
--- превишаване на времето за чакане на събитие
--- входно-изходна грешка
--- невалидна инструкция
--- инструкция, изпълнявана само от ОС
--- неправилна работа с данни
--- намеса на оператор или ОС
--- завършване на родителски процес
--- по заявка на родителски процес
** Модел с 5 състояния
Състоянията са:
1. Running - изпълнение
2. Ready - готов
3. Blocked- блокиран (чака събитие)
4. New - нов
5. Exit - прекратен
Преходи между различните състояния:
--- FIGURE
3.5 ---
--- FIGURE 3.6 ---
** Преустановени процеси (suspended processes)
-- за необходимостта от размяна (swapping)
Нови състояния на процесите:
1. Ready
2. Blocked
3. Blocked, suspend
4. Ready, suspend
Преходи между различните състояния:
--- FIGURE 3.7 ---
-- други употреби на преустановени процеси
Обобщени характеристики на преустановени процеси:
1. Процесът не е готов за непосредствено изпълнение
2. Независимост от блокировка
3. Поставяне в това състояние с цел недопускане до изпълнение
4. Смяна на това състояние става само с "нарочна заповед"
Причини за преустановяване на процес:
- размяна
- друга причина за ОС
- диалогово искане на потребителя
- по време, ако се изпълнява периодично
- искане на родителя
3.2 Описание на процеси
--- FIGURE 3.8 ---
** Структури за управлението на ОС
--- FIGURE 3.9 ---
-- таблици на паметта за:
ОП - оперативна памет (main memory)
ВП - виртуална памет (virtual
memory)
-- I/O таблици
-- таблици за файлове
-- таблици на процеси
** Структури за управление на процеси
-- разполагане на процесите (process location)
Типични елементи на изображение на процеса (process image):
User Data
User Program
System Stack
Process Control Block (PCB)
-- атрибути на процесите
Типични елементи на контролния блок на процес (PCB):
Process Identification
Processor State Information
Process Control Information
--- FIGURE
3.10 ---
--- FIGURE
3.11 ---
--- FIGURE 3.12 ---
-- ролята на контролния блок на процес
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. Възстановяване на състоянието на процесора
във вида при предишното прекъсване на процеса
** Изпълнение на ОС
-- ядро, което не е процес
-- изпълнение в потребителски процеси
--- FIGURE 3.13 ---
--- FIGURE
3.14 ---
-- базирана на процеси ОС
3.4 Организация на процесите в UNIX SVR4
** Състояния на процесите
--- FIGURE
3.15 ---
** Описание на процесите
** Управление на процесите