говоря о контроллере устройства можно утверждать что он
Говоря о контроллере устройства можно утверждать что он
Успешно изучив материал, вы будете знать :
что такое устройства ввода-вывода;
что такое прерывание;
что такое виртуальная память.
После изучения данной темы Вы будете уметь :
определять тип устройства ввода-вывода;
различать процессы и потоки;
определять допустимый объем виртуальной памяти.
После изучения материала Вы будете обладать навыками :
классификации устройств ввода-вывода по различным критериям;
диагностики компонентов аппаратных платформ на предмет выявления и устранения конфликтов.
Драйвер устройства
Обработчик прерываний
Виртуальная память
Страничная организация памяти
Одним из важнейших понятий операционных систем является понятие процесса.
Процесс — программа, которая в данный момент выполняется вычислительной машиной.
Задача планирования процессов заключается в отслеживании их состояния и использования ими вычислительных ресурсов. Как уже упоминалось в теме 1, вычислительный ресурс в каждый конкретный момент времени может быть задействован только одним процессом. Если несколько процессов должны использовать один и тот же ресурс, то они используют его по очереди. Очередность использования определяется приоритетом процесса. Чем выше приоритет процесса, тем чаще он будет получать доступ к требуемым ресурсам.
Каждый процесс представлен как минимум одним потоком.
Поток — последовательность исполняемых команд.
В рамках одного и того же процесса может выполняться несколько разных потоков. Использование нескольких потоков позволяет сократить время исполнения программы. Такой подход удобен, если этапы решения задачи, для которой создавалась программа, можно выполнять параллельно. Потоки обладают некоторыми свойствами процессов. В отличие от процессов, потоки существуют в одном и том же адресном пространстве и могут одновременно работать с выделенными процессу ресурсами.
Устройства ввода-вывода делятся на две категории — блочные и символьные.
Блочные устройства — оперируют блоками данных, размер которых варьируется в зависимости от устройства. Каждый блок в блочном устройстве имеет собственный адрес. Примером блочного устройства может служить любой накопитель. Одним из наиболее важных свойств блочного устройства является возможность независимого доступа к блокам данных.
Символьные устройства — оперируют потоками данных, не имеющими структуры или адреса. Большинство устройств являются символьными.
Устройство ввода-вывода обычно состоит из двух частей — само устройство и его контроллер. Контроллер осуществляет управление работой устройства на физическом уровне. Контроллер выполняется в виде набора микросхем и либо совмещен с устройством, либо установлен на системной плате. Если контроллер установлен на системной плате, то обычно он позволяет работать с двумя и более устройствами данного типа. Примером такого контроллера может служить контроллер накопителей на жестких магнитных дисках, который позволяет работать одновременно с двумя НЖМД. Задачей контроллера является преобразование потока битов в блок байтов. Считываемые биты накапливаются в памяти контроллера, которая называется буфером данных, и затем в виде блоков байтов передаются в оперативную память. Каждый контроллер, помимо буфера, имеет также несколько регистров, посредством которых процессор может управлять работой контроллера.
Первый способ заключается в том, что каждому регистру назначается уникальный номер порта ввода-вывода. При таком способе адресное пространство оперативной памяти не пересекается с адресным пространством устройств ввода-вывода.
Второй способ заключается в выделении каждому регистру отдельного сегмента оперативной памяти. Преимущество второго способа в том, что для программирования работы устройств не нужно прибегать к машинным языкам, а также в том, что при таком подходе для защиты от несанкционированного доступа к устройствам достаточно исключить часть адресного пространства устройств ввода-вывода из блока адресов памяти, доступных пользователям. Недостаток этого подхода в том, что для его реализации необходимо использование более сложной аппаратуры. Повышение сложности аппаратуры обуславливается тем фактором, что некоторые приемы, используемые для ускорения работы с памятью, могут привести к катастрофическим последствиям при использовании их с устройствами ввода-вывода.
Прерывание — это сигнал процессору о том, что ему необходимо прервать выполнение текущего процесса и вызвать обработчик прерывания.
Обработчик прерывания — это программа, которую процессор должен выполнить при возникновении прерывания. Обработчик прерывания является частью драйвера устройства. Драйвер устройства
обеспечивает взаимодействие устройства с операционной системой. В состав операционной системы включен набор стандартных драйверов для поддержки различного оборудования, которое может быть подключено к компьютеру. Если подключаемое устройство обладает какими-либо функциями, которые недоступны операционной системе при использовании стандартного драйвера для данного типа оборудования, то такое устройство, как правило, снабжено собственным драйвером, который устанавливается при первом использовании устройства.
Виртуальная память (swap) — такой метод работы с памятью, когда в оперативной памяти хранятся только те части программы, которые используются в конкретный момент времени.
Процесс — это программа, выполняемая на процессоре, плюс обрабатываемые данные.
Каждый процесс состоит как минимум из одного потока.
Задача, решаемая многопоточным процессом, решается быстрее, чем однопоточным.
Устройства ввода-вывода бывают символьные и блочные. Блочное устройство позволяет работать одновременно с несколькими блоками данных.
Для работы с устройствами ввода-вывода используются механизм прямого доступа к памяти и прерывания.
Драйвер устройства необходим операционной системе для того, чтобы осуществлять взаимодействие с данным видом устройств.
Механизм виртуальной памяти позволяет выполнять программы, которые требуют больше физической памяти, чем есть на компьютере.
Верно ли утверждение, что процессы, в отличие от потоков, выполняются в од-ном и том же адресном пространстве?
В чем разница между процессом и потоком?
Каков принцип работы блочного устройства ввода-вывода?
Каков принцип работы символьного устройства ввода-вывода?
В чем заключается задача контроллера устройства?
Почему механизм прямого доступа к памяти повышает производительность компьютера?
Является ли обработчик прерывания частью драйвера устройства?
Каким образом можно выполнить программу, размер которой превышает объем доступной физической памяти?
Задания для самостоятельной работы
Выполните задания к теме 2 в тетради-практикуме.
Контроллеры устройств
Устройства ввода-вывода обычно состоят из механической части и электронной части.
Электронный компонент устройства называется контроллером устройства или адаптером. В персональных компьютерах он часто принимает форму печатной платы, вставляемой в слот расширения. Плата контроллера обычно снабжается разъемом, к которому может быть подключен кабель, ведущий к самому устройству. Многие контроллеры способны управлять двумя, четырьмя или даже восемью идентичными устройствами. Если интерфейс между контроллером и устройством является стандартным, то есть официальным стандартом ANSI, IEEE или ISO, либо фактическим стандартом, тогда различные компании могут выпускать отдельно контроллеры и устройства, удовлетворяющие данному интерфейсу. Так, многие компании производят жесткие диски, соответствующие интерфейсу IDE или SCSI.
Интерфейс между устройством и контроллером является интерфейсом очень низкого уровня. Например, какой-нибудь жесткий диск может быть отформатирован по 256 секторов на дорожку, с размером секторов по 512 байт. В действительности с диска в контроллер поступает последовательный поток битов, начинающийся с заголовка сектора (преамбулы), за которым следует 4096 бит в секторе, и, наконец, контрольная сумма, также называемая кодом исправления ошибок (ЕСС, Error-Correcting Code). Заголовок сектора записывается на диск во время форматирования. Он содержит номера цилиндра и сектора, размер сектора, информацию синхронизации и т. п.
Работа контроллера заключается в конвертировании последовательного потока битов в блок байтов и выполнение коррекции ошибок, если это необходимо. Обычно байтовый блок собирается бит за битом в буфере контроллера. Затем проверяется контрольная сумма блока, и если она совпадает с указанной в заголовке сектора, блок объявляется считанным без ошибок, после чего он копируется в оперативную память.
Контроллер монитора (видеоадаптер) также работает как бит-последовательное устройство, на таком же низком уровне. Он считывает в памяти байты, содержащие символы, которые следует отобразить, и формирует сигналы, используемые для модуляции луча электронной трубки, заставляющие ее выводить изображение на экран. Видеоадаптер также формирует сигналы, управляющие горизонтальным и вертикальным возвратом электронного луча. Если бы не контроллер, программисту пришлось бы управлять перемещениями аналогового электронного луча. В действительности же операционная система всего лишь инициализирует контроллер, задавая небольшое число параметров, таких как количество символов или пикселей в строке и число строк на экране, а всю тяжелую работу по управлению передвижениями электронного луча по экрану выполняет контроллер.