Подкачка памяти

редактировать
"Пейджинг" перенаправляется сюда. Информацию о пейджинге как форме телекоммуникаций см. В пейджере. Чтобы узнать о других значениях, см. Страницу. Не путать с переключением банков. См. Также: Страница (память компьютера) и Виртуальная память § Выгружаемая виртуальная память

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

Для простоты основная память называется «RAM» (аббревиатура от слова « оперативная память» ), а вторичная память - «диск» (сокращение от жесткого диска, барабанной памяти или твердотельного накопителя и т. Д.), Но как и в случае с многие аспекты вычислений, концепции не зависят от используемых технологий.

СОДЕРЖАНИЕ
  • 1 История
  • 2 Ошибки страницы
  • 3 техники замены страниц
  • 4 Взбучка
  • 5 Обмен
  • 6 реализации
    • 6.1 Атлас Ферранти
    • 6.2 Microsoft Windows
      • 6.2.1 Windows 3.x и Windows 9x
      • 6.2.2 Windows NT
      • 6.2.3 Фрагментация
    • 6.3 Unix и Unix-подобные системы
      • 6.3.1 Linux
        • 6.3.1.1 Файлы подкачки и разделы
        • 6.3.1.2 Замена
        • 6.3.1.3 Смерть свопа
      • 6.3.2 macOS
    • 6.4 AmigaOS 4
  • 7 Производительность
    • 7.1 Размер пространства подкачки
  • 8 Ограничения адресации на 32-битном оборудовании
    • 8.1 Основная память меньше виртуальной памяти
    • 8.2 Основная память того же размера, что и виртуальная память
    • 8.3 Основная память больше, чем виртуальное адресное пространство
  • 9 См. Также
  • 10 заметок
  • 11 Источники
  • 12 Внешние ссылки
История

Ферранти представил в Атласе разбиение на страницы, но первые страницы памяти массового рынка были концепциями компьютерной архитектуры, независимо от того, перемещалась ли страница между ОЗУ и диском. Например, на PDP-8 7 битов инструкции содержали адрес памяти, в котором выбрано одно из 128 (2 7) слов. Эта зона памяти получила название страницы. Этот термин сейчас используется редко. В 1960-х годах своппинг был одним из первых методов виртуальной памяти. Вся программа будет «выгружена» (или «развернута») из ОЗУ на диск, а другая будет заменена (или свернута). Выгруженная программа будет текущей, но ее выполнение будет приостановлено, пока ее оперативная память будет использоваться другой программой.

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

Изобретение таблицы страниц позволило процессору работать с произвольными страницами в любом месте ОЗУ как с кажущимся непрерывным логическим адресным пространством. Эти страницы стали единицами обмена между диском и ОЗУ.

Ошибки страницы
Основная статья: Ошибка страницы

Когда процесс пытается сослаться на страницу, которая в настоящий момент отсутствует в ОЗУ, процессор рассматривает эту недопустимую ссылку на память как ошибку страницы и передает управление от программы к операционной системе. Операционная система должна:

  1. Определите расположение данных на диске.
  2. Получите пустой страничный фрейм в ОЗУ для использования в качестве контейнера для данных.
  3. Загрузите запрошенные данные в доступный фрейм страницы.
  4. Обновите таблицу страниц, чтобы она соответствовала новому фрейму страницы.
  5. Верните управление программе, явно повторяя инструкцию, которая вызвала ошибку страницы.

Когда все страничные фреймы используются, операционная система должна выбрать страничный фрейм для повторного использования для страницы, которая теперь нужна программе. Если вытесненный страничный фрейм был динамически выделен программой для хранения данных или если программа изменила его с момента считывания в ОЗУ (другими словами, если он стал «грязным»), он должен быть записан на диск перед тем, как быть освобожден. Если программа позже ссылается на удаленную страницу, возникает еще одна ошибка страницы, и страница должна быть считана обратно в ОЗУ.

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

