Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архитектура вычислительных систем(шпоры и лекции).doc
Скачиваний:
275
Добавлен:
10.05.2014
Размер:
534.02 Кб
Скачать

24. Виртуальная память. Принципы организации и управления.

Виртуальная память - позволят пользователю оперировать единым адрес­ным пространством, независимо от того, какая физическая память при этом используется - внутренняя (ОП) или внешняя (ВЗУ). Разме­ры адресного пространства определяются возможностью адресации. Объем вир­туальной памяти значительно превышает объем основной. В основе концепции виртуальной памяти лежит использование иерархи­ческой организации системы памяти с непрерывным адресным пространством. В представлении пользователя - это память одного уровня. Виртуальная память представляет собой совокупность всех ячеек оперативной и внешней памяти, имеющих сквозную нумера­цию от нуля до предельного значения адреса.

Виртуальная память предполагает использование ВЗУ большого объема (обычно дискового ЗУ) в качестве вспомогательного по отношению к ОП. При этом в ВЗУ образуется пространство логи­ческих (виртуальных) адресов, а часть кодов программ и данных, необходимых при выполнении программ, последовательно пересы­лается из ВЗУ в ОП. Таким образом, почти вся программа выпол­няется с обращением в ОП. Информация, хранимая в ВЗУ, струк­турно организована в виде отдельных блоков. В ОП в любой мо­мент времени находится ограниченное число копий блоков инфор­мации, хранимой в ВЗУ. Объем программ уже не ограничивается размером адресного пространства ОП, поэтому его можно расши­рять до установленных логических границ.

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

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

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

25. Управление виртуальной памятью.

Использование виртуальной памятью привносит определенную специфику в процедуры обмена информацией.

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

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

Выталкивание первой пришедшей страницы (FIFO). Каждой странице в момент загрузки в ОП присваивается временная метка. Удаляется та страница, которая дольше других находится в ОП. Эта стратегия может привести к выталкиванию активно используемых длительное время копий страниц.

Выталкивание дольше всего не использовавшейся страни­цы (LRU). Эта стратегия, известная еще как принцип Деннинга, основывается на эвристическом правиле "недавнее прошлое - хо­роший ориентир для прогнозирования ближайшего будущего". Стратегия требует, чтобы при каждом обращении к странице об­новлялась ее метка.

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

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

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

26. Страничная и сегментная виртуальная память.

1) Страничное распределение.

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

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

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

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

  2. из этой записи извлекается номер физического кадра, в котором находится копия страницы. Номер физического кадра –это базовый адрес копии страницы;

3) к физическому адресу кадра присоединяется смещение (младшие разряды виртуального адреса).

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

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

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

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

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