- •Архитектура Windows
- •Средство защиты
- •Понятие файловой системы
- •Fat. Впервые в ms Dos
- •Структура диска разбитого в fat следующая
- •Файловая система ntfs
- •Файловые системы Linux
- •Распределение файловой системы
- •Фрагментация
- •Структура ядра Mac os X и Linux Структура ядра Mac os X
- •Структура ядра Linux
- •Сравнение характеристик современных ос
- •Ввод/вывод
- •Драйверы
Ввод/вывод
Под вводом подразумевается обработка данных из внешних источников в формат, пригодный для обработки ЦП. Вывод – это обратный процесс. Устройства, выполняющие организации ввода/вывода можно разделить на три группы:
Устройства, работающие с пользователем (HID) – клавиатура, мышь, монитор.
Устройства, работающие с компьютером (дисковые накопители, контроллеры, датчики преобразователи).
Коммуникационные устройства – устройства для связи с удаленными устройствами (модемы, сетевые платы).
По другому принципу устройства в/в можно разделить на блочные и символичные. Блочными являются устройства, хранящие информацию в виде блоков фиксированного размера. Причем каждый из блоков не зависит от остальных (жесткий диск).
Символьные устройства, так же называемые устройствами потокового ввода/вывода, подают поток символов без какой-либо структуры (мышь, принтер, сканер, сетевая карта). Однако некоторые устройства не попадают нив одну из этих категорий (монитор).
Существуют существенные различия между устройствами в/в, принадлежащими различным классам и в рамках каждого класса.
Разнообразие устройств в/в приводит к невозможности разработки единого подхода к проблеме в/в как с точки зрения оборудования, так и с точки зрения ОС.
Обмен данными между пользователями, приложениями и периферийными устройствами, выполняет подсистема в/в ОС. Основными компонентами подсистемы в/в являются диспетчер прерываний, файловая система, драйверы.
На подсистему ввода/вывода возлагаются следующие функции:
Организация параллельной работы устройств в/в и ЦП
Согласование скоростей обмена и буферизация данных
Разделение устройств и данных между процессами (выполняющимися программами)
Обеспечение логического интерфейса между устройствами и остальной частью ОС
Поддержка широко спектра драйверов с возможностью простого включения в систему нового драйвера
Динамическая загрузка и выгрузка драйверов, не отражающихся на работе всей ОС и без дополнительных действий со стороны пользователя.
В настоящий момент операции в/в могут выполняться 4мя способами:
Программируемый в/в (использование контроллера в/в). В этом случае, когда ЦП встречается команда в/в, он посылает соответствующие команды контроллеру в/в. Устройство выполняет действие, но не отсылает процессору ни каких команд о завершении. Процессору приходится самому опрашивать подсистему в/в для проверки завершения операции. Достоинством данного метода является высокая скорость. Недостатком – сложность планирования процессов и большие потери процессорного времени, связанные с опросом состояния контроллера.
в/в, управляемый прерываниями. Такой в/в эффективнее, чем программируемый, т.к. исключается нужное ожидание из-за опроса контроллера.
Прямой доступ к памяти (DMA). В этом случае процессор программирует контроллер ПДП, после чего не участвует в операции в/в. В завершении операции контроллер ПДП отсылает прерывание ЦП.
Спуллинг. В этом случае в ОП организуется виртуальное устройство в/в с системой команд реального устройства. Процессор программирует спуллер, а тот в свою очередь планирует операции в/в, программирует устройства, отслеживает состояние операции. Виртуальное устройство создается для того, чтобы разгрузить процессор.