Обзор аппаратного обеспечения компьютера устройства ввода вывода

Обновлено: 03.07.2024

Устройство ввода-вывода ПК— это компонент типовой архитектуры компьютера, дающий ему возможность взаимодействия с внешним миром и, в частности, с пользователем.

Внешние устройства ПК

Устройства ввода/вывода служат для ввода информации в персональный компьютер, и вывода её из него и проведению разных операций по взаимодействию с пользователем. Процедуры ввода и вывода информационных данных могут быть выполнены с использованием внутренних устройств памяти персонального компьютера. Устройства ввода/вывода информации называются периферийными или внешними устройствами.

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

  1. Внешние устройства, которые являются модулями памяти или просто внешней памятью персонального компьютера.
  2. Средства, предназначенные для организации диалога с пользователем.
  3. Устройства, которые предназначены для ввода информации.
  4. Устройства, которые предназначены для вывода информации.
  5. Устройства, которые предназначены для обеспечения связи и телекоммуникаций.

Средства диалога с пользователем могут включать в свой состав мониторы, принтеры, которые могут оснащаться специальными пультами и модулями речевого информационного ввода и вывода.

Современные устройства ввода-вывода ПК. Перспективы их развития

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

Готовые работы на аналогичную тему

Получить выполненную работу или консультацию специалиста по вашему учебному проекту Узнать стоимость

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

Типовым модулем, который предназначен для ввода информации в персональный компьютер, является клавиатура (keyboard). Клавиатура имеется в составе как у персональных компьютеров, так и у мейнфпеймов. У современных компьютеров модуль клавиатуры имеет обычно сто одну или сто две клавиши, которые делятся на следующие группы:

  1. Алфавитно-цифровой набор, который содержит клавиши латинского и одного из национальных алфавитов, а, помимо этого, цифровые клавиши и клавиши, которые предназначены для специальных символов.
  2. Набор клавиш, которые предназначены для управления.
  3. Расширенный набор цифровой клавиатуры.
  4. Набор клавиш, который предназначен для осуществления навигационных действий.

Компьютерная мышь является манипулятором, который предназначен для выбора и перемещения разных объектов по экрану компьютерного монитора. Для этого используется специальный указатель, перемещением которого по экрану монитора может управлять мышь. Мышь позволяет значительно сократить требуемые от пользователя действия, выполняемые при помощи клавиатуры, для управления курсором и выбором команд. Наиболее эффективно применение мышки при операциях в графических редакторах, издательских системах, играх.

  1. Мышки, которые исполнены на механической базе.
  2. Мышки, которые выполнены на оптико-механической базе.
  3. Мыши, которые выполнены только на оптической базе.

Сенсорные экраны (touch screens) предназначены в основном для тех пользователей, которые не используют стандартную клавиатуру. Осуществить ввод символа или команды пользователи могут посредством касания пальцем требуемого участка экрана монитора. В данных устройствах используется один из следующих основных принципов работы:

  1. Сенсорный экран, использующий резистивный принцип действия.
  2. Сенсорный экран, использующий емкостной принцип действия.
  3. Сенсорный экран, использующий акустический принцип действия.
  4. Сенсорный экран, использующий инфракрасный принцип действия.

Сенсорные экраны, основанные на резистивном принципе действия, отлично зарекомендовали себя в сфере обслуживания, а также в промышленной, медицинской и транспортной областях. Экран реагирует на прикосновение пальцами, руками в перчатках, и даже просто ногтями или вообще кредитной картой.

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

В емкостных сенсорных экранах до момента касания пальцем присутствует определённый электрический заряд. Прикосновение пальцем изменяет расположение заряда, за счёт притягивания части заряда в точку касания. Экранные датчики расположены на всех четырёх углах и следят за потоками заряда в экране. Таким образом, они могут определить координаты точки прикосновения.

Презентацию к данной лекции Вы можете скачать здесь.

Введение

Устройства и системы ввода-вывода в современных компьютерных и операционных системах весьма разнообразны. В лекции рассмотрены следующие вопросы:

  • Аппаратура ввода-вывода
  • Интерфейс приложений для ввода-вывода
  • Подсистема ввода-вывода в ядре ОС
  • Преобразование запросов на ввод-вывод в аппаратные операции
  • Производительность систем ввода-вывода.

