КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Физическая организация устройств ввода-вывода. Блок-ориентированные устройства и байт-ориентированные
Подсистема организации ввода-вывода. Одной из главных функций ОС является управление всеми устройствами ввода-вывода компьютера. ОС должна передавать устройствам команды, перехватывать прерывания и обрабатывать ошибки; она также должна обеспечивать интерфейс между устройствами и остальной частью системы. В целях развития интерфейс должен быть одинаковым для всех типов устройств (независимость от устройств). Устройства ввода-вывода делятся на два типа: блок-ориентированные устройства и байт-ориентированные устройства. Блок-ориентированные устройства хранят информацию в блоках фиксированного размера, каждый из которых имеет свой собственный адрес. Самое распространенное блок-ориентированное устройство - диск. Байт-ориентированные устройства не адресуемы и не позволяют производить операцию поиска, они генерируют или потребляют последовательность байтов. Примерами являются терминалы, строчные принтеры, сетевые адаптеры. Однако некоторые внешние устройства не относятся ни к одному классу, например, часы, которые, с одной стороны, не адресуемы, а с другой стороны, не порождают потока байтов. Это устройство только выдает сигнал прерывания в некоторые моменты времени. В качестве примера рассмотрим низкоуровневую структуру жесткого диска. Диск разбивается на небольшие части – сегменты. Размер сегмента иногда может задаваться пользователем при форматировании. Возможные варианты определяет производитель. Стандартный размер равен 521 байту, из которых 512 байт (4096 бит) – отводятся под данные, а оставшиеся байты образуют заголовок сектора. О заголовке мы расскажем чуть позже. Внешнее устройство обычно состоит из механического и электронного компонента. Электронный компонент называется контроллером (ударение на втором слоге, а не на третьем!) устройства или адаптером. Механический компонент представляет собственно устройство. Некоторые контроллеры могут управлять несколькими устройствами. Если интерфейс между контроллером и устройством стандартизован, то независимые производители могут выпускать совместимые как контроллеры, так и устройства. Операционная система обычно имеет дело не с устройством, а с контроллером. Контроллер, как правило, выполняет простые функции, например, преобразует поток бит в блоки, состоящие из байт, и осуществляют контроль и исправление ошибок. Вернемся к нашему сектору диска. Пусть требуется прочесть некоторый файл, занимающий некоторый кластер, тогда контроллер рассчитывает по номеру кластера номер сектора, определяет, сколько времени следую подождать, чтобы читающая головка расположилась над нужным сектором, и генерирует соответствующие аппаратные команды. В заголовке сектора содержится необходимая для контроллера устройства информация. Например, номер сектора, по которому контроллер определяет, не промахнулся ли он. Очень важна контрольная сумма (или ECC - Error Correcting Code). Контроллер при чтении сектора рассчитывает контрольную суму, и если рассчитанная сумма не совпадает с записанной в заголовке сектора суммой, то регистрируется ошибка. После этого контроллер может попытаться прочесть сектор еще раз. При нескольких неудачах (их число задает производитель), информация об ошибке передается драйверу и операционной системе, а, возможно, и пользователю, если никто не найдет способа замаскировать ошибку. Уточним, для особо любопытных, что в действительности проверка контрольной суммы происходит не так, как описано выше, подробности будут рассказаны в курсе «Надежность информационных систем». Читаемые (или записываемые) данные контроллер должен хранить в своем буфере. Это необходимо потому, что, во-первых, скорости работы шины и устройства могут очень сильно отличаться. Устройство равномерно принимает или генерирует байты с низкой, по сравнению с шиной, скоростью. Вторая причина – желание освободить центральный процессор на время выполнения ввода-вывода. Таким образом, получается, что контроллер читает данные в свой буфер, после чего генерирует прерывание. Связь контроллера и центрального процессора может быть реализована двумя разными способами: 1) отображаемый на память ввод-вывод (теневые адреса памяти); 2) порты ввода-вывода. Каждый контроллер имеет несколько регистров, которые используются для взаимодействия с центральным процессором. В некоторых компьютерах эти регистры являются частью физического адресного пространства. В таких компьютерах нет специальных операций ввода-вывода. В других компьютерах адреса регистров ввода-вывода, называемых часто портами, образуют собственное адресное пространство за счет введения специальных операций ввода-вывода (например, команд IN и OUT в процессорах i86). ОС выполняет ввод-вывод, записывая команды в регистры контроллера. Например, контроллер гибкого диска IBM PC принимает 15 команд, таких как READ, WRITE, SEEK, FORMAT и т.д. Когда команда принята, процессор оставляет контроллер и занимается другой работой. При завершении команды контроллер организует прерывание для того, чтобы передать управление процессором операционной системе, которая должна проверить результаты операции. Процессор получает результаты и статус устройства, читая информацию из регистров контроллера.
Дата добавления: 2014-12-07; Просмотров: 1490; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |