Супервизор и дисциплины обслуживания
Операционная система состоит из множества программных модулей. Супервизором (supervisor) называется главный модуль операционной системы. В сложных операционных системах он может состоять из нескольких модулей, например супервизора ввода-вывода, супервизора прерываний, супервизора программ, диспетчера задач и т.д.
При необходимости использовать какой-нибудь ресурс (оперативную память, устройство ввода-вывода, массив данных и т.п.) вычислительный процесс путем обращения к супервизору операционной системы посредством специальных вызовов сообщает о своем требовании. При этом указывается вид ресурса и, если надо, его объем. Например, при запросе оперативной памяти указывается количество адресуемых ячеек, необходимое для дальнейшей работы.
Команда обращения к операционной системе передает ей управление, переводя процессор в привилегированный режим работы. Большинство компьютеров имеют два (и более) режима работы: привилегированный (режим супервизора) и пользовательский. Кроме того, могут быть режимы для эмуляции какой-нибудь другой ЭВМ или для организации виртуальной машины, защищенной от остальных вычислений, осуществляемых на этом же компьютере, и т.д.
Ресурс может быть выделен вычислительному процессу, обратившемуся к операционной системе с соответствующим запросом, если:
1. ресурс свободен и в системе нет запросов от задач более высокого приоритета к этому же ресурсу;
2. текущий запрос и ранее выданные запросы допускают совместное использование ресурсов;
3. ресурс используется задачей низшего приоритета и может быть временно отобран (разделяемый ресурс).
Получив запрос, операционная система либо удовлетворяет его и возвращает управление задаче, выдавшей данный запрос, либо, если ресурс занят, ставит задачу в очередь к ресурсу, переводя ее в состояние ожидания (блокируя). Очередь к ресурсу может быть организована несколькими способами, но чаще всего она реализуется с помощью списковой структуры.
После окончания работы с ресурсом задача опять с помощью специального вызова супервизора (посредством соответствующей команды) сообщает операционной системе от отказа от ресурса, либо операционная система забирает ресурс сама, если управление возвращается супервизору после выполнения какой-либо системной функции.
Супервизор, получив управление по этому обращению, освобождает ресурс и проверяет, имеется ли очередь к освободившемуся ресурсу. Если очередь есть, то в зависимости от принятой дисциплины обслуживания и приоритетов заявок он выводит из состояния ожидания задачу, ждущую ресурс, и переводит ее в состояние готовности к выполнению, после чего либо передает управление ей, либо возвращает управление задаче, только что освободившей ресурс.
Термин «дисциплина обслуживания» означает некое правило обслуживания, в том числе и учет каких-либо приоритетов при обслуживании. Например, дисциплина «пришедший последним обслуживается первым» определяет обслуживание в порядке, обратном очередности поступления соответствующих запросов.
При выдаче запроса на ресурс задача может указать, хочет ли она владеть ресурсом монопольно или допускает совместное использование с другими задачами.
Дата добавления: 2015-08-01; просмотров: 716;