Перейти к содержимому

Какие операции определяют взаимодействие драйвера с контроллером

  • автор:

Связь компьютера с периферийными устройствами

Частным случаем связи «точка-точка» является соединение компьютера с периферийным устройством. Поскольку механизмы взаимодействия компьютеров в сети многое позаимствовали у схемы взаимодействия компьютера с периферийными устройствами, начнем рассматривать принципы работы сети с этого «досетевого» случая.

Для обмена данными компьютер и периферийное устройство (ПУ) оснащены внешними интерфейсами или портами (рис. 3.1). В данном случае к понятию «интерфейс» относятся:

набор проводов, соединяющих устройства;

совокупность правил обмена информацией по этим проводам.

Со стороны компьютера логикой передачи сигналов на внешний интерфейс управляют:

контроллер ПУ — аппаратный блок, часто реализуемый в виде отдельной платы;

драйвер ПУ – программа, управляющая контроллером периферийного устройства.

Со стороны ПУ интерфейс чаще всего реализуется аппаратным устройством управления ПУ, хотя встречаются и программно-управляемые периферийные устройства.

Обмен данными между ПУ и компьютером, как правило, является двунаправленным. Так, например, даже принтер, который представляет собой устройство вывода информации, возвращает в компьютер данные о своем состоянии.

Таким образом, по каналу, связывающему внешние интерфейсы, передается следующая информация:

данные, поступающие от контроллера на ПУ, например байты текста, который нужно распечатать на бумаге;

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

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

Рассмотрим последовательность действий, которые выполняются в том случае, когда некоторому приложению требуется напечатать текст на принтере. Со стороны компьютера в выполнении этой операции принимает участие, кроме уже названных контроллера, драйвера и приложения, еще один важнейший компонент — операционная система. Поскольку все операции ввода-вывода являются привилегированными, все приложения при выполнении операций с периферийными устройствами используют ОС как арбитра. Итак, последовательность действий такова:

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

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

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

Контроллер перемещает данные из внутреннего буфера во внешний порт.

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

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

Рис. 3.1. Связь компьютера с периферийным устройством.

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

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

Возможно распределение функций между драйвером и контроллером (ПУ).

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

ведение очередей запросов;

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

анализ состояния ПУ;

загрузка очередного байта данных (или команды) в регистр контроллера;

считывание байта данных или байта состояния ПУ из регистра контроллера.

Функции, выполняемые контроллером:

преобразование байта из регистра (порта) в последовательность бит;

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

Какие особенности характерны для современных универсальных операционных систем?

+ 1. поддержка многозадачности

+ 2. поддержка сетевых функций

+ 3. обеспечение безопасности и защиты данных

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

Какие утверждения относительно понятия «API-функция» являются правильными?

+ 1. API-функции определяют прикладной программный интерфейс

+ 2. API-функции используются при разработке приложений для доступа к ресурсам компьютера

3. API-функции реализуют самый нижний уровень ядра системы

4. API-функции — это набор аппаратно реализованных функций системы

Какие особенности характерны для ОС Unix

+ 1. открытость и доступность исходного кода

2. ориентация на использование оконного графического интерфейса

+ 3. использование языка высокого уровня С

+ 4. возможность достаточно легкого перехода на другие аппаратные платформы

Какие типы операционных систем используются наиболее часто в настоящее время?

+ 1. системы семейства Windows

+ 2. системы семейства Unix/Linux

3. системы семейства MS DOS

4. системы семейства IBM OS 360/370

Какие задачи необходимо решать при создании мультипрограммны х ОС

+ 1. защита кода и данных разных приложений, размещенных вместе в основной памяти

+ 2. централизованное управление ресурсами со стороны ОС

+ 3. переключение процессора с одного приложения на другое

4. необходимость размещения в основной памяти кода и данных сразу многих приложений

Какое соотношение между используемыми на СЕРВЕРАХ операционными системами сложилось в настоящее время?

+ 1. примерно поровну используются системы семейств Windows и Unix/Linux

2. около 10 % — системы семейства Windows, около 90 % — системы смейства Unix/Linux

3. около 90 % — системы семейства Windows, около 10 % — системы семейства Unix/Linux

4. около 30 % — системы семейства Windows, около 30 % — системы семейства Unix/Linux, около 40 % — другие системы

Какие утверждения относительно понятия «Ядро операционной системы» являются правильными?

+ 1. ядро реализует наиболее важные функции ОС

+ 2. подпрограммы ядра выполняются в привилегированно м режиме работы процессора

3. ядро в сложных ОС может строиться по многоуровневому принципу

