Фунции и состав типичной операционной системы, режимы работы
Основные функции операционных систем
Современные ОС - по крайней мере, широко распространенные системы -во многом похожи друг на друга.Прежде всего это определяется требованием переносимости программногообеспечения. Именно для обеспечения этой переносимости был принятPOSIX (Portable OS Interface based on uniX) - стандарт,определяющий минимальные функции по управлению файлами, межпроцессномувзаимодействию и т.д., которые должна уметь выполнять система.
Кроме того, за четыре с лишним десятилетия, прошедших с моментаразработки первых ОС, сообщество программистов достигло определенногопонимания того, что:
при разработке ОС возникает много стандартных проблем и вопросов;
для большинства из этих проблем и вопросов существует наборстандартных решений;
некоторые из этих решений намного лучше, чем все альтернативные.
По современным представлениям, ОС должна уметь делать следующее:
Обеспечивать загрузку пользовательских программ в оперативную памятьи их исполнение.
Обеспечивать работу с устройствами долговременной памяти, такими какмагнитные диски, ленты, оптические диски и т.д. Как правило, ОС управляетсвободным пространством на этих носителях и структурирует пользовательскиеданные.
Предоставлять более или менее стандартный доступ к различнымустройствам ввода/вывода, таким как терминалы, модемы, печатающие устройства.
Предоставлять некоторый пользовательский интерфейс. Слово некоторыйздесь сказано не случайно - часть систем ограничивается командной строкой,в то время как другие на 90% состоят из средств интерфейса пользователя.
Существуют ОС, функции которых этим и исчерпываются. Одна из хорошо известныхсистем такого типа - дисковая операционная система MS DOS.
Более развитые ОС предоставляют также следующие возможности:
Параллельное (точнее, псевдопараллельное, если машина имеет только одинпроцессор) исполнение нескольких задач.
Распределение ресурсов компьютера между задачами.
Организация взаимодействия задач друг с другом.
Взаимодействие пользовательских программ с нестандартными внешними устройствами.
Организация межмашинного взаимодействия и разделения ресурсов.
Защита системных ресурсов, данных и программ пользователя,исполняющихся процессов и самой себя от ошибочных и зловредных действийпользователей и их программ.
Пакетный режим
Необходимость оптимального использования дорогостоящих вычислительных ресурсов привела к появлению концепции «пакетного режима» исполнения программ. Пакетный режим предполагает наличие очереди программ на исполнение, причём ОС может обеспечивать загрузку программы с внешних носителей данных в оперативную память, не дожидаясь завершения исполнения предыдущей программы, что позволяет избежать простоя процессора.
Разделение времени и многозадачность
Уже пакетный режим в своём развитом варианте требует разделения процессорного времени между выполнением нескольких программ.
Необходимость в разделении времени (многозадачности, мультипрограммировании) проявилась ещё сильнее при распространении в качестве устройств ввода-вывода телетайпов (а позднее, терминалов с электронно-лучевыми дисплеями) (1960-е годы). Поскольку скорость клавиатурного ввода (и даже чтения с экрана) данных оператором много ниже, чем скорость обработки этих данных компьютером, использование компьютера в «монопольном» режиме (с одним оператором) могло привести к простою дорогостоящих вычислительных ресурсов.
Разделение времени позволило создать «многопользовательские» системы, в которых один (как правило) центральный процессор и блок оперативной памяти соединялся с многочисленными терминалами. При этом часть задач (таких, как ввод или редактирование данных оператором) могла исполняться в режиме диалога, а другие задачи (такие, как массивные вычисления) — в пакетном режиме.
Разделение полномочий
Распространение многопользовательских систем потребовало решения задачи разделения полномочий, позволяющей избежать возможности модификации исполняемой программы или данных одной программы в памяти компьютера другой (содержащей ошибку или злонамеренно подготовленной) программы, а также модификации самой ОС прикладной программой.
Реализация разделения полномочий в ОС была поддержана разработчиками процессоров, предложивших архитектуры с двумя режимами работы процессора — «реальным» (в котором исполняемой программе доступно всё адресное пространство компьютера) и «защищённым» (в котором доступность адресного пространства ограничена диапазоном, выделенном при запуске программы на исполнение).
Реальный масштаб времени
Применение универсальных компьютеров для управления производственными процессами потребовало реализации «реального масштаба времени» («реального времени») — синхронизации исполнения программ с внешними физическими процессами.