Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
3 раздел. Основные понятия архитектуры ЭВМ.doc
Скачиваний:
64
Добавлен:
06.02.2016
Размер:
4.74 Mб
Скачать
  • Глава 1. Общие принципы организации памяти эвм

  • Статические оперативные запоминающие устройства - ОЗУ (RAM)

Виртуальная память

[править]

Материал из Википедии — свободной энциклопедии

Эту страницу предлагается объединить с Линейная адресация памяти.

Пояснение причин и обсуждение — на странице Википедия:К объединению/13 сентября 2010. Обсуждение длится одну неделю (или дольше, если оно идёт медленно). Дата начала обсуждения — 2010-09-13. Если обсуждение не требуется (очевидный случай), используйте другие шаблоны. Не удаляйте шаблон до подведения итога обсуждения.

Виртуа́льная па́мять (англ. Virtual memory) — технология управления памятью ЭВМ, разработанная для многозадачных операционных систем. При использовании данной технологии для каждой программы используются независимые схемы адресации памяти, отображающиеся тем или иным способом на физические адреса в памяти ЭВМ. Позволяет увеличить эффективность использования памяти несколькими одновременно работающими программами, организовав множество независимых адресных пространств (англ.), и обеспечить защиту памяти между различными приложениями. Также позволяет программисту использовать больше памяти, чем установлено в компьютере, за счет откачки неиспользуемых страниц на вторичное хранилище (см. Подкачка страниц).

При использовании виртуальной памяти упрощается программирование, так как программисту больше не нужно учитывать ограниченность памяти, или согласовывать использование памяти с другими приложениями. Для программы выглядит доступным и непрерывным все допустимое адресное пространство, вне зависимости от наличия в ЭВМ соответствующего объема ОЗУ.

Применение механизма виртуальной памяти позволяет:

  • упростить адресацию памяти клиентским программным обеспечением;

  • рационально управлять оперативной памятью компьютера (хранить в ней только активно используемые области памяти);

  • изолировать процессы друг от друга (процесс полагает, что монопольно владеет всей памятью).

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

Содержание

 1 История

  • 2 Страничная организация виртуальной памяти

  • 3 Сегментная организация виртуальной памяти

  • 4 См. также

  • 5 Примечания

  • 6 Литература

  • 7 Ссылки

История

В 1940-е и 1950-е годы, до развития виртуальной памяти, все большие программы писались с учетом наличия двух уровней памяти — первичного и вторичного. Основной причиной введения виртуальной памяти стало не стремление увеличить объем основной памяти, а метод такого увеличения, который бы был максимально прост для программистов.

Этот раздел статьи ещё не написан.

Согласно замыслу одного из участников Википедии, на этом месте должен располагаться специальный раздел. Вы можете помочь проекту, написав этот раздел.

Страничная организация виртуальной памяти

Основная статья: Страничная память

В большинстве современных операционных систем виртуальная память организуется с помощью страничной адресации. Оперативная память делится на страницы: области памяти фиксированной длины (например, 4096 байт), которые являются минимальной единицей выделяемой памяти (то есть даже запрос на 1 байт от приложения приведёт к выделению ему страницы памяти). Процесс обращается к памяти с помощью адреса виртуальной памяти, который содержит в себе номер страницы и смещение внутри страницы. Процессор преобразует номер виртуальной страницы в адрес соответствующей ей физической страницы при помощи буфера ассоциативной трансляции. Если ему не удалось это сделать, то требуется обращение к таблице страниц (так называемый Page Walk), что может сделать либо сам процессор, либо операционная система (в зависимости от архитектуры)[1]. Если страница выгружена из оперативной памяти, то операционная система подкачивает страницу с жёсткого диска (см. свопинг). При запросе на выделение памяти операционная система может «сбросить» на жёсткий диск страницы, к которым давно не было обращений. Критические данные (например, код запущенных и работающих программ, код и память ядра системы) обычно находятся в оперативной памяти (исключения существуют, однако они не касаются тех частей, которые отвечают за обработку аппаратных прерываний, работу с таблицей страниц и использование файла подкачки).

Сегментная организация виртуальной памяти

Основная статья: Сегментная адресация памяти

Механизм организации виртуальной памяти, при котором виртуальное пространство делится на части произвольного размера — сегменты. Этот механизм позволяет, к примеру, разбить данные процесса на логические блоки.[2] Для каждого сегмента, как и для страницы, могут быть назначены права доступа к нему пользователя и его процессов. При загрузке процесса часть сегментов помещается в оперативную память (при этом для каждого из этих сегментов операционная система подыскивает подходящий участок свободной памяти), а часть сегментов размещается в дисковой памяти. Сегменты одной программы могут занимать в оперативной памяти несмежные участки. Во время загрузки система создает таблицу сегментов процесса (аналогичную таблице страниц), в которой для каждого сегмента указывается начальный физический адрес сегмента в оперативной памяти, размер сегмента, правила доступа, признак модификации, признак обращения к данному сегменту за последний интервал времени и некоторая другая информация. Если виртуальные адресные пространства нескольких процессов включают один и тот же сегмент, то в таблицах сегментов этих процессов делаются ссылки на один и тот же участок оперативной памяти, в который данный сегмент загружается в единственном экземпляре. Система с сегментной организацией функционирует аналогично системе со страничной организацией: время от времени происходят прерывания, связанные с отсутствием нужных сегментов в памяти, при необходимости освобождения памяти некоторые сегменты выгружаются, при каждом обращении к оперативной памяти выполняется преобразование виртуального адреса в физический. Кроме того, при обращении к памяти проверяется, разрешен ли доступ требуемого типа к данному сегменту.

Виртуальный адрес при сегментной организации памяти может быть представлен парой (g, s), где g — номер сегмента, а s — смещение в сегменте. Физический адрес получается путем сложения начального физического адреса сегмента, найденного в таблице сегментов по номеру g, и смещения s.

Недостатком данного метода распределения памяти является фрагментация на уровне сегментов и более медленное по сравнению со страничной организацией преобразование адреса.

См. также

  • Кеш-память

  • Менеджер виртуальной памяти

  • Блок управления памятью (Memory Management Unit)

  • Утечка памяти

Примечания

  1. Patterson&Hennessy «Computer organisation and Design. Hardware Software Interface.» 4th edition. Chap 5.4, page 503

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

Литература

  • Вахалия Ю. UNIX изнутри. — СПб.: Питер, 2003. С.844. ISBN 5-94723-013-5

  • Иртегов Д. Введение в операционные системы. СПб.: Питер, 2002.

  • Bruce Jacob, Trevor Mudge. Virtual Memory: Issues of Implementation. — Los Alamitos, CA, USA: IEEE Computer Society Press, 1998. ISSN:0018-9162

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

Ссылки

  • Virtual Memory: Issues of Implementation  (англ.)

  • Драйвер виртуальной памяти, использующий Linux swap раздел  (англ.)

  • Увеличение файла подкачки в Microsoft Windows XP/Vista/7

  • FAQ по файлу подкачки на WinBlog.ru

Категории:

  • Виртуальная память

  • Защита памяти

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]