Организация и структура виртуальной памяти в операционных системах . Концепция виртуализации

Автор работы: Пользователь скрыл имя, 03 Января 2012 в 16:11, контрольная работа

Описание работы

Разработчикам программного обеспечения часто приходится решать проблему размещения в памяти больших программ, размер которых превышает объем доступной оперативной памяти. Развитие архитектуры компьютеров и расширение возможностей операционной системы по управлению памятью позволило решить эту задачу. Одним из главных достижений стало появление виртуальной памяти (virtual memory). Впервые она была реализована в 1959 г. на компьютере «Атлас», разработанном в Манчестерском университете.

Файлы: 1 файл

реферат.docx

— 146.85 Кб (Скачать файл)

      В ряде ОС с пакетным режимом работы для борьбы с пробуксовкой используется метод «рабочего множества». Рабочее множество - это множество «активных» страниц задачи за некоторой интервал. То есть тех страниц, к которым было обращение за этот интервал времени. Реально количество активных страниц задачи (за интервал Т) все время изменяется, и это естественно, но, тем не менее, для каждой задачи можно определить среднее количество её активных страниц. Это среднее число активных страниц и есть рабочее множество задачи. Наблюдения за исполнением множества различных программ показали [28, 37, 49], что даже если Т равно времени выполнения всей работы, то размер рабочего множества часто существенно меньше, чем общее число страниц программы. Таким образом, если ОС может определить рабочие множества исполняющихся задач, то для предотвращения пробуксовки достаточно планировать на выполнение только такое количество задач, чтобы сумма их рабочих множеств не превышала возможности системы.

      Как и в случае с сегментным способом организации виртуальной памяти, страничный механизм приводит к тому, что без специальных аппаратных средств он будет существенно  замедлять работу вычислительной системы. Поэтому обычно используется кэширование  страничных дескрипторов. Наиболее эффективным  способом кэширования является использование  ассоциативного кэша. Именно такой ассоциативный кэш и создан в 32-разрядных микропроцессорах i80x86. Начиная с i80386, который поддерживает страничный способ распределения памяти, в этих микропроцессорах имеется кэш на 32 страничных дескриптора. Поскольку размер страницы в этих микропроцессорах равен 4 Кбайт, возможно быстрое обращение к 128 Кбайт памяти.

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

      Первое - эта то, что страничная трансляция виртуальной памяти требует существенных накладных расходов. В самом деле, таблицы страниц нужно тоже размещать в памяти. Кроме этого, эти таблицы нужно обрабатывать; именно с ними работает диспетчер памяти.

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

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

      Сегментно-страничный способ организации  виртуальной памяти 

      Как и в сегментном способе распределения  памяти, программа разбивается на логически законченные части  - сегменты - и виртуальный адрес содержит указание на номер соответствующего сегмента. Вторая составляющая виртуального адреса - смещение относительно начала сегмента - в свою очередь, может состоять из двух полей: виртуальной страницы и индекса. Другими словами, получается, что виртуальный адрес теперь состоит из трех компонентов: сегмент, страница, индекс. Получение физического адреса и извлечение из памяти необходимого элемента для этого способа представлено на рис. 2.9.

      Из  рисунка сразу видно, что этот способ организации виртуальной  памяти вносит ещё большую задержку доступа к памяти. Необходимо сначала  вычислить адрес дескриптора  сегмента и прочитать его, затем  вычислить адрес элемента таблицы  страниц этого сегмента и извлечь  из памяти необходимый элемент, и  уже только после этого можно  к номеру физической страницы приписать  номер ячейки в странице (индекс). Задержка доступа к искомой ячейке получается по крайней мере в три раза больше, чем при простой прямой адресации. Чтобы избежать этой неприятности, вводится кэширование, причем кэш, как правило, строится по ассоциативному принципу. Другими словами, просмотры двух таблиц в памяти могут быть заменены одним обращением к ассоциативной памяти. 

      

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

      Оценим  достоинства сегментно-страничного  способа. Разбиение программы на сегменты позволяет размещать сегменты в памяти целиком. Сегменты разбиты  на страницы, все страницы сегмента загружаются в память. Это позволяет  уменьшить обращения к отсутствующим  страницам, поскольку вероятность  выхода за пределы сегмента меньше вероятности выхода за пределы страницы. Страницы исполняемого сегмента находятся  в памяти, но при этом они могут  находиться не рядом друг с другом, а «россыпью», поскольку диспетчер  памяти манипулирует страницами. Наличие  сегментов облегчает реализацию разделения программных модулей  между параллельными процессами. Возможна и динамическая компоновка задачи. А выделение памяти страницами позволяет минимизировать фрагментацию.

      Однако, поскольку этот способ распределения  памяти требует очень значительных затрат вычислительных ресурсов и его  не так просто реализовать, используется он редко, причем в дорогих, мощных вычислительных системах. Возможность реализовать  сегментно-страничное распределение  памяти заложена и в семейство  микропроцессоров i80x86, однако вследствие слабой аппаратной поддержки, трудностей при создании систем программирования и операционной системы, практически он не используется в ПК.

    Процедура свопинга.

    В таблице математических страниц  всегда оставляется свободная строчка. В случае страничного промаха, в  программе прерывания предусмотрена  процедура переписи этой страницы из памяти на магнитных дисках (области  ввода) в свободную область оперативной  памяти. Эта процедура, в лучшем случае, по времени равняется одному обороту  диска. В это время процессор  определяет страницу – кандидата  на удаление из оперативной памяти (устаревшую страницу). При этом используются различные алгоритмы определения  устаревшей страницы.

    После подкачки требуемой страницы процессор  переключается на обработку команд прерванной программы, но в начале проверяется, была ли модификация данных удаляемой страницы. Если модификация была, то процессор активизирует устройство прямого доступа к памяти (ПДП) по сохранению данных этой страницы в памяти подкачки. Таким образом, во время свопинга процессор не простаивает, а вычисляет адрес страницы – кандидата на удаление из оперативной памяти. Рассмотренная система виртуальной памяти является полной. Она выполняет функции переадресации (реализует независимость подготовки программ) и свопинга (организации памяти единого уровня). Недостатками этой системы виртуальной памяти являются использование не адресной, а более сложной ассоциативной памяти и выходного дешифратора. Преимуществами этой системы виртуальной памяти являются малый размер таблицы. Количество строк таблицы физических страниц определяется емкостью не математической, а физической памяти. Но она почти во всех системах, за небольшим исключением (в моделях семейства PDP – 11 емкость оперативной памяти в 4 раза больше емкости математической) использует не полный набор адресов по отношению к математической памяти, особенно, после того как стали использовать в качестве элементов памяти энергозависимые электронные схемы.

 

