Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Мотивировка концепции виртуальной памяти
Концепция виртуальной памяти основана на идеях отделения логической памяти пользователя от физической памяти и расширения логической памяти путем хранения ее образа на диске. При исполнении программы только часть ее кода и данных, к которым происходит обращение, в каждый момент требует размещения в физической памяти. Поэтому, естественно, возникает идея расширитьпространство логической памяти, которое может быть реализовано намного большего размера, чем физическая память. Это и есть основной принцип организации виртуальной памяти. Виртуальная память поддерживает совместное использование одного и того же адресного пространства более чем одним процессом, создание и исполнение облегченных процессов в общем пространстве виртуальной памяти. Виртуальная память допускает более эффективное создание процесса, чем предшествующие схемы организации памяти и процессов. Заметим, что концепция виртуальной памяти непосредственно не связана ни со страничной, ни с сегментной стратегиями распределения памяти. Виртуальная память может быть реализована различными способами, например, с помощью: · страничной организации по требованию (paging on demand); · сегментной организации по требованию (segmentation on demand). В приведенных терминах подчеркивается динамический характер управления виртуальной памятью: термин по требованию означает, что страница или сегмент будут размещены в физической памяти только в случае, если к ним реально происходит обращение из программы пользователя. Причем если размер обрабатываемой области виртуальной памяти (например, массива) очень велик – например, 1000 страниц, то в физической памяти будет размещена только та его страница, к которой обращается пользовательская программа. Принцип управления виртуальной памятью иллюстрируется рис. 1. Рис.1. Виртуальная память и физическая память.
Из схемы видно, что виртуальная память, как предполагается, больше, чем физическая память. Взаимодействие между частями виртуальной памяти и физической памяти происходит через отображение памяти – системную таблицу (сегментов, страниц и т.п.). Образ виртуальной памяти процесса хранится на диске. Страничная организация по требованию Принцип реализации виртуальной памяти в виде страничной организации по требованию заключается в том, что каждая страница загружается в память, только если она реально требуется при выполнении программы – содержит код или данные, к которым произошло обращение. Преимущества данного подхода: · Меньший объем ввода-вывода: В память подкачивается только минимально необходимый объем данных (например, одна страница большого массива, а не весь многостраничный массив); · Меньший объем памяти: При данном способе расходуется минимально необходимый объем физической памяти; · Более быстрая реакция системы: Поскольку объем пересылаемых данных меньше, система в среднем быстрее реагирует на каждый запрос к памяти; · Система может обслуживать большее число пользователей: Ввиду экономии физической памяти и времени обращения, система в состоянии при данном подходе обслуживать большее числопользовательских процессов. Основные принципы страничной организации по требованию: 1. Если страница требуется программе, на нее имеется ссылка из программы. 2. Если ссылка на страницу неверна (например, страницы с данным номером не существует), происходит прерывание. 3. Если требуемая страница отсутствует в памяти, то она подкачивается в память. Механизм подкачки реализуется через прерывание (page fault – отказ страницы). Рис.2 иллюстрирует размещение виртуальной памяти на диске и ее откачку и подкачку. Рис.2. Преобразование страничной памяти в непрерывное дисковое пространство.
Из схемы видно, что, с точки зрения каждой программы, пространство ее виртуальной памяти непрерывно. Оно преобразуется в непрерывную область дисковой памяти. С помощью механизма откачки – подкачки в нужный момент страница виртуальной памяти размещается в основной памяти. С каждым элементом таблицы страниц связывается бит " valid/invalid", однако, в отличие от организации логической памяти, он играет несколько иную роль – он указывает на присутствие или отсутствие страницы в основной памяти. Значение бита равно 1, если страница в памяти, и 0, если страница отсутствует в памяти. Первоначально для всех элементов таблицы страниц бит valid/invalid полагается равным 0. Если в процессе трансляции адреса бит " valid/invalid" в таблице страниц оказыется равным 0, то происходит прерывание по отсутствию страницы в памяти (page fault). На рис.3 приведен пример таблицы страниц, в которой не все страницы присутствуют в основной памяти. Рис.3. Пример таблицы страниц, в которой не все страницы в памяти.
На схеме логическия память процесса состоит из 6 страниц с номерами от 0 до 5. Однако только страницы 0, 2, 5 размещены в основной памяти (бит valid/invalid имеет значение v = 1). Страницы 1, 3, 4 в основной памяти отсутствуют (бит valid/invalid равен i = 0). Популярное:
|
Последнее изменение этой страницы: 2016-03-17; Просмотров: 1094; Нарушение авторского права страницы