'

Лекция №5

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





Слайд 1

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


Слайд 2

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


Слайд 3

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


Слайд 4

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


Слайд 5

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


Слайд 6

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


Слайд 7

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


Слайд 8

Алгоритм 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) Лучше выгрузить измененную страницу, к которой не было обращений по крайней мере в течение одного тика системных часов, чем стереть часто используемую страницу.


Слайд 9

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


Слайд 10

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


Слайд 11

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


Слайд 12

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


Слайд 13

Алгоритм «рабочий набор» Замещение страниц по запросу - когда страницы загружаются по требованию, а не заранее, т.е. процесс прерывается и ждет загрузки страницы. Буксование - когда каждую следующую страницу приходится процессу загружать в память. Чтобы не происходило частых прерываний, желательно чтобы часто запрашиваемые страницы загружались заранее, а остальные подгружались по необходимости. Рабочий набор - множество страниц (к), которое процесс использовал до момента времени (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, то эта страница входит в рабочий набор


Слайд 14

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


Слайд 15

Резюме


×

HTML:





Ссылка: