Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
SPPO_-_Konspekt.doc
Скачиваний:
0
Добавлен:
11.12.2019
Размер:
548.35 Кб
Скачать

35.Распределение оп динамическими разделами.

Когда появляется процесс, он запрашивает какое-то количество памяти. Если памяти не хватает, он становится в очередь. Ведутся таблицы:

Таблица выделенных областей

Process PCB Address

Address

Size

Status (1/0)

Таблица свободных областей

Address

Size

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

Статус:1 – процесс уже есть; 0 – эта область может быть использована для порождения нового процесса.

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

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

Пример: управление ОП в DOS

Управление – разделами по запросу.

MCB – Memory Control Block (5 байт). Располагается в начале каждого блока памяти.

  • Статус (1 байт). ‘M’ – занят, ‘Z’ – свободен

  • Адрес PSP (PCB), 0 – свободен (2 байта)

  • Размер блока в параграфах (2 байта)

В самой ОС есть управляющее поле, которое ссылается на начало этой цепочки. Адрес следующего блока вычисляется через адрес и размер предыдущего. Команды процессора в DOS:

GETBLOCK – выделение памяти

FREEBLOCK – освобождение памяти

SETBLOCK – изменение размера памяти

И при этом нет никакой защиты ядра ОС!

36.Страничное распределение оп.

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

ОП делится на блоки одинаковой длины (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. Может не хватить памяти

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

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

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