Скачать презентацию ОПЕРАЦИОННЫЕ СИСТЕМЫ И СРЕДЫ Тема 1 5 Преподаватель Скачать презентацию ОПЕРАЦИОННЫЕ СИСТЕМЫ И СРЕДЫ Тема 1 5 Преподаватель

Лекция ОС тема 1.5.pptx

  • Количество слайдов: 26

ОПЕРАЦИОННЫЕ СИСТЕМЫ И СРЕДЫ Тема 1. 5. Преподаватель: Шершова Л. Н. ОПЕРАЦИОННЫЕ СИСТЕМЫ И СРЕДЫ Тема 1. 5. Преподаватель: Шершова Л. Н.

Тема 1. 5. Устройства ввода – вывода. Программное обеспечение ввода – вывода Занятие 7. Тема 1. 5. Устройства ввода – вывода. Программное обеспечение ввода – вывода Занятие 7. 1. 2. 3. 4. Устройства ввода – вывода. Основные концепции организации ввода – вывода в ОС. Реализации доступа к управляющим регистрам и буферам. Прямой доступ к памяти. Контроллеры устройств. Занятие 8. 1. Задачи программного обеспечения ввода-вывода. 2. Программный ввод-вывод. Ввод-вывод с использованием DMA. Программные уровни и функции ввода-вывода. 3. Драйвера устройств.

Тема 1. 5. Занятие 7, 8. O Одной из главных задач ОС является обеспечение Тема 1. 5. Занятие 7, 8. O Одной из главных задач ОС является обеспечение обмена данными между приложениями и периферийными устройствами компьютера. Собственно ради выполнения этой задачи и были разработаны первые системные программы, послужившие прототипами операционных систем. В современной ОС функции обмена данными с периферийными устройствами выполняет подсистема ввода-вывода. Клиентами этой подсистемы являются не только пользователи и приложения, но и некоторые компоненты самой ОС, которым требуется получение системных данных или их вывод, например подсистеме управления процессами при смене активного процесса необходимо записать на диск контекст приостанавливаемого процесса и считать с диска контекст активизируемого процесса. O Основными компонентами подсистемы ввода-вывода являются драйверы, управляющие внешними устройствами, и файловая система.

Тема 1. 5. Занятие 7, 8. O Ввод/вывод считается одной из самых сложных областей Тема 1. 5. Занятие 7, 8. O Ввод/вывод считается одной из самых сложных областей проектирования операционных систем, в которой сложно применить общий подход из-за изобилия частных методов. Сложность возникает из-за огромного числа устройств ввода/вывода разнообразной природы, которые должна поддерживать ОС. O При этом перед создателями ОС встает очень непростая задача — не только обеспечить эффективное управление устройствами ввода/вывода, но и создать удобный и эффективный виртуальный интерфейс устройств ввода/вывода, позволяющий прикладным программистам просто считывать или сохранять данные, не обращая внимание на специфику устройств и проблемы распределения устройств между выполняющимися задачами. O Система ввода/вывода, способная объединить в одной модели широкий набор устройств, должна быть универсальной. Она должна учитывать потребности существующих устройств, от простой мыши до клавиатур, принтеров, графических дисплеев, дисковых накопителей, компакт-дисков и даже сетей. С другой стороны, необходимо обеспечить доступ к устройствам ввода/вывода для множества параллельно выполняющихся задач, причем так, чтобы они как можно меньше мешали другу.

Тема 1. 5. Занятие 7, 8. O O Самым главным является следующий принцип: любые Тема 1. 5. Занятие 7, 8. O O Самым главным является следующий принцип: любые операции по управлению вводом/выводом объявляются привилегированными и могут выполняться только кодом самой ОС. Для обеспечения этого принципа в большинстве процессоров вводятся режимы пользователя и супервизора. Как правило, в режиме супервизора (в привилегированном режиме) выполнение команд ввода/вывода разрешено, а в пользовательском режиме — запрещено. Можно назвать три основные причины, по которым нельзя разрешать каждой отдельной пользовательской программе обращаться к внешним устройствам непосредственно:

