Ответы к операционным системам. Вопросы по дисциплине Операционные системы
Скачать 1.44 Mb.
|
Виртуальная память и ее использование Виртуальная память (Virtual Memory) в первые была реализована в 1959г. на компьютере «Атлас», разработанном в Манчестерском университете. Перечислим концепции, лежащие в основе технологиии спользования виртуальной памяти: - занимаемая процессом память разбивается на несколько частей – страниц; - логический адрес (логическая страница), к которому обращается процесс, динамически транслируется в физический адрес (физическую страницу); - когда страница, к которой обращается процесс, не находится в физической памяти, нужно организовать ее подкачку с диска; - для контроля наличия страницы в памяти вводится специальный бит присутствия, входящий в состав атрибутов страницы в таблице страниц. Преимущества виртуальных страниц - программа не ограничена объемом физической памяти. Упрощается разработка программ, поскольку можно задействовать большие виртуальные пространства, не заботясь о размере используемой памяти. - увеличение загрузки процессора и пропускной способности системы. Это обусловлено тем, что появляется возможность частичного помещения программы (процесса) в память и гибкого перераспределения памяти между программами. Как следствие в памяти ЭВМ находится больше программ пользователя. - увеличение скорости работы программы. Так как объем ввода-вывода для выгрузки части программы на диск будет меньше, чем в варианте классического свопинга. Архитектура виртуальной памяти Виртуальная память и физическая память представляются состоящими из наборов блоков или страниц одинакового размера (4Кб). Виртуальные адреса делятся на страницы. Соответствующие единицы в физической памяти образуют страничные кадры. Система поддержки страничной виртуальной памяти называется пейджингом. Передача информации между памятью и диском всегда осуществляется целыми страницами. Реализуется доступ к виртуальной памяти на основе таблицы страниц. Виртуальный адрес состоит из виртуального номера страницы и смещения. Номер записи в таблице страниц соответствует номеру виртуальной страницы. Для контроля за состоянием страницы вводятся специальные атрибуты – флаги. Такой флаг представляет собой бит в активном или сброшенном состоянии. Рассмотрим назначение битов: - бит присутствия и защиты (например, 0 – read/write, 1 – read only...); - бит модификации, который устанавливается, если содержимое страницы модифицировано, и позволяет контролировать необходимость перезаписи страницы на диск; - бит ссылки, который помогает выделить малоиспользуемые страницы. Для того чтобы избежать размещения в памяти огромной таблицы страниц, ее разбивают на ряд фрагментов. В оперативной памяти хранят лишь некоторые, необходимые для конкретного момента исполнения фрагменты таблицы страниц. В силу свойства локальности адресного пространства число таких фрагментов относительно невелико. Принципиальная схема организации многоуровневой таблицы страниц показана на рис. 5.1. Такая организация – двухуровневая с размером страниц 4 Кбайт, реализована в 32-разрядной архитектуре Intel. Таблица, состоящая из 2^20 строк, разбивается на 2^10 таблиц второго уровня по 2^10 строк. Эти таблицы второго уровня объединены вобщую структуру при помощи одной таблицы первого уровня, состоящей из 2^10 строк. Виртуальный адрес состоит из трех составляющих: p 1 – адреса записи в таблице страниц первого уровня; p 2 – адреса записи в таблице второго уровня и смещения d к ячейке памяти на физической странице. Динамическое распределение памяти Такая технология используется в системах с разделением времени. Память не в состоянии содержать все пользовательские процессы. В этом случае используют свопинг (swapping) – перемещение процессов из главной памяти на диск – долговременную память и обратно целиком. Выгруженный процесс может быть возвращен в то же самое адресное пространство или в другое. Это ограничение диктуется методом связывания. Для схемы связывания на этапе выполнения можно загрузить процесс в другое место памяти. Переменные разделы Вновь поступающей задаче выделяется строго необходимое количество памяти. После выгрузки процесса память временно освобождается. По истечении некоторого времени память представляет собой переменное число разделов разного размера. Смежные свободные участки могут быть объединены. Рассмотрим пример. Пусть в распоряжении ОС имеется три раздела оперативной памяти, так как это показано на рис. 4.7. Затем в первый и третий разделы предоставляется исполняемым процессам (рис. 4.8). Затем процесс из третьего раздела был выгружен и в него был загружен новый процесс. Из рис. 4.9 видно, что выбор раздела был сделан с «запасом» и в нем осталось невостребованное свободное место. Таким образом, возникает проблема выбора стратегии загрузки процессов в разделы. Стратегии выбора раздела - Стратегия первого подходящего (First fit). Процесс помещается в первый подходящий по размеру раздел. - Стратегия наиболее подходящего (Best fit). Процесс помещается в тот раздел, где после его загрузки останется меньше всего свободного места. - Стратегия наименее подходящего (Worst fit). При помещении в самый большой раздел в нем остается достаточно места для возможного размещения еще одного процесса. Рассмотренные выше технологии выделения оперативной памяти используются на уровне программного обеспечения. Так, технология выделения разделов различного объема используется при написании программ на языке Си и Си++ с динамическим размещением их объектов в памяти. |