Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Управление памятью
Уровни памяти:
- регистровая;
- кеш;
- ОЗУ, ОП;
- внешние устройства.
Виртуальная память (ВП)
Виртуальная память может быть реализована для любого из этих уровней. При реализации виртуальной памяти пользователю предоставляются обычные средства ОЗУ, а именно:
- последовательный вид доступа;
- непосредственная адресация;
- время доступа сравнимое со временем доступа реальной ОЗУ.
Новые свойства виртуальной памяти:
-- очень большой объём адресного пространства, получаемый в монопольное распоряжение программиста;
-- степень виртуальности может быть разной.
Основные понятия и концепции виртуальной памяти
Физическая память это среда хранения из элементов, адресуемых в соответствии с физическими возможностями памяти и принятым способом адресации.
Множество адресов, упорядоченных по некоторому признаку, называют адресным пространством.
Механизм физической адресации элементов памяти, есть основа более сложного механизма доступа, реализуемого программно-аппаратными методами. Основная задача диспетчера виртуальной памяти заключается в отображении линейного пространства адресов виртуальной памяти на часть адресного пространства физической памяти.
Построение механизма виртуальной памяти основано на решении четырёх задач:
Задача размещения: заключается в выборе страницы (сегмента) в ОЗУ, куда будут отображаться страницы (сегменты) виртуальной памяти. Фактически, это означает, что необходимо произвести преобразование виртуальных адресов в физические, и наоборот.
Задача преобразования: преобразует адрес виртуальный в адрес оперативный и наоборот.
Задача перемещения: в архивной среде выбирается такая информация, которая принадлежит отображаемым виртуальным страницам, и она передаётся в страницы (сегменты) ОЗУ, найденные в результате решения задачи размещения.
Задача замещения: заключается в выборе кандидата на перераспределение.
Итак, ОС содержит 2 таблицы, описывающие состояние страниц и сегментов:
1) PMT (Page Map Table) это карта памяти определяет положение сегмента в ОП;
2) Таблица страничных кадров (ТСК) следит за состоянием страниц (занята/свободна/изменена).
Когда возникает прерывание, таблица рассматривается в поисках свободного страничного кадра. Если он найден, то требуемая страница может быть загружена немедленно. Иначе, страница, находящаяся в памяти, должна быть вытолкнута, чтобы освободить место для той страницы, которую надо загрузить. Если выталкиваемая страница с момента загрузки была модифицирована, то её новая версия должна быть переписана во внешнюю память. Если нет, то она может быть просто уничтожена. Все эти операции делает программа страничных прерываний, при этом она осуществляет динамичное преобразование адресов и обрабатывает страничные прерывания.
Часть алгоритма этой программы реализуется аппаратным способом, а вторая часть программным способом.
Эта программа требует по крайней мере одной операции ввода-вывода, поэтому для её работы требуется гораздо больше времени, чем у всех остальных обработчиков прерываний. Однако закрывать прерывания нежелательно. Во время страничного обмена надо дать возможность работать процессору, поэтому при прерывании по отсутствию страниц, сначала определяется, какое действие надо выполнить и сохранить информацию о состоянии прерванного процесса. Затем в течение оставшегося времени разрешается функционирование системы прерываний.
Procedure PAGEFAULT {реализована как часть ОС}
<сохранить состояние процесса из рабочей области прерываний>;
<пометить этот процесс как блокированный (blocked)>;
if <имеется свободный страничный кадр> then
begin
<выбрать свободный страничный кадр>;
<пометить выбранный кадр в таблице страничных кадров как 'занятый'>;
<разрешить все прерывания>
end
else
begin
<выбрать страницу для выталкивания>;
<пометить выбранный кадр в таблице страничных кадров как 'занятый'>;
<разрешить все прерывания>;
if <выбранная страница была модифицирована> then
begin
<обновить PMT и таблицу страничных кадров>;
<выдать запрос на ввод-вывод>;
<ждать завершения операции записи>;
end
end;
<выдать запрос на ввод-вывод для чтения страниц в выбранный страничный кадр>;
<ожидать завершения операции чтения>;
<обновить PMT и таблицу страничных кадров>;
<восстановить состояние пользовательского процесса, пометив процесс, как “ready”>
end.
Кэш файловой системы.
Кэш промежуточный буфер с быстрым доступом, содержащий информацию, которая может быть запрошена с наибольшей вероятностью. Доступ к данным в кэше идёт быстрее, чем выборка исходных данных из оперативной (ОЗУ) и быстрее внешней (жёсткий диск или твердотельный накопитель) памяти, за счёт чего уменьшается среднее время доступа и увеличивается общая производительность компьютерной системы. Прямой доступ к данным, хранящимся в кэше, программным путем невозможен.
Кэш состоит из набора записей. Каждая запись ассоциирована с элементом данных или блоком данных (небольшой части данных), которая является копией элемента данных в основной памяти. Каждая запись имеет идентификатор, определяющий соответствие между элементами данных в кэше и их копиями в основной памяти.
Когда клиент кэша (ЦПУ, веб-браузер, операционная система) обращается к данным, прежде всего исследуется кэш. Если в кэше найдена запись с идентификатором, совпадающим с идентификатором затребованного элемента данных, то используются элементы данных в кэше. Такой случай называется попаданием кэша. Если в кэше не найдена запись, содержащая затребованный элемент данных, то он читается из основной памяти в кэш, и становится доступным для последующих обращений. Такой случай называется промахом кэша. Процент обращений к кэшу, когда в нём найден результат, называется уровнем попаданий или коэффициентом попаданий в кэш.
Например, веб-браузер проверяет локальный кэш на диске на наличие локальной копии веб-страницы, соответствующей запрошенному URL. В этом примере URL это идентификатор, а содержимое веб-страницы это элементы данных.
Если кэш ограничен в объёме, то при промахе может быть принято решение отбросить некоторую запись для освобождения пространства. Для выбора отбрасываемой записи используются разные алгоритмы вытеснения.
При модификации элементов данных в кэше выполняется их обновление в основной памяти. Задержка во времени между модификацией данных в кэше и обновлением основной памяти управляется так называемой политикой записи.
В кэше с немедленной записью каждое изменение вызывает синхронное обновление данных в основной памяти.
В кэше с отложенной записью (или обратной записью) обновление происходит в случае вытеснения элемента данных, периодически или по запросу клиента. Для отслеживания модифицированных элементов данных записи кэша хранят признак модификации .
Промах в кэше с отложенной записью может потребовать два обращения к основной памяти: первое для записи заменяемых данных из кэша, второе для чтения необходимого элемента данных.
Достижение оптимальной производительности.