Тема 1. 5. Занятие 7, 8. Необходимость разрешать возможные конфликты доступа к устройствам ввода/вывода. Тема 1. 5. Занятие 7, 8. Необходимость разрешать возможные конфликты доступа к устройствам ввода/вывода. Например, две параллельно выполняющиеся программы пытаются вывести на печать результаты своей работы. Если не предусмотреть внешнее управление устройством печати, то в результате мы можем получить абсолютно нечитаемый текст, так каждая программа будет время от времени выводить свои данные, которые будут перемежаться данными другой программы. Другой пример: ситуация, когда одной программе необходимо прочитать данные с некоторого сектора магнитного диска, а другой — записать результаты в другой сектор того же накопителя. Если операции ввода/вывода не будут отслеживаться каким-то третьим (внешним) процессом-арбитром, то после позиционирования магнитной головки для первого запроса может тут же появиться команда позиционирования головки для второй задачи, и обе операции ввода/вывода не смогут быть выполнены корректно. O Желание увеличить эффективность использования этих ресурсов. Например, у накопителя на магнитных дисках время подвода головки чтения/записи к необходимой дорожке и обращение к определенному сектору может значительно (до тысячи раз) превышать время пересылки данных. В результате, если задачи по очереди обращаются к цилиндрам, далеко отстоящим друг от друга, то полезная работа, выполняемая накопителем, может быть существенно снижена. O Ошибки в программах ввода/вывода могут привести к краху всех вычислительных процессов, ибо часть операций ввода/вывода осуществляется для самой операционной системы. В ряде ОС системный ввод/вывод имеет существенно более высокие привилегии, чем ввод/вывод задач пользователя. Поэтому системный код, управляющий операциями ввода/вывода, очень тщательно отлаживается и оптимизируется для повышения надежности вычислений и эффективности использования оборудования. Итак, управление вводом/выводом осуществляется операционной системой, компонентом, который чаще всего называют супервизором ввода/вывода. O

Тема 1. 5. Занятие 7, 8. O O O В перечень основных задач, возлагаемых Тема 1. 5. Занятие 7, 8. O O O В перечень основных задач, возлагаемых на супервизор, входят следующие: супервизор ввода/вывода получает запросы на ввод/вывод от прикладных задач и от программных модулей самой операционной системы. Эти запросы проверяются на корректность, и если запрос выполнен по спецификациям и не содержит ошибок, он обрабатывается дальше, в противном случае пользователю (задаче) выдается соответствующее диагностическое сообщение о недействительности (некорректности) запроса; супервизор ввода/вывода вызывает соответствующие распределители каналов и контроллеров, планирует ввод/вывод (определяет очередность предоставления устройств ввода/вывода задачам, затребовавшим их). Запрос на ввод/ вывод либо тут же выполняется, либо ставится в очередь на выполнение; супервизор ввода/вывода инициирует операции ввода/вывода (передает управление соответствующим драйверам) и в случае управления вводом/выводом с использованием прерываний предоставляет процессор диспетчеру задач с тем, чтобы передать его первой задаче, стоящей в очереди на выполнение; при получении сигналов прерываний от устройств ввода/вывода супервизор идентифицирует их и передает управление соответствующей программе обработки прерывания (как правило, на секцию продолжения драйвера); супервизор ввода/вывода осуществляет передачу сообщений об ошибках, если таковые происходят в процессе управления операциями ввода/вывода; супервизор ввода/вывода посылает сообщения о завершении операции ввода/вывода запросившему эту операцию процессу и снимает его с состояния ожидания ввода/вывода, если процесс ожидал завершения операции.

Тема 1. 5. Занятие 7, 8. O O O В случае если устройство ввода/вывода Тема 1. 5. Занятие 7, 8. O O O В случае если устройство ввода/вывода является инициативным*, управление со стороны супервизора ввода/вывода будет заключаться в активизации соответствующего вычислительного процесса (перевод его в состояние готовности к выполнению). Инициативным называют такое устройство (обычно это датчики, внешнее устройство, а не устройство ввода/вывода), по сигналу прерывания от которого запускается соответствующая ему программа. Такая программа, с одной стороны, не является драйвером, и управлять операциями обмена данными нет необходимости. Но, с другой стороны, запуск такой программы осуществляется именно по событиям, связанным с генерацией устройством ввода/вывода соответствующего сигнала. Разница между драйверами, работающими по прерываниям, и инициативными программами заключается в статусе этих программных модулей. Драйвер является компонентом операционной системы и часто выполняется не как вычислительный процесс, а как системный объект, а инициативная программа является обычным вычислительным процессом, только его запуск осуществляется по инициативе внешнего устройства. Таким образом, прикладные программы (а в общем случае — все обрабатывающие программы) не могут непосредственно связываться с устройствами ввода/ вывода независимо от использования устройств (монопольно или совместно). Установив соответствующие значения параметров в запросе на ввод/вывод, определяющих требуемую операцию и количество потребляемых ресурсов, они могут передать управление супервизору ввода/вывода, который и запускает необходимые логические и физические операции.

Тема 1. 5. Занятие 7, 8. O O Задачи ОС по управлению внешними устройствами Тема 1. 5. Занятие 7, 8. O O Задачи ОС по управлению внешними устройствами Подсистема ввода-вывода (Input-Output. Subsystem) мультипрограммной ОС при обмене данными с внешними устройствами компьютера должна решать ряд общих задач, из которых наиболее важными являются следующие: 1. организация параллельной работы устройств ввода-вывода и процессора; 2. согласование скоростей обмена и кэширование данных; 3. разделение устройств и данных между процессами; 4. обеспечение удобного логического интерфейса между устройствами и остальной частью системы; 5. поддержка широкого спектра драйверов с возможностью простого включения в систему нового драйвера; 6. динамическая загрузка и выгрузка драйверов; 7. поддержка синхронных и асинхронных операций ввода/вывода. Организация параллельной работы устройств ввода-вывода и процессора Каждое устройство ввода-вывода вычислительной системы — диск, принтер, терминал и т. п. — снабжено специализированным блоком управления, называемым контроллером. Контроллер взаимодействует с драйвером — системным программным модулем, предназначенным для управления данным устройством (рисунок). Контроллер периодически принимает от драйвера выводимую на устройство информацию, а также команды управления, которые говорят о том, что с этой информацией нужно сделать (например, вывести в виде текста в определенную область терми налаили записать в определенный сектор диска). Под управлением контроллера устройство может некоторое время выполнять свои операции автономно, не требуя внимания со стороны центрального процессора.

Тема 1. 5. Занятие 7, 8. ПО драйвер Контроллер Внешнее устройство Контроллер принтера (слева) Тема 1. 5. Занятие 7, 8. ПО драйвер Контроллер Внешнее устройство Контроллер принтера (слева) и монитора (справа) Взаимодействие программного обеспечения с внешним устройством осуществляется через контроллер

Структура системы ввода-вывода: Структура системы ввода-вывода:

Тема 1. 5. Занятие 7, 8. O O ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ Для каждого внешнего устройства Тема 1. 5. Занятие 7, 8. O O ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ Для каждого внешнего устройства в компьютере имеется электронная схема (контроллер или адаптер), которая им управляет. Некоторые контроллеры (например, контроллер дисков) могут управлять сразу несколькими устройствами. Все контроллеры и адаптеры взаимодействуют с процессором и оперативной памятью через системную магистраль передачи данных, называемой шиной. Шина - системная плата, обеспечивающая ввод-вывод информации. Характеристикой шины является скорость обмена. Основные типы шин (расположены в порядке улучшения характеристик): ISA, EISA, VESA, PCI, AGP. Разъёмы"слоты" стандарта PCI. Родился он около 10 лет назад и сегодня является основным стандартом слотов для подключения дополнительных устройств. Разъёмы PCI - обычно самые короткие, белого цвета, разделенные своеобразной "перемычкой" на две неравные части. Ранее в слот PCI устанавливалась и видео карта, теперь для этой цели служит разъем AGP (Advanced Graphic Port). Это специальный, более быстрый с точки зрения пропускной способности слот. Остальные слоты в новые компьютеры не устанавливаются. Для упрощения подключения устройств электронные схемы состоят из нескольких модулей - электронных плат. На основной плате компьютера - системной (материнской) - располагаются процессор, сопроцессор, оперативная память и шина. Схемы, управляющие внешними устройствами компьютера (контроллеры или адаптеры), находятся на отдельных платах вставляющихся в унифицированные разъёмы (слоты) на материнской плате. "Гнездо" для установки процессора: для каждого форм-фактора процессора существует свой тип материнской платы, как правило, несовместимый с другими процессорами. Так в гнездо для процессора Pentium III нельзя установить процессор AMD K 7. И наоборот. Итак, сегодня на рынке существует три материнских платы, для установки трёх разных классов процессоров: a-платы с разъёмом Slot 1 предназначены для процессоров фирмы Intel. Тип разъёма - слот (длинное щелевидное гнездо). b-платы с разъёмом Socket-370 предназначены для установки новых процессоров Celeron фирмы Intel (частота от 400 МГц). Тип разъёма квадратное гнездо. c-платы с разъёмом Super Socket 7 (Socket A) предназначены для "альтернативных" процессоров фирм AMD, Cyrix, IBM и других. Тип разъёма - квадратное гнездо. Одним из контроллеров, которые присутствуют во всех компьютерах, является контроллер портов ввода-вывода. Типы портов: А-параллельные (LPT 1 -LPT 4), к ним обычно присоединяют принтеры и сканеры; b-последовательные асинхронные порты (COM 1 -COM 4), к ним подсоединяются мышь, модем и т. д. ; c-игровой порт - для подключения джойстика; d-порт USB (USB 2) - недавняя разработка - порт с наивысшей скоростью ввода-вывода, к нему подключаются новые модели принтеров, сканеров, модемов, мониторов и т. д. Одним из его достоинств является возможность подключения целой цепочки устройств. Например, через один порт USB подключен принтер, через принтер подключен сканер и т. д. Некоторые устройства могут подключать и к параллельным, и к последовательным портам, и к порту USB (USB 2). Самый быстрый обмен осуществляется через порт USB 2, затем USB, параллельные же порты выполняют ввод-вывод с большей скоростью, чем последовательные (за счет использования большего числа проводов в кабеле).

