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

Защита памяти.

При большом числе одновременно выполняющихся процессов таблицаобластей становится слишком громоздкой.Аппаратная поддерка механизма защиты с начальным и предельным значением адресов требует слишком много регистров. Поэтому исп ключ защиты памяти.

Память процессам выделяется фиксированными блоками. Каждый блок имеет спец код – ключ защиты. Для хранения ключа используют либо специальное быстродейств устройство, либо ключ хранят в фиксированном месте каждого блока.Значение ключа устанавливается менеджером памяти и одинаков для блоков принадлежащих одному процессу.Также ключ сохраняется в блоке управления процессом и при выполнении загружается в регистр CPU PSW. При каждом обращении к памяти значениехранящееся в регистре сравнивается со значением ключа защиты блока. Если они не равны генерируется ошибка

Виртуальная память.

Базовые принципы.

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

Преимущества и недостатки схемы.

Преимущества:

• Программа не ограничена величиной физической памяти и можно задей ствовать большие вирт адр пространства

• Размещение в памяти большего числа програм и увелич загрузку процессора

• Объем загрузки/выгрузки программ на диск мб меньше чем в варианте со свопингом и программы работают быстрее

Решает задачи:

• Снимает ограничение на размер адресуемого адресного пространства расширяя навесь диапазон зависящий от разрядности процессора

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

Недостатки:

• Сложная организация концепции и требует существенных средств поддержки

• Связывание адресов происходит в момент выполнения команды – требует больших расходов времени и ресурсов

Средства поддержки виртуальной памяти.

• Аппаратно-зависимый компонент – отображение вирт адресного пространства на физич (основ или дисковую)

• Апп-независимый – организация обмена мд основной и дисковой памятью

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

Модели виртуальной памяти.

Возможно три модлеи вирт памяти:

• Страничная

• Сегментная

• Сегментно-страничная

Страничная память.

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

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

• Процесс обращается по вирт адресу v=(p,d)

• Механизм отображения ищем номер p в таблице страниц и определяет номер страничного кадра р*

• Реальный адрес формируется из р* и d

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

Виртуальный адрес.

Страничные прерывания.

Подкачка.

Таблицы страниц.

• Номер кадра – номер страничного кадра, соответствующего виртаульной странице.

• Присутствие, отсутствие – если бит равен 1, то страница в памяти. Если он равен 0, то для загрузки страницы требуется страничное перрываение.

• Защита – используется для указания разрешенных видов доступа к странице. содержит один бит, равный 1 для чтения-записи или 0 только для чтения.

• Изменение (М) – устанавливается аппаратно при модификации содержимого страницы. Если страничный блок освобождается, и страница в нем была изменена («грязная» страница), то ее новая версия должны быть переписана на диск. В противном случае («чистая» страница) ее можно просто удалить из памяти.

• Обращение (R) – устанавливается аппаратно при обращении к странице для чтения или записи. Используется операционной системой при выборе страницы, подходящей для удаления из памяти.

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

• Зарезервировано – сохраняет информацию требующуюся для работы алгоритмов замещения страниц.

Назначение полей таблицы страниц.

Проблемы поддержки таблиц страниц.

• Скорость отображения изза постоянного обращении к памяти при выполнении команды

• Размеры таблиц.

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

Для решения второй проблемы применяются специальные методы структурирования и организации таблиц страниц, такие как многоуровневые и инвертированные таблицы

Буфер быстрого преобразования адреса.

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

Многоуровневые таблицы страниц.

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

РТ1 – хранит адреса таблиц второго уровня в таблице первого уровня;

РТ2 – хранит адреса страниц.

Поле РТ1 используется как индекс таблицы верхнего уровня, а поле РТ2 – как индекс таблицы второго уровня для поиска номера страничного блока.

Инвертированные таблицы страниц.

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

Когда процесс n обращается к виртуальной странице p, необходимо производить поиск записи (n,p) во всей инвертированной таблице страниц при каждом обращении к памяти. Для ускорения поиска можно использовать буфер TLB. Если буфер будет содержать все часто используемые страницы, то трансляция адреса будет происходить так же быстро, как и с обычными таблицами страниц. Однако при неудачном поиске в буфере TLB требуется просмотр в инвертированной таблице. Один из возможных способов усовершенствовать поиск – поддерживать хэш-таблицу виртуальных адресов

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]