Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
госы / Операционные ситстемы.docx
Скачиваний:
55
Добавлен:
10.04.2015
Размер:
269.64 Кб
Скачать

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

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

7.Сегментная и сегментно-страничная организация виртуальной памяти.

Сегментная виртуальная память предусматривает перемещение данных сегментами — частями виртуального адресного пространства произвольного размера, полученными с учетом смыслового значения данных. Виртуальное адресное пространство процесса делится на части — сегменты, размер которых определяется с учетом смыслового значения содержащейся в них информации. Отдельный сегмент может представлять собой подпрограмму, массив данных и т. п. Деление виртуального адресного пространства на сегменты осуществляется компилятором на основе указаний программиста или по умолчанию, в соответствии с принятыми в системе соглашениями. Максимальный размер сегмента определяется разрядностью виртуального адреса, например при 32-разрядной организации процессора он равен 4 Гбайт. При этом максимально возможное виртуальное адресное пространство процесса представляет собой набор из N виртуальных сегментов, каждый размером по 4 Гбайт. В каждом сегменте виртуальные адреса находятся в диапазоне от 0000000016 до FFFFFFFF16. Сегменты не упорядочиваются друг относительно друга, так что общего для сегментов линейного виртуального адреса не существует, виртуальный адрес задается парой чисел: номером сегмента и линейным виртуальным адресом внутри сегмента. Но главный недостаток сегментного распределения — это фрагментация, которая возникает из-за непредсказуемости размеров сегментов. В процессе работы системы в памяти образуются небольшие участки свободной памяти, в которые не может быть загружен ни один сегмент. Суммарный объем, занимаемый фрагментами, может составить существенную часть общей памяти системы, приводя к ее неэффективному использованию.

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

8.Алгоритмы замещения страниц виртуальной памяти.

1. Алгоритм FIFO позволяет удалять страницы, которые дольше всего находились в памяти. Самая старая явл. 1я страница в списке. Этот алгоритм не учитывает число обращений к старой странице. Если к ней происходит обращение, то удаление неправомерно.

2. Модифицированный алгоритм (вторая попытка). Здесь ЗП таблицы страниц имеет бит обращения R. Если он = 0, то страница, находящаяся в главе списка не только самая старая, но еще и не используется, поэтому удаляется, если R=1, то к странице производилось обращение.

1

2

3

...

i-1

i

i+1

...

Если к странице было обращение, то страницу перемещают в «хвост».

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

Алгоритм NRU (Not Recently Used) - не использовавшаяся в последнее время страница. Здесь используются биты R и M. Анализ производят в течение фиксированного интервала времени (20 мс - один тик таймера). Когда возникает страничное прерывание, ОС проверяет все страницы и делит их на 4 категории или класса:

Класс 0: R=0, M=0;

Класс 1: R=0, M=1;

Класс 2: R=1, M=0;

Класс 3: R=1, M=1.

Алгоритм NRU удаляет страницу с наименьшим номером. Удаление производится из классов 1,2,3.

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

Соседние файлы в папке госы