Аппаратура ввода-вывода

В настоящее время наблюдается все более и более активное развитие устройств ввода-вывода в компьютерных системах. В значительной степени это объясняется, во-первых, необходимостью ввода, обработки и вывода мультимедийной информации (аудио, видео, цифровых фотографий, отсканированных образов и других изображений), во-вторых, постоянной потребностью в увеличении скорости и емкости устройств вследствие гигантского роста размеров обрабатываемой информации. Еще в 1980-х гг., например, нормой считалось использование гибких дискет ( FDD ) емкостью 1.44 мегабайта для резервного копирования. Сейчас устройствами FDD настольные и портативные компьютеры вообще не комплектуются, а, что касается резервного копирования, то и устройств емкостью 128 гигабайт может оказаться недостаточно для этой цели.

  • клавиатуру и мышь;
  • жесткие диски ( HDD ), включая внутренние и внешние;
  • flash-память;
  • ленточные стримеры ;
  • компакт-диски BluRay, DVD , CD;
  • твердотельные накопители на магнитных дисках ( solid state disks – SSD );
  • ZIP drives , JAZ drives – уже устаревающие, но еще используемые устройства для резервного копирования со съемными носителями (их постепенно вытесняет флэш-память , физические размеры модулей которой гораздо меньше, а емкость – больше);
  • магнито-оптические диски – ныне уже устаревшие устройства для резервного копирования, но долгое время использовавшиеся;
  • устройства для мультимедийного ввода-вывода: порты и адаптеры IEEE 1394 ( Fire-Wire ) для подключения цифровых видеоустройств; порты и адаптеры High Definition Multimedia Interface ( HDMI ) для подключения видеоаппаратуры стандарта High Definition (HD); кард-ридеры для нескольких форматов (SmartMedia и др.) носителей, используемых в цифровых фотоаппаратах ;
  • мониторы, видеокарты (видеоадаптеры) и графические процессоры, в том числе – многоядерные;
  • принтеры, сканеры.

Основные концепции

Рассмотрим общие концепции аппаратуры и ОС, связанные с устройствами ввода-вывода .

Каждое устройство подключается к компьютерной системе через порт – контроллер и разъем (либо беспроводное устройство) для передачи данных между устройством ввода-вывода и компьютером. Каждый порт имеет свое традиционное обозначение и свой номер в системе. Порт может существовать физически, как разъем для проводного соединения и связанный с ним контроллер порта (например, USB – универсальный порт для подключения широкого спектра устройств; LPT – порт для подключения принтеров и сканеров), либо может быть организован операционной системой как виртуальный порт для унификации обработки внешних устройств . Виртуальные порты, обычно – коммуникационные порты ( COM ) с большими номерами – например, COM10, COM15, - организуются для обмена с устройствами беспроводной связи – например, мобильными телефонами и органайзерами. Беспроводная связь чаще всего организуется через Bluetooth – радиосвязь на расстоянии до 20 м, в новых стандартах – до 1 км.

Шина (bus) - это цепочка устройств прямого доступа в компьютерной системе, через которую передается информация от одних устройств к другим. Обычно в настольных и портативных компьютерах используется шина PCI (Peripheral Computer Interface), тактовая частота которой в современных компьютерах 1 – 1.5 GHz . Она фактически и определяет суммарную производительность компьютерной системы. К шине PCI подключены контроллеры внешних устройств и портов.

Контроллер (host adapter) – специализированный микропроцессор для управления внешним устройством и портом. Контроллер внешнего устройства – это устройство управления командами ввода-вывода с данным внешним устройством . Устройства имеют адреса, используемые командами непосредственного ввода-вывода и командами ввода-вывода, отображаемого в память . Каждый контроллер устройства использует свой буфер памяти для хранения одного или нескольких блоков информации, расположенный либо в специализированной памяти устройства (контроллера), либо являющийся частью оперативной памяти компьтерной системы.

Типовая структура общей шины персонального компьютера изображена на рис. 21.1.

Устройства делят на две категории (некоторые не попадают ни в одну):

блочные устройства - информация считывается и записывается по блокам, блоки имеют свой адрес (диски)

символьные устройства - информация считывается и записывается посимвольно (принтер, сетевые карты, мыши)

9.1.2 Контроллеры устройств

Устройства ввода-вывода обычно состоят из двух частей:

механическая (не надо понимать дословно) - диск, принтер, монитор

электронная - контроллер или адаптер

Если интерфейс между контроллером и устройством стандартизован (ANSI, IEEE или ISO), то независимые производители могут выпускать совместимые как контроллеры, так и устройства. Например: диски IDE или SCSI.

Операционная система обычно имеет дело не с устройством, а с контроллером. Контроллер, как правило, выполняет простые функции, например, при считывании с диска, преобразует поток бит в блоки, состоящие из байт, и осуществляют контроль и исправление ошибок, проверяется контрольная сумма блока, если она совпадает с указанной в заголовке сектора, то блок считан без ошибок, если нет, то считывается заново.

9.1.3 Отображаемый на адресное пространство памяти ввод-вывод

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

У многих устройств есть буфер данных (например: видеопамять).

Реализации доступа к управляющим регистрам и буферам:

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

смешанная реализация - используется в х86 и Pentium,
от 0 до 64К отводится портам,
от 640 до 1М зарезервировано под буферы данных.


Способы реализации доступа к управляющим регистрам и буферам

9.1.4 Прямой доступ к памяти (DMA - Direct Memory Access)

Прямой доступ к памяти реализуется с помощью DMA - контроллера.

Контроллер содержит несколько регистров:

регистр адреса памяти

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

Без контроллера происходит следующее:

Процессор дает команду дисковому контроллеру прочитать данные в буфер,

Считываются данные в буфер, контроллер проверяет контрольную сумму считанных данных (проверка на ошибки). Процессор, до прерывания, переключается на другие задания.

Контроллер диска инициирует прерывание

Операционная система начинает работать и может считывать из буфера данные в память

Работа DMA - контроллера

С контроллером происходит следующее:

Процессор программирует контроллер (какие данные и куда переместить)

Процессор дает команду дисковому контроллеру прочитать данные в буфер

Считываются данные в буфер, контроллер диска проверяет контрольную сумму считанных данных, (процессор, до прерывания, переключается на другие задания).

Контроллер DMA посылает запрос на чтение дисковому контроллеру

Контроллер диска поставляет данные на шину, адрес памяти уже находится на шине, происходит запись данных в память

Когда запись закончена, контроллер диска посылает подтверждение DMA контроллеру

DMA контроллер увеличивает используемый адрес и уменьшает значение счетчика байтов

Все повторяется с пункта 4, пока значение счетчика не станет равной нулю.

Контроллер DMA инициирует прерывание

Операционной системе не нужно копировать данные в память, они уже там.

9.1.5 Прерывания

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

Чтобы сигнализировать процессору об окончании работы, устройство инициализирует прерывание, выставляя сигнал на выделенную устройству линию шины (а не выделенный провод).

Контроллер прерываний - обслуживает поступающие прерывания от устройств.

Если необработанных прерываний нет, прерывание выполняется немедленно.

Если необработанных прерываний есть, контроллер игнорирует прерывание. Но устройство продолжает удерживать сигнал прерывания на шине до тех пор, пока оно не будет обработано.

Устройство выставляет сигнал прерывания

Контроллер прерываний инициирует прерывание, указывая номер устройства

Процессор начинает выполнять обработку прерывания, вызывая процедуру

Эта процедура подтверждает получение прерывания контроллеру прерываний

9.2 Принципы программного обеспечения ввода-вывода

9.2.1 Задачи программного обеспечения ввода-вывода

Основные задачи, которые должно решать программное обеспечение ввода-вывода:

Независимость от устройств - например, программа, читающая данные из файла не должна задумываться с чего она читает (CD, HDD и др.). Все проблемы должна решать ОС.

Единообразное именование - имя файла или устройства не должны отличаться. (В системах UNIX выполняется дословно).

Обработка ошибок - ошибки могут быть отловлены на уровне контроллера, драйвера и т.д.

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

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

Три основных способа осуществления операций ввода-вывода:

Управляемый прерываниями ввод-вывод

Ввод-вывод с использованием DMA

Рассмотрим их подробнее.

9.2.2 Программный ввод-вывод

В этом случае всю работу выполняет центральный процессор.

