Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Виртуальная память и свопинг. Реализация виртуальной памяти.



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

• Это явление называется виртуализацией памяти

• Виртуальным называется ресурс, который пользователю представляется обладающим свойствами, которыми он

на самом деле не обладает

Виртуализация памяти может быть осуществлена на основе двух различных подходов:

· свопинг – образы процессов выгружаются на диск и возвращаются в ОП целиком

· виртуальная память – между ОП и диском перемещаются части процессов

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

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

образы полностью

• Системы со свопингом не способны загружать для выполнения процесс, ВАП которого превышает имеющуюся в наличии свободную память

• Свопинг в современных системах обычно включается при серьезныхперегрузках

 

В настоящее время чаще используется более совершенный механизм ВП

• Ключевой вопрос в ВП – преобразование ВА в ФА

• Ответ на этот вопрос зависит от способа структуризации памяти

 

 

Все множество реализаций ВП может быть представлено тремя классами:

· Страничная ВП

· Сегментная ВП

· Сегментно-страничная ВП

 

30. Страничное распределение памяти. Преобразование виртуальных адресов в физические.

Для временного хранения сегментов и страниц на внешнем носителе отводится отдельный раздел или специальный файл, который во многих ОС по традиции называют файлом подкачки

• Его второе название – страничный файл

• Размер этого файла является важным настраиваемым параметром для достижения компромисса между уровнем

мультипрограммирования и быстродействием.

 

//ВАП каждого процесса делится на части одинакового, фиксированного для определенной системы размера

• В общем случае размер виртуального адресного пространства не является кратным размеру страницы, поэтому

последняя страница каждого процесса дополняется фиктивной областью

• Вся ОП вычислительной машины делится на части такого же размера, и они называются физическими

страницами (или блоками, или кадрами)

• Размер страницы обычно степень двойки

 При создании процесса ОС загружает в ОП несколько его виртуальных страниц (например, начальные страницы сегмента кода и сегмента данных)

• Копия всего ВАП находится на диске

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

 Для каждого процесса создается таблица страниц – информационная структура с записями обо всех виртуальных страницах процесса

• Запись этой таблицы – дескриптор страницы, включает следующую информацию:

· номер физической страницы

· признак присутствия

· признак модификации страницы

· признак обращения к странице, называемый иногда битом доступа

· признак защиты страницы (обычно три бита) для допуска и запрета на операции чтения, записи и выполнения;

· признак блокирования кэша и др

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

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

• Если данная страница уже находится в ОП, то выполняется преобразование ВА в ФА

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

Преобразование ВА в ФА

ВА при страничном распределении – пара чисел (P, O), где P – номер виртуальной страницы процесса (начиная с 0), а O –смещение в пределах виртуальной страницы

• Поскольку размер страницы равен 2k, смещение O получается отделением k младших разрядов в двоичной записи ВА

• Оставшиеся старшие разряды представляют собой двоичную запись номера страницы P

 

 При каждом обращении к ОП аппаратура выполняет следующие действия:

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

2. Из найденной записи извлекается номер физической страницы

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

 

На производительность системы со страничной организацией памяти влияют временные затраты, связанные с

обработкой страничных прерываний и преобразованием ВА в ФА

• При часто возникающих страничных прерываниях система может затратить большую часть времени на страничный обмен

• В современных системах чаще всего размер страницы устанавливается равным 4, 8, 16 Кб, однако чаще стали

встречаться страницы 32 Кб

 

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

Если свободных физических страниц нет, то решается, какую страницу следует выгрузить на диск.

Наиболее популярные критерии выбора страницы для выгрузки на диск:

· страница, к которой в последнее время было меньше всего обращений (алгоритм NRU)

·  первая попавшаяся страница

·  стратегия FIFO

· страница, к которой не было обращений на предыдущем интервале времени

· кольцевая организация

· дольше всего не использовавшаяся страница (LRU)

· рабочее множество страниц

· кольцевой алгоритм с рабочим множеством страниц

·

Алгоритм NRU

Для своей работы он использует признаки (биты) модификации и обращения

• При появлении нового процесса в системе у всех его страниц оба этих бита сброшены

• Когда происходит страничное прерывание, система проверяет все страницы и разбивает их на четыре класса на основании значений признаков модификации и обращения:

· Не было обращений и модификаций

· Не было обращений, страница модифицирована

· Было обращение, а страница не модифицировалась

· Были обращение и модификация

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

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

 

FIFO

Еще одним простым способом вытеснения страниц считается алгоритм FIFO

• ОС хранит список всех страниц, находящихся в памяти, где первая страница является самой старшей, а

«молодые» страницы находятся в хвосте списка

• Когда происходит страничное прерывание, то выгружается страница из головы списка, а новая страница

добавляется в хвост

• Данный алгоритм не использует признак модификации страницы

 

32. Сегментное и сегментно-страничное распределение памяти. Отличительные особенности.

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

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

 

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

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

 

 Виртуальный адрес при сегментной организации памяти может быть представлен парой (g, s), где g - номер сегмента, а s - смещение в сегменте. Физический адрес получается путем сложения начального физического адреса сегмента, найденного в таблице сегментов по номеру g, и смещения s.

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

 


Поделиться:



Последнее изменение этой страницы: 2019-05-08; Просмотров: 495; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.02 с.)
Главная | Случайная страница | Обратная связь