Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Все ответы на вопросы.docx
Скачиваний:
30
Добавлен:
26.04.2019
Размер:
474.16 Кб
Скачать

7.Операции над процессами. Pcb и контекст процесса. Переключение контекста.

Операции над процессами

Изменением состояния процессов занимается операционная система, совершая операции над ними. Количество таких операций в нашей модели пока совпадает с количеством стрелок на диаграмме состояний. Удобно объединить их в три пары:

  • создание процесса – завершение процесса;

  • приостановка процесса (перевод из состояния исполнение в состояние готовность) – запуск процесса (перевод из состояния готовность в состояние исполнение);

  • блокирование процесса (перевод из состояния исполнение в состояние ожидание) – разблокирование процесса (перевод из состояния ожидание в состояние готовность).

Одноразовые операции

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

Три основных события, приводящие к созданию процессов:

  • инициализация системы,

  • работающий процесс подает системный запрос на создание процесса,

  • запрос пользователя на создание процесса.

С технической точки зрения во всех перечисленных случаях новый процесс формируется одинаково, а именно текущий процесс выполняет запрос на создание нового процесса. Этот запрос заставляет операционную систему создать новый процесс, а так же этот запрос содержит информацию о программе, которую нужно запустить в этом процессе.

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

Четыре события, приводящие к остановке процесса:

  • плановое завершение (окончание выполнения),

  • плановый выход по известной ошибке (например, отсутствие файла),

  • выход по неисправимой ошибке (ошибка в программе),

  • уничтожение другим процессом.

Зачастую причиной завершения процесса становится плановое завершение. В таком случае по завершении программы, процесс выполняет системный запрос дабы сообщить системе о том, что он закончил свою работу

Многоразовые операции

  • Запуск процесса.

  • Приостановка процесса.

  • Блокирование процесса.

  • Разблокирование процесса.

Process Control Block и контекст процесса

Для того чтобы операционная система могла выполнять операции над процессами, каждый процесс представляется в ней некоторой структурой данных. Эта структура содержит информацию, специфическую для данного процесса:

  • состояние, в котором находится процесс;

  • программный счетчик процесса или, другими словами, адрес команды, которая должна быть выполнена для него следующей;

  • содержимое регистров процессора;

  • данные, необходимые для планирования использования процессора и управления памятью (приоритет процесса, размер и расположение адресного пространства и т. д.);

  • учетные данные (идентификационный номер процесса, какой пользователь инициировал его работу, общее время использования процессора данным процессом и т. д.);

  • информацию об устройствах ввода-вывода, связанных с процессом (например, какие устройства закреплены за процессом, таблицу открытых файлов);

Во многих операционных системах информация, характеризующая процесс, хранится не в одной, а в нескольких связанных структурах данных. Будем считать, что вся информация хранится в одной структуре данных. Мы будем называть ее PCB (Process Control Block) или блоком управления процессом. Блок управления процессом является моделью процесса для операционной системы. Любая операция, производимая операционной системой над процессом, вызывает определенные изменения в PCB. В рамках принятой модели состояний процессов содержимое PCB между операциями остается постоянным.

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

Реализация многозадачности. Переключение контекста

Суть многозадачности — переключение контекста процесса в момент прерывания по таймеру.

Многозадачность в современных операционных системах реализуется следующим образом:

  1. некий процесс выполняется в данный момент,

  2. происходит прерывание по таймеру,

  3. процессор ищет соответствующий вектор прерываний, считывает адрес обработчика и начинает выполнять команды по этому адресу,

  4. программа по адресу из вектора производит сохранение контекста в блок управления процессом,

  5. производится вызов программы-планировщика, которая выбирает следующий готовый процесс,

  6. производится загрузка контекста выбранного процесса,

  7. выполняется команда завершения прерывания.