Переключение контекста

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

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

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

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

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

Работа процесса, находящегося в состоянии исполнения приостанавливается в результате какого-либо прерывания. Процессор автоматически сохраняет счетчик команд и возможно один или несколько регистров исполняемого процесса, а затем передает управление по специальному адресу обработки данного прерывания. На этом работа технического обеспечения по обработке прерывания завершается. По указанному адресу обычно располагается часть ОС. Она сохраняет динамическую часть системного и регистрового контекстов в блоке управления процессом, переводит процесс в состояние готовности и приступает к обработке прерывания, то есть к выполнению определенных действий.

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

Процесс блокируется, когда он не может продолжать свою работу, не дождавшись возникновения какого-либо события. Для этого он обращается к ОС при помощи специального системного вызова. ОС обрабатывает системный вызов и при необходимости, сохранив нужную часть контекста в блоке управления процессом, переводит процесс из состояния исполнения в состояние ожидания.

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

После возникновения в системе какого-либо события, ОС нужно определить какое именно событие произошло. Затем ОС проверяет, находился ли какой-нибудь процесс в состоянии ожидания данного события и если да, то переводит его в состояние готовности.

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

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: