Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
сказки_3.rtf
Скачиваний:
4
Добавлен:
01.07.2025
Размер:
3.62 Mб
Скачать

Способы реализации мультипрограммирования [49-52]

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

Понятие прерывания [53-56]

Система прерываний включает собой вход или группу входов процессора, на которые поступают (как правило, асинхронные) запросы внешних источников, внутреннюю шину прерываний, разряды блокировки и разрешения запроса слова состояния машины, группу привилегированных команд, влияющих на их состояние, схему управления, обеспечивающую установку (синхронного) запроса от внутренних источников в процессоре и переход к обработке запроса, регистры системных таблиц, в частности, векторов (в режиме реальных адресов) или дескрипторов (в защищённом режиме) прерываний. Системные таблицы содержат ссылки на обработчики прерываний, которым передаётся управление после перехода к обработке (наступлении события прерывания), при этом сбрасывается его разрешение, определяется источник, соответствующий строке таблицы, запоминается часть контекста (в частности, адрес возврата). Переход к обработчику, таким образом, аналогичен команде вызова подпрограммы, или передаче управления с возвратом), но при этом такая передача сопровождается запретом прерывания, что позволяет при необходимости выполнить полное запоминание всего регистрового контекста в режиме атомарной операции. Аналогия с вызовом подпрограммы используется там, где аппаратная платформа поддерживает программные прерывания (SVC IBM 360, PIRQ PDP11, int ПЭВМ PC), для (системных) вызовов функций ядра, при этом размещение кода ядра, в отличие от обычного вызова функции, вызывающей программе неизвестно. Использование системы прерываний при разработке ОС создаёт предпосылки для реализации вытесняющего мультипрограммирования, защиты памяти и, через отображённые на неё дескрипторы ресурсов, всех ресурсов системы.