Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Основы операционных систем.doc
Скачиваний:
282
Добавлен:
01.05.2014
Размер:
2.22 Mб
Скачать

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

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

Давайте для примера упрощенно рассмотрим, как в реальности может протекать операция разблокирования процесса, ожидающего ввода-вывода (см.рис. 2.5). При исполнении процессором некоторогопроцесса(на рисунке –процесс1) возникает прерывание от устройства ввода-вывода, сигнализирующее об окончанииоперацийна устройстве. Над выполняющимсяпроцессомпроизводитсяоперация приостановки. Далее операционная система разблокируетпроцесс, инициировавший запрос на ввод-вывод (на рисунке –процесс2) и осуществляетзапускприостановленного или новогопроцесса, выбранного при выполнении планирования (на рисунке был выбранразблокированный процесс). Как мы видим, в результате обработки информации об окончанииоперацииввода-вывода возможна сменапроцесса, находящегося всостоянииисполнение.

Рис. 2.5.Выполнение операции разблокирования процесса. Использование термина "код пользователя" не ограничивает общности рисунка только пользовательскими процессами

Для корректного переключения процессора с одного процессана другой необходимо сохранитьконтекстисполнявшегосяпроцессаи восстановитьконтекст процесса, на который будет переключен процессор. Такая процедура сохранения/восстановления работоспособностипроцессовназываетсяпереключением контекста. Время, затраченное напереключение контекста, не используется вычислительной системой для совершения полезной работы и представляет собой накладные расходы, снижающие производительность системы. Оно меняется от машины к машине и обычно колеблется в диапазоне от 1 до 1000 микросекунд. Существенно сократить накладные расходы в современных операционных системах позволяет расширенная модельпроцессов, включающая в себя понятие threads of execution (нити исполнения или просто нити). Подробнее о нитях исполнения мы будем говорить в лекции 4 – "Кооперацияпроцессови основные аспекты ее логической организации".

Заключение

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