Слайд 1Машинно-зависимые свойства ОС
Слайд 3
Определение процесса
Это совокупность набора исполняющихся команд, ассоциированных с ним ресурсов (выделенная
для исполнения память или адресное пространство, стеки, используемые файлы и устройства ввода-вывода и т. д.) и текущего момента его выполнения (значения регистров, программного счетчика и переменных), находящаяся под управлением операционной системы.
Слайд 4Понятие процесса
Не существует взаимно однозначного соответствия между процессами и программами, обрабатываемыми
вычислительными системами.
В некоторых операционных системах для работы определенных программ может организовываться более одного процесса или один и тот же процесс может исполнять последовательно несколько различных программ.
Слайд 5Понятие процесса
Все, что выполняется в вычислительных системах, организовано как набор процессов.
На однопроцессорной компьютерной системе в каждый момент времени может исполняться только один процесс.
Для мультипрограммных вычислительных систем параллельная обработка нескольких процессов достигается с помощью переключения процессора с одного процесса на другой.
Пока один процесс выполняется, остальные ждут своей очереди.
Слайд 6Краткая диаграмма состояния процесса
Процесс не исполняется
Процесс исполняется
ВХОД
ВЫХОД
Выбран для исполнения
Приостановка
Слайд 7Приостановка процесса
Для его дальнейшей работы потребовалось возникновение какого – либо события
(например, завершение операции ввода – вывода)
Истек временной интервал, отведенный операционной системой для работы этого процесса
Слайд 8
Подробная диаграмма состояния процесса
Готовность
Исполнение
ВХОД
Выбран для исполнения
Прерывание
Ожидание
Ожидание события
ВЫХОД
Событие произошло
Слайд 9Понятие процесса
Всякий новый процесс, появляющийся в системе, попадает в состояние готовность.
ОС выбирает один из готовых процессов и переводит его в состояние исполнение.
В состоянии исполнение происходит непосредственное выполнение программного кода процесса.
Покинуть это состояние процесс может по трем причинам:
Слайд 10Понятие процесса
он заканчивает свою деятельность;
он не может продолжать свою работу, пока
не произойдет некоторое событие, и операционная система переводит его в состояние ожидание;
в результате возникновения прерывания в вычислительной системе его возвращают в состояние готовность.
Слайд 11Диаграмма состояний процесса
Ожидание
Закончил исполнение
Исполнение
Готовность
Рождение
Доступ к планированию
Завершение работы
Ожидание события
Событие произошло
Прерывание
Выбран для
исполнения
Слайд 12Понятие процесса
При рождении процесс получает в свое распоряжение адресное пространство, в
которое загружается программный код процесса;
Ему выделяются системные ресурсы;
Устанавливается начальное значение программного счетчика этого процесса и т. д.
Родившийся процесс переводится в состояние готовность.
При завершении своей деятельности процесс из состояния исполнение попадает в состояние закончил исполнение.
Слайд 14Набор операций
Создание процесса – завершение процесса;
Приостановка процесса (перевод из состояния исполнение
в состояние готовность) - запуск процесса (перевод из состояния готовность в состояние исполнение);
Блокирование процесса (перевод из состояния исполнение в состояние ожидание) - разблокирование процесса (перевод из состояния ожидание в состояние готовность);
Изменение приоритета процесса.
Слайд 15Набор операций
Операции создания и завершения процесса являются одноразовыми, так как применяются
к процессу не более одного раза (некоторые системные процессы никогда не завершаются при работе вычислительной системы).
Все остальные операции, связанные с изменением состояния процессов, являются многоразовыми.
Слайд 17Контекст процесса
Для того чтобы операционная система могла выполнять операции над процессами,
каждый процесс представляется в ней структурой данных.
Слайд 18
Информация структуры
состояние, в котором находится процесс;
адрес команды, которая должна быть выполнена
для него следующей;
содержимое регистров процессора;
данные, необходимые для планирования и управления памятью (приоритет процесса, размер и расположение адресного пространства и т. д.);
учетные данные (идентификационный номер процесса, какой пользователь инициировал его работу, общее время использования процессора данным процессом и т. д.);
информацию об устройствах ввода-вывода, связанных с процессом (например, какие устройства закреплены за процессом, таблицу открытых файлов);
Слайд 19Выполнение операций
Структура данных называется блоком управления процессом.
Любая операция, производимая ОС
над процессом, вызывает изменения в блоке
Слайд 20Выполнение операций
Содержимое всех регистров процессора будем называть регистровым контекстом процесса
Все
остальное - системным контекстом процесса
Код и данные, находящиеся в адресном пространстве процесса, будем называть его пользовательским контекстом.
Совокупность регистрового, системного и пользовательского контекстов процесса для краткости принято называть просто контекстом процесса.
Слайд 22
Одноразовые операции
Процесс, инициировавший создание нового процесса, принято называть
процессом-родителем (parent process),
а вновь
созданный процесс
- процессом-ребенком (child process).
Слайд 23Упрощенный генеалогический лес процессов.
ПРОЦЕСС 1
ПРОЦЕСС 14
ПРОЦЕСС 12
ПРОЦЕСС 255
ПРОЦЕСС 3
ПРОЦЕСС 156
ПРОЦЕСС
128
ПРОЦЕСС 15
ПРОЦЕСС 23
ПРОЦЕСС 4
ПРОЦЕСС 2
Слайд 24Одноразовые операции
При рождении процесса система заводит новый блок с состоянием процесса
рождение и начинает его заполнение.
Новый процесс получает свой собственный уникальный идентификационный номер.
После завершения какого-либо процесса его освободившийся идентификационный номер может быть повторно использован для другого процесса.
Слайд 25Одноразовые операции
Для выполнения своих функций процесс-ребенок требует определенных ресурсов: памяти, файлов,
устройств ввода-вывода и т. д.
Существует два подхода к их выделению.
Новый процесс может получить в свое пользование некоторую часть родительских ресурсов
может получить свои ресурсы непосредственно от операционной системы.
Слайд 26Одноразовые операции
После наделения процесса-ребенка ресурсами необходимо занести в его адресное пространство
программный код, значения данных, установить программный счетчик.
Возможны два решения.
Процесс-ребенок становится дубликатом процесса-родителя по регистровому и пользовательскому контекстам, при этом должен существовать способ определения кто для кого из процессов-двойников является родителем.
Процесс-ребенок загружается новой программой из какого-либо файла.
Слайд 27Одноразовые операции
После того как процесс наделен содержанием, в блок дописывается оставшаяся
информация и состояние нового процесса изменяется на готовность.
После рождения процессов – детей, процесс-родитель может продолжать свое выполнение одновременно с выполнением процесса-ребенка, а может ожидать завершения работы некоторых или всех своих детей.
Слайд 28Одноразовые операции
После того, как процесс завершил свою работу, операционная система переводит
его в состояние закончил исполнение и освобождает все ассоциированные с ним ресурсы, делая соответствующие записи в блоке управления процессом.
При этом сам блок не уничтожается, а остается в системе еще некоторое время. Это связано с тем, что процесс-родитель после завершения процесса-ребенка может запросить операционную систему о причине произошедшей смерти порожденного им процесса или статистическую информацию об его работе.
Подобная информация сохраняется в блоке мертвого процесса до запроса процесса-родителя или до конца его деятельности, после чего все следы умершего процесса окончательно исчезают из системы.
Процессы, находящиеся в состоянии закончил исполнение, принято называть процессами зомби.
Слайд 29Одноразовые операции
В некоторых операционных систем гибель процесса-родителя приводит к завершению работы
всех его детей.
В некоторых процессы-дети продолжают свое существование и после окончания работы процесса-родителя.
Осиротевшие процессы усыновляются одним из системных процессов, который порождается при старте операционной системы, и функционирует все время, пока она работает.
Слайд 31
Многоразовые операции
Многоразовые операции не приводят к изменению количества процессов в
операционной системе и не обязаны быть связанными с выделением или освобождением ресурсов.
Слайд 32
Действия при выполнении многоразовых операций
Запуск процесса
Приостановка процесса.
Блокирование процесса
Разблокирование
процесса
Слайд 33Многоразовые операции
Запуск процесса.
Из числа процессов, находящихся в состоянии готовность, операционная система
выбирает один процесс для последующего исполнения.
Для избранного процесса операционная система обеспечивает наличие в оперативной памяти информации, необходимой для его дальнейшего выполнения.
Состояние процесса изменяется на исполнение, восстанавливаются значения регистров, и управление передается команде.
Слайд 34Многоразовые операции
Приостановка процесса.
Работа процесса, находящегося в состоянии исполнение, приостанавливается в
результате какого-либо прерывания.
Процессор автоматически сохраняет счетчик команд и передает управление по специальному адресу обработки данного прерывания.
По указанному адресу располагается одна из частей ОС. Она переводит процесс в состояние готовность и приступает к обработке прерывания.
Слайд 35Многоразовые операции
Блокирование процесса.
Процесс блокируется, когда он не может продолжать свою
работу, не дождавшись возникновения какого-либо события в вычислительной системе. Для этого он обращается к ОС с помощью определенного системного вызова.
Операционная система обрабатывает системный вызов и переводит процесс из состояния исполнение в состояние ожидание.
Слайд 36Многоразовые операции
Разблокирование процесса.
После возникновения в системе события, операционной системе нужно точно
определить какое именно событие произошло.
Затем операционная система проверяет: находился ли некоторый процесс в состоянии ожидание для данного события и переводит его в состояние готовность.
Слайд 38Переключение контекста
Деятельность мультипрограммной операционной системы состоит из цепочек операций, выполняемых над
различными процессами, и сопровождается переключением процессора с одного процесса на другой.
Слайд 39Переключение контекста
При исполнении процессором некоторого процесса возникает прерывание от устройства ввода-вывода,
сигнализирующее об окончании операций на устройстве.
Над выполняющимся процессом производится операция приостановка.
Операционная система разблокирует процесс, инициировавший запрос на ввод-вывод
Осуществляет запуск приостановленного или нового процесса
Слайд 40
Переключение контекста
Для корректного переключения процессора с одного процесса на другой необходимо
сохранить контекст исполнявшегося процесса и восстановить контекст процесса, на который будет переключен процессор.
Такая процедура сохранения/восстановления работоспособности процессов называется переключением контекста
Слайд 41Переключение контекста
Время, затраченное на переключение контекста, не используется вычислительной системой для
совершения полезной работы и представляет собой накладные расходы, снижающие производительность системы. Оно меняется от машины к машине и обычно находится в диапазоне от 1 до 1000 микросекунд.