Тема 1. 5. Занятие 7, 8. O O Процессы, происходящие в контроллерах, протекают в Тема 1. 5. Занятие 7, 8. O O Процессы, происходящие в контроллерах, протекают в периоды между выдачами команд независимо от ОС. От подсистемы ввода-вывода требуется спланировать в реальном масштабе времени (в котором работают внешние устройства) запуск и приостановку большого количества разнообразных драйверов, обеспечив приемлемое время реакции каждого драйвера на независимые события контроллера. С другой стороны, необходимо минимизировать загрузку процессора задачами ввода-вывода, оставив как можно больше процессорного времени на выполнение пользовательских процессов. Данная задача является классической задачей планирования систем реального времени и обычно решается на основе многоуровневой приоритетной схемы обслуживания по прерываниям. Для обеспечения приемлемого уровня реакции все драйверы (или части драйверов) распределяются по нескольким приоритетным уровням в соответствии с требованиями ко времени реакции и временем использования процессора. Для реализации приоритетной схемы обычно задействуется общий диспетчер прерываний ОС. Графический контроллер отображает процессы происходящие в данный момент на вашем компьютере

Тема 1. 5. Занятие 7, 8. Согласование скоростей обмена и кэширование данных O O Тема 1. 5. Занятие 7, 8. Согласование скоростей обмена и кэширование данных O O При обмене данными всегда возникает задача согласования скорости. Например, если один пользовательский процесс вырабатывает некоторые данные и передает их другому пользовательскому процессу через оперативную память, то в общем случае скорости генерации данных и их чтения не совпадают. Согласование скорости обычно достигается за счет буферизации данных в оперативной памяти и синхронизации доступа процессов к буферу. В подсистеме ввода-вывода для согласования скоростей обмена также широко используется буферизация данных в оперативной памяти. В тех специализированных операционных системах, в которых обеспечение высокой скорости ввода-вывода является первоочередной задачей (управление в реальном времени, услуги сетевой файловой службы и т. п. ), большая часть оперативной памяти отводится не под коды прикладных программ, а под буферизацию данных. Однако буферизация только на основе оперативной памяти в подсистеме ввода-вывода оказывается недостаточной – разница между скоростью обмена с оперативной памятью, куда процессы помещают данные для обработки, и скоростью работы внешнего устройства часто становится слишком значительной, чтобы в качестве временного буфера можно было бы использовать оперативную память — ее объема может просто не хватить. Для таких случаев необходимо предусмотреть особые меры, и часто в качестве буфера используется дисковый файл, называемый также спул-файлом (от spool – шпулька, тоже буфер, только для ниток). Типичный пример применения спулинга дает организация вывода данных на принтер. Для печатаемых документов объем в несколько десятков мегабайт – не редкость, поэтому для их временного хранения (а печать каждого документа занимает от нескольких минут до десятков минут) объема оперативной памяти явно недостаточно.

