Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


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



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

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

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

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

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

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

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

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

 

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

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

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

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

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

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

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

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

 

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

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

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

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

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

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

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

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

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

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

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

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

 

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

Алгоритмы замещения страниц

Как видно из рассмотренного выше, поиск оптимального алгоритма замещения страниц должен быть основан на следующем критерии: необходимо добиваться уменьшения коэффициента отказов страниц p.

Оценка алгоритма может быть выполнена путем опробования его на конкретной строке обращений к памяти (строке запросов)и определения числа отказов страниц при данной строке запросов.

Во всех приводимых ниже в данном разделе примерах из области страничной организации строка запросов имеет вид:

1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5.

График зависимости числа отказов страниц от числа фреймов в основной памяти изображен на рис. 8.

Рис. 8.Зависимость числа отказов страниц от числа фреймов.

 

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

Алгоритм FIFO (First-In-First-Out).Наиболее простой алгоритм замещения страниц – в качестве жертвы всегда выбирается фрейм, первым из имеющихся считанный в основную память.

Рассмотрим пример использования данного алгоритма.

Пусть строка запросов имеет вид: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5.

Случай 1: 3 фрейма (3 страницы могут быть одновременно в памяти для одного процесса). Пусть имеются три процесса. Их таблицы страниц примут вид:

(1, 2, 3) (4, 1, 2) (5, 3, 4).

В данном случае имеет место 9 отказов страниц (проверьте в качестве упражнения).

Случай2: 4 фрейма. Пусть имеются по-прежнему три процесса. Таблицы страниц в данном случае будут иметь вид:

(1, 2, 3, 4) (5, 1, 2, 3) (4, 5)

Нетрудно проверить, что в данном случае имеет место 10 (!) отказов страниц, несмотря на то, что процесс может иметь больше свободных фреймов, чем в предыдущем случае.

Данная аномалия называется аномалией Belady.

В целом же, как уже говорилось, зависимость такова, что чем больше фреймов может иметь процесс (при достаточно большом числе фреймов), тем меньше отказов страниц.

Пример работы алгоритма FIFO для замещения страниц, при максимальном числе фреймов для процесса, равном 3, приведен на рис.9.

Рис. 9.Пример работы алгоритма FIFO.

 

На рис. 10 изображен график зависимости числа отказов страниц от числа фреймов при алгоритме FIFO, отображающий аномалию Belady.

Рис. 10.Аномалия Belady при использовании алгоритма FIFO замещения страниц.






Читайте также:

  1. A. Притяжения и отталкивания, силы отталкивания больше на малых расстояниях, чем силы притяжения. Б. Притяжения и отталкивания, силы отталкивания меньше на малых расстояниях, чем силы притяжения.
  2. Adjective and adverb. Имя прилагательное и наречие. Степени сравнения.
  3. D. Правоспособность иностранцев. - Ограничения в отношении землевладения. - Двоякий смысл своего и чужого в немецкой терминологии. - Приобретение прав гражданства русскими подданными в Финляндии
  4. D. ПРЕИМУЩЕСТВА ПРИСОЕДИНЕНИЯ К ГААГСКОМУ СОГЛАШЕНИЮ
  5. F70.99 Умственная отсталость легкой степени без указаний на нарушение поведения, обусловленная неуточненными причинами
  6. F71.98 Умственная отсталость умеренная без указаний на нарушение поведения, обусловленная другими уточненными причинами
  7. G. Переживание неодушевленной материи и неорганических процессов
  8. I Использование заемных средств в работе предприятия
  9. I. Методические принципы физического воспитания (сознательность, активность, наглядность, доступность, систематичность)
  10. I. О НОВОПРИБЫВШИХ ГРАЖДАНАХ.
  11. I. Предприятия крупного рогатого скота
  12. I. Придаточные, которые присоединяются непосредственно к главному предложению, могут быть однородными и неоднородными.


Последнее изменение этой страницы: 2016-03-17; Просмотров: 115; Нарушение авторского права страницы


lektsia.com 2007 - 2017 год. Все права принадлежат их авторам! (0.086 с.) Главная | Обратная связь