Методы замены страниц
Основные статьи: Алгоритм замены страниц и пейджинг по запросу
Пейджинг по запросу
Когда используется подкачка по запросу, страницы загружаются только тогда, когда на них есть ссылки. Программа из файла с отображением в память начинает выполнение, и ни одна из ее страниц не находится в ОЗУ. Когда программа фиксирует ошибки страниц, операционная система копирует необходимые страницы из файла, например файла с отображением в память, файла подкачки или раздела подкачки, содержащего данные страницы, в ОЗУ.
Предварительный пейджинг
Этот метод, иногда также называемый предварительной выборкой подкачки, предсказывает, на какие страницы будут ссылаться в ближайшее время, чтобы минимизировать ошибки страниц в будущем. Например, после чтения страницы для обслуживания ошибки страницы операционная система может также прочитать следующие несколько страниц, даже если они еще не нужны (прогноз с использованием местоположения ссылки ). Если программа завершается, операционная система может отложить освобождение ее страниц, если пользователь снова запустит ту же программу.
Бесплатная очередь страниц, кража и возврат
Очередь свободных страниц - это список страничных фреймов, доступных для назначения. Предотвращение опустошения этой очереди сводит к минимуму вычисления, необходимые для обслуживания ошибки страницы. Некоторые операционные системы периодически ищут страницы, на которые в последнее время не ссылались, а затем освобождают фрейм страницы и добавляют его в очередь свободных страниц. Этот процесс известен как «кража страниц». Некоторые операционные системы поддерживают восстановление страниц ; если программа совершает ошибку страницы, ссылаясь на украденную страницу, операционная система обнаруживает это и восстанавливает кадр страницы без необходимости считывать содержимое обратно в ОЗУ.
Предварительная очистка
Операционная система может периодически предварительно очищать грязные страницы: записывать измененные страницы обратно на диск, даже если они могут быть дополнительно изменены. Это сводит к минимуму объем очистки, необходимый для получения новых страничных фреймов в момент запуска новой программы или открытия нового файла данных, и улучшает скорость отклика. (Операционные системы Unix периодически используют синхронизацию для предварительной очистки всех «грязных» страниц; операционные системы Windows используют потоки «модифицированной записи страниц».)
Взбучка
Основная статья: Трэшинг (информатика)

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

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

Наихудший случай может произойти с процессорами VAX. Один MOVL, пересекающий границу страницы, может иметь исходный операнд, использующий режим отложенной адресации смещения, где длинное слово, содержащее адрес операнда, пересекает границу страницы, и операнд назначения, использующий режим отложенной адресации смещения, где длинное слово, содержащее адрес операнда, пересекает граница страницы, а источник и место назначения могут пересекать границы страницы. В этой единственной инструкции содержится ссылка на десять страниц; если не все находятся в ОЗУ, каждый вызовет ошибку страницы. При возникновении каждой ошибки операционная система должна выполнять обширные процедуры управления памятью, что может вызвать несколько операций ввода-вывода, которые могут включать запись других страниц процесса на диск и чтение страниц активного процесса с диска. Если операционная система не может выделить десять страниц для этой программы, то при устранении ошибки страницы будет отброшена другая страница, в которой нуждается инструкция, и любой перезапуск инструкции снова приведет к ошибке.

Чтобы уменьшить чрезмерное количество страниц и решить проблемы с перегрузкой, пользователь может увеличить количество страниц, доступных для каждой программы, либо за счет одновременного запуска меньшего числа программ, либо за счет увеличения объема ОЗУ на компьютере.

Совместное использование

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

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

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

Реализации

Ферранти Атлас

Первым компьютером, поддерживающим пейджинг, был суперкомпьютер Atlas, совместно разработанный Ферранти, Манчестерским университетом и Плесси в 1963 году. Машина имела ассоциативную ( адресуемую по содержанию ) память с одной записью на каждую страницу объемом 512 слов. Супервизор обрабатывал прерывания, связанные с неэквивалентностью, и управлял передачей страниц между ядром и барабаном, чтобы обеспечить одноуровневое хранилище для программ.

Майкрософт Виндоус

Windows 3.x и Windows 9x

Пейджинг был функцией Microsoft Windows с Windows 3.0 в 1990 году. Windows 3.x создает скрытый файл с именем 386SPART.PARили WIN386.SWPдля использования в качестве файла подкачки. Обычно он находится в корневом каталоге, но может находиться и в другом месте (обычно в каталоге WINDOWS). Его размер зависит от того, сколько места подкачки имеется в системе (параметр, выбранный пользователем в Панели управления → Улучшено в разделе «Виртуальная память»). Если пользователь перемещает или удаляет этот файл, при следующем запуске Windows появится синий экран с сообщением об ошибке «Постоянный файл подкачки поврежден». Пользователю будет предложено выбрать, следует ли удалить файл (независимо от того, существует он или нет).

