Cтраница 4
В функции драйвера устройства входят обработка прерываний устройства, управление очередью запросов к нему, преобразование запросов в команды управления устройством. [46]
Операнды задают порт, в очередь к которому надо поставить сообщение как запрос. Как упоминалось ранее, каждый объект порт содержит фиксированную по длине очередь запросов. [47]
Поскольку эти данные принимаются в реальном времени, программа, обрабатывающая очереди запросов от внешних объектов, должна постоянно находиться в ОП. Эта программа обычно играет роль монитора. [48]
В соответствии с течением времени содержимое таймера непрерывно уменьшается и, наконец, становится отрицательным; в этот момент происходит прерывание от таймера и Супервизор времени-обрабатывает первый Блок запроса к таймеру из очереди. Вслед за этим происходит продвижение очереди, первый запрос вычеркивается из Очереди запросов времени. [49]
После завершения каждого ( кроме последнего) периода обслуживания процесс заново ставится в очередь запросов своего порта диспетчеризации в порядке конечный срок-внутри-при-оритета. Значения конечного срока и приоритета находятся в объекте носитель процесса и копируются в соответствующую очередь запросов, когда процесс заново ставится в свой порт диспетчеризации. [50]
В состав ПВВ входят блоки быстрых каналов, стандартных каналов, блок сопряжения с процессором передачи данных и оптимизатор ( ОПТ) очереди запросов к магнитному барабану. Применение оптимизатора позволяет при больших потоках информации за счет динамического управления порядком обработки очереди запросов к внешней памяти на магнитных барабанах сократить среднее время доступа к ним в 4 - 6 раз. [51]
Упрощенно работа с очередями выглядит следующим образом. Пользователь посылает запрос конкретной службе ( выделенному серверу), который помещает сообщение в очередь запросов к данной службе. Другой сервер извлекает сообщение из очереди запросов, выполняет предписанные действия и формирует ответ на запрос также в виде сообщения, посылая его в очередь ответов. [52]
Однако позже мы вернемся к этому вопросу и объясним, как процесс вставляется в очередь запросов к порту диспетчеризации с помощью выполнения чисто аппаратных действий. [53]
Если для задачи интервал времени должен отсчитываться только при активном ее состоянии, то соответствующий Блок запроса выводится из очереди каждый раз, когда задача теряет управление, и восстанавливается, когда задача становится активной. При выводе из очереди запоминается оставшаяся длина интервала, а при последующих включениях в Очередь запросов времени восстанавливается время завершения интервала. [54]
В рассматриваемом случае каждый процессор может обратиться к некоторому модулю ОП по собственной шине. При наличии, запросов к данному модулю от нескольких процессоров ( конфликтная ситуация) возникает очередь запросов к модулю ОП. Обслуживание запросов осуществляется в порядке их поступления. [55]