The design of the UNIX Operating System 43 страница



 

Схема с фиксированными разделами

 

Самым простым способом управления оперативной памятью является ее предварительное (обычно на этапе генерации или в момент загрузки системы) разбиение на несколько разделов фиксированной вели-чины. Поступающие процессы помещаются в тот или иной раздел. При этом происходит условное раз-биение физического адресного пространства. Связывание логических и физических адресов процесса происходит на этапе его загрузки в конкретный раздел, иногда – на этапе компиляции.

 

Каждый раздел может иметь свою очередь процессов, а может существовать и глобальная очередь для всех разделов(см. рис. 8.4).

 

Эта схема была реализована в IBM OS/360 (MFT), DEC RSX-11 и ряде других систем.

 

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

 

Рис. 8.4. Схема с фиксированными разделами: (a) –с общей очередью процессов,

 

(b) – с отдельными очередями процессов

 

Очевидный недостаток этой схемы – число одновременно выполняемых процессов ограничено числом разделов.


Основы операционных систем 76

Другим существенным недостатком является то, что предлагаемая схема сильно страдает от внутренней фрагментации – потери части памяти, выделенной процессу, но не используемой им. Фрагментация воз-никает потому, что процесс не полностью занимает выделенный ему раздел или потому, что некоторые разделы слишком малы для выполняемых пользовательских программ.

 

Один процесс в памяти

 

Частный случай схемы с фиксированными разделами – работа менеджера памяти однозадачной ОС. В памяти размещается один пользовательский процесс. Остается определить, где располагается пользова-тельская программа по отношению к ОС – в верхней части памяти, в нижней или в средней. Причем часть ОС может быть в ROM (например, BIOS, драйверы устройств). Главный фактор, влияющий на это решение, – расположение вектора прерываний, который обычно локализован в нижней части памяти, по-этому ОС также размещают в нижней. Примером такой организации может служить ОС MS-DOS.

 

Защита адресного пространства ОС от пользовательской программы может быть организована при по-мощи одного граничного регистра, содержащего адрес границы ОС.

 

Оверлейная структура

 

Так как размер логического адресного пространства процесса может быть больше, чем размер выделен-ного ему раздела ( или больше, чем размер самого большого раздела), иногда используется техника , на-зываемая оверлей (overlay) или организация структуры с перекрытием. Основная идея – держать в памя-ти только те инструкции программы, которые нужны в данный момент.

 

Потребность в таком способе загрузки появляется, если логическое адресное пространство системы мало, например 1 Мбайт (MS-DOS) или даже всего 64 Кбайта (PDP-11), а программа относительно велика. На современных 32-разрядных системах, где виртуальное адресное пространство измеряется гигабайтами, проблемы с нехваткой памяти решаются другими способами (см. раздел "Виртуальная память").

 

Рис. 8.5. Организация структуры с перекрытием.Можно поочереднозагружать в память ветви A-B, A-C-D и A-C-E программы

 

Коды ветвей оверлейной структуры программы находятся на диске как абсолютные образы памяти и считываются драйвером оверлеев при необходимости. Для описания оверлейной структуры обычно ис-пользуется специальный несложный язык (overlay description language). Совокупность файлов исполняе-мой программы дополняется файлом (обычно с расширением .odl), описывающим дерево вызовов внутри программы. Для примера, приведенного на рис. 8.5, текст этого файла может выглядеть так:


Дата добавления: 2021-01-21; просмотров: 97; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!