Рассмотрим процесс печати строки ABCDEFGH этим способом.

Этапы печати строки ABCDEFGH

Строка для печати собирается в пространстве пользователя.

Обращаясь к системному вызову, процесс получает принтер.

Обращаясь к системному вызову, процесс просит распечатать строку на принтере.

Операционная система копирует строку в массив, расположенный в режиме ядра.

ОС копирует первый символ в регистр данных принтера, который отображен на памяти.

Символ печатается на бумаге.

Указатель устанавливается на следующий символ.

Процессор ждет, когда бит готовности принтера выставится в готовность.

При использовании буфера принтера, сначала вся строка копируется в буфер, после этого начинается печать.

9.2.3 Управляемый прерываниями ввод-вывод

Если в предыдущем примере буфер не используется, а принтер печатает 100 символов в секунду, то на каждый символ будет уходить 10мс, в это время процессор будет простаивать, ожидая готовности принтера.

Рассмотрим тот же пример, но с небольшим усовершенствованием.

До пункта 8 тоже самое.

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

Когда принтер будет готов, он посылает прерывание процессору.

Процессор переключается на печатающий процесс.

9.2.4 Ввод-вывод с использованием DMA

Недостаток предыдущего метода в том, что прерывание происходит при печати каждого символа.

Алгоритм не отличается, но всю работу на себя берет контроллер DMA.

9.3 Программные уровни и функции ввода-вывода

Четыре уровня ввода-вывода:

9.3.1 Обработчики прерываний

Прерывания должны быть скрыты как можно глубже в недрах операционной системы, чтобы как можно меньшая часть ОС имела с ними дело. Лучше всего блокировать драйвер, начавший ввод-вывод.

Драйвер начинает операцию ввод-вывод.

Обработчик прерываний начинает работу

Обработчик прерываний может разблокировать драйвер (например, выполнив на семафоре процедуру up)

9.3.2 Драйвера устройств

Драйвер устройства - необходим для каждого устройства. Для разных ОС нужны разные драйверы.

Драйверы должны быть частью ядра (в монолитной системе), что бы получить доступ к регистрам контроллера.

Это одна из основных причин приводящих к краху операционных систем. Потому что драйверы, как правило, пишутся производителями устройств, и вставляются в ОС.

Логическое расположение драйверов устройств. На самом деле обмен данными между контроллерами и драйверами идет по шине.

Драйвера должны взаимодействовать с ОС через стандартные интерфейсы.

Стандартные интерфейсы, которые должны поддерживать драйвера:

Для блочных устройств

Для символьных устройств

Раньше для установки ядра приходилось перекомпилировать ядра системы.

Сейчас в основном ОС загружают драйверы. Некоторые драйверы могут быть загружены в горячем режиме.

Функции, которые выполняют драйвера:

обработка запросов чтения или записи

управление энергопотреблением устройства

прогрев устройства (сканера)

включение устройства или запуска двигателя

9.3.3 Независимое от устройств программное обеспечение ввода-вывода

Функции независимого от устройств программного обеспечения ввода-вывода:

Единообразный интерфейс для драйверов устройств,

Захват и освобождение выделенных устройств (блокирование)

Размер блока, не зависящий от устройств

Единообразный интерфейс для драйверов устройств

Кроме интерфейса, в него также входят проблемы,

Буферизация

Рассмотрим несколько примеров буферизации.

a) Не буферизованный ввод - после ввода каждого символа происходит прерывание

b) Буферизация в пространстве пользователя - приходится держать загруженными необходимые страницы памяти в физической памяти.

c) Буферизация в ядре с копированием в пространство пользователя - страница загружается только когда буфер ядра полный, данные из буфера ядра в буфер пользователя копируется за одну операцию. Проблема может возникнуть, когда буфер ядра полный, а страница буфера пользователя еще не загружена.

d) Двойная буферизация в ядре - если один буфер заполнен, и пока он выгружается, символы пишутся во второй буфер.

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

Захват и освобождение выделенных устройств

Для устройств (принтер) с которыми должен работать в одно время только один процесс, необходима возможность захвата и освобождения устройств. Когда один процесс занял устройство, остальные встают в очередь.

Независимый от устройств размер блока

Размер блока должен быть одинаковый для верхних уровней, и не зависеть от устройств (размеров секторов на диске).

