рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Ввод-вывод

Ввод-вывод - раздел Информатика, Операционная система как менеджер ресурсов. 17 Одной Из Важнейших Функций Операционной Системы Является Управление Всеми Уст...

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

Устройства ввода-вывода делятся на два типа:

  1. Блок-ориентированные устройства (block-oriented). Это устройства прямого доступа, которые хранят информацию в блоках фиксированного размера, каждый из которых имеет свой адрес. Адресуемость блоков приводит к тому, что для дисков, являющихся устройствами прямого доступа, появляется возможность кэширования данных в оперативной памяти. Это обстоятельство значительно влияет на общую организацию ввода-вывода для блок-ориентированных драйверов.
  2. Байт-ориентированные устройства (character-oriented). Устройства, обмен информацией с которыми производится побайтно. К таким устройствам относятся: терминалы, некоторые принтеры, сетевые адаптеры. При таком взаимодействии информация не адресуется и не позволяется производить операцию поиска. Работа с устройством происходит следующим образом: устройство посылает системе последовательности байт, либо, при отправке данных устройству, данный передаются побайтно.
Замечание 3.2. Некоторые внешние устройства не относятся ни к одному из указанных типов, которые, не адресуемы, но и не порождают потока байтов. Примером может служить системный таймер. Это устройство только выдает сигнал прерывания в некоторые моменты времени.

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

Операционная система обычно имеет дело не с устройством, а с контроллером и выполняет ввод-вывод, записывая команды в регистры контроллера.

Например, контроллер гибкого диска принимает 15 команд, таких как READ, WRITE, SEEK, FORMAT и т.д. Когда команда принята, процессор оставляет контроллер и занимается другой работой. При завершении команды контроллер организует прерывание для того, чтобы передать управление процессором операционной системе, которая должна проверить результаты операции. Процессор получает результаты и статус устройства, читая информацию из регистров контроллера.

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

  1. Первичный обработчик прерываний

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

  1. Драйверы устройств

Драйвером устройства называется программа, которая управляет данным устройством и содержит весь специфический для данного устрой­ства код.

Драйвер обычно пишется производителем устройства и поставляется вместе с ним.

Только драйвер устройства знает о его конкретных особенностях. Драйверы принимают от вышележащего уровня некоторые универсальные для всех устройств ввода-вывода команды и переводят их в последова­тельность команд, которые может выполнить контроллер данного устрой­ства.

Типичным запросом, который может получить драйвер, является чтение п бло­ков данных. Драйвер жесткого диска должен, например, преобразовать номера блоков в номера цилиндров, головок, секторов, проверить, работает ли мотор, находится ли го­ловка над нужным цилиндром и т.д.

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

  1. Независимый от устройств слой операционной системы.

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

Типичными функциями данного слоя являются:

· обеспечение общего интерфейса к драйверам устройств;

Одним из аспектов единообразного интерфейса является именование устройств ввода-вывода. Независимо от устройств программное обеспечение занимается отображением символьных имен устройств на соответствующие драйверы.

С именованием устройств тесно связан вопрос защиты устройств от работы с ними тех пользователей, у которых нет на это соответствующих полномочий.

· обеспечение независимого размера блока;

Верхним слоям программного обеспечения неудобно работать с блоками разной величины, поэтому данный слой обеспечивает единый размер блока, например за счет объединения нескольких различных блоков в единый логический блок.

· уведомление об ошибках при работе с устройством.

  1. Пользовательский слой программного обеспечения.

В этом слое присутствуют программные модули (или даже целостные операционные среды), которые обеспечивают высокоуровневое взаимодействие с соответствующим устройством.

Более детально остановимся на понятии драйвер. Первоначально термин «драйвер» применялся в достаточно узком смысле; под драйвером понимается программный модуль, который:

· входит в состав ядра ОС, работая в привилегированном режиме;

· непосредственно управляет внешним устройством, взаимодействуя с его контроллером с помощью команд ввода-вывода компьютера;

· обрабатывает прерывания от контроллера устройства;

· предоставляет прикладному программисту удобный логический интерфейс работы с устройством, абстрагированный от низкоуровневых деталей управления устройством и организации его данных;

· взаимодействует с другими модулями ядра ОС с помощью строго оговоренного интерфейса, описывающего формат передаваемых данных, структуру буферов, способы включения драйвера в состав ОС, способы вызова драйвера, набор общих процедур подсистемы ввода-вывода, которыми драйвер может пользоваться и т. п.

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

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

Традиционные драйверы, которые стали называть аппаратными, низкоуровневыми, или драйверами устройств, освобождаются от высокоуровневых функций и занимаются только низкоуровневыми операциями. Эти низкоуровневые операции составляют фундамент, на котором можно построить тот или иной набор операций в драйверах более высоких уровней.

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

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

Высокоуровневые драйверы оформляются по тем же правилам и придерживаются тех же внутренних интерфейсов, что и аппаратные драйверы. Как правило, высокоуровневые драйверы не вызываются по прерываниям, так как взаимодействуют с устройством через посредничество аппаратных драйверов.

