- •Операционные системы. Автор
- •Задачи
- •Физическая организация устройств ввода-вывода
- •Обмен данными между процессором и
- •Если выставленный на шине адрес соответствует адресу одного из регистров внешнего устройства, дешифратор
- •Можно выделить два основных подхода к адресации регистров внешних устройств:
- •Существует два основных подхода к выделению адресов внешним устройствам:
- •Устройства ввода-вывода делятся на два типа:
- •Организация программного обеспечения ввода-вывода
- •Основная идея организации программного обеспечения ввода- вывода состоит в разбиении его на несколько
- •Независимость от устройств
- •Единообразное именование
- •Обработка ошибок
- •Использование блокирующих (синхронных) и неблокирующих
- •Наличие разделяемых и выделенных устройств
- •Многоуровневая организация
- •Приложения
- •Библиотечные функции
- •Системные вызовы
- •Системные вызовы
- •Драйверы устройств
- •Обработка прерываний
Независимость от устройств
Вид программы не должен зависеть от того, читает ли она данные с гибкого диска или с жесткого диска. 
В.А.Серков "Операционн |
11 |
ые системы" 5 |
|
Единообразное именование
Для именования устройств должны быть приняты единые правила.
В.А.Серков "Операционн |
12 |
ые системы" 5 |
|
Обработка ошибок
Ошибки следует обрабатывать как можно ближе к аппаратуре.
Если контроллер обнаруживает ошибку чтения, то он должен попытаться ее скорректировать. Если же это ему не удается, то исправлением ошибок должен заняться драйвер устройства.












Многие ошибки могут исчезать при
повторных попытках выполнения операций ввода- вывода, например, ошибки, вызванные наличием пылинок на головках чтения или на диске.
И только если нижний уровень не может справиться с ошибкой, он сообщает об ошибке
верхнему уровню.
В.А.Серков "Операционн |
13 |
ые системы" 5 |
|
Использование блокирующих (синхронных) и неблокирующих
(асинхронных) передач
Большинство операций физического ввода- вывода выполняется асинхронно - процессор начинает передачу и переходит на другую работу, пока не наступает прерывание.
Пользовательские программы намного легче
писать, если операции ввода-вывода
блокирующие - после команды READ программа
автоматически приостанавливается до тех пор, пока данные не попадут в буфер программы.
ОС выполняет операции ввода-вывода асинхронно, но представляет их для
пользовательских программ в синхронной форме.
В.А.Серков "Операционн |
14 |
ые системы" 5 |
|
Наличие разделяемых и выделенных устройств
Диски - это разделяемые устройства, так как одновременный доступ нескольких пользователей к диску не представляет собой проблему.
Принтеры - это выделенные 


устройства, потому что нельзя смешивать
строчки, печатаемые различными
пользователями. Наличие выделенных устройств создает для операционной
системы некоторые проблемы.
В.А.Серков "Операционн |
15 |
ые системы" 5 |
|
Многоуровневая организация |
||||
подсистемы ввода-вывода |
||||
|
Приложения |
|
||
Библиотечные |
Программные |
|||
|
|
функции |
средства |
|
|
Системные |
обращения к |
||
|
подсистеме |
|||
|
|
вызовы |
ввода / вывода |
|
Обработка системных вызовов |
||||
Система буферизации |
||||
|
|
данных |
Подсистема |
|
|
|
|
ввода / вывода |
|
|
|
|
ОС |
|
Драйверы устройств |
||||
Обработка прерываний |
||||
Запросы |
|
Команды |
Данные |
|
|
управления |
|||
прерываний от |
||||
устройствами |
|
|||
устройств |
|
16 |
||
ые системы" 5 |
||||
|
||||
Приложения |
|
||||
Приложения |
|
Приложения |
|
||
|
|
|
|
||
(программы) |
Библиотечные |
Программные |
|||
|
|
функции |
средства |
||
используют для |
|
Системные |
обращения к |
||
|
подсистеме |
||||
выполнения |
|
|
вызовы |
ввода / вывода |
|
|
|
|
|
||
операций |
Обработка системных вызовов |
||||
Система буферизации |
|||||
ввода/вывода набор |
|
|
данных |
Подсистема |
|
|
|
|
ввода / вывода |
||
|
|
|
ОС |
||
стандартных |
Драйверы устройств |
||||
Обработка прерываний |
|||||
функций |
|
|
|
|
|
(операторов) типа |
|
|
|
|
|
READ, WRITE. |
Запросы |
|
Команды |
Данные |
|
|
управления |
||||
прерываний от |
|||||
устройствами |
|
||||
|
устройств |
|
|
||
В.А.Серков "Операционн |
17 |
||||
ые системы" 5 |
|
|
|
|
|
Библиотечные функции |
|||
Операторы |
Приложения |
|
|
ввода/вывода (READ, |
Библиотечные |
Программные |
|
WRITE) на этапе |
|
функции |
средства |
Системные |
обращения к |
||
подсистеме |
|||
компиляции |
|
вызовы |
ввода / вывода |
|
|
|
|
программы вызывают |
Обработка системных вызовов |
||
|
|
|
|
в объектный код |
Система буферизации |
||
|
данных |
Подсистема |
|
|
|
ввода / вывода |
|
программы |
|
|
ОС |
Драйверы устройств |
|||
подпрограммы из |
Обработка прерываний |
||
|
|
|
|
библиотеки |
|
|
|
стандартных |
Запросы |
Команды |
Данные |
функций. |
прерываний от |
управления |
|
устройствами |
|
||
устройств |
|
|
|
В.А.Серков "Операционн |
18 |
||
ые системы" 5 |
|
|
|
Системные вызовы |
||||
Библиотечные |
Приложения |
|
||
функции в процессе |
Библиотечные |
Программные |
||
работы программы |
|
функции |
средства |
|
|
|
обращения к |
||
порождают системные |
Системные |
подсистеме |
||
|
вызовы |
ввода / вывода |
||
вызовы, которые через |
|
|
|
|
интерфейс |
Обработка системных вызовов |
|||
Система буферизации |
||||
прикладного |
|
данных |
Подсистема |
|
|
|
ввода / вывода |
||
программирования |
|
|
ОС |
|
Драйверы устройств |
||||
направляются к |
Обработка прерываний |
|||
подсистеме |
|
|
|
|
ввода/вывода на |
|
|
|
|
дальнейшую |
Запросы |
Команды |
Данные |
|
управления |
||||
обработку. |
прерываний от |
|||
устройствами |
|
|||
устройств |
|
|
||
В.А.Серков "Операционн |
19 |
|||
ые системы" 5 |
|
|
|
|
Системные вызовы |
||||
Библиотечные |
Приложения |
|
||
функции в процессе |
Библиотечные |
Программные |
||
работы программы |
|
функции |
средства |
|
|
|
обращения к |
||
порождают системные |
Системные |
подсистеме |
||
|
вызовы |
ввода / вывода |
||
вызовы, которые через |
|
|
|
|
интерфейс |
Обработка системных вызовов |
|||
Система буферизации |
||||
прикладного |
|
данных |
Подсистема |
|
|
|
ввода / вывода |
||
программирования |
|
|
ОС |
|
Драйверы устройств |
||||
направляются к |
Обработка прерываний |
|||
подсистеме |
|
|
|
|
ввода/вывода на |
|
|
|
|
дальнейшую |
Запросы |
Команды |
Данные |
|
управления |
||||
обработку. |
прерываний от |
|||
устройствами |
|
|||
устройств |
|
|
||
В.А.Серков "Операционн |
20 |
|||
ые системы" 5 |
|
|
|
|
