Скачать презентацию Лекция 2 Процессы Понятие процесса Состояния процесса Операции Скачать презентацию Лекция 2 Процессы Понятие процесса Состояния процесса Операции

Лекция_2_2008.ppt

  • Количество слайдов: 42

Лекция 2. Процессы Понятие процесса Состояния процесса Операции над процессами и связанные с ними Лекция 2. Процессы Понятие процесса Состояния процесса Операции над процессами и связанные с ними понятия Основы операционных систем Лекция 2 - 21. 02. 08 1

Понятие процесса (1) На прошлой лекции: ВС исполняет одну или несколько программ, ОС планирует Понятие процесса (1) На прошлой лекции: ВС исполняет одну или несколько программ, ОС планирует задания, программы могут обмениваться данными и т. д. Общеупотребительный, житейский смысл Одни и те же слова обозначали и объекты в статическом состоянии, и объекты в динамическом состоянии, находящиеся в процессе исполнения Для знакомства с деталями функционирования современных компьютерных систем требуется уточнение терминологии Основы операционных систем Лекция 2 - 21. 02. 08 2

Понятие процесса (2) Имеется готовая к исполнению программа вычисления квадратного корня из натуральных чисел Понятие процесса (2) Имеется готовая к исполнению программа вычисления квадратного корня из натуральных чисел Одному требуется извлечь корень квадратный из 1, а второму - из 4 Два различных вычислительных процесса Разные исходные данные - разные последовательности вычислений, разные результаты на разные устройства ввода-вывода Не можем использовать термин "программа" в пользовательском смысле этого слова для описания того, что происходит внутри вычислительной системы Основы операционных систем Лекция 2 - 21. 02. 08 3

Понятие процесса (3) “Задание” как совокупность программы, набора команд языка управления заданиями, необходимых для Понятие процесса (3) “Задание” как совокупность программы, набора команд языка управления заданиями, необходимых для ее выполнения, и входных данных Разные исходные данные - два различные задания Пытаются извлечь корень квадратный из 1 - идентичные задания, но загрузили со сдвигом по времени Идентичны ли задания внутри ВС системы в данный момент времени? Нет - состояние процесса их выполнения различно Основы операционных систем Лекция 2 - 21. 02. 08 4

Понятие процесса (4) Термины программа и задание предназначены для описания статических, неактивных объектов Программа Понятие процесса (4) Термины программа и задание предназначены для описания статических, неактивных объектов Программа в процессе исполнения является динамическим, активным объектом Компьютер: различные команды, обработка значений переменных Операционная система: выделение оперативной памяти, закрепление устройств ввода-вывода или файлов Вместо терминов программа и задание для активных объектов ВС используется термин процесс Основы операционных систем Лекция 2 - 21. 02. 08 5

Понятие процесса (5) Для простоты обычно предлагается думать о процессе как об абстракции, характеризующей Понятие процесса (5) Для простоты обычно предлагается думать о процессе как об абстракции, характеризующей выполняющуюся программу Это не совсем корректно Некоторая совокупность набора исполняющихся команд, ассоциированных с ним ресурсов (выделенная для исполнения память или адресное пространство, стеки, используемые файлы и устройства ввода-вывода и т. д. ) и текущего контекста его выполнения (значения регистров, программного счетчика, состояние стека и значения переменных), находящаяся под управлением операционной системы Основы операционных систем Лекция 2 - 21. 02. 08 6

Понятие процесса (6) Нет взаимно однозначного соответствия между процессами и программами, обрабатываемыми вычислительными системами Понятие процесса (6) Нет взаимно однозначного соответствия между процессами и программами, обрабатываемыми вычислительными системами В некоторых ОС для работы определенных программ может организовываться более одного процесса или один и тот же процесс может исполнять последовательно несколько различных программ Даже в случае обработки только одной программы в рамках одного процесса, нельзя считать, что процесс представляет собой просто динамическое описание кода исполняемого файла, данных и выделенных для них ресурсов Основы операционных систем Лекция 2 - 21. 02. 08 7

Понятие процесса (7) Процесс находится под управлением операционной системы, и поэтому в нем может Понятие процесса (7) Процесс находится под управлением операционной системы, и поэтому в нем может выполняться часть кода ее ядра как в случаях, специально запланированных авторами программы (например, при использовании системных вызовов), так и в непредусмотренных ими ситуациях (например, при обработке внешних прерываний) Основы операционных систем Лекция 2 - 21. 02. 08 8

Состояния процесса (1) Все, что выполняется в ВС (даже определенные части операционных систем), организовано Состояния процесса (1) Все, что выполняется в ВС (даже определенные части операционных систем), организовано как набор процессов Реально на однопроцессорной компьютерной системе в каждый момент времени может исполняться только один процесс Пока один процесс выполняется, остальные ждут своей очереди на получение процессора В мультипрограммных вычислительных системах псевдопараллельная обработка нескольких процессов достигается с помощью переключения процессора с одного процесса на другой Основы операционных систем Лекция 2 - 21. 02. 08 9

Состояния процесса (2) Диаграмма состояний процесса Процесс, находящийся в состоянии процесс исполняется, может завершиться Состояния процесса (2) Диаграмма состояний процесса Процесс, находящийся в состоянии процесс исполняется, может завершиться или быть приостановлен ОС и переведен в состояние процесс не исполняется. Приостановка процесса: для работы потребовалось возникновение события (завершение операции ввода -вывода), истек временной интервал, отведенный ОС для работы этого процесса. Потом ОС выбирает для исполнения один из процессов, находящихся в состоянии процесс не исполняется и переводит его в состояние процесс исполняется. Новый процесс, появляющийся в системе, первоначально помещается в состояние процесс не исполняется Основы операционных систем Лекция 2 - 21. 02. 08 10

Состояния процесса (3) Уточненная диаграмма состояний процесса Не учитывается, что процесс, выбранный для исполнения, Состояния процесса (3) Уточненная диаграмма состояний процесса Не учитывается, что процесс, выбранный для исполнения, может все еще ждать события, из-за которого он был приостановлен, и реально к выполнению не готов. Разобьем состояние процесс не исполняется на два новых состояния: готовность и ожидание Основы операционных систем Лекция 2 - 21. 02. 08 11

Состояния процесса (4) Уточненная диаграмма состояний процесса Всякий новый процесс - готов. ОС выбирает Состояния процесса (4) Уточненная диаграмма состояний процесса Всякий новый процесс - готов. ОС выбирает один из готовых процессов и переводит его в состояние исполнение. В состоянии исполнение происходит непосредственное выполнение программного кода процесса. Покинуть это состояние процесс может по трем причинам: Ø он заканчивает свою деятельность Ø он не может продолжать свою работу, пока не произойдет некоторое событие, и операционная система не переведет его в состояние ожидание Ø в результате возникновения прерывания в вычислительной системе (например, прерывания от таймера по истечении дозволенного времени выполнения) его возвратят в состояние готовность Основы операционных систем Лекция 2 - 21. 02. 08 12

Состояния процесса (5) Уточненная диаграмма состояний процесса Для полноты картины нам необходимо ввести еще Состояния процесса (5) Уточненная диаграмма состояний процесса Для полноты картины нам необходимо ввести еще два состояния процессов: рождение и закончил исполнение Основы операционных систем Лекция 2 - 21. 02. 08 13

Состояния процесса (6) Уточненная диаграмма состояний процесса Для появления в вычислительной системе процесс должен Состояния процесса (6) Уточненная диаграмма состояний процесса Для появления в вычислительной системе процесс должен пройти через состояние рождение При рождении процесс получает в свое распоряжение адресное пространство, в которое загружается программный код процесса; ему выделяются стек и системные ресурсы; устанавливается начальное значение программного счетчика этого процесса и т. д. Родившийся процесс переводится в состояние готовность. При завершении своей деятельности процесс из состояния исполнение попадает в состояние закончил исполнение. Основы операционных систем Лекция 2 - 21. 02. 08 14