9.3.4 Программное обеспечение ввода-вывода пространства пользователя

Функции этого обеспечения:

Обращение к системным вызовам ввода-вывода (через библиотечные процедуры).

Форматный ввод-вывод (меняют формат, например, в ASCII)

Спулинг (для выделенных устройств) - создается процесс (например, демон печати) и каталог спулера.

Операционная система тесно связана с оборудованием компьютера, на котором она должна работать. Аппаратное обеспечение влияет на набор команд операционной системы и управление его ресурсами. Концептуально простой компьютер можно представить в виде модели, показанной на рисунке 1 [14]. Такая структура использовалась на первых моделях IBM PC.


Рисунок 1 – Некоторые компоненты персонального компьютера

На рисунке центральный процессор, память, устройства ввода-вывода соединены системной шиной, по которой они обмениваются информацией.

«Мозгом» компьютера является центральный процессор (CPU – Central Processing Unit). Он выбирает из памяти команды и выполняет их. Обычный цикл работы процессора выглядит так: читается первая команда из памяти, декодируется для определения ее типа и операндов, выполняет команду, затем считывает, декодирует последующие команды. Таким образом осуществляется выполнение программ.

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

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

Для повышения быстродействия CPU их разработчики отказались от простой модели, когда за один такт может быть считана, декодирована, выполнена только одна команда. Современные процессоры обладают возможностью выполнения нескольких команд одновременно.

Большинство CPU имеет два режима работы: режим ядра и пользовательский режим. Если процессор запущен в режиме ядра, он может выполнять все команды из набора инструкций и использовать все возможности аппаратуры. Операционная система работает в режиме ядра, предоставляя доступ ко всему оборудованию. В противоположность этому, пользователи работают в пользовательском режиме, разрешающем выполнение подмножества программ и делающем доступным лишь часть аппаратных средств.

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

Система памяти конструируется в виде иерархии слоев [13], которые иллюстрируются на рисунке 2. По мере продвижение по иерархии сверху вниз возрастают два параметра: время доступа, объём памяти.

Верхний слой состоит из внутренних регистров CPU, поэтому при доступе к ним не возникает задержек. Внутренние регистры хранят менее 1Кб информации. Программы могут управлять регистрами без вмешательства аппаратуры. Доступ к регистрам быстрее всего – несколько наносекунд.

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


Рисунок 2 – Иерархическая структура памяти

Далее следует оперативная память ОЗУ (RAM – Random Acces Memory или память с произвольным доступом) – главная рабочая область запоминающего устройства машины. Все запросы CPU, которые не могут быть выполнены кэшпамятью, поступают для обработки в ОЗУ. Объёмы от сотен мегабайт до нескольких гигабайт. Время доступа – десятки наносекунд.

Следующим идёт магнитный диск. Дисковая память на два порядка дешевле ОЗУ в пересчете на бит и на два порядка больше по величине. У диска есть одна проблема – случайный доступ к данным на нем занимает примерно на три порядка больше времени. Причиной низкой скорости жестких дисков (HDD) является то, что диск представляет собой механическую конструкцию. Он состоит из одной или нескольких металлических пластин, вращающихся с определенными скоростями, например 7200 об/мин. Объёмы дисков сейчас стремительно растут, в продаже для большинства пользователей находятся диски с сотнями гигабайт. Время доступа – не менее 10 мкс.

Магнитная лента часто используется для создания резервных копий HDD или для хранения очень больших наборов данных. Сейчас, конечно редко, где можно встретить применение магнитных лент, но всё же они ещё не вышли из употребления. К уровню магнитной ленты также можно отнести CD, DVD диски и флэш-память. Время доступа измеряется секундами.

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

Операционная система взаимодействует с устройствами ввода-вывода как с ресурсами. Устройства ввода-вывода обычно состоят из контроллера и самого устройства.

Контроллер – набор микросхем на вставляемой в разъем плате, физически управляющее устройство. Он принимает команды операционной системы (например, указания прочитать данные с устройства) и выполняет их. Фактическое управление устройством очень сложно и требует высокого уровня детализации. Поэтому в функции контроллера входит представление простого интерфейса для операционной системы.