4. ядро всегда реализуется на аппаратном уровне

Какие сообщения возникают при нажатии на клавиатуре алфавитно-цифров ой клавиши?

Какие шаги в алгоритме взаимодействия приложения с системой выполняются операционной системой

1. формирование сообщения и помещение его в системную очередь

+ 2. распределение сообщений по очередям приложений

+ 3. вызов оконной функции для обработки сообщения

4. извлечение сообщения из очереди приложения

Что представляет собой понятие “сообщение” (message)?

1. небольшую структуру данных, содержащую информацию о некотором событии

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

3. однобайтовое поле с кодом происшедшего события

+ 4. небольшое окно, выводящее пользователю информацию о возникшем событии

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

+ 1. главное окно может содержать любое число подчиненных окон

+ 2. любое подчиненное окно может содержать свои подчиненные окна

3. подчиненные окна могут быть двух типов – дочерние и всплывающие

+ 4. приложение может иметь несколько главных окон

Как можно узнать координаты текущего положения мыши при нажатии левой кнопки

+ 1. с помощью события WM_LbuttonDown и его поля LPARAM

2. с помощью события WM_LbuttonDown и его поля WPARAM

3. с помощью события WM_LbuttonDown и его полей WPARAM и LPARAM

4. с помощью события WM_LbuttonCoordi nates

Какие функции можно использовать для получения контекста устройства?

Какая инструкция (оператор) является основной при написании оконной функции?

+ 1. инструкция множественного выбора типа Case — Of

2. условная инструкция if – then

3. инструкция цикла с известным числом повторений

4. инструкция цикла с неизвестным числом повторений

Какой вызов позволяет добавить строку в элемент-список?

+ 1. SendMessage (MyEdit, lb_AddString, 0, строка)

2. SendMessage (“Edit”, lb_AddString, 0, строка)

3. SendMessage (MyEdit, AddString, 0, строка)

4. SendMessage (MyEdit, строка, lb_AddString, 0)

Какие утверждения относительно оконной функции являются правильными

+ 1. оконная функция принимает 4 входных параметра

+ 2. тело оконной функции – это инструкция выбора с обработчиками событий

+ 3. оконная функция обязательно должна обрабатывать сообщение wm_Destroy

+ 4. оконная функция явно вызывается из основной функции приложения

Какие сообщения возникают при нажатии на клавиатуре функциональной клавиши?

Что может быть причиной появления внутреннего прерывания

+ 1. попытка деления на ноль

2. попытка выполнения запрещенной команды

+ 3. попытка обращения по несуществующему адресу

4. щелчок кнопкой мыши

Какие операции определяют взаимодействие драйвера с контроллером

+ 1. проверка состояния устройства

+ 2. запись данных в регистры контроллера

+ 3. чтение данных из регистров контроллера

4. обработка прерываний от устройства

Какие операции включает в себя вызов обработчика нового прерывания

+ 1. обращение к таблице векторов прерываний для определения адреса первой команды вызываемого обработчика

2. сохранение контекста для прерываемого программного кода

+ 3. занесение в счетчик команд начального адреса вызываемого обработчика

+ 4. внесение необходимых изменений в таблицу векторов прерываний

Что входит в программный уровень подсистемы ввода/вывода

2. диспетчер ввода/вывода

+ 3. системные вызовы

Что определяет понятие “порт ввода/вывода”

+ 1. порядковый номер или адрес регистра контроллера

2. машинную команду ввода/вывода

3. устройство ввода/вывода

4. контроллер устройства ввода/вывода

Какие существуют типы прерываний

+ 1. внешние или аппаратные прерывания

+ 2. внутренние прерывания или исключения

+ 3. программные псевдопрерывания

4. системные прерывания

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

+ 1. прерывания — это механизм реагирования вычислительной системы на происходящие в ней события

2. прерывания используются для синхронизации работы основных устройств вычислительной системы

+ 3. прерывания возникают в непредсказуемые моменты времени

4. прерывания — это основной механизм планирования потоков

Какую информацию могут содержать регистры контроллеров устройства

+ 1. текущее состояние устройства

+ 2. текущую выполняемую устройством команду

3. данные, передаваемые от устройства системе

4. данные, передаваемые системой устройству

Как выстраиваются аппаратные прерывания в зависимости от их приоритета

1. сбой аппаратуры > таймер > дисковые устройства > сетевые устройства > клавиатура и мышь

2. сбой аппаратуры > таймер > дисковые устройства > клавиатура и мышь > сетевые устройства