Состояния процесса (7) Уточненная диаграмма состояний процесса В конкретных операционных системах состояния процесса могут Состояния процесса (7) Уточненная диаграмма состояний процесса В конкретных операционных системах состояния процесса могут быть еще более детализированы Могут появиться некоторые новые варианты переходов из состояния в состояние Модель состояний процессов для операционной системы Windows NT содержит 7 различных состояний, а для операционной системы UNIX — 9 Тем не менее, в принципе, все ОС подчиняются этой выше модели Основы операционных систем Лекция 2 - 21. 02. 08 15

Операции над процессами (1) Набор операций Изменением состояния процессов занимается ОС, совершая операции над Операции над процессами (1) Набор операций Изменением состояния процессов занимается ОС, совершая операции над ними Число операций пока совпадает с числом стрелок на диаграмме состояний Удобно объединить их в три пары В дальнейшем, когда мы будем говорить об алгоритмах планирования, в нашей модели появится еще одна операция, не имеющая парной: изменение приоритета процесса Основы операционных систем Лекция 2 - 21. 02. 08 16

Операции над процессами (2) Набор операций Создание процесса — завершение процесса Приостановка процесса (перевод Операции над процессами (2) Набор операций Создание процесса — завершение процесса Приостановка процесса (перевод из состояния исполнение в состояние готовность) — запуск процесса (перевод из состояния готовность в состояние исполнение) Блокирование процесса (перевод из состояния исполнение в состояние ожидание) — разблокирование процесса (перевод из состояния ожидание в состояние готовность) Основы операционных систем Лекция 2 - 21. 02. 08 17

Операции над процессами (3) Набор операций Операции создания и завершения процесса являются одноразовыми Применяются Операции над процессами (3) Набор операций Операции создания и завершения процесса являются одноразовыми Применяются к процессу не более одного раза Остальные операции, связанные с изменением состояния процессов, будь то запуск или блокировка, как правило, являются многоразовыми Рассмотрим подробнее, как операционная система выполняет операции над процессами Основы операционных систем Лекция 2 - 21. 02. 08 18

Операции над процессами (3) Блок управления процессом и контекст процесса Каждый процесс представляется в Операции над процессами (3) Блок управления процессом и контекст процесса Каждый процесс представляется в ОС некоторой структурой данных: Состояние процесса Программный счетчик процесса Содержимое регистров процессора Данные, необходимые для планирования использования процессора и управления памятью (приоритет процесса, размер и расположение адресного пространства и т. д. ) Основы операционных систем Лекция 2 - 21. 02. 08 19

Операции над процессами (4) Блок управления процессом и контекст процесса Учетные данные (идентификационный номер Операции над процессами (4) Блок управления процессом и контекст процесса Учетные данные (идентификационный номер процесса, какой пользователь инициировал его работу, общее время использования процессора данным процессом и т. д. ) Информация об устройствах вводавывода, связанных с процессом (какие устройства закреплены за процессом, таблица открытых файлов) Основы операционных систем Лекция 2 - 21. 02. 08 20

Операции над процессами (5) Блок управления процессом и контекст процесса Конкретный состав и строение Операции над процессами (5) Блок управления процессом и контекст процесса Конкретный состав и строение структуры зависят от конкретной ОС Во многих ОС имеется несколько связанных структур данных Для простоты будем считать, что структура одна Будем называть ее PCB (Process Control Block) или блоком управления процессом PCB - модель процесса для ОС Любая операция, производимая ОС над процессом, вызывает изменения в PCB Основы операционных систем Лекция 2 - 21. 02. 08 21

Операции над процессами (6) Блок управления процессом и контекст процесса Содержимое всех регистров процессора Операции над процессами (6) Блок управления процессом и контекст процесса Содержимое всех регистров процессора будем называть регистровым контекстом процесса Остальная часть PCB - системный контекст процесса Достаточно для выполнения операций, но не полностью характеризует процесс Код и данные, находящиеся в адресном пространстве процесса, будем называть его пользовательским контекстом Совокупность регистрового, системного и пользовательского контекстов процесса для краткости принято называть просто контекстом процесса Основы операционных систем Лекция 2 - 21. 02. 08 22

Операции над процессами (7) Одноразовые операции Жизненный путь процесса в компьютере начинается с его Операции над процессами (7) Одноразовые операции Жизненный путь процесса в компьютере начинается с его рождения Любая ОС, поддерживающая концепцию процессов, должна обладать средствами для их создания В очень простых системах все процессы могут быть порождены на этапе старта системы В более сложных ОС процессы создаются динамически, по мере необходимости Основы операционных систем Лекция 2 - 21. 02. 08 23

Операции над процессами (8) Одноразовые операции Инициатором рождения нового процесса после старта ОС может Операции над процессами (8) Одноразовые операции Инициатором рождения нового процесса после старта ОС может выступить либо процесс пользователя, совершивший специальный системный вызов, либо процесс ОС Процесс, инициировавший создание нового процесса, принято называть процессом-родителем (parent process), а вновь созданный процесс - процессомребенком (child process) Процессы-дети могут, в свою очередь, порождать новых детей и т. д. Набор генеалогических деревьев процессов - генеалогический лес Основы операционных систем Лекция 2 - 21. 02. 08 24

Операции над процессами (9) Одноразовые операции • Все пользовательские процессы вместе с некоторыми процессами Операции над процессами (9) Одноразовые операции • Все пользовательские процессы вместе с некоторыми процессами ОС принадлежат к одному и тому же дереву леса • В ряде ОС лес вырождается в одно такое дерево Основы операционных систем Лекция 2 - 21. 02. 08 25

Операции над процессами (10) Одноразовые операции При создании процесса ОС заводит новый PCB с Операции над процессами (10) Одноразовые операции При создании процесса ОС заводит новый PCB с состоянием процесса рождение и начинает его заполнение Новый процесс получает свой собственный уникальный идентификационный номер Для соблюдения уникальности номеров число одновременно присутствующих в системе процессов должно быть ограничено После завершения процесса его номер может быть повторно использован для другого процесса Основы операционных систем Лекция 2 - 21. 02. 08 26

Операции над процессами (11) Одноразовые операции Для выполнения своих функций процесс-ребенок требует ресурсов: памяти, Операции над процессами (11) Одноразовые операции Для выполнения своих функций процесс-ребенок требует ресурсов: памяти, файлов, устройств вводавывода и т. д. Два подхода к их выделению Может получить в свое пользование некоторую часть родительских ресурсов, возможно, разделяя права на них с процессом-родителем и другими процессамидетьми Может получить свои ресурсы непосредственно от ОС Информация о выделенных ресурсах заносится в PCB Основы операционных систем Лекция 2 - 21. 02. 08 27

Операции над процессами (12) Одноразовые операции После выделения ресурсов необходимо занести в адресное пространство Операции над процессами (12) Одноразовые операции После выделения ресурсов необходимо занести в адресное пространство процесса программный код, значения данных, установить программный счетчик Возможны два решения Процесс-ребенок становится дубликатом процессародителя по регистровому и пользовательскому контекстам; можно определить, кто является родителем (Unix) В одном процессе можно последовательно выполнить несколько различных программ Процесс-ребенок сразу загружается новой программой из какого-либо файла (VAX/VMS и Windows NT) Основы операционных систем Лекция 2 - 21. 02. 08 28

Операции над процессами (13) Одноразовые операции После того как процесс наделен содержанием, в PCB Операции над процессами (13) Одноразовые операции После того как процесс наделен содержанием, в PCB дописывается оставшаяся информация, и состояние нового процесса изменяется на готовность Процесс-родитель может продолжать свое выполнение одновременно с выполнением процесса-ребенка Может ожидать завершения работы некоторых или всех своих детей Основы операционных систем Лекция 2 - 21. 02. 08 29

Операции над процессами (14) Одноразовые операции После того как процесс завершил свою работу, ОС Операции над процессами (14) Одноразовые операции После того как процесс завершил свою работу, ОС переводит его в состояние закончил исполнение и освобождает все ассоциированные с ним ресурсы, делая соответствующие записи в PCB остается в системе еще некоторое время Процесс-родитель после завершения процесса-ребенка может запросить ОС о причине произошедшей смерти порожденного им процесса и/или статистическую информацию об его работе В ОС Unix процессы, находящиеся в состоянии закончил исполнение, принято называть процессами зомби Основы операционных систем Лекция 2 - 21. 02. 08 30

Операции над процессами (15) Одноразовые операции В ряде ОС (например, в VAX/VMS) гибель процессародителя Операции над процессами (15) Одноразовые операции В ряде ОС (например, в VAX/VMS) гибель процессародителя приводит к завершению работы всех его детей В других ОС (например, в UNIX) процессы-дети продолжают свое существование и после окончания работы процесса-родителя Требуется изменение информации в PCB процессовдетей о породившем их процессе, чтобы генеалогический лес процессов оставался целостным Как правило, осиротевшие процессы усыновляются одним из дежурных системных процессов Основы операционных систем Лекция 2 - 21. 02. 08 31

Операции над процессами (16) Многоразовые операции Одноразовые операции всегда связаны с выделением или освобождением Операции над процессами (16) Многоразовые операции Одноразовые операции всегда связаны с выделением или освобождением ресурсов Многоразовые операции не приводят к изменению числа процессов в операционной системе и не обязаны быть связанными с выделением или освобождением ресурсов Кратко опишем действия, которые производит операционная система при выполнении многоразовых операций над процессами Более подробно в следующих лекциях Основы операционных систем Лекция 2 - 21. 02. 08 32

Операции над процессами (17) Многоразовые операции: запуск процесса Из числа процессов, находящихся в состоянии Операции над процессами (17) Многоразовые операции: запуск процесса Из числа процессов, находящихся в состоянии готовность, ОС выбирает один процесс для исполнения (критерии и алгоритмы такого выбора в лекции 3 “Планирование процессов” ) ОС обеспечивает наличие в оперативной памяти данных, необходимых для дальнейшего выполнения процесса (детали в лекциях про управление памятью) Состояние процесса изменяется на исполнение, на основе PCB восстанавливаются значения регистров для данного процесса, и управление передается команде, на которую указывает счетчик команд процесса Основы операционных систем Лекция 2 - 21. 02. 08 33

Операции над процессами (18) Многоразовые операции: приостановка процесса Работа процесса, находящегося в состоянии исполнение, Операции над процессами (18) Многоразовые операции: приостановка процесса Работа процесса, находящегося в состоянии исполнение, приостанавливается в результате какоголибо прерывания Процессор автоматически сохраняет счетчик команд и, возможно, другие регистры в стеке исполняемого процесса и передает управление по специальному адресу обработки данного прерывания ОС сохраняет динамическую часть системного и регистрового контекстов процесса в его PCB, переводит процесс в состояние готовность и приступает к обработке прерывания Основы операционных систем Лекция 2 - 21. 02. 08 34

Операции над процессами (19) Многоразовые операции: блокирование процесса Процесс блокируется, когда не может продолжать Операции над процессами (19) Многоразовые операции: блокирование процесса Процесс блокируется, когда не может продолжать свою работу, не дождавшись возникновения какоголибо события Обращается к ОС с помощью некоторого системного вызова ОС обрабатывает системный вызов (инициализирует операцию ввода-вывода, добавляет процесс в очередь процессов, дожидающихся освобождения устройства или возникновения события, и т. д. ) Сохраняет необходимую часть контекста процесса в его PCB и переводит процесс в состояние ожидание Основы операционных систем Лекция 2 - 21. 02. 08 35

Операции над процессами (20) Многоразовые операции: разблокирование процесса После возникновения в системе какого-либо события, Операции над процессами (20) Многоразовые операции: разблокирование процесса После возникновения в системе какого-либо события, ОС точно определяет, какое событие произошло Проверяет, находился ли некоторый процесс в состоянии ожидание для данного события Если находился, переводит его в состояние готовность, выполняя необходимые действия, связанные с наступлением события (инициализация операции ввода-вывода для очередного ожидающего процесса и т. п. ) Эта операция, как и операция блокирование, детально рассматривается в лекциях про управление вводомвыводом Основы операционных систем Лекция 2 - 21. 02. 08 36

Операции над процессами (21) Переключение контекста Выполнение кода пользователя Работа аппаратуры Восстановление контекста Выполнение Операции над процессами (21) Переключение контекста Выполнение кода пользователя Работа аппаратуры Восстановление контекста Выполнение кода ОС Процесс 1 Исполнение Работа аппаратуры Готовность Работа аппаратуры Выполнение кода пользователя Процесс 2 Ожидание Исполнение Прерывание Обработка Выполнение кода ОС прерывания Сохранение контекста Планирование Основы операционных систем Лекция 2 - 21. 02. 08 37

Операции над процессами (22) Переключение контекста При исполнении процессором некоторого процесса 1 возникает прерывание Операции над процессами (22) Переключение контекста При исполнении процессором некоторого процесса 1 возникает прерывание от устройства ввода-вывода, сигнализирующее об окончании операций на устройстве Над процессом 1 производится операция приостановки ОС разблокирует процесс 2, инициировавший запрос на ввод-вывод Осуществляет запуск процесса, выбранного при выполнении планирования (процесс 2) В результате обработки окончания операции вводавывода возможна смена процесса, находящегося в состоянии исполнение Основы операционных систем Лекция 2 - 21. 02. 08 38

Операции над процессами (23) Переключение контекста Для корректного переключения процессора с одного процесса на Операции над процессами (23) Переключение контекста Для корректного переключения процессора с одного процесса на другой необходимо сохранить контекст исполнявшегося процесса и восстановить контекст процесса, на который будет переключен процессор Процедура переключения контекста Накладные расходы, снижающие производительность системы (от 1 до 1000 микросекунд) Сократить накладные расходы позволяет расширенная модель процессов, включающая понятие нити исполнения (thread) Подробнее о нитях исполнения в лекции 4 Основы операционных систем Лекция 2 - 21. 02. 08 39

Заключение (1) Понятие процесса характеризует совокупность набора исполняющихся команд, ассоциированных с ним ресурсов и Заключение (1) Понятие процесса характеризует совокупность набора исполняющихся команд, ассоциированных с ним ресурсов и текущего момента его выполнения, находящуюся под управлением ОС Процесс полностью описывается своим контекстом, состоящим из регистровой, системной и пользовательской частей В ОС процессы представляются определенной структурой данных — PCB, отражающей содержание регистрового и системного контекстов Основы операционных систем Лекция 2 - 21. 02. 08 40

Заключение (2) Процессы могут находиться в пяти основных состояниях: рождение, готовность, исполнение, ожидание, закончил Заключение (2) Процессы могут находиться в пяти основных состояниях: рождение, готовность, исполнение, ожидание, закончил исполнение Из состояния в состояние процесс переводится операционной системой в результате выполнения над ним операций Между выполнением операций содержимое PCB не изменяется Основы операционных систем Лекция 2 - 21. 02. 08 41

Заключение (3) Операционная система может выполнять над процессами следующие операции: создание процесса, завершение процесса, Заключение (3) Операционная система может выполнять над процессами следующие операции: создание процесса, завершение процесса, приостановка процесса, запуск процесса, блокирование процесса, разблокирование процесса, изменение приоритета процесса Деятельность мультипрограммной ОС системы состоит из цепочек перечисленных операций, выполняемых над различными процессами, и сопровождается переключением контекста Время, затрачиваемое на переключение контекста, уменьшает полезное время работы процессора Основы операционных систем Лекция 2 - 21. 02. 08 42