В модулях подсистемы ввода-вывода кроме драйверов могут присутствовать и дру­гие модули, например дисковый кэш. Достаточно специфичные функции кэша делают нецелесообразным оформление его в виде драйвера, взаимодействующего с другими модулями ОС только с помощью услуг менеджера ввода-вывода. Другим примером модуля, который чаще всего не оформляется в виде драйвера, является диспетчер окон графического интерфейса. Иногда этот модуль вообще выносится из ядра ОС и реализуется в виде пользовательского интерфейса. Таким образом был реализован диспетчер окон в Windows NT 3.5 и 3.51, но этот микроядерный подход заметно замедляет графические операции, поэтому в Windows 4.0 диспетчер окон и высокоуровневые графические драйверы, а также графическая библиотека GDI были перенесены в пространство ядра.

Аппаратные драйверы после запуска операции ввода-вывода должны своевременно реагировать на завершение контроллером заданного действия путем взаимодействия с системой прерывания. Драйверы более высоких уровней вызываются не по прерываниям, а по инициативе аппаратных драйверов или драйверов вышележащего уровня. Не все процедуры аппаратного драйвера нужно вызывать по прерываниям, поэтому драйвер обычно имеет определенную структуру, в которой выделяется секция обработки прерываний (Interrupt Service Routine, ISR), которая и вызывается от соответствующего устройства диспетчером прерываний.

В унификацию драйверов большой вклад внесла ОС UNIX. Упомянутое ранее деление устройств на блок-ориентированные и байт-ориентированные было впервые введено именно в UNIX. Это более общее деление, чем деление на вертикальные подсистемы.

В свое время ОС UNIX сделала очень важный шаг по унификации операций и структуризации программного обеспечения ввода-вывода. В ОС UNIX все устройства рассматриваются как виртуальные (специальные) файлы, что дает возможность использовать общий набор базовых операций ввода-вывода для любых устройств независимо от их специфики. Подобная идея реализована позже в MS DOS, где последовательные устройства — монитор, принтер и клавиатура считаются файлами со специальными именами: con, prn, con.

– Конец работы –

Эта тема принадлежит разделу:

Операционная система как менеджер ресурсов. 17

Оглавление... Понятие операционной системы... Назначение операционной системы...

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Ввод-вывод

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

Понятие операционной системы
Современная компьютерная система состоит из одного или нескольких процессоров, оперативной памяти, дисков, клавиатуры, монитора, принтеров, сетевого интерфейса и других устройств, то есть является

Назначение операционной системы
Развитие операционных систем непосредственно связано с развитием вычислительной техники. С увеличением производительности компьютерных систем постепенно менялся, расширялся и качественно усложнялся

Функции операционной системы
Современные операционные системы включают в себя сотни и даже тысячи модулей, ориентированных на решения различных задач. Часто эти модули группируются по назначению в подсистемы. Каждая из

Структура и состав ОС
В состав ОС входят исполняемые и объектные модули стандартных для данной ОС форматов, программные модули специального формата (например, загрузчики ОС, драйверы ввода-вывода), конфигурационные файл

Множественные прикладные среды и совместимость
Архитектурные особенности ОС непосредственно касаются программистов. С другой стороны, концепция множественных прикладных средств непосредственно сопряжены с нуждами конечного пользователя системы:

Операционная система как виртуальная машина
Виртуальная машина — концептуальный подход в программировании, позволяющий отделить программное обеспечение

Операционная система как менеджер ресурсов
Концепция, рассматривающая операционную систему прежде всего как удобный интерфейс пользователя, — это взгляд сверху вниз. Альтернативный взгляд, снизу вверх, дает представление об операционной сис

Процессы и потоки
Ключевое понятие операционной системы — процесс. Содержательно процесс — это программа в момент её выполнения. Отличие процесса от программы, записанной, но не исполняющейся в данный момент,

Взаимоблокировка
В компьютерных системах существует большое количество ресурсов, каждый из которых в конкретный момент времени может использоваться только одним процессом. В качестве таких примеров можно привести п

Управление памятью
О памяти компьютерной системы Память — важнейший ресурс вычислительной системы, требующий эффективного управления. Несмотря на то, что в наши дни память среднего домашнего компьютер

Файловые системы
Любое компьютерное приложение получает, хранит и выводит данные. Во время работы процесс может хранить ограниченное количество данных в собственном адресном пространстве, поскольку его емкость огра

Безопасность операционных систем
Термины «безопасность» и «защита» иногда смешиваются. Тем не менее, часто бывает полезно провести границу между общими проблемами, связанными с гарантированием того, что файлы не читаются и не моди

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

Мультимедийные операционные системы
В последнее время все более широкое распространение получают такие компьютерные приложения, как цифровые фильмы, видеоклипы и музыка. Аудио-видеофайлы могут храниться на диске и воспроизводиться по

Глоссарий
Абстракция аппаратная – концепция взаимодействия программ и устройств в рамках ОС, подразумевающая работу с

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги