Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
SPPO_na_unitaze.doc
Скачиваний:
11
Добавлен:
16.04.2015
Размер:
540.67 Кб
Скачать
  1. Страничное распределение оп.

Виртуальное адресное пространство процесса – образ процесса, который загружен с фиксированного адреса. В Windowsэтот адрес – 2GB.

ОП делится на блоки одинаковой длины (2–4К)

Адресное пространство процесса непрерывно.

Таблица блоков – одна на всю систему:

0

Страница 1

1

2

Страница 0

3

4

Страница 2

5

6

7

Страница 3

Любая страница может быть загружена в любой свободный блок.

Таблица страниц – для всех страниц всех процессов хранит номер блока, одна на процесс, хранится в PCB, загружается в память при обращении:

Номер страницы

Номер блока

0

2

1

0

2

4

Любой адрес аппаратно формируется процессором. (p,b): номер страницы, относительное смещение. Из таблицы страниц получают номер блока, берут его адрес, прибавляют к нему относительное смещение и получают исполняемый адрес. Для реализации этого механизма необходимо создать таблицу страниц для каждого процесса.

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

Регистры:

              1. Адрес начала таблицы

              2. Количество элементов в таблице

Недостатки:

  1. Большие накладные расходы (к памяти надо обращаться 2 раза: к таблице и к нужному байту).

  2. Может не хватить памяти

Для устранения этого недостатка используется регистровая ассоциированная память процессора. В ней хранится таблица страниц.

Преимущество - автоматическая борьба с фрагментацией.

  1. Управления оперативной памятью страницами по запросу.

Внешняя память используется как временное хранилище образов ОП. Механизм такой же, но только не все страницы процесса загружены одновременно. Таблица страниц дополняется еще одной позицией: статус (страница хранится на жестком диске). При обращении к памяти необходимо проверяется, загружена ли страница в ОП, если нет, то загружающее ее формируется страничное прерывание. Для каждого процесса существует файл страниц, который хранит адреса размещения незагруженных страниц во внешней памяти. При этом возможно, что придется вытеснить какую-то страницу памяти. Тогда она запишется на место загруженной. Во внешнюю память вытесняемую страницу нужно записывать, если только она была изменена, т.к. она уже имеется во внешней памяти.

Для определения, какую страницу вытеснять и надо ли ее переписывать, используются алгоритмы:

    1. FIFO– при этом нужно вести учет страниц, страницы связаны в список.

    2. LRU–LastRecentlyUsed(наименее используемая в последнее время). Каждый блок дополняется битом обращения и битом изменения. Эти биты периодически сбрасываются в 0, а при обращении или изменении устанавливаются в 1. Бит изменения равен 0 при загрузке из внешней памяти, а бит обращения обнуляется еще и диспетчером памяти, который сканирует всю память. Для поддержки такого метода нужна аппаратная поддержка битов изменения и обращения и три типа таблиц (свободных блоков, страниц, карта файла). Таблица блоков – связанный список свободных блоков и список дляLRU.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]