+ 3. таймер > сбой аппаратуры > дисковые устройства > сетевые устройства > клавиатура и мышь

4. сбой аппаратуры > дисковые устройства > таймер > сетевые устройства > клавиатура и мышь

Что может быть причиной появления внешнего прерывания

+ 1. нажатие клавиши на клавиатуре

+ 2. завершение дисковой операции

3. обращение выполняемой процессором команды по несуществующему адресу

Тест по дисциплине «Операционные системы и среды»

Ищем педагогов в команду «Инфоурок»

Какие базовые функции ОС не выполняют модули ядра?

управление устройствами ввода-вывода.

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

Что дистрибутив Ubuntu имеет в качестве графической рабочей среды?

Какой из корневых разделов системного реестра хранит информацию об установленных в данный момент аппаратурных средствах?

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

Какая программа позволяет программным способом увеличить доступное пространство на жестком диске?

Какой тип параметров реестра не существует?

Как называются программы, позволяющие создавать копии файлов меньшего размера и объединять копии нескольких файлов в один архивный файл?

Какой раздел опций позволяет изменять настройки устройств ручного ввода?

Advanced BIOS Features;

Hard Disk Boot Priority;

Standard CMOS Features;

Advanced Chipset Features

Как называются неподвижные или анимированные изображения, которые появляются на экране компьютера после какого-то времени бездействия?

тема рабочего стола;

Какие функции обеспечивает оператор R EN ?

чтение и обработка строк из текстового файла;

приостановка дальнейшей обработки пакетного файла;

внесение комментария в текст командного файла;

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

Какое расширение имеют пакетные командные файлы MS DOS ?

Что такое системный реестр?

область на диске для выгрузки задач;

структура с набором системных переменных;

база данных для хранения сведений о конфигурации компьютера и настроек ОС;

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

Какой операционной системы не существует?

Где находится BIOS?

в оперативном запоминающем устройстве;

в постоянном запоминающем устройстве.

Какой тип ОС не относится к многозадачным?

система пакетной обработки;

система реального времени;

система индивидуальной обработки.

Какая команда используется для переименования файла?

Какие команды ОС DOS называются внутренними?

команды, предназначенные для создания файлов и каталогов;

команды, встроенные в DOS;

команды, которые имеют расширения txt, doc.

Какая команда используется для создания папки из bat файла?

Для чего служит загрузчик операционной системы?

загрузки программ в оперативную память ЭВМ;

обработки команд, введенных пользователем;

считывания в память модулей операционной системы io.sys и msdos.sys;

подключения устройств ввода-вывода.

Какой подсистемы управления нет в ОС?

Как называется информационная структура, которая содержит информацию, необходимую для возобновления выполнения процесса после прерывания и поэтому сохраняемую перед прерыванием?

Какое состояние не определено для потока в системе?

Каких классов прерываний не существует?

Частью чего является файловая система?

Какую структуру образуют файлы?

Какие типы разделов поддерживает ОС Windows?

Какую информацию не содержит дескриптор процесса?

информацию о состоянии процесса;

данные о родственных процессах;

режим работы процессора.

Какой максимальный размер диска поддерживает FAT16?

Что из ниже перечисленного является недостатком файловой системы FAT?

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

не поддерживают длинных имен файлов;

не содержат средств поддержки отказоустойчивости.

Где содержится главная загрузочная запись (MBR)?

в операционной системе;

в самом первом секторе на винчестере;

в самом первом цилиндре на винчестере;

в самой первой дорожке на винчестере.

Какой из корневых разделов системного реестра содержит информацию о технологии OLE, отвечает за настройки интерфейса?

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

Какой вирус относится к вирусам, различающимся по среде обитания?

очень опасный вирус;

Что произойдет, если при загрузке не будет выбрана ни одна из предложенных операционных систем?

появится надпись, с предложением обратиться к администратору;

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

компьютер будет ждать вашего решения.

Какая команда позволяет управлять потоком вывода на дисплей?

Кто является создателем операционной системы Linux?

Какое название носят современные операционные системы компании Microsoft?

Как называется папка, которая выступает в качестве вершины файловой структуры?

папка верхнего уровня.

Названиями чего являются KDE, GNOME, Xfce?

оболочек операционной системы Linux;

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

Какая системная программа служит для управления всеми разделяемыми ресурсами компьютера?

диспетчер виртуальной памяти.

Какая команда используется для просмотра оглавления каталога?

Для чего используется утилита CMOS Setup?

для начальной загрузки компьютера;

для изменения текущих настроек базовой системы ввода-вывода;

для работы с графическими редакторами;

