В. Столлингс - Операционные системы (1114679), страница 105
Текст из файла (страница 105)
ис. 11.5. Детали организации будут зависеть от ти стройства и его примене ния. На рисунке представлены три наиболее важи ~огические схемы. стественно, 'Я но что конкретная операционная система може ~е соответствовать в точност э и тим схемам но общие положения остаются спр Э ~едливыми в л ом случае, юб чае и большинство операционных систем используют |вод-вывод приблизительно таким образом. Рассмотрим в первую очередь самый простой случай, когда локальное тиферийное устройство осуществляет связь посредство м потока байтов или запи :ей (рис.
11.5,а). В этом случае уровни будут следующими. е Логический ввод-вывод. Модуль логического ввода-вывода обращается устройством как с логическим ресурсом и не обращает внимания на дет Фактического управления устройством. Логический модуль ввода-выво работает посредником между пользовательскими процессами (яредостав им набор высокоуровневых Функций) и устройством. ° Устройство ввода-вывода.
Запрошенные операции и даняые т,буферизированные символы, записи и т.п.) конвертируются в соответствующи е последовательн инструкций ввода-вывода, команды управления каналом и команды контро лера. Для более эффективного использования устройства может быть приме буферизация. и Планирование и контроль. На этом уровне происходит реальная орган ция очередей и планирование операций ввода-вывода, а также управл выполнением операций. Осутцествляется работа с пр р и е ываниями, получ и передача информации о состоянии устройства.
Эт уро р . Это вень программ обеспечения, которое непосредственно взаимодейст у йств ет с контроллером да-вывода, а следовательно, с аппаратным обеспече е у р ением ст ойства. Для устройств связи структура ввода-вывода (рис,б) ис. 11.5 б) выглядит п так же, как и рассмотренная выше. Принципиальное о отличие состоит в том логический модуль ввода-вывода заменяется коммуяи ' ц м яика ионной архитекту которая, в свою очередь, может состоять из некоторого ого количества уровней. На рис.
11.5,в представлена характерная структур у р а и авления вво выводом во внешнее запоминающее устройство, поддер е живающее файловую тему. Здесь имеется три уровня, с которыми мы не стал сталкивались ранее. а) Локальное периФерийное устроястао Рис. 11.б, Модель органигации ввода-вывода 61 КоммУникационнмй порт а1 Файловая система Файловая система. Этот уровень работает с логической структурой Файлов и операциями с ними, такими, как открытие, закрытие, чтение и запись.
Кроме того, управление правами доступа также происходит на этом уровне. ° Управление каталогами. На этом уровне происходит преобразование си Вольных имен Файлов в идентификаторы, указывающие на файл — непо средственно или косвенно, с использованием файлового дескриптор ора или индексной таблицы. Этот уровень также связан с такими пользовател тельскими операциями с каталогами файлов, как их добавление, удаление или ре организация. 'Часть Ь Операции ввода вывода и ф 1 лава 11. Управление вводом-выводом и дисковое планирование 555 Физическая организация ад Как реса виртуальной памяти должны быть преоб азованы в Физические адреса адреса основной памяти с учетом сегментации и стра- Р еские ссылки на Файлы и записи должны быть яичной организации, так и логические сс к е адреса конкретного внешнего запоминающего конвертированы в физические адреса устройства с учетом Физическои струк .
" структуры дорожек и секторов внешнего заломинающего устройства, а этом , Н же уровне происходит общее управление распределением пространства внешней пам яти и б фе в основной памяти, уй'.еро Учитывая значимость Фа лово с Ф й й истемы в этой и следующей главе мы осгановимся на расс мотрении ее Различных компонентов.
д . В анной главе обсуждаются три нижних уровня; два верх -. них уровня рассматриваются в главе 12, "Управление Файлами". Р :Х 1.4. БУФЕРИЗАЦИЯ ОПЫжИй : ВВОДА-ВЫВОДА' ..:- ', Предположим, что пользовательскому проц у и о есс необходимо выполнит тывание блоков данных длино по й 512 байт по одному с магнитной ленты ные будут считаны в область внутри адресного р, р и ост анства пользовател т 1000 о 1511.
Наиболее простой путь процесса с виртуальным адресом от до я этой задачи — выполнение команды ввода- д -выво а (что-то нап ния этои з та когда данные стану Реаб 51ос~(1000, ~аре) ) и ожидание того момента, когд т.е. б ет происходить пными. Ожидание может быть либо активным, т.е. удет й ва либо, что более практично, п рывное тестирование состояния устройства, будет приостановлен до прерывания. собой П и таком подходе имеются две проблемы.
р ре . Пе вая и дставляет Р тановку программы для ожидания выполне ния относительно медленного . В ая проблема состоит в том, что такой подход к вводу-выводу ахо иться в основно свопингу. Виртуальные адреса с 1000 по 1511 должны находи ти при считывании блока (в противном случае ае часть данных будет утеряна). пользовании страничной организации памя ти по к айней мере одна с Р (содержащая целевой адрес) должна быть заб ро локи вана в основной памяти быть вы жена на диск, полны му, несмотря на то что часть задания может б гру и зто необходимо для операци пинг процесса окажется невозможным, даже есл взаимоблокировки. При генерации системы.
Следует также учесть возможность взаи ивается и выгружается на дис пессом команды ввода-вывода он приостанавлива есс ожидает, когда бу чала выполнения операции ввода-вывода. Далее проц а кото ая, в свою очередь, о полнена запрошенная им операция ввода-вывода, Р ять, поскольку место в осно когда процесс будет возвращен в основную память, ств ет. Для того чтобы избежа мяти для считывания данных попросту отсутству . Д влеченная в операцию ввода моблокировки, пользовательская память, вовле должна быть заблокирована в основной памяти р у с аз же после выдачи за б а ставится в очередь и может ввод-вывод, даже если операция ввода-вывода став полнена только через некоторое время.
. Е блок То же рассуждение применимо и к опер ц а ии вывода. Если лок лается из адресного пространства пользова тельского процесса в моду да-вывода, то на время этой передачи проц есс блокируется и не мож выгружен на диск. Час-ъ 5. Операции ввода-вывода Чтобы уменьшить накладные расходы и увеличить эффективность, иног~ удобно выполнить чтение данных заранее, до реального запроса (а запись да, ных — немного позже реального запроса). Эта методика известна как буферна, ция. В данном разделе мы рассмотрим некоторые схемы буферизации„подде~ живаемые операционными системами для повышения производительности.
При рассмотрении различных методов буферизации важно учитывать, чт существуют устройства ввода-вывода двух типов: блочно-ориентированные поточно-ориентированного. Блочно-ориентированные устройства сохраняю информацию блоками, обычно Фиксированного размера, и выполняют перед; чу данных поблочно. Как правило, при этом можно ссылаться на данные с и~ пользованием номера блока. Диски и магнитные ленты относятся к блочнс ориентированным устройствам ввода-вывода. Поточно-ориентированные ус1 ройства выполняют передачу данных в виде неструктурированных потоко байтов. К этой группе устройств относятся терминалы, принтеры, коммуник~ ционные порты, манипулятор "мышь" и другие указывающие устройства, также большинство устройств, не являющихся внешними запоминающим устройствами.
Одинарный буфер Простейшим типом поддержки со стороны операционной системы являетс одинарный буфер (рис. 11.б,б). В тот момент, когда пользовательский процес выполняет запрос ввода-вывода, операционная система назначает ему буфер системной части основной памяти.
Схема одинарного буфера для блочно-ориентированных устройств може быть описана следующим образом. Сначала осуществляется передача входны; данных в системный буфер. Когда она завершается, процесс перемещает блок пользовательское пространство и немедленно производит запрос следующег блока. Такая процедура называется опережающим считыванием, или упреж дающим вводом; она выполняется в предположении, что этот блок со времене~ будет затребован. Для многих типов задач этот метод в большинстве случаев не плохо работает, поскольку доступ к данным обычно осуществляется последова тельно (только при окончании последовательности обработки считывание блок будет излишним).
Такой подход, по сравнению с отсутствием буферизации, обеспечивает по вышение быстродействия. Пользовательский процесс может обрабатывать оди1 блок данных в то время, когда происходит считывание следующего блока. Опе Рационная система при этом может осуществить выгрузку процесса, поскольк', выполняется операция считывания данных в системную память, а не в памят: пользовательского процесса. Однако такая технология усложняет Функциониро ванне операционной системы, которая должна следить за назначением систем ных буферов пользовательским процессам.
Влияет буферизация и на схему под качки: когда операция ввода-вывода работает с тем же диском, который нсполь зуется и для свопинга, теряется смысл в организации очереди операций записи Выгрузка процесса и освобождение основной памяти не начнется до тех пор, по 'а не завершится запрошенная операция ввода-вывода — а тогда выгрузка про цесса больше не будет иметь смысла. Глава 11. Управление вводом-выводом и дисковое планирование 55~ Операционная системз Ввод Устройство ввода-вывода Олерационнзя системз Устройство ввода-вывода б) Одинарнаябуферизация Операционная системз Уфера в пользовательскУю память.