Windows 95, Windows 98 и Windows Me используют аналогичный файл, и его настройки находятся в Панели управления → Система → вкладка Производительность → Виртуальная память. Windows автоматически устанавливает размер файла подкачки, чтобы он начинался с 1,5-кратного размера физической памяти и при необходимости расширялся до 3-кратного размера физической памяти. Если пользователь запускает приложения, интенсивно использующие память, в системе с небольшим объемом физической памяти, предпочтительно вручную установить для этих размеров значение выше, чем по умолчанию.

Windows NT

Файл, используемый для подкачки в Windows NT семьи pagefile.sys. По умолчанию файл подкачки находится в корневом каталоге раздела, на котором установлена ​​Windows. Windows можно настроить на использование свободного места на любых доступных дисках для файлов подкачки. Однако требуется, чтобы в загрузочном разделе (т. Е. На диске, содержащем каталог Windows) был файл подкачки, если система сконфигурирована для записи дампов ядра или полных дампов памяти после синего экрана смерти. Windows использует файл подкачки как временное хранилище для дампа памяти. При перезагрузке системы Windows копирует дамп памяти из файла подкачки в отдельный файл и освобождает место, которое использовалось в файле подкачки.

Фрагментация

В конфигурации Windows по умолчанию файл подкачки может при необходимости расширяться за пределы своего первоначального выделения. Если это происходит постепенно, он может стать сильно фрагментированным, что потенциально может вызвать проблемы с производительностью. Общий совет, который дает избежать этого, - установить единый размер файла «заблокированной» страницы, чтобы Windows не расширяла его. Однако файл подкачки расширяется только после заполнения, что в конфигурации по умолчанию составляет 150% от общего объема физической памяти. Таким образом, общая потребность в виртуальной памяти, поддерживаемой файлом подкачки, должна превышать 250% физической памяти компьютера, прежде чем файл подкачки будет расширен.

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

Блокировка размера файла подкачки может быть проблематичной, если приложение Windows запрашивает больше памяти, чем общий размер физической памяти и файла подкачки, что приводит к неудачным запросам на выделение памяти, что может привести к сбою приложений и системных процессов. Кроме того, файл подкачки редко читается или записывается в последовательном порядке, поэтому преимущество в производительности от наличия полностью последовательного файла подкачки минимально. Однако большой файл подкачки обычно позволяет использовать приложения с большим объемом памяти без каких-либо штрафов, кроме использования большего дискового пространства. Хотя фрагментированный файл подкачки не может быть проблемой сам по себе, фрагментация файла подкачки переменного размера со временем приведет к созданию нескольких фрагментированных блоков на диске, что приведет к фрагментации других файлов. По этой причине лучше использовать файл непрерывной страницы фиксированного размера при условии, что выделенный размер достаточно велик, чтобы удовлетворить потребности всех приложений.

Требуемое дисковое пространство может быть легко выделено в системах с более поздними спецификациями (т. Е. В системе с 3 ГБ памяти, имеющей файл подкачки фиксированного размера 6 ГБ на диске 750 ГБ, или в системе с 6 ГБ памяти и 16 ГБ памяти. Файл подкачки фиксированного размера ГБ и 2 ТБ дискового пространства). В обоих примерах система использует около 0,8% дискового пространства с предварительно расширенным до максимального значения файлом подкачки.

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

Unix и Unix-подобные системы

В системах Unix и других Unix-подобных операционных системах термин «своп» используется для описания как процесса перемещения страниц памяти между RAM и диском, так и области диска, на которой хранятся страницы. В некоторых из этих систем для подкачки обычно выделяют целый раздел жесткого диска. Эти разделы называются разделами подкачки. Во многих системах для подкачки выделен целый жесткий диск, отдельный от диска (ов) с данными, содержащий только раздел подкачки. Жесткий диск, предназначенный для подкачки, называется «подкачка», «рабочий диск» или « рабочий диск ». Некоторые из этих систем поддерживают только переключение на раздел подкачки; другие также поддерживают обмен файлами.

Linux

См. Также: Разделы подкачки на SSD, zswap и zram