для создания резервной копии операционной системы.

Какая команда используется для приостановки выполнения командных файлов?

Какие функции выполняет операционная система?

обеспечение организации и хранения файлов;

подключения устройств ввода/вывода;

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

организация диалога с пользователем, управление ресурсами компьютера.

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

Какие операционные системы управляют разделением совместно используемых ресурсов?

Какой тип записи реестра не существует?

Каких смен состояний не существует в системе?

Как называется информационная структура, которая содержит информацию о процессе, необходимую ядру ОС в течение всего жизненного цикла процесса независимо от его состояния?

Какую информацию не содержит контекст процесса?

режим работы процессора;

данные о родственных процессах ;

указатели на открытые файлы.

Где хранятся атрибуты файлов в файловой системе FAT?

в индексных дескрипторах;

Как называется раздел, с которого загружается ОС при запуске компьютера?

Что отражает числовое значение 12, 16, 32 в файловой системе FAT?

размер кластера на диске;

разрядность элемента в таблице FAT;

допустимое количество символов в имени файла.

Какая запись имени текстового файла является правильной?

текст, распечатанный на принтере;

поименованная область данных на внешнем носителе памяти;

программа в оперативной памяти;

единица измерения информации.

базовая система ввода-вывода;

командный язык операционной системы.

Какой вид многозадачности не существует?

кооперативная (не вытесняющая) многозадачность;

1. Какие ОС называются мультипрограммными

обеспечивающие одновременную работу нескольких пользователей

поддерживающие сетевую работу компьютеров

обеспечивающие запуск одновременно нескольких программ

состоящие более чем из одной программы

2 Какие существуют способы реализации ядра системы?

многоуровневая (многослойная) организация

3. Что обычно входит в состав ядра ОС

высокоуровневые диспетчеры ресурсов

аппаратная поддержка функций ОС процессором

базовые исполнительные модули

набор системных API-функций

4 Какие особенности характерны для современных универсальных операционных систем?

поддержка сетевых функций

обеспечение безопасности и защиты данных

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

5.Какие утверждения относительно понятия «API-функция» являются правильными?

API-функции определяют прикладной программный интерфейс

API-функции используются при разработке приложений для доступа к ресурсам компьютера

API-функции реализуют самый нижний уровень ядра системы

API-функции — это набор аппаратно реализованных функций системы

6 Какие особенности характерны для ОС Unix

открытость и доступность исходного кода

ориентация на использование оконного графического интерфейса

использование языка высокого уровня С

возможность достаточно легкого перехода на другие аппаратные платформы

7 Какие типы операционных систем используются наиболее часто в настоящее время?

системы семейства Windows

системы семейства Unix/Linux

системы семейства MS DOS

системы семейства IBM OS 360/370

8 Какие задачи необходимо решать при создании мультипрограммных ОС

защита кода и данных разных приложений, размещенных вместе в основной памяти

централизованное управление ресурсами со стороны ОС

переключение процессора с одного приложения на другое

необходимость размещения в основной памяти кода и данных сразу многих приложений

9. Какое соотношение между используемыми на СЕРВЕРАХ операционными системами сложилось в настоящее время?

примерно поровну используются системы семейств Windows и Unix/Linux

около 10 % — системы семейства Windows, около 90 % — системы смейства Unix/Linux

около 90 % — системы семейства Windows, около 10 % — системы семейства Unix/Linux

около 30 % — системы семейства Windows, около 30 % — системы семейства Unix/Linux, около 40 % — другие системы

10 Какие утверждения относительно понятия «Ядро операционной системы» являются правильными?

ядро реализует наиболее важные функции ОС

подпрограммы ядра выполняются в привилегированном режиме работы процессора

ядро в сложных ОС может строиться по многоуровневому принципу

ядро всегда реализуется на аппаратном уровне

11. Какие сообщения возникают при нажатии на клавиатуре алфавитно-цифровой клавиши?

12 Какие шаги в алгоритме взаимодействия приложения с системой выполняются операционной системой

формирование сообщения и помещение его в системную очередь

распределение сообщений по очередям приложений

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

извлечение сообщения из очереди приложения

13 Что представляет собой понятие “сообщение” (message)?

небольшую структуру данных, содержащую информацию о некотором событии

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

однобайтовое поле с кодом происшедшего события

небольшое окно, выводящее пользователю информацию о возникшем событии

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

главное окно может содержать любое число подчиненных окон

любое подчиненное окно может содержать свои подчиненные окна

подчиненные окна могут быть двух типов – дочерние и всплывающие

приложение может иметь несколько главных окон

