The design of the UNIX Operating System 105 страница



 

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

 

Планирование запросов

 

При использовании неблокирующегося системного вызова может оказаться, что нужное устройство уже занято выполнением некоторых операций. В этом случае неблокирующийся вызов может немедленно вернуться, не выполнив запрошенных команд. При организации запроса на совершение операций ввода-вывода с помощью блокирующегося или асинхронного вызова занятость устройства приводит к необхо-димости постановки запроса в очередь к данному устройству. В результате с каждым устройством ока - зывается связан список неудовлетворенных запросов процессов, находящихся в состоянии ожидания, и запросов, выполняющихся в асинхронном режиме. Состояние ожидание расщепляется на набор очере-дей процессов, дожидающихся различных устройств ввода-вывода (или ожидающих изменения состоя - ний различных объектов – семафоров, очередей сообщений, условных переменных в мониторах и т. д. – см. лекцию 6).


Основы операционных систем 141

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

 

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

 

В следующем разделе мы рассмотрим некоторые алгоритмы планирования, связанные с удовлетворением запросов, на примере жесткого диска.

 

Алгоритмы планирования запросов к жесткому диску

 

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

 

Строение жесткого диска и параметры планирования

 

Современный жесткий магнитный диск представляет собой набор круглых пластин, находящихся на од-ной оси и покрытых с одной или двух сторон специальным магнитным слоем (см. рис. 13.2). Около каж-дой рабочей поверхности каждой пластины расположены магнитные головки для чтения и записи ин-формации . Эти головки присоединены к специальному рычагу, который может перемещать весь блок го-ловок над поверхностями пластин как единое целое. Поверхности пластин разделены на концентриче-ские кольца, внутри которых, собственно , и может храниться информация. Набор концентрических колец на всех пластинах для одного положения головок (т. е. все кольца, равноудаленные от оси) образует ци-линдр. Каждое кольцо внутри цилиндра получило название дорожки (по одной или две дорожки на каж-дую пластину). Все дорожки делятся на равное число секторов. Количество дорожек, цилиндров и секто-ров может варьироваться от одного жесткого диска к другому в достаточно широких пределах. Как пра-вило, сектор является минимальным объемом информации, которая может быть прочитана с диска за один раз.


Дата добавления: 2021-01-21; просмотров: 99; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!