русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Основные концепции организации ввода-вывода в операционных системах


Дата добавления: 2014-11-28; просмотров: 4424; Нарушение авторских прав


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

Поэтому самым главным является следующий принцип: любые операции по уп­равлению вводом-выводом объявляются привилегированными и могут выполняться только кодом самой операционной системы. Для обеспечения этого принципа в большинстве процессоров даже вводятся режимы пользователя и супервизора. Последний еще называют привилегированным режимом, или режимом ядра. Как правило, в режиме супервизора выполнение команд ввода-вывода разрешено, а в пользовательском режиме — запрещено. Обращение к командам ввода-вывода в пользовательском режиме вызывает исключение и управление через механизм прерываний передается коду операционной системы. Хотя возможны и более слож­ные схемы, в которых в ряде случаев пользовательским программам может быть разрешено непосредственное выполнение команд ввода-вывода.



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

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


132_____________ Глава 5. Управление вводом-выводом в операционных системах

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

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

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

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

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

Итак, управление вводом-выводом осуществляется компонентом операционной системы, который часто называют супервизором ввода-вывода. Перечислим основ­ные задачи, возлагаемые на супервизор.

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


Основные концепции организации ввода-вывода в операционных системах 133

ются дальше. В противном случае пользователю (задаче) выдается соответству­ющее диагностическое сообщение о недействительности (некорректности) за­проса.

2. Супервизор ввода-вывода получает запросы на ввод-вывод от супервизора за­
дач или от программных модулей самой операционной системы.

3. Супервизор ввода-вывода вызывает соответствующие распределители каналов
и контроллеров, планирует ввод-вывод (определяет очередность предоставле­
ния устройств ввода-вывода задачам, затребовавшим эти устройства). Запрос
на ввод-вывод либо тут же выполняется, либо ставится в очередь на выполне­
ние.

4. Супервизор ввода-вывода инициирует операции ввода-вывода (передает уп­
равление соответствующим драйверам) и в случае управления вводом-выво­
дом с использованием прерываний предоставляет процессор диспетчеру задач
с тем, чтобы передать его первой задаче, стоящей в очереди на выполнение.

5. При получении сигналов прерываний от устройств ввода-вывода супервизор
идентифицирует эти сигналы (см. раздел «Прерывания» в главе 1) и передает
управление соответствующим программам обработки прерываний.

6. Супервизор ввода-вывода осуществляет передачу сообщений об ошибках, если
таковые происходят в процессе управления операциями ввода-вывода.

7. Супервизор ввода-вывода посылает сообщения о завершении операции ввода-
вывода запросившей эту операцию задаче и снимает ее с состояния ожидания
ввода-вывода, если задача ожидала завершения операции.

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

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

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


134 Глава 5. Управление вводом-выводом в операционных системах

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



<== предыдущая лекция | следующая лекция ==>
В операционных системах | Режимы управления вводом-выводом


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.046 сек.