Следующей частью является само устройство. Устройства имеют достаточно простые интерфейсы, потому что их возможности невелики и их нужно привести к единому стандарту. Единый стандарт необходим, например чтобы каждый IDE контроллер диска (Integrated Drive Electronics) мог управлять любым IDE диском. IDE интерфейс является стандартным для дисков на компьютерах с процессором Pentium, а также на других компьютерах. Так как настоящий интерфейс устройства скрыт с помощью контроллера, то операционная система видит только интерфейс контроллера, который может сильно отличаться от интерфейса самого устройства.

Поскольку все виды контроллеров отличаются, то для них требуется разное программное обеспечение. Программа, которая общается с контроллером, – драйвер устройства. Каждый производитель контроллеров должен поставлять драйверы для поддерживаемых операционных систем. Для использования драйвера его нужно установить в операционную систему так, чтобы он мог работать в режиме ядра. Есть три способа установки драйвера в ядро [14]:

• заново скомпоновать ядро вместе с новым драйвером и затем перезагрузить операционную систему (так работает множество операционных систем Unix);

• создать запись во входящем в операционную систему файле, говорящую о том, что требуется драйвер и затем перезагрузить систему; во время начальной загрузки операционная система сама находит нужные драйверы и загружает их (так работает Windows);

• операционная система может принимать новые драйверы, не прерывая работы, и оперативно устанавливать их, не нуждаясь в перезагрузке. Этот способ становится все более и более распространенным. Такие устройства как шины USB, IEEE 1394 всегда нуждаются в динамически загружаемых драйверах.

Ввод-вывод данных можно осуществлять тремя различными способами [14].

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

• Драйвер запускает устройство и просит его выдать прерывания по окончании ввода-вывода; после этого драйвер возвращает управление операционной системе, и она начинает выполнять другие задания. Когда контроллер обнаруживает окончание передачи данных, он генерирует прерывание о завершении операции. Процесс ввода-вывода, использующий прерывания, состоит из четырех шагов (Рисунок 3). На первом шаге драйвер передает команду контроллеру, записывая информацию в регистры устройств. Затем контроллер запускает устройство. Когда контроллер заканчивает чтение или запись того количества байтов, которое ему было указано передать, он посылает сигнал микросхеме контроллера прерываний, используя определенные провода шины. Это шаг второй. На третьем шаге если контроллер прерываний готов к обработке прерываний, то он подает сигнал на определенный контакт CPU, информируя его таким образом. На четвертом шаге контроллер прерываний вставляет номер устройства на шину, чтобы центральный процессор мог узнать, какое устройство завершило работу.

• Третий метод ввода-вывода информации заключается в использовании специального контролера прямого доступа к памяти DMA (Direct Memory Access). DMA управляет потоком битов между оперативной памятью и некоторыми контролерами без вмешательства CPU. Процессор обращается к микросхеме DMA, сообщает ей число байтов для передачи, а также адрес устройства и памяти, направление передачи данных. По завершении работы DMA инициирует прерывание, которое обрабатывается обычным порядком.


Рисунок 3 – Действия, выполняемые при запуске устройства ввода-вывода и получении прерывания

Из-за роста быстродействия процессора и памяти, в систему добавились дополнительные шины как для ускорения общения устройств ввода-вывода, так и для пересылки данных между процессором и памятью. На рисунке 4 приведена схема вычислительной системы первых Pentium.

В этой системе 8 шин (шина кэша, локальная шина, шина памяти, PCI, SCSI, USB, IDE, ISA), каждая со своей скоростью передачи данных и своими функциями. В операционной системе для управления компьютером должны находиться сведения обо всех этих шинах.

Центральный процессор по локальной шине передает данные микросхеме PCIмоста, – который в свою очередь обращается к памяти по выделенной шине. Система Pentium I имеет кэш первого уровня (L1) встроенный в процессор и намного больший кэш второго уровня (L2), подключенный к процессору отдельной шиной кэша. Шина IDE служит для присоединения периферийных устройств к системе (CD-ROM, жесткий диск).


Рисунок 4 – Структура системы Pentium

Шина USB (Universal Serial Bus) предназначена для присоединения к компьютеру дополнительных устройств ввода-вывода, таких как клавиатура, мышь, принтер, флэш-память и т.д. С течением времени появляются и добавляются новые более быстрые шины.

Читайте также: