Функциональные компоненты ОС автономного компьютера
5.1. Управление процессами
Управление памятью
Управление файлами и внешними устройствами
Защита данных и администрирование
Функциональные компоненты ОС автономного компьютера
Функции ОС ПК обычно группируют:
а) в соответствии с типами локальных ресурсов, которыми управляет ОС;
б) в соответствии со специфическими задачами, применимыми ко всем ресурсам.
Иногда такие группы называют подсистемами.
- п/с управления процессами; | - п/с пользовательского интерфейса |
- п/с управления памятью; - п/с управления файлами и внеш-ними устройствами | - п/с защиты данных и администри-рования |
Управление процессами
Важнейшей частью операционной системы, непосредственно влияющей на функционирование вычислительной машины, является подсистема управления процессами.
Для каждого вновь создаваемого процесса ОС генерирует системные информационные структуры. Они содержат:
- данные о потребностях процесса в ресурсах вычислительной системы;
- данные о фактически выделенных ему ресурсах.
Для выполнения процесса ОС выделяет ему область оперативной памяти, в которой будут размещены коды и данные процесса, а также предоставляет необходимое количество процессорного времени и доступ к файлам и устройствам ввода–вывода.
Для реализации модели процессов операционная система содержит таблицу (массив структур), называемую таблицей процессов, с одним элементом для каждого процесса. Эти элементы называют блоками управления процессами.
Элемент таблицы содержит информацию:
- о состоянии процесса,
- счетчике команд,
- указателе стека,
- распределении памяти,
- состоянии открытых файлов,
- об использовании и распределении ресурсов,
а также всю остальную информацию, которую необходимо сохранять при переключении в состояние готовности или блокировки для последующего запуска – как если бы процесс не останавливался.
Ниже представлены некоторые поля типичного элемента таблицы процессов:
- Управление процессом
- Регистры
- Счетчик команд
- Слово состояния программы
- Указатель стека
- Состояние процесса
- Приоритет
- Параметры планирования
- Идентификатор процесса
- Родительский процесс
- Группа процесса
- Сигналы
- Время начала процесса
- Использование процессорного времени
- Процессорное время дочернего процесса
- Время следующего аварийного сигнала
Следует отметить, что от конкретной системы очень сильно зависит, какие именно поля будут в таблице процессов.
В информационные структуры процесса часто включаются вспомогательные данные, характеризующие историю пребывания процесса в системе (например, какую долю времени процесс потратил на операции ввода вывода, а какую на вычисления), его текущее состояние (активное или заблокированное), степень привилегированности процесса (значение приоритета).
Данные такого рода могут учитываться операционной системой при принятии решения о предоставлении ресурсов процессу.
В мультипрограммной операционной системе одновременно может существовать несколько процессов. Часть процессов порождается по инициативе пользователей и их приложений (такие процессы называют пользовательскими). Другие процессы, называемые системными, инициализируются самой операционной системой для выполнения своих функций.
Поскольку процессы часто одновременно претендуют на одни и те же ресурсы, то в обязанности ОС входит поддержание очередей заявок процессов на ресурсы (очередь к процессу, к принтеру, к последовательному порту).
Важной задачей операционной системы является защита ресурсов, выделенных данному процессу, от остальных процессов. Наиболее тщательно защищаемым ресурсом является области ОП, в которой хранятся коды и данные процесса. Каждый процесс работает в своем адресном пространстве. Адресным пространством называется совокупность всех областей ОП, выделенных операционной системой процессу.
Защищаются и другие типы ресурсов, такие как файлы, внешние устройства и т.д.
Операционная система может не только защищать ресурсы, выделенные одному процессу, но и организовывать их совместное использование, например, разрешить доступ к некоторой области памяти нескольким процессам.
Во время существования процесса его выполнение может быть многократно прервано и продолжено. Для того чтобы возобновить выполнение процесса, необходимо восстановить состояние его операционной среды, которое идентифицируется:
- состоянием регистров и программного счетчика;
- режимом работы процессора;
- указателем на открытые файлы;
- информацией о незавершенных операциях ввода – вывода и др.
Такая информация называется контекстом процесса. Говорят, что при смене процесса происходит переключение контекстов.
Для реализации сложных программных комплексов их работа организуется в виде нескольких параллельных процессов (потоков), которые периодически взаимодействуют друг с другом и обмениваются некоторыми данными, т.к. операционная система защищает ресурсы процессов и не позволяет одному процессу писать или читать из памяти другого процесса, то для взаимодействия процессов ОС должна предоставлять особые средства, которые называют средствами межпроцессорного взаимодействия.
Итак, подсистема управления процессами планирует выполнение процессов, т.е.
– распределяет процессорное время между несколькими одновременно существующими в системе процессами,
- занимается созданием и уничтожением процессов,
– обеспечивает процессы необходимыми системными ресурсами,
– поддерживает синхронизацию процессов,
– обеспечивает взаимодействие между процессами.
Управление памятью
Память является для процесса таким же важным ресурсом, как и процессор, так как процесс может выполняться процессором только в том случае если его коды и данные (не обязательно все) находятся в ОП.
Управление памятью включает:
· распределение имеющейся физической памяти между всеми существующими в данный момент в системе процессами;
· загрузку кодов и данных процессов в отведенные им области памяти;
· настройку адресно-зависимых частей кодов процесса на физические адреса выделенной области;
· защиту областей памяти каждого процесса.
Существует большое разнообразие алгоритмов распределения памяти. Они могут отличаться, например,
· количеством выделяемых процессу областей памяти (одна непрерывная область, в виде несмежных областей);
· степенью свободы границы областей (она может быть жестко зафиксирована на все время существования процесса или же динамически перемещаться при выделении процессу дополнительных объемов памяти)
· память выделяется страницами фиксированного размера или сегментами переменной длины.
Одним из наиболее популярных способов управления памятью в современных операционных системах является так называемая виртуальная память.
Наличие в ОС механизма виртуальной памяти позволяет программисту писать программу, как будто в его распоряжении имеется однородная ОП большого объема, часто существенно превышающего объем имеющейся физической памяти. В действительности все данные, используемые программой, хранятся на диске и при необходимости частями (сегментами или страницами) отображается в физическую память. При перемещении кодов и данных с диска в ОП подсистема виртуальной памяти выполняет трансляцию виртуальных адресов, полученных в результате компиляции и компоновки программы, в физические адреса ячеек ОП.
Защита памяти – это избирательная способность предохранять выполняемую задачу от записи или чтения памяти, назначенной другой задаче. Правильно написанные программы не пытаются обращаться к памяти назначенной другим. Однако реальные программы часто содержат ошибки, в результате которых такие попытки иногда предпринимаются. Средства защиты памяти, реализованные в операционной системе, должны пресекать несанкционированный доступ процессов к чужим областям памяти.
Итак: функциями ОС по управлению памятью являются:
- отслеживание свободной и занятой памяти;
- выделение памяти процессам;
- освобождение памяти при завершении процессов;
- защита памяти;
- вытеснение процессов из ОП на диск, когда размеры основной памяти не достаточны для размещения в ней всех процессов, и возвращение их в ОП, когда в ней освобождается место;
- настройка адресов программы на конкретную область физической памяти.
Управление файлами и внешними устройствами
Операционная система виртуализует отдельный набор данных, хранящихся на внешнем носителе, в виде файла – простой неструктурированной последовательности байтов, имеющей символьное имя.
Для удобства работы с данными файлы группируются в каталоги, которые, в свою очередь, образуют группы – каталоги более высокого уровня.
Пользователь с помощью операционной системы может выполнять над файлами и каталогами такие действия, как поиск по имени, удаление, вывод содержимого на внешнее устройство, изменение и сохранение содержимого.
Чтобы представить большое количество наборов данных, разбросанных случайным образом по цилиндрам и поверхностям дисков различных типов, в виде хорошо всем знакомой и удобной иерархической структуры файлов и каталогов, операционная система должна решить множество задач. Файловая система операционной системы выполняет преобразование символьных имен файлов, с которыми работает пользователь, в физические адреса данных на диске, организует совместный доступ к файлам, защищает их от несанкционированного доступа.
При выполнении своих функций файловая система тесно взаимодействует с подсистемой управления внешними устройствами, которая по запросам файловой системы осуществляет передачу данных между дисками и ОП.
Подсистема управления внешними устройствами (называется еще подсистемой ввода – вывода), исполняет роль интерфейса, ко всем устройствам, подключенным к компьютеру. Номенклатура этих устройств может насчитывать сотни моделей. Эти модели могут существенно отличаться набором и последовательностью команд, с помощью которых осуществляется обмен информацией с процессором и памятью компьютера, скоростью работы, кодировкой передаваемых данных, возможностью совместного использования и множеством других деталей.
Программа, управляющая конкретной моделью внешнего устройства и учитывающая все его особенности, называется драйвером этого устройства (drive – управлять, вести). Драйвер может управлять единственной моделью устройства или же группой устройств определенного типа. Для пользователя очень важно, чтобы операционная система включала, как можно больше разнообразных драйверов, т.к. это позволяет подключить большее число устройств различных производителей.
От наличия подходящих драйверов во многом зависит успех операционной системы на рынке.
Операционная система должна поддерживать интерфейс между драйверами и остальной частью ОС, чтобы разработчики из компаний – производителей устройств ввода – вывода могли поставлять вместе со своими устройствами драйверы для данной операционной системы.
Интерфейс в большинстве операционной системы строится на основе концепции файлового доступа. Эта концепция заключается в том, что обмен с любым внешним устройством выглядит как обмен с файлом, имеющим как обмен с файлом, имеющим имя и представляющим собой неструктурированную последовательность байтов. В качестве файла может выступать как реальный файл на диске, так и печатающее устройство или сетевой адаптер.
Здесь мы имеем дело со свойством операционной системы, подменить реальную аппаратуру удобными для пользователя и программиста абстракциями.