15 Как можно узнать координаты текущего положения мыши при нажатии левой кнопки

с помощью события WM_LbuttonDown и его поля LPARAM

с помощью события WM_LbuttonDown и его поля WPARAM

с помощью события WM_LbuttonDown и его полей WPARAM и LPARAM

с помощью события WM_LbuttonCoordinates

16 Какие функции можно использовать для получения контекста устройства?

17 Какая инструкция (оператор) является основной при написании оконной функции?

инструкция множественного выбора типа Case — Of

условная инструкция if – then

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

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

18 Какой вызов позволяет добавить строку в элемент-список?

SendMessage (MyEdit, lb_AddString, 0, строка )

SendMessage (“Edit”, lb_AddString, 0, строка )

SendMessage (MyEdit, AddString, 0, строка )

19 Какие утверждения относительно оконной функции являются правильными

оконная функция принимает 4 входных параметра

тело оконной функции – это инструкция выбора с обработчиками событий

оконная функция обязательно должна обрабатывать сообщение wm_Destroy

оконная функция явно вызывается из основной функции приложения

20 Какие сообщения возникают при нажатии на клавиатуре функциональной клавиши?

21 Что может быть причиной появления внутреннего прерывания

попытка деления на ноль

попытка выполнения запрещенной команды

попытка обращения по несуществующему адресу

щелчок кнопкой мыши

22 Какие операции определяют взаимодействие драйвера с контроллером

проверка состояния устройства

запись данных в регистры контроллера

чтение данных из регистров контроллера

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

23 Какие операции включает в себя вызов обработчика нового прерывания

обращение к таблице векторов прерываний для определения адреса первой команды вызываемого обработчика

сохранение контекста для прерываемого программного кода

занесение в счетчик команд начального адреса вызываемого обработчика

внесение необходимых изменений в таблицу векторов прерываний

24 Что входит в программный уровень подсистемы ввода/вывода

25 Что определяет понятие “порт ввода/вывода”

порядковый номер или адрес регистра контроллера

машинную команду ввода/вывода

контроллер устройства ввода/вывода

26 Какие существуют типы прерываний

внешние или аппаратные прерывания

внутренние прерывания или исключения

27 Какие утверждения относительно понятия прерывания являются правильными

прерывания — это механизм реагирования вычислительной системы на происходящие в ней события

прерывания используются для синхронизации работы основных устройств вычислительной системы

прерывания возникают в непредсказуемые моменты времени

прерывания — это основной механизм планирования потоков

28 Какую информацию могут содержать регистры контроллеров устройства

текущее состояние устройства

текущую выполняемую устройством команду

данные, передаваемые от устройства системе

данные, передаваемые системой устройству

29 Как выстраиваются аппаратные прерывания в зависимости от их приоритета

сбой аппаратуры > таймер > дисковые устройства > сетевые устройства > клавиатура и мышь

сбой аппаратуры > таймер > дисковые устройства > клавиатура и мышь > сетевые устройства

таймер > сбой аппаратуры > дисковые устройства > сетевые устройства > клавиатура и мышь

сбой аппаратуры > дисковые устройства > таймер > сетевые устройства > клавиатура и мышь

30 Что может быть причиной появления внешнего прерывания

нажатие клавиши на клавиатуре

завершение дисковой операции

обращение выполняемой процессором команды по несуществующему адресу

попытка выполнения запрещенной команды

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

Курс повышения квалификации

Дистанционное обучение как современный формат преподавания

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

Курс повышения квалификации

Современные педтехнологии в деятельности учителя

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

Курс профессиональной переподготовки

Математика и информатика: теория и методика преподавания в образовательной организации

Номер материала: ДБ-1636677

Международная дистанционная олимпиада Осень 2021

Не нашли то что искали?

Вам будут интересны эти курсы:

Оставьте свой комментарий

Авторизуйтесь, чтобы задавать вопросы.

Безлимитный доступ к занятиям с онлайн-репетиторами

Выгоднее, чем оплачивать каждое занятие отдельно

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

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

Школьники Свердловской области с 8 ноября перейдут на дистанционку

Время чтения: 0 минут

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

Роспотребнадзор продлил действие санитарных правил для школ

Время чтения: 1 минута

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

В Минобрнауки разрешили вузам продолжить удаленную работу после 7 ноября

Время чтения: 1 минута

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

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

Время чтения: 2 минуты

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

«Спутник» объявили словом года в России

Время чтения: 2 минуты

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

В школе в Пермском крае произошла стрельба

Время чтения: 1 минута

Подарочные сертификаты

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

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

