- •2. Загрузчик операционной системы
- •2.1. Пример реализации загрузчика для моей операционной системы
- •3. Ядро. Типы ядер. Достоинства и недостатки
- •3.1. Разновидности типов ядер
- •3.1.1. Монолитное ядро
- •3.1.2. Микроядро
- •3.1.3. Экзоядро
- •3.1.4. Наноядро
- •3.1.5. Гибридное ядро
- •3.2. Пример реализации главного модуля моей операционной системы
- •4. Файловая система
- •4.1. Функции файловой системы
- •4.2. Классификация файловых систем
- •4.3. Пример реализации файловой системы для моей ос.
- •5. Система ввода-вывода
- •5.1. Основные концепции системы ввода–вывода
- •5.1.1.2. Прерывания
- •5.1.1.3. Прямой доступ к памяти
- •5.1.2.1. Программная составляющая ввода-вывода
- •5.1.2.2. Обработчики прерываний
- •5.1.2.3. Драйверы устройств
- •5.1.2.5. Пользовательские программы (верхний уровень)
- •6. Командный интерпретатор
- •6.1. Командный интерпретатор с текстовым интерфейсом
- •6.1.1. Функции командного интерпретатора типа командная строка.
- •6.2. Графическая оболочка
- •6.2.1. Функции графической оболочки.
- •7. Программное обеспечение
- •7.1. Классификация программного обеспечения
- •7.1.1. Системное программное обеспечение
- •7.1.2. Прикладное программное обеспечение
- •7.1.3. Инструментальное программное обеспечение
5. Система ввода-вывода
Система ввода-вывода - одна из компонент операционной системы, реализующая программный интерфейс для взаимодействия с минимальным набором устройств ввода-вывода и периферийных устройств компьютера, набор программ управления основными функциями и устройствами компьютера.
5.1. Основные концепции системы ввода–вывода
Управление вводом-выводом одна из важнейших функций операционной системы состоит в управлении всеми устройствами ввода-вывода компьютера. Операционная система должна давать этим устройствам команды, перехватывать прерывания и обрабатывать ошибки. Она должна также предоставить простой и удобный интерфейс между устройствами и остальной частью системы. Интерфейс, насколько это возможно, должен быть одинаковым для всех устройств (он не должен зависеть от применяемого оборудования). Программное обеспечение ввода-вывода составляет существенную часть операционной системы.
Ввод-вывод разделяется на:
- аппаратную составляющую,
- программную составляющую.
5.1.1. Аппаратная составляющая ввода-вывода
Устройства ввода-вывода можно разделить на две категории: блочные и символьные.
Блочными называются устройства, хранящие информацию в виде адресуемых блоков фиксированного размера.
Символьное устройство принимает или предоставляет поток символов без какой-либо блочной структуры. Символьное устройство не является адресуемым и не выполняет операцию поиска.
5.1.1.1. Контроллеры
Устройства ввода вывода в большинстве своем состоят из механических и электронных устройств. Электронный компонент это и есть контроллер устройства или иначе адаптер, а механический компонент это само устройство схема показана на (рис. 5.1.).
Рис. 5.1.
Работа контроллера очень низкоуровневая и заключается в преобразовании последовательного потока битов в блок байтов и в коррекции ошибок, если это необходимо. Обычно блок байтов собирается бит за битом в буфере контроллера. Затем проверяется контрольная сумма блока, и если она совпадает с указанной в заголовке сектора, блок полагается считанным без ошибок, после чего он копируется в оперативную память.
Контроллер монитора (видеоконтроллер) также работает как последовательное побитовое устройство на таком же низком уровне. Он считывает из памяти байты, содержащие символы, которые следует отобразить, и формирует сигналы, используемые для модуляции луча электронной трубки, заставляющие ее выводить изображение на экран. Кроме того, видеоконтроллер формирует сигналы, управляющие горизонтальным и вертикальным перемещениями электронного луча. На жидкокристаллическом экране эти сигналы указывают на отдельные пикселы и задают их яркость, имитируя электронный луч. В действительности же операционная система всего-навсего инициализирует контроллер, задавая небольшое число параметров, таких как количество символов или пикселов в строке и число строк на экране, а основную работу по управлению разверткой берет на себя контроллер.
Современные контролеры становятся очень сложными, особенно дисковые контроллеры.