Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по АК.doc
Скачиваний:
5
Добавлен:
01.05.2025
Размер:
752.64 Кб
Скачать

Организация виртуальной памяти.

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

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

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

W(H, t) = W(k)

W(k) = A(1- )

W(k) = A (1- e )

Стратегии замещения страниц.

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

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

  1. Оптимальное замещение страниц действует следующим образом:

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

Недостаток: невыполнимость.

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

2. NRU – выгружаются неиспользуемые время страницы. Каждая страница при этом снабжена 2-мя битами (R и M). Бит R – при каждом обращении к странице, бит M – при записи. При возникновении страничного прерывания ОС обращается к биту R и M и выделяет 4 класса по комбинациям:

00 – не было обращений изменений.

01 – не было обращений но страница изменена.

10 – страница не изменена.

11 – и обращение и изменение.

Бит R ставится по системному таймеру. Бит M – только при выгрузке страницы. Загруженная страница имеет R и M нулевые.

Согласно этим классам прежде всего замещается страница класса 0, затем класса 1. В последнюю очередь класса 3. В некоторых системах класс 2 выгружается раньше, чем класс 1 т.к. выгрузка 1-го класса предполагает запись на диск выигрыш по времени.

Достоинства алгоритма: легок для реализации и достаточно надежен.

Алгоритм FIFO (*)