Что входит в программный уровень подсистемы ввода вывода

Операционная система — Программное обеспечение ввода / вывода

Программное обеспечение ввода / вывода часто организовано на следующих уровнях:

Библиотеки уровня пользователя — это обеспечивает простой интерфейс для пользовательской программы для выполнения ввода и вывода. Например, stdio — это библиотека, предоставляемая языками программирования C и C ++.

Модули уровня ядра — это обеспечивает драйвер устройства для взаимодействия с контроллером устройства и независимыми от устройства модулями ввода / вывода, используемыми драйверами устройства.

Аппаратное обеспечение — этот уровень включает в себя фактический аппаратный и аппаратный контроллер, который взаимодействует с драйверами устройства и обеспечивает работу оборудования.

Библиотеки уровня пользователя — это обеспечивает простой интерфейс для пользовательской программы для выполнения ввода и вывода. Например, stdio — это библиотека, предоставляемая языками программирования C и C ++.

Модули уровня ядра — это обеспечивает драйвер устройства для взаимодействия с контроллером устройства и независимыми от устройства модулями ввода / вывода, используемыми драйверами устройства.

Аппаратное обеспечение — этот уровень включает в себя фактический аппаратный и аппаратный контроллер, который взаимодействует с драйверами устройства и обеспечивает работу оборудования.

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

Что входит в программный уровень подсистемы ввода вывода

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

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

Драйвер устройства выполняет следующие задания:

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

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

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

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

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

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

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

User-Space I / O Software

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

Библиотеки ввода / вывода (например, stdio) находятся в пользовательском пространстве, чтобы предоставить интерфейс к независимому от устройства резидентному программному обеспечению ввода / вывода. Например, putchar (), getchar (), printf () и scanf () являются примером stdio библиотеки ввода-вывода пользовательского уровня, доступной в C-программировании.

Подсистема ввода / вывода ядра

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

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

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

Кеширование — Ядро поддерживает кеш-память, которая является областью быстрой памяти, в которой хранятся копии данных. Доступ к кэшированной копии более эффективен, чем доступ к оригиналу.

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

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

Подсистема ввода-вывода. Файловые системы

7.1. Устройства ввода-вывода

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

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

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

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

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

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

7.2. Назначение, задачи и технологии подсистемы ввода-вывода

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

На подсистему ввода-вывода возлагаются следующие функции [5, 17]:

Эволюция ввода-вывода может быть представлена следующими этапами [17].

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

Для персональных компьютеров операции ввода-вывода могут выполняться тремя способами.

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

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

Что входит в программный уровень подсистемы ввода вывода

Что входит в программный уровень подсистемы ввода вывода

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

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

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

Тест с ответами по дисциплине Операционные системы

Какие ОС называются мультипрограммны ми

1. обеспечивающие одновременную работу нескольких пользователей

2. поддерживающие сетевую работу компьютеров

+3. обеспечивающие запуск одновременно нескольких программ

4. состоящие более чем из одной программы

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

+1. многоуровневая (многослойная) организация

+2. микроядерная организация

3. реализация распределеннная

4. монолитная организация

Что обычно входит в состав ядра ОС

+1. высокоуровневые диспетчеры ресурсов

+2. аппаратная поддержка функций ОС процессором

+ 3. базовые исполнительные модули

+ 4. набор системных API-функций

Какие особенности характерны для современных универсальных операционных систем?

+ 1. поддержка многозадачности

+ 2. поддержка сетевых функций

+ 3. обеспечение безопасности и защиты данных

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

Какие утверждения относительно понятия «API-функция» являются правильными?

+ 1. API-функции определяют прикладной программный интерфейс

+ 2. API-функции используются при разработке приложений для доступа к ресурсам компьютера

3. API-функции реализуют самый нижний уровень ядра системы

4. API-функции — это набор аппаратно реализованных функций системы

Какие особенности характерны для ОС Unix

+ 1. открытость и доступность исходного кода

2. ориентация на использование оконного графического интерфейса

+ 3. использование языка высокого уровня С

+ 4. возможность достаточно легкого перехода на другие аппаратные платформы

Какие типы операционных систем используются наиболее часто в настоящее время?

+ 1. системы семейства Windows

+ 2. системы семейства Unix/Linux

3. системы семейства MS DOS

4. системы семейства IBM OS 360/370

Какие задачи необходимо решать при создании мультипрограммны х ОС

+ 1. защита кода и данных разных приложений, размещенных вместе в основной памяти

+ 2. централизованное управление ресурсами со стороны ОС

+ 3. переключение процессора с одного приложения на другое

