Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Билетики.pdf
Скачиваний:
1
Добавлен:
05.06.2025
Размер:
6.66 Mб
Скачать

48. Таблицы страниц для больших объемов памяти.

При размере страниц в 4 Кбайт:

-​ в 32-разрядном адресном пространстве - 1 миллион страниц -​ в 64-разрядном - 2**52 штук страниц.

Таблица страниц должна содержать запись о каждой виртуальной странице. При размере записи 8 байт, размер таблицы страниц будет:

>8 миллионов байт для 32 разрядной архитектуры

30миллионов байт для 64-разрядной.

Икаждому процессу требуется своя собственная таблица страниц.

Многоуровневые таблицы страниц.

1.Путем отбрасывания k+n младших разрядов в виртуальном адресе определяется

номер раздела, к которому принадлежит данный виртуальный адрес.

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

нет, происходит страничное прерывание и система загружает нужную страницу с диска.

3.Далее из этой таблицы страниц извлекается дескриптор виртуальной страницы,

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

4.Из дескриптора определяется номер (базовый адрес) физической страницы, в

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

Инвертированные таблицы страниц

Достоинства:

+ гораздо меньше по объёму. Недостатки:

-не совсем ясно, как в ней искать виртуальный адрес.

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

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

СОН ДЛЯ ЛОХОВ

49. Алгоритмы замещения страниц.

1. Оптимальный алгоритм замещения страниц

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

2. NRU (Not Recently Used)

Бит R – бит обращения, бит M – бит модификации. Суть:

при запуске процесса R=0, M=0 для всех страниц.

При каждом прерывании по таймеру бит R сбрасывается

При возникновении ошибки отсутствия страницы ОС просматривает все дескрипторы страниц и делит их на четыре категории:

Класс 0: ни обращений, ни модификации Класс 1: нет обращений, есть модификация Класс 2: есть обращения, нет модификации

Класс 3: есть обращения, есть модификация

Алгоритм удаляет произвольную страницу низшего класса.

3. FIFO

тут ясно как день

4. Алгоритм «второй шанс»

Если к ней не обращались - удалит, если обращались - сбросит и в конец. Если обращались - ФИФА

5. Алгоритм «часы»

Когда происходит страничное прерывание, проверяется страница, на которую указывает стрелка. Предпринимаемые действия зависят от бита R: R=0: страница выгружается; R=1: бит сбрасывается, стрелка движется вперед

6. LRU (Least Recently Used)

аппаратная реализация - 3 варианта

-​ Связанный список всех страниц. Первая страница – только что использованная. Использовали – переместили в начало. ОЧ ДОЛГА

-​ Страницам ввести счётчик. Удаляются страницы с наименьшим счётчиком. Использовали - +1.

-​ Если использовали страницу, элементы строки k (биты) устанавливают на 1, элементы столбца k обнуляются. Удаляются страницы с наименьшим значением строки.

программная реализация:

-NFU (Not Frequently Used) -алгоритм старения

Программный счётчик, при каждом прерывании от таймера ОС сканирует все находящиеся в памяти страницы, если R=1, счётчик увеличивается на 1. Таким образом, кандидатом на освобождение оказывается страница с наименьшим значением счетчика, как страница, к которой реже всего обращались. Главный недостаток алгоритма NFU состоит в том, что он ничего не забывает. Например, страница, к которой очень часто обращались в течение некоторого времени, а потом обращаться перестали, все равно не будет

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

К счастью, возможна небольшая модификация алгоритма, которая

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

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

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

7. Рабочий набор:

базовый алгоритм рабочего набора

Т.е. рабочий набор выходит в насыщение, значение w(k,t) в режиме насыщения может служить для рабочего набора, который необходимо загружать до запуска

процесса.

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

50. Сегментное распределение памяти.

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

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

●​ начальный физический адрес сегмента в оперативной памяти; ●​ размер сегмента; ●​ правила доступа;

●​ признаки модификации, присутствия, обращения к данному сегменту.

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

Система с сегментной организацией функционирует аналогично системе со

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

Недостатком данного метода распределения памяти является фрагментация на уровне сегментов и более медленное по сравнению со страничной организацией преобразование адреса.

51. Сегментно-страничное распределение памяти.

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

Сегментно-страничное распределение представляет собой комбинацию страничного и сегментного механизма управления памятью и направлен на реализацию достоинств

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