Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Трансляция адресов




Управление памятью

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

· выделять память в два этапа;

· выполнять чтение/запись из/в виртуальной памяти;

· фиксировать виртуальные страницы в физической памяти;

· получать информацию о виртуальных страницах;

· защищать виртуальные страницы;

· сбрасывать содержимое виртуальных страниц на диск.

Диспетчер виртуальной памяти выделяет память в два этапа:

· р езервирование;

· передача.

Зарезервированная память (reserved memory) – это набор виртуальных адресов, которые диспетчер виртуальной памяти зарезервировал для использования процессом. Это быстрая и дешевая операция. Переданной памятью (committed memory) называется память, для которой диспетчер виртуальной памяти выделил место в файле подкачки (paging file) – файле на диске, в который он записывает виртуальные страницы, когда их надо удалить из памяти. Поток может либо сразу зарезервировать и передать виртуальную память, либо вначале лишь зарезервировать ее, а передавать по мере необходимости.

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

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

Рассмотрим, как Windows увязывает виртуальные адресные пространства процессов со страницами физической памяти.

Приложения используют 32-разрядные виртуальные адреса. С помощью структур данных создаваемых и поддерживаемых диспетчером памяти, происходит трансляция этих виртуальных адресов в физические. Каждый виртуальный адрес сопоставляется со структурой системного пространства, которая называется элементом таблицы страниц (page table entry, PTE). Она и содержит физический адрес, соответствующий виртуальному (см.Рис. 3 Концептуальная схема таблицы страниц).

 

Рис. 3. Концептуальная схема таблицы страниц

Для трансляции виртуальных адресов в физические используется двухуровневая таблица страниц. Виртуальный 32-разрядный адрес состоит из трех элементов: индекса каталога страниц, индекса таблицы страниц, и индекса байта (см. Рис. 4. Структура таблицы страниц).

 

Рис. 4. Структура таблицы страниц

Индекс каталога страниц (page directory index) применяется для поиска таблицы страниц, содержащий PTE для данного виртуального адреса. С помощью индекса таблицы страниц (page table index) осуществляется поиск PTE, который содержит физический адрес, по которому проецируется виртуальная страница. Индекс байта (byte index) позволяет найти конкретный адрес на физической странице. У каждого процесса есть один каталог страниц (page directory), который представляет собой страницу с адресами всех таблиц страниц для данного процесса.

При трансляции виртуального адреса происходит следующее:

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

· Индекс каталога страниц используется для поиска элемента каталога страниц (page directory entry, PDE). Он указывает на ту таблицу страниц, которая нужна для трансляции виртуального адреса. PDE содержит номер фрема страницы (page frame number, PFN) таблицы страниц (если она находится в памяти, таблица может быть выгружена в страничный файл);

· Индекс таблицы страниц используется как указатель для поиска PTE, который определяет, где находится страница. Если она действительная, то PTE содержит PFN соответствующей страницы физической памяти. Если страница оказывается недействительной, то подсистема управления памятью пытается найти ее и сделать действительной;

· Если PTE указывает на действительную страницу, для поиска нужных данных используется индекс байта.




Поделиться с друзьями:


Дата добавления: 2014-01-14; Просмотров: 1642; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.007 сек.