4. необходимость размещения в основной памяти кода и данных сразу многих приложений

Какое соотношение между используемыми на СЕРВЕРАХ операционными системами сложилось в настоящее время?

+ 1. примерно поровну используются системы семейств Windows и Unix/Linux

2. около 10 % — системы семейства Windows, около 90 % — системы смейства Unix/Linux

3. около 90 % — системы семейства Windows, около 10 % — системы семейства Unix/Linux

4. около 30 % — системы семейства Windows, около 30 % — системы семейства Unix/Linux, около 40 % — другие системы

Какие утверждения относительно понятия «Ядро операционной системы» являются правильными?

+ 1. ядро реализует наиболее важные функции ОС

+ 2. подпрограммы ядра выполняются в привилегированно м режиме работы процессора

3. ядро в сложных ОС может строиться по многоуровневому принципу

4. ядро всегда реализуется на аппаратном уровне

Какие сообщения возникают при нажатии на клавиатуре алфавитно-цифров ой клавиши?

Какие шаги в алгоритме взаимодействия приложения с системой выполняются операционной системой

1. формирование сообщения и помещение его в системную очередь

+ 2. распределение сообщений по очередям приложений

+ 3. вызов оконной функции для обработки сообщения

4. извлечение сообщения из очереди приложения

Что представляет собой понятие “сообщение” (message)?

1. небольшую структуру данных, содержащую информацию о некотором событии

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

3. однобайтовое поле с кодом происшедшего события

+ 4. небольшое окно, выводящее пользователю информацию о возникшем событии

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

+ 1. главное окно может содержать любое число подчиненных окон

+ 2. любое подчиненное окно может содержать свои подчиненные окна

3. подчиненные окна могут быть двух типов – дочерние и всплывающие

+ 4. приложение может иметь несколько главных окон

Как можно узнать координаты текущего положения мыши при нажатии левой кнопки

+ 1. с помощью события WM_LbuttonDown и его поля LPARAM

2. с помощью события WM_LbuttonDown и его поля WPARAM

3. с помощью события WM_LbuttonDown и его полей WPARAM и LPARAM

4. с помощью события WM_LbuttonCoordi nates

Какие функции можно использовать для получения контекста устройства?

Какая инструкция (оператор) является основной при написании оконной функции?

+ 1. инструкция множественного выбора типа Case — Of

2. условная инструкция if – then

3. инструкция цикла с известным числом повторений

4. инструкция цикла с неизвестным числом повторений

Какой вызов позволяет добавить строку в элемент-список?

+ 1. SendMessage (MyEdit, lb_AddString, 0, строка)

2. SendMessage (“Edit”, lb_AddString, 0, строка)

3. SendMessage (MyEdit, AddString, 0, строка)

4. SendMessage (MyEdit, строка, lb_AddString, 0)

Какие утверждения относительно оконной функции являются правильными

+ 1. оконная функция принимает 4 входных параметра

+ 2. тело оконной функции – это инструкция выбора с обработчиками событий

+ 3. оконная функция обязательно должна обрабатывать сообщение wm_Destroy

+ 4. оконная функция явно вызывается из основной функции приложения

Какие сообщения возникают при нажатии на клавиатуре функциональной клавиши?

Что может быть причиной появления внутреннего прерывания

+ 1. попытка деления на ноль

2. попытка выполнения запрещенной команды

+ 3. попытка обращения по несуществующему адресу

4. щелчок кнопкой мыши

Какие операции определяют взаимодействие драйвера с контроллером

+ 1. проверка состояния устройства

+ 2. запись данных в регистры контроллера

+ 3. чтение данных из регистров контроллера

4. обработка прерываний от устройства

Какие операции включает в себя вызов обработчика нового прерывания

+ 1. обращение к таблице векторов прерываний для определения адреса первой команды вызываемого обработчика

2. сохранение контекста для прерываемого программного кода

+ 3. занесение в счетчик команд начального адреса вызываемого обработчика

+ 4. внесение необходимых изменений в таблицу векторов прерываний

Что входит в программный уровень подсистемы ввода/вывода

2. диспетчер ввода/вывода

+ 3. системные вызовы

Что определяет понятие “порт ввода/вывода”

+ 1. порядковый номер или адрес регистра контроллера

2. машинную команду ввода/вывода

3. устройство ввода/вывода

4. контроллер устройства ввода/вывода

Какие существуют типы прерываний

+ 1. внешние или аппаратные прерывания

+ 2. внутренние прерывания или исключения

+ 3. программные псевдопрерывания

