Создать процесс – это подготовить новый PCB.

Процесс (Process) и поток (Thread) являются единицами работы в операционной системе.

¢ Процесс рассматривается операционной системой как заявка на потребление всех видов ресурсов, кроме одного – процессорного времени. Процессор распределяется операционной системой между другими единицами выполнения – потоками.

¢ В простейшем случае процесс состоит из одного потока. Если ОС не поддерживает потоков, то поведение потока полностью поглощается поведением процесса.

 

Элементы процесса

¢ Идентификатор

¢ Состояние

¢ Приоритет

¢ Счётчик команд

¢ Таблицы распределения памяти

¢ Контекст

¢ Статус операций ввода-вывода

¢ Статистические данные

Блок Управления Процессом (PCB – Process Control Block)

¢ Содержит элементы процесса

¢ Создаётся и управляется операционной системой

¢ Единая структура для поддержки различными процессами.

PCB. Обобщённая схема

 

 

PCB в семействе NT систем.

 

EPROCESS

KPROCESS

 

PEB – Process Environment Block

 

Создание процесса

Создать процесс – это подготовить новый PCB.

¢ Порождение нового процесса другим

¢ Создание операционной системой процесса для работы служб

¢ Вход в систему в интерактивном режиме

¢ Новое пакетное задание

 

 

Создание процесса в NT системах

 

Завершение процессов

¢ Обычное завершение

¢ Превышение лимита времени

¢ Недостаток памяти

¢ Нарушение доступа к памяти

¢ Ошибка доступа к ресурсу

¢ Арифметическая ошибка

¢ Ошибка ввода-вывода

¢ Неверная команда

¢ Команда с недоступными привилегиями

¢ Неправильное использование данных

¢ Вмешательство ОС

¢ Завершение всех потоков (для многопоточных систем)

¢ Запрос со стороны другого процесса.

 

 

Состояния процесса. Модель с двумя состояниями

 

Очередь процессов

 

Состояния процесса. Модель с пятью состояниями

 

 

Состояния процесса.

 

Схема с одной очередью блокированных процессов

 

Схема с множеством очередей блокированных процессов

 

Приостановленные процессы

¢ Перемещение (Swap) процессов на диск для освобождения памяти под другие процессы

¢ Блокированное состояние становится приостановленным при переносе процесса на диск

¢ Новые состояния:

l Блокирован/приостановлен

l Готов/приостановлен

Диаграмма состояний процесса с одним приостановленным состоянием

 

 

Диаграмма состояний процесса с двумя приостановленным состоянием

 

API - Application Programming Interface управления процессами (POSIX)

POSIX 1003.1: fork(), exec(), kill()

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

int pid;

switch (pid = fork())

{

case 0: /*Порождённый процесс*/

case -1: /*Ошибка создания процесса*/

default: /*Родительский процесс*/

}