Заключение

    Были рассмотрены аппаратные особенности поддержки виртуальной памяти. Разбиение адресного пространства процесса на части и динамическая трансляция адреса позволили выполнять процесс даже в отсутствие некоторых его компонентов в оперативной памяти. Подкачка недостающих компонентов с диска осуществляется операционной системой в тот момент, когда в них возникает необходимость. Следствием такой стратегии является возможность выполнения больших программ, размер которых может превышать размер оперативной памяти. Чтобы обеспечить данной схеме нужную производительность, отображение адресов осуществляется аппаратно при помощи многоуровневой таблицы страниц и ассоциативной памяти.

 

    Список  литературы 

    
  1. Богумирский Б.C. “Справочное руководство по windows” 2001г.
  2. Куликова Е.В. Вовк Е.Г. “Самоучитель работы на компьютере” 2000г.
  3. Леонтьев В.П. «Новейшая энциклопедия ПК 2003.» - 5-е изд., перераб. и доп. – Москва: ОАМА-ПРЕСС, 2003.
  4. Левин А. «Самоучитель работы на компьютере. Начинаем с  Windows. – Москва,: Издательский торговый дом «КноРус”, 2001
  5. “Основы современных технологий” уч. пособие под ред. Хоманенко А.Д., Гофмана В.Э. Мальцевой П.Б. 2003г.
  6. Угринович Н.Д.: Информатика и информационные технологии, М.: БИНОМ, 2003. 2.
  7. Иртегов Д.В., Введение в операционные системы, БХВ-Петербург, 2002, 613 стр
  8. Кастер Х. «Основы Windows NT и NTFS» - 1996

Информация о работе Организация и структура виртуальной памяти в операционных системах . Концепция виртуализации