Ядро Linux поддерживает практически неограниченное количество серверных модулей подкачки (устройств или файлов), а также поддерживает назначение внутренних приоритетов. Когда ядро ​​выгружает страницы из физической памяти, оно использует серверную часть с наивысшим приоритетом с доступным свободным пространством. Если нескольким серверным модулям подкачки назначается один и тот же приоритет, они используются циклически (что в некоторой степени похоже на схемы хранения RAID 0 ), обеспечивая повышенную производительность при условии, что к базовым устройствам можно получить эффективный параллельный доступ.

Файлы подкачки и разделы

С точки зрения конечного пользователя файлы подкачки в версиях ядра Linux 2.6.x и новее работают практически так же быстро, как разделы подкачки; ограничение состоит в том, что файлы подкачки должны размещаться непрерывно в своих файловых системах. Чтобы повысить производительность файлов подкачки, ядро ​​хранит карту их размещения на нижележащих устройствах и обращается к ним напрямую, таким образом обходя кеш и избегая накладных расходов файловой системы. Тем не менее, Red Hat рекомендует использовать разделы подкачки. При размещении на жестких дисках, которые представляют собой вращающиеся магнитные носители, одним из преимуществ использования разделов подкачки является возможность размещать их на смежных областях жесткого диска, что обеспечивает более высокую пропускную способность данных или более быстрое время поиска. Однако административная гибкость файлов подкачки может перевесить определенные преимущества разделов подкачки. Например, файл подкачки может быть помещен в любую смонтированную файловую систему, может иметь любой желаемый размер и может быть добавлен или изменен по мере необходимости. Разделы подкачки не такие гибкие; их невозможно увеличить без использования инструментов разбиения на разделы или управления томами, которые создают различные сложности и потенциальные простои.

Swappiness

Swappiness является Linux Kernel параметра, который управляет относительным вес выгрузив из рабочей памяти, в отличии от падения страниц из системы кэша страниц, когда запрос на выделение памяти не может быть выполнен из свободной памяти. Для подкачки можно установить значения от 0 до 200 (включительно). Низкое значение приводит к тому, что ядро ​​предпочитает удалять страницы из кеша страниц, в то время как более высокое значение заставляет ядро ​​предпочитать выгружать «холодные» страницы памяти. Значение по умолчанию является 60; установка более высокого значения может вызвать высокую задержку, если холодные страницы необходимо вернуть обратно (например, при взаимодействии с программой, которая бездействовала), а установка более низкого значения (даже 0) может вызвать высокую задержку, когда файлы, которые были вытеснены из кэш необходимо прочитать снова, но это сделает интерактивные программы более отзывчивыми, поскольку им с меньшей вероятностью потребуется переключать обратно холодные страницы. Замена жестких дисков также может еще больше замедлить работу жестких дисков, поскольку она включает в себя множество случайных операций записи, в то время как твердотельные накопители не имеют этой проблемы. Конечно, значения по умолчанию хорошо работают в большинстве рабочих нагрузок, но настольные компьютеры и интерактивные системы для любой ожидаемой задачи могут захотеть уменьшить значение параметра, а пакетная обработка, а менее интерактивные системы могут захотеть его увеличить.

Поменять местами смерть

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

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

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

macOS

macOS использует несколько файлов подкачки. По умолчанию (и рекомендуется Apple) установка помещает их в корневой раздел, хотя можно разместить их вместо этого на отдельном разделе или устройстве.

AmigaOS 4

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

Представление

Резервное хранилище для операционной системы виртуальной памяти обычно на много порядков медленнее, чем ОЗУ. Кроме того, использование механических запоминающих устройств приводит к задержке в несколько миллисекунд для жесткого диска. Поэтому желательно уменьшить или исключить подкачку, где это возможно. Некоторые операционные системы предлагают настройки, влияющие на решения ядра.

  • Linux предлагает параметр, который изменяет баланс между выгрузкой оперативной памяти и удалением страниц из системного кэша страниц. /proc/sys/vm/ swappiness
  • В Windows 2000, XP и Vista есть параметр DisablePagingExecutiveреестра, который определяет, могут ли код и данные режима ядра быть выгружены на подкачку.
  • Компьютеры мэйнфреймов часто использовали дисковые накопители с головкой на дорожку или барабаны для хранения страниц и подкачки, чтобы сократить время поиска, и несколько технологий, чтобы иметь несколько одновременных запросов к одному и тому же устройству, чтобы уменьшить задержку вращения.
  • Флэш-память имеет конечное количество циклов стирания-записи (см. Ограничения флеш-памяти ), и наименьший объем данных, который можно стереть за один раз, может быть очень большим (128 КБ для твердотельного накопителя Intel X25-M), редко совпадающим с размер страницы. Следовательно, флеш-память может быстро изнашиваться, если она используется в качестве места подкачки в условиях ограниченного объема памяти. С другой стороны, флеш-память практически без задержек по сравнению с жесткими дисками и не энергозависима, как микросхемы ОЗУ. Такие схемы, как ReadyBoost и Intel Turbo Memory, созданы для использования этих характеристик.

