Вопрос 2. Назначение, состав и функции операционных систем.
Сначала разберемся, что такое операционная система. Прежде всего, можно выделить два доминирующих взгляда на понятие операционной системы:
а) ОС как расширенная машина есть комплекс программ, скрывающих истину об аппаратном обеспечении и предоставляющая простой список поименованных файлов, которые можно читать и записывать. Операционная система не только устраняет необходимость работы непосредственно с дисками и предоставляет простой ориентированный на работу с файлами интерфейс, но и скрывает множество неприятной работы с прерываниями, счетчикам и, организацией памяти и другими элементами низкого уровня. В любом случае абстракция, предлагаемая ОС, намного проще и удобнее в обращении, чем то, что может предложить нам непосредственно основное оборудование на аппаратном уровне. Таким образом, ОС предоставляет нам ряд возможностей, которые могут использовать программы с помощью специальных команд, называемых системными вызовами. Под системными вызовами(system calls) понимается интерфейс между операционной системой и пользовательской программой. Они создают, удаляют и используют различные объекты, главные из которых – процессы и файлы. Пользовательская программа запрашивает сервис у операционной системы, осуществляя системный вызов. Имеются библиотеки процедур, которые загружают машинные регистры определенными параметрами и осуществляют прерывание процессора (см. 3.6), после чего управление передается обработчику данного вызова, входящему в ядро операционной системы. Цель таких библиотек – сделать системный вызов похожим на обычный вызов подпрограммы, что естественно ведет к облегчению программирования.
Основное отличие состоит в том, что при системном вызове задача переходит в привилегированный режим или режим ядра (kernel mode). Поэтому системные вызовы иногда еще называют программными прерываниями, в отличие от аппаратных прерываний, которые чаще называют просто прерываниями.
В этом режиме работает код ядра операционной системы, причем исполняется он в адресном пространстве и в контексте вызвавшей его задачи. Таким образом, ядро операционной системы имеет полный доступ к памяти пользовательской программы, и при системном вызове достаточно передать адреса одной или нескольких областей памяти с параметрами вызова и адреса одной или нескольких областей памяти для результатов вызова.
В большинстве операционных систем системный вызов осуществляется командой программного прерывания (INT). Программное прерывание – это синхронное событие, которое может быть повторено при выполнении одного и того же программного кода.
б) ОС как менеджер ресурсов предоставляет организованное и контролируемое распределение процессоров, памяти и устройств ввода-вывода между различными программами, состязающимися за право их использовать. Управление ресурсами включает в себя их мультиплексирование (распределение) двумя способами: во времени и в пространстве. Когда ресурс распределяется во времени, различные пользователи и программы используют его по очереди. Сначала один из них получает доступ к использованию ресурса, потом другой и т. д. Определение того, как долго ресурс будет использоваться во времени, кто будет следующим и на какое время ему предоставляется ресурс – это задача ОС. Другой вид распределения - это пространственное мультиплексирование. Вместо поочередной работы каждая программа получает часть ресурсов. Обычно оперативная память разделяется между несколькими работающими программами, так что все они одновременно могут постоянно находиться в памяти. Таким образом, распределение памяти и дискового пространства и отслеживание того, кто какие адреса памяти и блоки диска использует, является типичной задачей управления ресурсами, которую также выполняет ОС.
Пользователь обращается к ОС посредством одного или нескольких пользовательских приложений, а также часто посредством специального приложения, называемого оболочкой (shell), или интерпретатором команд. Большинство современных оболочек реализованы в виде текстовых интерфейсов, позволяющих вводить команды с клавиатуры в командную строку, либо в виде графических интерфейсов пользователя (GUI) ориентированных на манипулирование с помощью указателя мыши графическими объектами. Совокупность программ, объединяющая основные компоненты ОС, называется ядром. В большинстве ОС к этим компонентам относятся:
· Планировщик процессов(process scheduler), который определяет, когда и в течение какого периода времени процесс обрабатывается процессором.
· Диспетчер памяти(memory manager) который определяет, когда и каким образом память распределяется между процессами и что следует предпринять, если основной памяти недостаточно.
· Диспетчер ввода-вывода(i/o manager), который обслуживает запросы ввода-вывода данных при взаимодействии ОС с аппаратными устройствами.
· Диспетчер межпроцессорного взаимодействия(interprocess communication manager – IPC) осуществляет взаимодействие между процессами.
· Диспетчер файловой системы(file system manager), который упорядочивает поименованные объекты на запоминающих устройствах и предоставляет интерфейс для доступа к данным на них.
Подробное рассмотрение функционирования каждого компонента ядра будет дано ниже.
К основным свойствам ОС можно отнести следующие:
· Эффективность;
· Устойчивость;
· Масштабируемость;
· Расширяемость;
· Мобильность;
· Защищенность;
· Интерактивность.
Эффективная ОС(efficient OS) обладает высокой производительностью и малым средним значением времени обработки запросов.
Устойчивая ОС(robust OS) – это отказоустойчивая и надежная система, работающая без сбоев при ошибке отдельного приложения или компонента аппаратуры.
Масштабируемая ОС(scalable OS) – это система способная использовать ресурсы по мере их наращивания.
Расширяемая ОС(extensible OS) может адаптироваться к новым технологиям и обладает возможностью расширения для решения задач, изначально не предусмотренных при разработке данной ОС.
Мобильная ОС(portable OS) разрабатывается для функционирования на различных конфигурациях аппаратных средств.
Защищенная ОС(secure OS) препятствует пользователям и программному обеспечению в получении несанкционированного доступа к услугам и ресурсам. Средства защиты опираются на механизмы, которые реализуют политику безопасности системы.
Интерактивная ОС (interactive OS) позволяет приложениям быстро реагировать на действия пользователей и другие события в системе.