
Тема 2.2 Ввод-вывод
Одна из важнейших функций операционной системы состоит в управлении всеми устройствами ввода-вывода компьютера. Программное обеспечение ввода-вывода составляет существенную часть операционной системы.
Операцией ввода-вывода называют передачу информации между процессором или памятью компьютера и любыми другими устройствами, которые по причине конструктивного отделения от процессора принято называть периферийными.
Элементарное функционирование периферийных устройств происходит под управлением программы, которая называется драйвером. Драйвер – программный модуль, который является совокупной частью ОС. Он осуществляет работу устройства в/в на программном уровне и обеспечивает связь устройства с ОС. Драйвер выполняет следующие функции:
принимает запросы на обращение к ПУ;
преобразует запросы в команды управления устройством с учетом всех деталей его конструкции;
обрабатывает передаваемые ПУ прерывания;
обнаруживает и обрабатывает случаи ошибок.
Типы драйверов
С точки зрения системы Plug and Play существуют следующие три типа драйверов:
Шинный драйвер (драйвер шины) обслуживает контроллер шины, адаптер, мост или любое устройство, которое имеет дочерние устройства. Шинные драйверы относятся к обязательным драйверам и обычно поставляются Microsoft. Для каждого типа шины в системе имеется собственный шинный драйвер.
Функциональный драйвер — это основной драйвер устройства, который предоставляет интерфейс с этим устройством. Этот драйвер является обязательным, за исключением случаев, когда ввод/вывод устройства осуществляется шинным драйвером. Функциональный драйвер устройства обычно реализуется в виде пары драйвер/мини-драйвер. В таких парах драйвер класса (обычно разрабатываемый Microsoft) обеспечивает функциональные возможности, необходимые всем устройствам этого типа, а мини-драйвер (обычно разрабатываемый фирмой-поставщиком конкретного устройства) обеспечивает специфические функциональные особенности устройства. Plug and Play Manager загружает по одному функциональному драйверу для каждого устройства.
Драйвер фильтра сортирует запросы ввода/вывода для шины, устройства или класса устройств. Драйверы фильтра являются необязательными и могут существовать в любом количестве, располагаясь на различных уровнях. В большинстве случаев драйверы фильтров нижнего уровня модифицируют поведение аппаратных средств. Например, низкоуровневый драйвер фильтра класса для мыши может обеспечивать ускорение ее работы, выполняя нелинейное преобразование данных о перемещении мыши. Высокоуровневые драйверы фильтров обычно предоставляют дополнительные функции для устройства. Например, высокоуровневый драйвер фильтра у для клавиатуры может вводить дополнительные проверки по безопасности.
Устройства ввода-вывода можно грубо разделить на две категории: блочные устройства и символьные устройства.
Блочными называются устройства, хранящие информацию в виде блоков фиксированного размера, причем у каждого блока имеется адрес. Обычно размеры бликов варьируются от 521 до 32 768 байт. Важное свойство блочного устройства состоит в том, что каждый его блок может быть прочитан независимо от остальных блоков. Наиболее распространенными блочными устройствами являются диски.
Символьное устройство принимает или предоставляет информацию поток символов без какой-либо блочной структуры. Оно не является адресуемым и не выполняет операцию поиска. Принтеры, сетевые интерфейсные карты, мыши (для указания точки на экране) и большинство других устройств, не похожих на диски, можно рассматривать как символьные устройства.