Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

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



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

VMM (Virtual Memory Manager) — часть операционной системы, занимающаяся управлением виртуальной памятью. Диспетчер виртуальной памяти (VMM) отображает виртуальные адреса в адресном пространстве процесса на физические страницы памяти компьютера.

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

В целях повышения эффективности Диспетчер виртуальной памяти осуществляет выделение памяти в два этапа: на первом этапе выполняется резервирование памяти, а на втором — фактическая ее передача процессу.

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

Зарезервированная память (reserved memory) представляет собой набор адресов виртуальной памяти, выделенных по запросу некоторого потока (thread). Сначала происходит резервирование виртуальной памяти, и только после этого — ее передача. Фактически процедура резервирования памяти поддерживает непрерывность выделенного процессу адресного пространства, которое затем потребляется по мере надобности.

Схема сегментированной адресации памяти (segmented memory addressing), при которой каждый адрес начинался с адреса сегмента, заменена линейной адресацией (linear addressing), при которой нумерация адресов памяти начинается с 0 и продолжается с 1-байтными приращениями вплоть до достижения предела физической памяти. Поскольку виртуальная память ограничена только количеством уникальных адресов, 32-разрядная схема адресации позволяет адресовать 4-гигабайтное адресное пространство.

 
 

Каждому процессу назначается свой каталог страниц. Именно поэтому адресное пространство каждого процесса изолировано.

Организацией свопинга занимается VMM. При генерации системы на диске образуется специальный файл свопинга, куда записываются те страницы, которым не находится места в физической памяти. Процессы могут захватывать память в своем 32-битном адресном пространстве и, затем, использовать ее. При обращении потока к ячейке памяти могут возникнуть три различные ситуации:

· Страница существует и находится в памяти

· Страница не существует

 
 

При этом VMM использует следующий алгоритм организации доступа к данным:

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

Запуск на исполнение EXE — модуля происходит следующим образом: EXE — файл проецируется на память. При этом он не переписывается в файл подкачки. Просто элементы каталога и таблиц страниц настраиваются так, чтобы они указывали на EXE — файл, лежащий на диске. Затем передается управление на точку входа программы. При этом возникает исключение, обрабатывая которое стандартным образом, VMM загружает в память требуемую страницу и программа начинает исполняться. Такой механизм существенно ускоряет процедуру запуска программ, так как загрузка страниц EXE — модуля происходит по мере необходимости. Образно говоря, программа сначала начинает исполняться, а потом загружается в память.

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





Дата публикования: 2015-10-09; Прочитано: 695 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.008 с)...