Управление устройствами
Практически все аппаратные средства компьютера, не располагающиеся на материнской плате, взаимодействуют с операционной системой при посредстве программ, называемых драйверами. Одной из важнейших функций драйвера является функция транслятора ("переводчика"), осуществляющего преобразование в обоих направлениях электрических сигналов аппаратных подсистем и языков программирования высокого уровня операционных систем и приложений. Драйверы получают сигналы, которые операционная система определяет как файл, и транслирует их в потоки битов, располагающихся в заданных местах запоминающих устройств, либо в серию импульсов лазера в принтере.
Ввиду того, что физические устройства компьютера сильно отличаются друг от друга, имеются существенные различия в принципах функционирования программ драйверов. Большинство из них запускается тогда, когда возникает необходимость в использовании соответствующего устройства, при этом такие драйверы функционируют в основном так же, как и любой другой процесс. Часто операционная система присваивает драйверам блоки с высоким приоритетом, благодаря чему аппаратные ресурсы компьютера получают возможность как можно быстрее освобождаться после выполнения задач и восстанавливать готовность к дальнейшему использованию.
Одна из причин, по которым драйверы отделены от операционной системы, состоит в том, что в этих условиях в драйвере, а следовательно, в соответствующих аппаратных подсистемах, могут быть дополнительно реализованы новые функции, без необходимости изменения, перекомпиляции и повторного распределения самой операционной системы. Благодаря разработке новых драйверов к устройствам, которую часто выполняет или оплачивает производитель подсистем, а не производитель операционной системы, возможности ввода/вывода системы в целом могут быть существенно улучшены.
Управление вводом и выводом – это в значительной степени управление очередями и буферами, специальными устройствами хранения, которые получают поток битов с устройства, например, с клавиатуры или последовательного порта, запоминают эти биты и отправляют их на центральный процессор со скоростью, которую способен принять центральный процессор. Эта функция особенно важна в случае, когда имеется несколько текущих процессов, на которые тратится время процессора. Операционная система при этом отправляет инструкцию буферу продолжать прием с устройства, но приостановить отправление данных на центральный процессор на время, пока приостановлен процесс, в котором используется данная информация. Затем, когда процесс, которому нужна данная информация, снова активизируется, операционная система дает команду буферу отправлять данные. Этот процесс дает возможность клавиатуре или модему работать с внешними пользователями либо компьютерами на высокой скорости, даже в то время, когда центральный процессор не может воспользоваться сигналом с этих источников.
Управление ресурсами компьютерной системы составляет значительную часть функций операционной системы, а в случае операционных систем, работающих в реальном времени, может потребовать использования практически всех функциональных возможностей. Однако для других операционных систем критически важной особенностью, оправдывающей их существование, является обеспечение приложениям и пользователям сравнительно простого, единообразного способа использования возможностей аппаратных средств.
Интерфейсы прикладных программ
Так же, как драйверы дают возможность приложениям использовать аппаратные подсистемы без необходимости располагать сведениями обо всех подробностях работы оборудования, так и интерфейсы прикладных программ (application program interfaces, APIs) помогают программистам пользоваться функциями компьютера и операционной системы без необходимости непосредственного отслеживания всех подробностей работы центрального процессора. Чтобы узнать, почему это может быть так важно, рассмотрим в качестве примера создание файла данных на жестком диске.
Перечень самостоятельных работ
№1: «Состав, взаимодействие основных компонентов операционной системы»
№2: «Языки взаимодействия пользователя с операционной системой»
№3: «Понятие базовой машины, расширенной машины»
№4: «Операционная система как средство управления ресурсами типовой микроЭВМ»
№5: «Планирование в интерактивных системах»
№6: «Алгоритм диспетчеризации процесса»
№7: «Механизм установления соответствия между процессом и событием»
№8: «Проблема фрагментации памяти и способы ее разрешения»
№9: «Физическая организация файловой системы»
№10: «Структура операционных систем Windows NT, Linux»
№11: «Работа с файлами и каталогами в ОС Windows NT, Unix»
№12: «Работа с текстовым редактором NEdit»
