Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОСНОВЫ ОПЕРАЦИОННЫХ СИСТЕМ.doc
Скачиваний:
81
Добавлен:
09.11.2019
Размер:
4.83 Mб
Скачать

2.3.2. Подсистема управления памятью

Память является для процесса таким же важным ресурсом, как и процессор. Процесс может стать активным только в том случае, если хотя бы часть его кодов и данных находится в ОП. Управление памятью включает

  • распределение имеющейся физической памяти между всеми существующими в системе процессами;

  • загрузку кодов и данных процессов в отведенные им области памяти;

  • настройку адресно-зависимых частей кодов процесса на физические адреса выделенной области;

  • защиту областей памяти каждого процесса.

Известно множество алгоритмов распределения ОП. Их отличием может быть, например:

    • число выделяемых процессу областей памяти (одной непрерывной или нескольких несмежных);

    • степень свободы границы областей (статическая фиксация на всем ИСП или динамическое перемещение при дополнительном увеличении);

    • единица и форма выделения (страницами фиксированного размера или сегментами переменной длины).

Популярным способом управления памятью является механизм поддержки виртуальной памяти, позволяющий программисту писать программы так, как будто в его распоряжении имеется однородная ОП достаточно большого размера.

Защита памяти – это избирательная способность ОС предохранять выполняемую задачу от записи или чтения памяти, назначенной другой задаче. Реальные программы часто содержат ошибки, вызывающие попытки обращения к «чужой» памяти. Средства защиты памяти в ОС должны пресекать несанкционированный доступ процессов к чужим областям памяти.

Таким образом, функциями ОС по управлению памятью являются:

  • отслеживание свободной и занятой памяти;

  • выделение памяти процессам и освобождение памяти при завершении процессов;

  • защита памяти;

  • вытеснение процессов из ОП на диск, если основной памяти недостаточно для размещения всех процессов и возвращение их обратно в ОП;

  • настройка адресов программы на конкретную область физической памяти.

2.3.3. Подсистемы управления файлами и увв

Способность ОС скрывать сложности реальной аппаратуры ярко проявляется в одной из основных подсистем ОС – файловой системе (ФС). ОС представляет отдельный набор данных, хранящийся на внешнем накопителе, в виде файла – простой неструктурированной последовательности байтов, имеющей символьное имя. Для удобства работы файлы группируются в многоуровневые каталоги. Пользователь средствами ОС может выполнять над файлами и каталогами различные известные операции [1-4].

Чтобы представить множество наборов данных, разбросанных по цилиндрам и поверхностям дисков различных типов, в виде удобной иерархии файлов и каталогов, ОС должна решить множество задач. ФС ОС преобразует символьные имена файлов в физические адреса данных на диске, организует совместный доступ к файлам, защищает их от несанкционированного доступа.

При выполнении своих функций ФС тесно взаимодействует с подсистемой ввода-вывода (управления УВВ), которая по запросам ФС осуществляет передачу данных между дисками и ОП.

Подсистема ввода-вывода играет роль интерфейса ко всем УВВ компьютера. Спектр УВВ обширен, их номенклатура насчитывает сотни моделей. Эти модели могут существенно различаться набором и последовательностью команд обмена информацией с процессором и памятью компьютера, скоростью работы, кодировкой передаваемых данных, возможностью совместного использования и другими деталями.

Для управления конкретной моделью УВВ с учетом всех ее особенностей предназначен специальный драйвер. Драйвер может управлять единственной моделью или целой группой однотипных УВВ. Для пользователя очень важно, чтобы ОС включала как можно больше разнообразных драйверов, что гарантирует возможность использования большего числа УВВ разных производителей. От наличия подходящих драйверов во многом зависит успех ОС на рынке.

Созданием драйверов УВВ занимаются как разработчики конкретной ОС, так и производители самих УВВ. ОС должна поддерживать хорошо определенный интерфейс между драйверами и остальной частью ОС, чтобы разработчики УВВ могли поставлять свои драйверы УВВ для данной ОС.

Прикладные программисты могут пользоваться интерфейсом драйверов при разработке своих программ. Но это не очень удобно, поскольку такой интерфейс обычно представляет собой низкоуровневые операции с огромным числом деталей.

Поддержание высокоуровневого унифицированного набора функций так называемого интерфейса прикладного программирования (Application Programming Interface, API) для разнородных УВВ является одной из наиболее важных задач ОС. Со времени появления ОС UNIX такой унифицированный API в большинстве ОС строится на основе концепции файлового доступа. Ее суть в том, что обмен с любым УВВ выглядит как обмен с файлом, имеющим имя и представляющим собой неструктурированную последовательность байтов. В качестве файла может выступать реальный файл на диске или иное устройство, и это – самая удобная для пользователя или программиста абстракция [2, 37-42].