Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
26
Добавлен:
02.05.2014
Размер:
285.18 Кб
Скачать

5.4. Управление памятью в современных ос

5.4.1. Архитектура управления памятью

Базовые принципы управления памятью, изложенные выше, широко используются во всех современных ОС. Но в каждой из систем существуют нюансы их использования.

Так из трех существующих моделей памяти:

  1. модели сегментированной памяти;

  2. модели памяти со сплошной адресацией;

  3. модели памяти со страничной организацией,

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

С появлением 32-х разрядных систем широко стала использоваться сплошная адресация. Диапазон адресов 4 гигабайта достаточен для большинства сегодняшних приложений.

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

Фрагментация, имеющая место при сплошной адресации, устраняется использованием страничной организации.

Кроме того, страничная организация позволяет ограничить доступ процессов к чужой памяти.

NetWare 3.1 использует модель памяти со сплошным режимом адресации, не предусматривая ни страничного обмена, ни виртуальной памяти. Из-за такого неполного подхода к управлению памятью эффективность данной системы очень высока.

NetWare 4.0 имеет заново спроектированную систему управления памятью. В ней реализован режим сплошной адресации и механизм страничного обмена. Не смотря на страничную организацию, виртуальная память в системе не реализована.

UnixWare использует модель памяти со сплошной адресацией, со страничным обменом и поддержкой виртуальной памяти.

ОС семейства Windows NT использует модель памяти со сплошной адресацией. Поддерживается страничная организация виртуальной памяти.

OS/2 управляет памятью аналогично Windows NT.

5.4.2. Защита памяти

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

Для этого используются следующие основные способы:

  1. Доступ ко всем системным структурам данных и пулам памяти производится из режима ядра, так что у пользовательских потоков нет к ним доступа.

  2. У каждого процесса имеется индивидуальное закрытое адресное пространство, защищенное от доступа других процессов.

  3. Аппаратные средства защиты памяти на уровне архитектуры процессора

  4. Разделяемые объекты имеют атрибуты контроля доступа, проверяемые при попытках процессов обратиться к этим объектам.

На уровне архитектуры существуют три метода защиты памяти (вспомним причины возникновения аппаратных исключений):

  1. проверка типа;

  2. проверка границ;

  3. проверка уровня полномочий.

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

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

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

Например, 4 уровня полномочий допускается в архитектуре Intel (два бита). Уровень 0 - самый высокий уровень защиты, уровень 3 - самый низкий.

NetWare 3.1 не имела защиты памяти. Из-за отсутствия издержек на защиту обработка данных на сервере была очень эффективной.

NetWare 4.0 использует уровни защиты, предоставляемые процессором Intel. Программы могут выполняться в следующих доменах:

  1. OS, работающем на уровне 0;

  2. OS_PROTECTED, работающем на уровне 3.

UnixWare предусматривает собственную защиту памяти и использует уровни 0 и 3 защиты процессора Intel.

ОС семейства Windows NT обеспечивает множество методов защиты памяти. Каждый процесс поддерживает собственное пространство виртуальных адресов и не может обращаться к адресам других процессов.

Кроме того, используется уровни 0 и 3 защиты процессора Intel для выполнения программ ядра и пользователя.

Кроме того, используется защита на уровне страниц.

OS/2 широко использует кольцевую схему защиты процессора Intel, помещая ядро в кольцо 0, а процессы пользователя - в 3.

Кроме того, ОС управляет доступом через атрибуты страничной памяти.

Соседние файлы в папке Шпоры по СПО