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

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

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

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

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

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

¢ Состояние

¢ Приоритет

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

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

¢ Контекст

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

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

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

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

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

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

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

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

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

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

EPROCESS

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

KPROCESS

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

PEB – Process Environment Block

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

int pid;

switch (pid = fork())

{

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

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

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

}

Наши рекомендации