Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы к экзу по ОС.doc
Скачиваний:
4
Добавлен:
19.09.2019
Размер:
450.05 Кб
Скачать

14. Преобразование адреса виртуальной памяти в реальный адрес осуществляется по схеме:

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

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

Комбинированная организация. Виртуальный адрес представляет собой тройку (s, p, d). Динамическое преобразование осуществляется довольно сложно как бы в 2 этапа, поскольку строки таблиц сегментов указывают на таблицы страниц, а строки таблиц страниц указывают на кадры. В комбинированных системах почти всегда применяются высокоскоростные ассоциативные устройства или кэш-память. Коллективное использование в комбинированной системе осуществляется благодаря тому, что строки различных таблиц сегментов указывают на одну таблицу страниц.

3 апреля 2012 года

15.Управление виртуальной памятью, стратегии управления.

Стратегии вталкивания.

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

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

Стратегии размещения.

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

Стратегии выталкивания.

Определяют, какую страницу или сегмент следует заменить, чтобы освободить место для поступающего сегмента. Наиболее часто используются: выталкивание случайной страницы – эта стратегия имеет малые издержки, но рассчитана на слепое везение и поэтому применяется редко; по принципу оптимальности – выталкивается страница, которая наиболее долго не будет использоваться в дальнейшем, однако предсказать это сложно; FIFO – выталкивается страница, которая находилась в памяти дольше других; LRU – выталкивается страница, которая дольше всего не использовалась; LFU – выталкивается страница, которая использовалась реже других; NUR – выталкивается страница, не используемая в последнее время; по принципу рабочего множества – выталкивается страница, которая не входит в подмножество наиболее используемых страниц процесса.

Некоторые системы предусматривают возможность добровольного освобождения страниц. Многие стратегии базируются на понятии локальности. Локальность – свойство выполняющихся процессов, состоящее в том, что процессы как правило более активно обращаются к некоторому подмножеству своих страниц в течение некоторого временного интервала выполнения. Локальность может временной – означает, что процесс, обращающийся к странице, с большой вероятностью вскоре снова обратиться к этой же странице. Пространственная локальность – означает, что процесс, обращающийся к некоторой странице с большой вероятностью вскоре обратиться к соседним страницам своего виртуального адресного пространства. Временная локальность обусловлена тем, что программы пишутся с использованием циклов, подпрограмм, стеков, счетчиков, переменных для накопления итоговых сумм, массивов. Пространственная объясняется тем, что код программы обычно выполняется последовательно, данные организуются часто в виде массивов и у программистов принято размещать описание взаимосвязанных элементов по близости друг от друга. И на основе понятия локальности Деннинг разработал концепцию рабочих множеств, которая объясняет поведение программы. Рабочее множество обозначается W (t, Δt) в момент времени t – это множество страниц, к которым процесс обращается в интервале времени от t– Δt до t. Величина Δt – размер окна рабочего множества и её выбор играет существенную роль в управлении памятью.

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

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

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

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

  • Ввод/вывод наиболее эффективен при больших размерах страниц.

  • Свойство локальности, как правило, распространяется на небольшие участки.

  • При малых размерах страниц потери памяти на внутреннюю фрагментацию уменьшаются.

У Windows используется страничная организация, размер страницы – 4 Кб.