Тема 1. 5. Занятие 7, 8. Согласование скоростей обмена и кэширование данных O Другим Тема 1. 5. Занятие 7, 8. Согласование скоростей обмена и кэширование данных O Другим решением этой проблемы является использование большой буферной памяти в контроллерах внешних устройств. Такой подход особенно полезен в тех случаях, когда помещение данных на диск слишком замедляет обмен (или когда данные выводятся на сам диск). Например, в контроллерах графических дисплеев применяется буферная память, соизмеримая по объему с оперативной, и это существенно ускоряет вывод графики на экран. Буферизация данных позволяет не только согласовать скорости работы процессора и внешнего устройства, но и решить другую задачу — сократить количество реальных операций ввода-вывода за счет кэширования данных. Дисковый кэш является непременным атрибутом подсистем ввода-вывода практически всех операционных систем, значительно сокращая время доступа к хранимым данным.

Тема 1. 5. Занятие 7, 8. Разделение устройств и данных между процессами O O Тема 1. 5. Занятие 7, 8. Разделение устройств и данных между процессами O O Устройства ввода-вывода могут предоставляться процессам как в монопольное, так и в совместное (разделяемое) использование. При этом ОС должна обеспечивать контроль доступа теми же способами, что и при доступе процессов к другим ресурсам вычислительной системы — путем проверки прав пользователя или группы пользователей, от имени которых действует процесс, на выполнение той или иной операции над устройством. Например, определенной группе пользователей последовательный порт разрешено захватывать в монопольное владение, а другим пользователям это запрещено. Операционная система может контролировать доступ не только к устройству в целом, но и к отдельным порциям данных, хранимых или отображаемых этим устройством. Диск является типичным примером устройства, для которого важно контролировать доступ не к устройству в целом, а к отдельным каталогам и файлам. При выводе информации на графический дисплей отдельные окна экрана также представляют собой ресурсы, к которым необходимо обеспечить тот или иной вид доступа для протекающих в системе процессов. При этом для каждой порции данных или части устройства могут быть заданы свои права доступа, не связанные прямо с правами доступа к устройству в целом. Так, в файловой системе обычно для каждого каталога и файла можно задать индивидуальные права доступа. Очевидно, что для организации совместного доступа к частям устройства или частям данных, хранящихся на нем, непременным условием является задание режима совместного использования устройства в целом.

Тема 1. 5. Занятие 7, 8. O O Одно и то же устройство в Тема 1. 5. Занятие 7, 8. O O Одно и то же устройство в разные периоды времени может использоваться как в разделяемом, так и в монопольном режимах. Тем не менее существуют устройства, для которых обычно характерен один из этих режимов, например последовательные порты и алфавитно-цифровые терминалы чаще используются в монопольном режиме, а диски — в режиме совместного доступа. Операционная система должна предоставлять эти устройства в обоих режимах, осуществляя отслеживание процедур захвата и освобождения монопольно используемых устройств, а в случае совместного использования оптимизируя последовательность операций ввода-вывода для различных процессов в целях повышения общей производительности, если это возможно. Например, при обмене данными нескольких процессов с диском можно так упорядочить последовательность операций, что непроизводительные затраты времени на перемещение головок существенно уменьшаются (при этом для отдельных процессов возможно некоторое замедление операции ввода-вывода). При разделении устройства между процессами может возникнуть необходимость в разграничении порции данных двух процессов друг от друга. Обычно такая потребность возникает при совместном использовании так называемых последовательных устройств, данные в которых в отличие от устройств прямого доступа не адресуются. Типичным представителем такого рода устройства является принтер, который не выделяется в монопольное владение процессам, и в то же время каждый документ должен быть напечатан в виде последовательного набора страниц. Для подобных устройств организуется очередь заданий на вывод, при этом каждое задание представляет собой порцию данных, которую нельзя разрывать, например документ для печати. Для хранения очереди заданий используется спул-файл, который одновременно согласует скорости работы принтера и оперативной памяти и позволяет организовать разбиение данных на логические порции. Так как спул-файл находится на разделяемом устройстве прямого доступа, то процессы могут одновременно выполнять вывод на принтер, помещая данные в свой раздел спул-файла.

Тема 1. 5. Занятие 7, 8. Обеспечение удобного логического интерфейса между устройствами и остальной Тема 1. 5. Занятие 7, 8. Обеспечение удобного логического интерфейса между устройствами и остальной частью системы O O Разнообразие устройств ввода-вывода делает особенно актуальной функцию ОС по созданию экранирующего логического интерфейса между периферийными устройствами и приложениями. Практически все современные операционные системы поддерживают в качестве основы такого интерфейса файловую модель периферийных устройств, когда любое устройство выглядит для прикладного программиста последовательным набором байт, с которым можно работать с помощью унифицированных системных вызовов (например, read и write), задавая имя файла-устройства и смещение от начала последовательности байт. Для поддержания такого интерфейса подсистема ввода-вывода должна проделать немалую работу, учитывая разницу в организации операций обмена данными, например, с жестким диском и графическим терминалом. Привлекательность модели файла-устройства состоит в ее простоте и унифицированности для устройств любого типа, однако во многих случаях для программирования операций ввода-вывода некоторого устройства она является слишком бедной. Поэтому данная модель часто используется только в качестве базиса, над которым подсистема ввода-вывода строит более содержательную модель устройств конкретного типа. Подсистема ввода-вывода предоставляет, как правило, спе цифический интерфейс для вывода графической информации на дисплей или принтер, для программирования операций сетевого обмена и т. п. При этом разработчик специфического интерфейса всегда может опираться на имеющийся базовый интерфейс.

Тема 1. 5. Занятие 7, 8. O O Поддержка широкого спектра драйверов и простота Тема 1. 5. Занятие 7, 8. O O Поддержка широкого спектра драйверов и простота включения нового драйвера в систему Достоинством подсистемы ввода-вывода любой универсальной ОС является наличие разнообразного набора драйверов для наиболее популярных периферийных устройств. Чтобы операционная система не испытывала недостатка в драйверах, необходимо наличие четкого, удобного и открытого интерфейса между драйверами и другими компонентами ОС. Такой интерфейс нужен для того, чтобы драйверы писали не только непосредственные разработчики данной операционной системы, но и большая армия программистов по всему миру, в первую очередь — тех предприятий, которые выпускают внешние устройства для компьютеров. Открытость интерфейса драйверов, то есть доступность его описания для независимых разработчиков программного обеспечения (а возможно, также и разработка его на основе согласительных процедур между ведущими коллективами разработчиков), является необходимым условием успешного развития операционной системы. Драйвер взаимодействует, с одной стороны, с модулями ядра ОС (модулями подсистемы ввода-вывода, модулями системных вызовов, модулями подсистем управления процессами и памятью и т. д. ), а с другой стороны – с контроллерами внешних устройств. Поэтому существуют два типа интерфейсов: интерфейс «драйвер-ядро» (Driver Kernel Interface, DKI) и интерфейс «драйвер-устройство» (Driver Device Interface, DDI). Интерфейс «драйвер-ядро» должен быть стандартизован в любом случае, а интерфейс «драйвер-устройство» имеет смысл стандартизировать тогда, когда подсистема ввода-вывода не разрешает драйверу непосредственно взаимодействовать с аппаратурой контроллера, а выполняет эти операции самостоятельно. Обычно подсистема ввода-вывода поддерживает большое количество системных функций, которые драйвер может вызывать для выполнения некоторых типовых действий. Примерами могут служить операции обмена с регистрами контроллера, ведение буферов для промежуточного хранения данных ввода-вывода, синхронизация работы нескольких драйверов, копирование данных из пользовательского пространства в пространство системы и т. д.

Тема 1. 5. Занятие 7, 8. Динамическая загрузка и выгрузка драйверов O O Кроме Тема 1. 5. Занятие 7, 8. Динамическая загрузка и выгрузка драйверов O O Кроме проблемы разработки новых драйверов существует также проблема включения драйвера в состав модулей работающей ОС, то есть динамической загрузки-выгрузки драйвера. Так как набор потенциально поддерживаемых данной ОС периферийных устройств всегда существенно шире набора устройств, которыми ОС должна управлять при установке на конкретной машине, то ценным свойством ОС является возможность динамически загружать в оперативную память требуемый драйвер (без останова ОС) и выгружать его после того, как потребность в поддержке устройства миновала, что может существенно сэкономить системную область памяти. Альтернативой динамической загрузке драйверов при изменении текущей конфигурации внешних устройств компьютера является повторная компиляция кода ядра с требуемым набором драйверов, что создает между всеми компонентами ядра статические связи вместо динамических. Например, таким образом решалась данная проблема в ранних версиях операционной системы UNIX. При статических связях между ядром и драйверами структура ОС упрощается, но этот подход требует наличия исходных кодов модулей операционной системы, доступность которых скорее является исключением (для некоммерческих версий UNIX), а не правилом. Кроме того, в этом варианте работающую предыдущую версию операционной системы необходимо остановить и заменить новой, а перерывы в работе ОС в некоторых применениях могут и не допускаться. Поддержка динамической загрузки драйверов является практически обязательным требованием для современных универсальных операционных систем.

Тема 1. 5. Занятие 7, 8. Прямой доступ к памяти (Direct Memory Access – Тема 1. 5. Занятие 7, 8. Прямой доступ к памяти (Direct Memory Access – DMA). O O Использование механизма прерываний позволяет разумно загружать процессор в то время, когда устройство ввода-вывода занимается своей работой. Однако запись или чтение большого количества информации из адресного пространства ввода-вывода (например, с диска) приводят к большому количеству операций ввода-вывода, которые должен совершать процессор. Для разгрузки процессора от операций последовательного вывода данных из оперативной памяти или последовательного ввода в нее был предложен механизм прямого доступа внешних устройств к памяти – ПДП или Direct Memory Access – DMA. Давайте кратко рассмотрим, как работает этот механизм. Для того чтобы какое-либо устройство помимо процессора могло записать информацию в память или прочитать ее из памяти, необходимо чтобы это устройство могло забрать у процессора управление локальной магистралью для выставления соответствующих сигналов на шины адреса, данных и управления. Для централизации эти обязанности обычно возлагаются не на каждое устройство в отдельности, а на специальный контроллер – контроллер прямого доступа к памяти. Контроллер прямого доступа к памяти имеет несколько спаренных линий – каналов DMA, которые могут подключаться к различным устройствам. Перед началом использования прямого доступа к памяти этот контроллер необходимо запрограммировать, записав в его порты информацию о том, какой канал или каналы предполагается задействовать, какие операции они будут совершать, какой адрес памяти является начальным для передачи информации, и какое количество информации должно быть передано. Получив по одной из линий каналов DMA сигнал запроса на передачу данных от внешнего устройства, контроллер по шине управления сообщает процессору о желании взять на себя управление локальной магистралью. Процессор, возможно через некоторое время, необходимое для завершения его действий с магистралью, передает управление ею контроллеру DMA. известив его специальным сигналом. Контроллер DMA выставляет на адресную шину адрес памяти для передачи очередной порции информации и по второй линии канала прямого доступа к памяти сообщает устройству о готовности магистрали к передаче данных.

Тема 1. 5. Занятие 7, 8. O O O После этого, используя шину данных Тема 1. 5. Занятие 7, 8. O O O После этого, используя шину данных и шину управления, контроллер DMA, устройство ввода-вывода и память осуществляют процесс обмена информацией. Затем контроллер прямого доступа к памяти извещает процессор о своем отказе от управления магистралью, и тот берет руководящие функции на себя. При передаче большого количества данных весь процесс повторяется циклически. При прямом доступе к памяти процессор и контроллер DMA по очереди управляют локальной магистралью. Это, конечно, несколько снижает производительность процессора, так как при выполнении некоторых команд или при чтении очередной порции команд во внутренний кэш он должен поджидать освобождения магистрали, но в целом производительность вычислительной системы существенно возрастает. При подключении к системе нового устройства, которое умеет использовать прямой доступ к памяти, обычно необходимо программно или аппаратно задать номер канала DMA, к которому будет приписано устройство. В отличие от прерываний, где один номер прерывания мог соответствовать нескольким устройствам, каналы DMA всегда находятся в монопольном владении устройств. Контроллер DMA

Тема 1. 5. Занятие 7, 8. ВЫВОДЫ: O O O Функционирование любой вычислительной системы Тема 1. 5. Занятие 7, 8. ВЫВОДЫ: O O O Функционирование любой вычислительной системы обычно сводится к выполнению двух видов работы: обработке информации и операций по осуществлению ее ввода-вывода. С точки зрения операционной системы “обработкой информации” являются только операции, совершаемые процессором над данными, находящимися в памяти на уровне иерархии не ниже, чем оперативная память. Все остальное относится к “операциям ввода-вывода”, т. е. к обмену информацией с внешними устройствами. Несмотря на все многообразие устройств ввода-вывода, управление их работой и обмен информацией с ними строятся на относительно небольшом количестве принципов. Основными физическими принципами построения системы ввода-вывода является следующие: возможность использования различных адресных пространств для памяти и устройств ввода-вывода; подключение устройств к системе через порты ввода-вывода, отображаемые в одно из адресных пространств; существование механизма прерывания для извещения процессора о завершении операций ввода-вывода; наличие механизма прямого доступа устройств к памяти, минуя процессор. Механизм, подобный механизму прерываний, может использоваться также и для обработки исключений и программных прерываний, однако это целиком лежит на совести разработчиков вычислительных систем. Для построения программной части системы ввода-вывода характерен слоеный подход. Для непосредственного взаимодействия с hardware используются драйвера устройств, скрывающие от остальной части операционной системы все особенности их функционирования. Драйвера устройств через жестко определенный интерфейс связаны с базовой подсистемой ввода-вывода, в функции которой входят: организация работы блокирующихся, не блокирующихся и асинхронных системных вызовов , буферизация и кэширование входных и выходных данных, осуществление spooling’а и монопольного захвата внешних устройств, обработка ошибок и прерываний, возникающих при операциях ввода-вывода, планирование последовательности запросов на выполнение этих операций. Доступ к базовой подсистеме ввода-вывода осуществляется посредством системных вызовов. Часть функций базовой подсистемы может быть делегирована драйверам устройств и самим устройствам ввода-вывода.

Контрольные вопросы: ОС обеспечивает обмен данными между…? Функции обмена данными с периферийными устройствами выполняет…? Контрольные вопросы: ОС обеспечивает обмен данными между…? Функции обмена данными с периферийными устройствами выполняет…? Назовите основные компоненты подсистемы ввода-вывода. Почему ввод-вывод считается одной из самых сложных областей проектирования ОС? Какие режимы вводятся в большинство процессоров для обеспечения принципа привилегированности любых операций управления? 6. Что такое супервизор, назовите основные задачи возлагаемые на супервизор. 7. Какое устройство называется инициативным? 8. В чем разница между драйверами и инициативными программами? 9. Контроллер – это…? 10. Драйвер – это…? 11. С чем взаимодействует контроллер? 12. Где в компьютере находятся схемы (контроллеры или адаптеры), управляющие внешними устройствами компьютера? 13. Как протекают процессы в контроллерах? 14. Какая задача всегда возникает при обмене данными? 15. Что используется в подсистеме ввода-вывода для согласования скоростей обмена? 16. Что такое спул-файл? Пример применения спулинга. 17. Что позволяет буферизация данных? 18. Что является непременным условием для организации совместного доступа к частям устройства или частям данных, хранящихся на нем? 1. 2. 3. 4. 5.

Контрольные вопросы: 19. Какую модель периферийных устройств поддерживают современные операционные системы? 20. С чем Контрольные вопросы: 19. Какую модель периферийных устройств поддерживают современные операционные системы? 20. С чем взаимодействует драйвер? 21. Как обеспечивается ОС поддержка широкого спектра драйверов? 22. Что значит динамическая загрузка-выгрузка драйвера? 23. Что представляет механизм прямого доступа внешних устройств к памяти – DMA? 24. Как при прямом доступе к памяти процессор и контроллер DMA управляют локальной магистралью?

Рекомендуемая литература: O Иртегов Д. В. Введение в операционные системы. – O O Ученье-свет, Рекомендуемая литература: O Иртегов Д. В. Введение в операционные системы. – O O Ученье-свет, а неученьетьма! Уже перелистал я все тома! Для ловли мышек этот "свет" не нужен! Я лучше посмотрю, не пропустил ли ужин! O СПб. : БХВ-Петербург, 2012. – 624 с. Попов И. И. , Партыка Т. Л. Операционные системы, среды и оболочки. – М. : Форум, 2012. – 560 с. Синицын С. В. , Батаев А. В. , Налютин Н. Ю. Операционные системы. – М. : Академия, 2012. – 304 с. Спиридонов Э. Практикум по операционным системам. – М. : Либроком, 2010. – 328 с. Спиридонов Э. , Клыков М. Операционные системы. – М. : Либроком, 2010. – 352 с. Учебные и информационные ресурсы интернет.