4. системные прерывания

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

+ 1. прерывания — это механизм реагирования вычислительной системы на происходящие в ней события

2. прерывания используются для синхронизации работы основных устройств вычислительной системы

+ 3. прерывания возникают в непредсказуемые моменты времени

4. прерывания — это основной механизм планирования потоков

Какую информацию могут содержать регистры контроллеров устройства

+ 1. текущее состояние устройства

+ 2. текущую выполняемую устройством команду

3. данные, передаваемые от устройства системе

4. данные, передаваемые системой устройству

Как выстраиваются аппаратные прерывания в зависимости от их приоритета

1. сбой аппаратуры > таймер > дисковые устройства > сетевые устройства > клавиатура и мышь

2. сбой аппаратуры > таймер > дисковые устройства > клавиатура и мышь > сетевые устройства

+ 3. таймер > сбой аппаратуры > дисковые устройства > сетевые устройства > клавиатура и мышь

4. сбой аппаратуры > дисковые устройства > таймер > сетевые устройства > клавиатура и мышь

Что может быть причиной появления внешнего прерывания

+ 1. нажатие клавиши на клавиатуре

+ 2. завершение дисковой операции

3. обращение выполняемой процессором команды по несуществующему адресу

Подсистема ввода-вывода. Файловые системы

7.7. Динамическая загрузка и выгрузка драйверов

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

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

7.8. Поддержка синхронных и асинхронных операций ввода-вывода

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

Что входит в программный уровень подсистемы ввода вывода

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

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

7.9. Многослойная (иерархическая) модель подсистемы ввода-вывода

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

Многослойность структуры, безусловно, облегчает решение большинства перечисленных в предыдущем разделе задач подсистемы ввода-вывода. Обобщенная структура подсистемы ввода-вывода показана на рис. 7.5 [13]. Как видно из рисунка, программное обеспечение подсистемы ввода-вывода делится не только на горизонтальные слои, но и на вертикальные. В данном случае в качестве примера приведены три вертикальные подсистемы управления дисками, графическими устройствами и сетевыми адаптерами. Естественно, таких подсистем может быть больше. Например, сюда можно добавить подсистему управления текстовыми терминалами или подсистему управления специализированными устройствами, такими как аналого-цифровые и цифро-аналоговые преобразователи.

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

Что входит в программный уровень подсистемы ввода вывода

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

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

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

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

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

7.10. Драйверы

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

Традиционные драйверы, которые стали называть аппаратными, низкоуровневыми или драйверами устройств, освобождаются от высокоуровневых функций и занимаются только низкоуровневыми операциями. Эти низкоуровневые операции составляют фундамент, на котором можно построить тот или иной набор операций в драйверах более высоких уровней.

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

Высокоуровневые драйверы оформляются по тем же правилам и придерживаются тех же внутренних интерфейсов, что и аппаратные драйверы. Как правило, высокоуровневые драйверы не вызываются по прерываниям, так как взаимодействуют с устройством через посредничество аппаратных драйверов.

7.11. Файловые системы. Основные понятия

Цели и задачи файловой системы

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

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

Таким образом, необходимо хранить данные на устройствах компьютеров (диски, ленты и др.) с соблюдением следующих требований [13].

Решение этих проблем состоит в хранении информации, организованной в файлы. Файл – это именованная совокупность данных, хранящаяся на каком-либо носителе информации.

При рассмотрении отдельных файлов и их совокупностей используются следующие понятия.

Обычно единственным способом работы с файлами является применение системы управления файлами или иначе – файловой системы (ФС).

Файловая система – это часть операционной системы, включающая:

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

В мультипрограммных, многопользовательских ОС задачами файловой системы являются [10]:

Минимальным набором требований к файлам системы со стороны пользователя диалоговой системы общего назначения можно считать следующую совокупность возможностей, предоставляемую пользователю:

Драйверы Устройств

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

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

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

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

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

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

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

С появлением персональных компьютеров с их огромным разнообразием устройств ввода-вывода такая модель перестала работать. Далеко не все пользователи могли самостоятельно перекомпилировать и собрать ядро даже при наличии исходных текстов или объектных модулей. Поэтому операционные системы, начиная с MS — DOS , перешли к модели динамической подгрузки драйверов. Различные системы выполняют эту процедуру по-разному.

Драйвер устройства выполняет несколько функций:

1) обработку абстрактных запросов чтения и записи независимого от устройств и расположенного над ними программного обеспечения;

2) инициализацию устройства;

3) управление энергопотреблением устройства и регистрацией событий;

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

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

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

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

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

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

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

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *