
Устройства ввода-вывода
- блочные
- символьные
Символьные УВВ выводят по символам. Принцип программирования зависит от устройства.
Классификация:
- последовательные
- с произвольным доступом
Примеры: диски – блочные с произвольным, ленты – блочные последовательные.
Общее: устройство состоит из 2 частей, есть контроллер и микросхема.
Порты ввода-вывода: контроллер содержит регистры.
Регистры: данных, управления, состояния. Есть хотя бы 1 из этих типов.
Контроллер клавиатуры: умеет спрашивать, выполняет команды.
Регистр состояния хранит состояние устройства.
Порты существуют для взаимодействия. Порт – это некий адрес в памяти.
Терминал – запись в ФП.
Сейчас используется (3).
Устройство компьютера:
С точки зрения ОС нет ничего кроме адресов. Для процессора общение с ???? – передача данных. Для контроллера – получение нужной информации.
Независимость программ от устройства ввода-вывода.
Драйверы ввода-вывода – программы управления устройствами ввода-вывода.
Подключение драйверов: раньше надо было переустанавливать ОС при изменении драйверов. Это характерно для больших машин и Unix. Отличие персоналок в том, что устройств очень много – драйверы отдельные программы, а были раньше встроены в ядро. Драйверы работают на уровне ядра. Драйвер ядра – единственный способ поменять ОС.
Для многих устройств одного драйвера мало. Для взаимодействия разных драйверов используется стек. По стеку передаются запросы, меняясь от драйвера к драйверу, т.е. переходя на другой уровень.
Способы общения с устройствами ввода-вывода:
- программируемый ввод-вывод
читать символ с клавиатуры, если есть – вывести. Вывод на устройство. Модем = опрос на готовность.
Процессор простаивает.
- ввод-вывод по прерываниям
процессом ввода-вывода управляет устройство ввода вывода. Мы разрешаем прерывания, устанавливаем адрес буфера, когда устройство готово – оно вызывает прерывание и в буфер пишутся данные. Это удобный подход.
- прямой доступ к памяти DMA
это возможно только для внешних устройств.
Надо записать данные на жесткий диск – Контроллер памяти с доступом в ФП – Запись.
Тогда не надо прерываний, только о завершении записи.
Ввод-вывод бывает синхронный и асинхронный. Синхронный – когда программа ждет окончания записи данных, асинхронный – когда продолжает работать дальше.
В асинхронном проблема – узнать, когда все кончится. Для него нужен callback (ловушка).
ОС дает выбирать, копировать ли данные при работе. Плюс – оптимизация. Минус – занимает место.
Spooling – есть программа-демон. Если есть программа отработать (в ????). Например, печать. Система USENET – интегрированная служба новостей, чтобы передать новость, надо файл положить в папку spooling и он автоматически уйдет в сеть.
Диски.
1. форматирование нижнего уровня
проводится разметка диска на уровне секторов
2. создание разделов
на логические диски разбиваем
Master Boot Record. Для запуска ОС БИОС читает MBR. Если есть разделы, то хранится таблица, в ней флажок на MBR.
3. форматирование логического диска
после этого форматирования диск становится видимым
Для CD все по-другому. Файловая система записана раз и навсегда и не меняется.