Логическое расположение драйверов устройств
На самом деле обмен данными между контроллерами и драйверами идет по шине. Драйвера должны взаимодействовать с ОС через стандартные интерфейсы.
Стандартные интерфейсы, которые должны поддерживать драйвера:
· Для блочных устройств
· Для символьных устройств
Раньше для установки ядра приходилось перекомпилировать ядра системы.
Сейчас в основном ОС загружают драйверы. Некоторые драйверы могут быть загружены в горячем режиме.
Функции, которые выполняют драйвера:
· обработка запросов чтения или записи
· инициализация устройства
· управление энергопотреблением устройства
· прогрев устройства (сканера)
· включение устройства или запуска двигателя
Независимое от устройств программное обеспечение ввода-вывода
Функции независимого от устройств программного обеспечения ввода-вывода:
· Единообразный интерфейс для драйверов устройств,
· Буферизация
· Сообщения об ошибках
· Захват и освобождение выделенных устройств (блокирование)
· Размер блока, не зависящий от устройств
Единообразный интерфейс для драйверов устройств
Кроме интерфейса, в него также входят проблемы,
· именование устройств
· защита устройств
Буферизация
Рассмотрим несколько примеров буферизации.
a) Не буферизованный ввод - после ввода каждого символа происходит прерывание
b) Буферизация в пространстве пользователя - приходится держать загруженными необходимые страницы памяти в физической памяти.
c) Буферизация в ядре с копированием в пространство пользователя - страница загружается только когда буфер ядра полный, данные из буфера ядра в буфер пользователя копируется за одну операцию. Проблема может возникнуть, когда буфер ядра полный, а страница буфера пользователя еще не загружена.
d) Двойная буферизация в ядре - если один буфер заполнен, и пока он выгружается, символы пишутся во второй буфер.
Сообщения об ошибках
Наибольшее число ошибок возникает именно от операции ввода-вывода, поэтому их нужно определять как можно раньше. Ошибки могут быть очень разные в зависимости от устройств.
Захват и освобождение выделенных устройств
Для устройств (принтер) с которыми должен работать в одно время только один процесс, необходима возможность захвата и освобождения устройств. Когда один процесс занял устройство, остальные встают в очередь.
Независимый от устройств размер блока
Размер блока должен быть одинаковый для верхних уровней, и не зависеть от устройств (размеров секторов на диске).
Программное обеспечение ввода-вывода пространства пользователя
Функции этого обеспечения:
· Обращение к системным вызовам ввода-вывода (через библиотечные процедуры).
· Форматный ввод-вывод (меняют формат, например, в ASCII)
· Спулинг (для выделенных устройств) - создается процесс (например, демон печати) и каталог спулера.
Обобщение уровней и функций ввода-вывода
Уровни и основные функции системы ввода-вывода
Билет № 23 Состав ОС: внутренние (встроенные) и внешние (программы-утилиты) команды: История операционных систем
История ОС
Первые (1945-1955г.г.) компьютеры работали без операционных систем, как правило, на них работала одна программа.
Когда скорость выполнения программ и их количество стало увеличиваться, простои компьютера между запусками программ стали составлять значительное время. Появились первые системы пакетной обработки (1955-1965г.г.), которые просто автоматизировали запуск одной программ за другой и тем самым увеличивали коэффициент загрузки процессора. Системы пакетной обработки явились прообразом современных операционных систем. Совокупность нескольких заданий, как правило, в виде колоды перфокарт, получила название пакета заданий.
Многозадачность (1965-1980) - это способ организации вычислительного процесса, при котором на одном процессоре попеременно выполняются несколько задач. Пока одна задача выполняет операцию ввода-вывода, процессор не простаивает, как это происходило при последовательном выполнении задач , а выполняет другую задачу. Для этого создали систему распределения памяти, когда каждая задача загружается в свой участок оперативной памяти, называемый разделом.
Спулинг (spooling-подкачка) в то время задания считывались с перфокарт на диск в том темпе, в котором они появлялись в помещении вычислительного центра, а затем, когда очередное задание завершалось, новое задание с диска загружалось в освободившийся раздел.
Системы разделения времени - вариант многозадачности, при котором у каждого пользователя есть свой диалоговый терминал. Это было сделано, чтобы каждый программист мог отлаживать свою программу в реальном времени. Фактически это была многопользовательская система. Естественно стали возникать проблемы защиты задач друг от друга.
В это время была разработана многопользовательская система MULTICS, которая должна была обеспечивать одновременную работу сотни пользователей.
В это время также стали бурно развиваться мини-компьютеры (первый был выпущен в 1961г.), на которые была перенесена система MULTICS. Эта работа в дальнейшем развилась в систему UNIX.
Появилось много разновидностей несовместимых UNIX, основные из них были System V и BSD. Чтобы было возможно писать программы, работающие в любой системе UNIX, был разработан стандарт POSIX. Стандарт POSIX определяет минимальный интерфейс системного вызова, который должны поддерживать системы UNUX.
В 1974г. был выпущен центральный процессор Intel 8080, для него была создана операционная система CP/M. В 1977г. она была переработана для других процессоров, например Zilog Z80.
В начале 80-х была разработана система MS-DOS, и стала основной системой для микрокомпьютеров.
В 80-х годах стало возможным реализовать графический интерфейс пользователя (GUI - Graphical User Interface), теория которого была разработана еще в 60-е годы. Первой реализовала GUI корпорация Macintosh.
С 1985 года стала выпускаться Windows, в то время она была графической оболочкой к MS-DOS вплоть до 1995г., когда вышла Windows 95.
Уже тогда было ясно, что DOS с ее ограничениями по памяти и по возможностям файловой системы не может воспользоваться вычислительной мощностью появляющихся компьютеров. Поэтому IBM и Microsoft начинали совместно разрабатывать операционную систему OS/2. Она должна была поддерживать вытесняющую многозадачность, виртуальную память, графический пользовательский интерфейс, виртуальную машину для выполнения DOS-приложений. Первая версия вышла 1987г.
В дальнейшем Microsoft отошла от разработки OS/2, и стала разрабатывать Windows NT. Первая версия вышла в 1993г.
В середине 80-х стали бурно развиваться сети персональных компьютеров, работающие под управлением сетевых или распределенных операционных систем.
Состав ОС
Утилиты ОС
Внешние команды (утилиты) содержаться на дисках в виде отдельных файлов, и поэтому командный интерпретатор должен для выполнения такой команды сначала найти ее на диске, ориентируясь на имя команды, совпадающее с именем программного файла. Эти программы выполняют действия обслуживающего характера, например, форматирование дискет, проверку дисков и т.д. и находятся обычно в каталоге DOS или в подкаталоге COMMAND каталога WINDOWS. Остановимся более подробно на утилитах обслуживания жесткого диска.
1. Разбиение физического диска на несколько логических (FDISK).
На фирме-изготовителе жестких дисков выполняют предварительную проверку поверхности диска на наличие сбойных участков, так называемое низкоуровневое форматирование (Low Level Format). В дальнейшем пользователь при необходимости создания нескольких логических дисков на одном физическом диске (для разграничения доступа различных пользователей, при использовании различных операционных систем, для повышения степени защищенности компьютера от вирусов, при отсутствии программ поддержки больших дисков) разбивает диск на несколько логических разделов (partitions), один из которых является глобальным, а остальные - локальными.
2. Форматирование дисков (FORMAT в DOS и WINDOWS и SFORMAT в Norton Utilites).
Различают форматирование низкого и высокого уровня.
При форматировании низкого уровня происходит разбивка диска на кольцевые дорожки (треки) и радиальные сектора по 512 байт, установка секторных меток (как правило, жесткие диски проходят форматирование низкого уровня на заводе-изготовителе).
При форматировании высокого уровня производится определение на диске двух областей: системной (System) и области данных (Data). В системной области заносятся: Master Boot Record (MBR - Главная загрузочная запись, у дискет отсутствует), Boot Record (BR - Загрузочная запись), две копии File Allocation Table (FAT - Таблица размещения файлов), Root Directory (корневой каталог). Также производится тестирование поверхности диска. Сбойные (например, размагниченные) участки отмечаются в FAT.
При форматировании гибких дисков (дискет) и низкоуровневое и высокоуровневое форматирование проводится одновременно.
Внутренние команды
Внутренние команды наиболее часто используются и поэтому содержатся непосредственно в самом командном интерпретаторе - файле COMMAND.COM и выполняются немедленно. К внутренним командам DOS относятся:
CLS - очистка экрана,
DATE - установка текущей даты,
TIME - установка текущего времени,
DIR - вывод оглавления каталога,
VER - вывод на экран установленной версии DOS,
CD - смена каталога,
COPY - копирование файлов,
DEL - удаление файлов,
REN - переименование файлов,
TYPE - вывод на экран содержимого файла,
VERIFY - проверка правильности операций ввода/вывода информации на дисках,
REM - вводит комментарий в командной строке.
Исполняемые файлы типа COM не требуют настройки адресов после их загрузки в ОЗУ, а программы типа EXE при загрузке с диска в ОЗУ нужно настроить по месту размещения, то есть задать соответствующие адреса сегментов.