'

Лекция №5

Понравилась презентация – покажи это...





Слайд 0

Лекция №5 Управление памятью Виртуальное адресное пространство Непрерывное…..


Слайд 1

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


Слайд 2

Страничная организация памяти Страницы - это части, на которые разбивается пространство виртуальных адресов. Страничные блоки - единицы физической памяти. Страницы всегда имеют фиксированный размер. Передача данных между ОЗУ и диском всегда происходит в страницах. Х - обозначает не отображаемую страницу в физической памяти.


Слайд 3

Страничная организация памяти Страничное прерывание - происходит, если процесс обратился к странице, которая не загружена в ОЗУ (т.е. Х). Процессор передается другому процессу, и параллельно страница загружается в память. Таблица страниц - используется для хранения соответствия адресов виртуальной страницы и страничного блока. Таблица может быть размещена: в аппаратных регистрах (преимущество: более высокое быстродействие, недостаток - стоимость) в ОЗУ


Слайд 4

Страничная организация памяти Присутствие/отсутствие - загружена или незагружена в память Защита - виды доступа, например, чтение/запись. Изменение - изменилась ли страница, если да то при выгрузке записывается на диск, если нет, просто уничтожается. Обращение - было ли обращение к странице, если нет, то это лучший кандидат на освобождение памяти. Информация о адресе страницы когда она хранится на диске, в таблице не размещается. Для ускорения доступа к страницам в диспетчере памяти создают буфер быстрого преобразования адреса, в котором хранится информация о наиболее часто используемых страниц. Страничная организация памяти используется, и в UNIX, и в Windows.


Слайд 5

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


Слайд 6

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


Слайд 7

Алгоритм NRU (Not Recently Used) Используются биты обращения (R-Referenced) и изменения (M-Modified) в таблице страниц. При обращении бит R выставляется в 1, через некоторое время ОС не переведет его в 0. M переводится в 0, только после записи на диск. Благодаря этим битам можно получить 4-ре класса страниц: не было обращений и изменений (R=0, M=0) не было обращений, было изменение (R=0, M=1) было обращение, не было изменений (R=1, M=0) было обращений и изменений (R=1, M=1) Лучше выгрузить измененную страницу, к которой не было обращений по крайней мере в течение одного тика системных часов, чем стереть часто используемую страницу.


Слайд 8

Алгоритмы FIFO (первая прибыла – первая выгружена) Алгоритм «вторая попытка» Подобен FIFO, но если R=1, то страница переводится в конец очереди, если R=0, то страница выгружается. Часто используемая страница никогда не покинет память, но приходится часто перемещать страницы по списку.


Слайд 9

Алгоритм «Часы» Чтобы избежать перемещения страниц по списку, можно использовать указатель, который перемещается по списку.


Слайд 10

Алгоритм LRU (Least Recently Used) Поддерживать список, в котором выстраивать страницы по количеству использования. Эта реализация очень дорога. В таблице страниц добавляется запись - счетчик обращений к странице. Чем меньше значение счетчика, тем реже она использовалась. Машина с n страничными блоками. n X n – матрица. При обращении к блоку k, аппаратура сначала присваивает всем битам строки k значение 1, затем всем биты столбца k присваивает 0. В любой момент времени строка, двоичное значение которой наименьшее, является не использовавшейся дольше всего.


Слайд 11

LRU Обращения к страницам: 0 1 2 3 2 1 0 3 2 3


Слайд 12

Алгоритм «рабочий набор» Замещение страниц по запросу - когда страницы загружаются по требованию, а не заранее, т.е. процесс прерывается и ждет загрузки страницы. Буксование - когда каждую следующую страницу приходится процессу загружать в память. Чтобы не происходило частых прерываний, желательно чтобы часто запрашиваемые страницы загружались заранее, а остальные подгружались по необходимости. Рабочий набор - множество страниц (к), которое процесс использовал до момента времени (t). Т.е. можно записать функцию w(k,t). Т.е. рабочий набор выходит в насыщение, значение w(k,t) в режиме насыщения может служить для рабочего набора, который необходимо загружать до запуска процесса. Алгоритм заключается в том, чтобы определить рабочий набор, найти и выгрузить страницу, которая не входит в рабочий набор. Этот алгоритм можно реализовать, записывая, при каждом обращении к памяти, номер страницы в специальный сдвигающийся регистр, затем удалялись бы дублирующие страницы. Но это дорого. В принципе можно использовать множество страниц, к которым обращался процесс за последние t секунд. Текущее виртуальное время (Tv) - время работы процессора, которое реально использовал процесс. Время последнего использования (Told) - текущее время при R=1, т.е. все страницы проверяются на R=1, и если да то текущее время записывается в это поле. Теперь можно вычислить возраст страницы (не обновления) Tv-Told, и сравнить с t, если больше, то страница не входит в рабочий набор, и страницу можно выгружать. Получается три варианта: если R=1, то текущее время запоминается в поле время последнего использования если R=0 и возраст > t, то страница удаляется если R=0 и возраст =< t, то эта страница входит в рабочий набор


Слайд 13

Алгоритм WSClock Используются битов R и M, а также время последнего использования.


Слайд 14

Резюме


×

HTML:





Ссылка: