Процессы. Понятие процесса. Состояния процесса. Блок управления процессом

Содержание

Слайд 2

Понятие процесса ОС исполняет множество классов программ: Пакетная система (batch system)

Понятие процесса

ОС исполняет множество классов программ:
Пакетная система (batch system) – задания

(jobs)
Система с разделением времени – пользовательские программы (задачи – tasks)
Во многих учебниках термины “задание” и “процесс” – почти синонимы
Процесс – программа при ее выполнении; он должен выполняться последовательно
Процесс включает:
Счетчик команд (program counter)
Стек (stack)
Секцию данных (data section)
Слайд 3

Состояния процесса При исполнении процесс может изменять свое состояние следующим образом:

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

При исполнении процесс может изменять свое состояние следующим образом:
Новый (new):

Процесс создается.
Исполняемый (running): Исполняются команды процесса
Ожидающий (waiting): Процесс ожидает наступления некоторого события (event)
Готовый к выполнению (ready): Процесс ожидает получения ресурсов процессора для его исполнения
Завершенный (terminated): Исполнение процесса завершено.
Слайд 4

Диаграмма состояний процесса

Диаграмма состояний процесса

Слайд 5

Блок управления процессом (Process Control Block – PCB) Информация, ассоциируемая с

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

Информация, ассоциируемая с каждым

процессом
Состояние процесса
Счетчик команд
Регистры процессора
Информация для диспетчеризации процессора
Информация для управления памятью
Статистическая информация
Информация о состоянии ввода-вывода
Слайд 6

Блок управления процессом (PCB)

Блок управления процессом (PCB)

Слайд 7

(C) В.О. Сафонов, 2010 Переключение процессора с одного процесса на другой

(C) В.О. Сафонов, 2010

Переключение процессора с одного процесса на другой

Слайд 8

Очереди, связанные с диспетчеризацией процессов Очередь заданий (Job queue) – множество

Очереди, связанные с диспетчеризацией процессов

Очередь заданий (Job queue) – множество всех

процессов в системе
Очередь готовых процессов (Ready queue) – множество всех процессов, находящихся в основной памяти и готовых к выполнению
Очередь ожидающих ввода-вывода (Device queues) – множество процессов, ожидающих результата работы устройства ввода-вывода
Процессы мигрируют между различными очередями
Слайд 9

Очередь готовых процессов и очереди к различным устройствам ввода-вывода

Очередь готовых процессов и очереди к различным устройствам ввода-вывода

Слайд 10

Графическое представление диспетчеризации процессов

Графическое представление диспетчеризации процессов

Слайд 11

Планировщики Долговременный планировщик (планировщик заданий) – определяет, какие процессы должны быть

Планировщики

Долговременный планировщик (планировщик заданий) – определяет, какие процессы должны быть перемещены

в очередь готовых процессов
Кратковременный планировщик (планировщик процессора) – определяет, какие процессы должны быть выполнены следующими и каким процессам должны быть предоставлены процессоры.
Слайд 12

Добавление планировщика откачки и подкачки процессов

Добавление планировщика откачки и подкачки процессов

Слайд 13

Особенности планировщиков и процессов Кратковременный планировщик вызывается очень часто (в течение

Особенности планировщиков и процессов

Кратковременный планировщик вызывается очень часто (в течение ближайших

миллисекунд) => должен быть очень быстрым
Долговременный планировщик вызывается относительно редко (минуты, секунды) => может быть сравнительно медленным
Именно долговременный планировщик определяет степень (коэффициент) мультипрограммирования
Процессы можно описать как:
Ориентированные на ввод-вывод (I/O-bound) – тратят больше времени на ввод-вывод, чем на вычисления; расходуют много коротких квантов процессорного времени
Ориентированные на использование процессора (CPU-bound) – тратят основное время на вычисления; расходуют небольшое число долговременных квантов процессорного времени
Слайд 14

Переключение контекста процесса (context switch) Когда процессор переключается на другой процесс,

Переключение контекста процесса (context switch)

Когда процессор переключается на другой процесс, система

должна сохранить состояние старого процесса и загрузить сохраненное состояние для нового процесса
Переключение контекста относится к накладным расходам (overhead); система не выполняет никаких полезных действий при переключении с одного процесса на другой
Время зависит от аппаратной поддержки.
Пример: “Эльбрус” – контекстное переключение – одна команда СМСТЕК (сменить стек, т.е. переключиться с одного облегченного процесса на другой)
Слайд 15

Создание процесса Процесс-родитель создает дочерние процессы, которые, в свою очередь, создают

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

Процесс-родитель создает дочерние процессы, которые, в свою очередь, создают другие

процессы, тем самым формируя дерево процессов
Разделение ресурсов
Процесс-родитель и дочерние процессы разделяют все ресурсы
Дочерние процессы разделяют подмножество ресурсов процесса-родителя
Процесс-родитель и дочерний процесс не имеют общих ресурсов
Исполнение
Процесс-родитель и дочерние процессы исполняются совместно
Процесс-родитель ожидает завершения дочерних процессов
Слайд 16

Адресация и создание процесса Адресное пространство Дочернего процесса копирует адресное пространство

Адресация и создание процесса

Адресное пространство
Дочернего процесса копирует адресное пространство процесса-родителя
У дочернего

процесса имеется программа, загруженная в него
UNIX:
fork – системный вызов, создающий новый процесс
exec (execve) – системный вызов, используемый после fork, с целью замены пространства памяти процесса новой программой
Слайд 17

Дерево процессов в системе UNIX

Дерево процессов в системе UNIX