Многие Unix-подобные операционные системы (например, AIX, Linux и Solaris ) позволяют использовать несколько устройств хранения для пространства подкачки параллельно, чтобы повысить производительность.

Размер пространства подкачки

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

Ограничение адресации на 32-битном оборудовании

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

Оперативная память меньше виртуальной памяти

В большинстве систем размер виртуального адресного пространства процесса намного больше доступной основной памяти. Например:

  • Адрес шина, который соединяет процессор к основной памяти может быть ограничена. В i386SX CPU 32-разрядные внутренние адреса «S могут адресовать 4 Гбайта, но у него есть только 24 булавки, подключенной к шине адреса, ограничение установленной физической памяти до 16 МБ. Могут быть другие аппаратные ограничения на максимальный объем устанавливаемой оперативной памяти.
  • Максимальный объем памяти может быть не установлен из-за стоимости, из-за того, что в стандартной конфигурации модели он отсутствует, или из-за того, что покупатель не считал это выгодным.
  • Иногда в любом случае не все внутренние адреса можно использовать для памяти, потому что аппаратная архитектура может резервировать большие области для ввода-вывода или других функций.

Основная память того же размера, что и виртуальная память

В компьютере с истинной n- битной адресацией может быть установлено 2 n адресуемых единиц ОЗУ. Примером может служить 32-разрядный процессор x86 с 4  ГБ без расширения физического адреса (PAE). В этом случае процессор может обращаться ко всей установленной оперативной памяти и не более того.

Однако даже в этом случае подкачку можно использовать для создания виртуальной памяти размером более 4 ГБ. Например, многие программы могут работать одновременно. Вместе им может потребоваться более 4 ГБ, но не все из них сразу должны быть в ОЗУ. Система подкачки принимает эффективные решения о том, какую память передать вторичному хранилищу, что приводит к оптимальному использованию установленной оперативной памяти.

Хотя процессор в этом примере не может обращаться к ОЗУ за пределами 4 ГБ, операционная система может предоставлять услуги программам, которые предполагают больший объем памяти, например файлы, размер которых может превышать предел установленной ОЗУ. Операционная система позволяет программе произвольно манипулировать данными в файле, используя разбиение на страницы для переноса частей файла в ОЗУ, когда это необходимо.

Основная память больше, чем виртуальное адресное пространство

У некоторых компьютеров основная память больше, чем виртуальное адресное пространство процесса, например Magic-1, некоторые машины PDP-11 и некоторые системы, использующие 32-битные процессоры x86 с расширением физического адреса. Это сводит на нет значительное преимущество разбиения на страницы, поскольку отдельный процесс не может использовать больше оперативной памяти, чем объем его виртуального адресного пространства. Такие системы часто используют методы подкачки для получения дополнительных преимуществ:

  • «Дополнительная память» может использоваться в кэше страниц для кэширования часто используемых файлов и метаданных, таких как информация каталога, из вторичного хранилища.
  • Если процессор и операционная система поддерживают несколько виртуальных адресных пространств, «дополнительная память» может использоваться для запуска большего количества процессов. Подкачка позволяет совокупному количеству виртуальных адресных пространств превышать физическую основную память.
  • Процесс может хранить данные в файлах с отображением памяти в файловых системах с резервной памятью, таких как файловая система tmpfs или файловые системы на диске RAM, и отображать файлы в адресное пространство и из него по мере необходимости.
  • Набор процессов может по-прежнему зависеть от улучшенных функций безопасности, которые изоляция на основе страниц может привнести в среду многозадачности.

Размер совокупного количества виртуальных адресных пространств по-прежнему ограничен объемом доступной вторичной памяти.

Смотрите также
Примечания
использованная литература
внешние ссылки
Последняя правка сделана 2023-03-20 02:54:59
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте