русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Проблема замещения страниц


Дата добавления: 2013-12-24; просмотров: 1071; Нарушение авторских прав


Преимущества виртуальной памяти при создании процессов

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

· Копирование по записи (Copy-on-Write)

· Отображение файлов в память (Memory-Mapped Files).

Принцип совместного использования страниц процессами (или копирование по записи - Copy-On-Write, COW) позволяет первоначально родительскому и дочернему процессам использовать одни и те же страницы памяти. Если какой-либо процесс модифицирует разделяемую страницу, то только в этом случае данная страница копируется. Принцип COW обеспечивает более эффективное создание процесса, так как копируются только модифицируемые страницы. Свободные страницы распределяются из списка страниц, инициализированных нулями.

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

Первоначально файл читается с использованием запроса страниц по требованию. Часть файла размером с одну страницу читается из файла в физическую страницу (фрейм). Последующие чтения из файла и записи в файл трактуются как обычные обращения к памяти. Это упрощает доступ к файлу, по сравнению с системными вызовами read() и write(). Это позволяет также нескольким процессам отображать в память один и тот же файл, по тому же принципу, как они совместно используют какие-либо страницы.

На рис. 18.5 иллюстрируется концепция файла, отображаемого в память.


Рис. 18.5. Файлы, отображаемые в память.

Процессы Aи Bсовместно используют файл, причем каждому блоку файла соответствует страница в памяти. Эти страницы имеют одним и те же номера в таблицах страниц виртуальной памяти процессов. Страницы, присутствующие в памяти, фактически являются частями файла, обрабатываемого при вводе-выводе, благодаря этому, гораздо быстрее, чем обычный файл. По окончании обмена, при закрытии файла, система записывает все его измененные части на диск.



Подобный механизм имеется в большинстве операционных систем. Например, в системе Solaris он реализуется командой и системным вызовом mmap (memory map).

Для предотвращение переполнения памяти, подпрограмма обслуживания отказов страниц дополняется поддержкой замещения страниц.

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

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

Пример замещения страниц приведен на рис. 18.6.


Рис. 18.6. Пример замещения страниц.

В примере имеются два пользовательских процесса, каждый из которых использует по 4 страницы виртуальной памяти. Однако имеется только 6 фреймов в основной памяти, выделенных для пользовательских процессов, (начальные фреймы занимает резидентный монитор ОС). В процессе 1 происходит обращение к данным M, расположенным на странице 3 виртуальной памяти, отсутствующей в основной памяти. В процессе 2 точно так же может произойти обращение к данным Bна странице виртуальной памяти 1, которой также нет в основной памяти. Следовательно, ОС должна выполнить замещение страниц, т.е. решить две задачи:

· по какому принципу выбирать "жертвы", т.е. страницы для откачки, находящиеся в оперативной памяти, для освобождения необходимых фреймов?

· в каком порядке обслужить процессы 1 и 2, в каждом из которыз возникла необходимость в свободном фрейме?

Кратко алгоритм замещения страниц можно сформулировать следующим образом:

1. Найти, где размещается требуемая страница на диске.

2. Найти свободный фрейм:

o Если есть свободный фрейм, использовать его.

o Если нет свободных фреймов, использовать алгоритм замещения страниц для выбора фрейма -"жертвы".

3. Прочитать содержимое требуемой страницы во вновь освобожденный фрейм. Модифицировать таблицы фреймов и страниц.

4. Продолжить выполнение процесса.

На рис. 18.7 иллюстрируется момент замещения страниц, с предварительной откачкой страницы-жертвы на диск.


Рис. 18.7. Замещение страниц с откачкой жертвы на диск.

Этапы замещения страниц: 1 – откачка жертвы; 2 – изменение ее элемента таблицы страниц (бит valid заменяется на invalid); 3 – подкачка на освободившееся место желаемой страницы; 4 – изменение элемента таблицы страниц для новой страницы (бит invalid заменяется на valid; запоминается физический адрес подкачанной страницы).



<== предыдущая лекция | следующая лекция ==>
Отсутствие свободного фрейма. Оценка производительности стратегии обработки страниц по требованию. | Оптимальный алгоритм замещения страниц


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

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