Из Википедии, бесплатной энциклопедии
  (Перенаправлено из пейджинга )
Перейти к навигации Перейти к поиску

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

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

История [ править ]

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

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

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

Ошибки страницы [ править ]

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

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

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

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

Методы замены страниц [ править ]

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

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

Взбучка [ править ]

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

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

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

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

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

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

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

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

Реализации [ править ]

Ферранти Атлас [ править ]

Первый компьютер для поддержки пейджинга был суперкомпьютер Атлас , [6] [7] [8] совместно разработанный Ferranti , в Университете Манчестера и Plessey в 1963 г. Машины имела ассоциативную ( содержание адресации ) память с одной записью для каждого Страница 512 слов. Супервизор [9] обрабатывал прерывания неэквивалентности [c] и управлял передачей страниц между ядром и барабаном, чтобы обеспечить одноуровневое хранилище [10] для программ.

Microsoft Windows [ править ]

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 копирует дамп памяти из файла подкачки в отдельный файл и освобождает место, которое использовалось в файле подкачки. [11]

Фрагментация [ править ]

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

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

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

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

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

Unix и Unix-подобные системы [ править ]

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

Linux [ править ]

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

Файлы подкачки и разделы [ править ]

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

Swappiness [ править ]

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

Заменить смерть [ править ]

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

Смерть свопа может произойти из-за неправильно настроенной перегрузки памяти . [21] [22] [23]

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

macOS [ править ]

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

AmigaOS 4 [ править ]

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

Производительность [ править ]

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

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

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

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

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

Ограничения на адресацию на 32-битном оборудовании [ править ]

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

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

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

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

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

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

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

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

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

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

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

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

См. Также [ править ]

  • Аномалия Белади
  • Пейджинг по запросу , "ленивая" схема пейджинга
  • Расширенная память
  • Управление памятью
  • Сегментация памяти
  • Страница (память компьютера)
  • Кеш страницы , дисковый кеш, использующий механизм виртуальной памяти.
  • Алгоритм замены страницы
  • Таблица страниц
  • Физическая память , предмет подкачки
  • Виртуальная память , абстракция, которую может создать разбиение на страницы

Заметки [ править ]

  1. ^ Первоначальнодля подкачки использовались барабаны , а затем жесткие диски и твердотельные накопители .
  2. ^ Например, MVS (несколько виртуальных хранилищ).
  3. ^ Прерывание неэквивалентности происходит, когда старшие биты адреса не совпадают ни с одной записью в ассоциативной памяти.

Ссылки [ править ]

  1. ^ Дейтель, Харви М. (1983). Введение в операционные системы . Эддисон-Уэсли. С. 181, 187. ISBN 0-201-14473-5.
  2. ^ Belzer, Джек; Хольцман, Альберт Г .; Кент, Аллен, ред. (1981). "Операционные системы". Энциклопедия информатики и технологий . 11 . CRC Press. п. 433. ISBN. 0-8247-2261-2. Архивировано 27 февраля 2017 года.
  3. ^ Belzer, Джек; Хольцман, Альберт Г .; Кент, Аллен, ред. (1981). "Операционные системы". Энциклопедия информатики и технологий . 11 . CRC Press. п. 442. ISBN. 0-8247-2261-2. Архивировано 27 февраля 2017 года.
  4. ^ Cragon, Харви Г. (1996). Системы памяти и конвейерные процессоры . Jones and Bartlett Publishers. п. 109. ISBN 0-86720-474-5. Архивировано 27 февраля 2017 года.
  5. ^ Belzer, Джек; Хольцман, Альберт Г .; Кент, Аллен, ред. (1981). «Системы виртуальной памяти». Энциклопедия информатики и технологий . 14 . CRC Press. п. 32. ISBN 0-8247-2214-0. Архивировано 27 февраля 2017 года.
  6. ^ Самнер, FH; Haley, G .; Чен, ECY (1962). «Центральный блок управления ЭВМ« Атлас »». Обработка информации 1962 . Материалы Конгресса ИФИП. Материалы Конгресса ИФИП 62. Спартанский.
  7. ^ "Атлас" . Манчестерский университет: факультет компьютерных наук. Архивировано из оригинала на 2012-07-28.
  8. ^ "Архитектура Атласа" . Атлас Компьютер . Чилтон: Компьютерная лаборатория Атласа. Архивировано 10 декабря 2012 года.
  9. ^ Kilburn, T .; Пейн, РБ; Ховарт, ди-джей (декабрь 1961 г.). «Супервайзер Атласа» . Компьютеры - ключ к тотальному управлению системами . Материалы конференций. Том 20, Труды Восточной совместной компьютерной конференции Вашингтон, округ Колумбия, Макмиллан. С. 279–294. Архивировано 31 декабря 2009 года. |volume= has extra text (help)
  10. ^ Kilburn, T .; Эдвардс, DBG; Ланиган, MJ; Самнер, FH (апрель 1962 г.). «Одноуровневая система хранения». Операции IRE на электронных компьютерах . Институт Радиоинженеров (2): 223–235. DOI : 10.1109 / TEC.1962.5219356 .
  11. ^ Tsigkogiannis, Илиас (2006-12-11). «Анализ аварийного дампа» . водитель пишет! = вождение автобуса . Microsoft . Архивировано 07 октября 2008 года . Проверено 22 июля 2008 .
  12. ^ "Windows Sysinternals PageDefrag" . Sysinternals . Microsoft . 2006-11-01. Архивировано 25 декабря 2010 года . Проверено 20 декабря 2010 .
  13. ^ "swapon (2) - справочная страница Linux" . Linux.Die.net . Архивировано 28 февраля 2014 года . Проверено 8 сентября 2014 .
  14. ^ " " Джеспер Джул ": Re: Как отправить паузу? - дамп из зависшего 64-битного Linux" . LKML. 2006-05-29. Архивировано 24 ноября 2010 года . Проверено 28 октября 2010 .
  15. ^ "Эндрю Мортон: Re: Раздел подкачки vs файл подкачки" . LKML. Архивировано 24 ноября 2010 года . Проверено 28 октября 2010 .
  16. ^ Глава 7. Пространство подкачки - Портал для клиентов Red Hat «Пространство подкачки может быть выделенным разделом подкачки (рекомендуется), файлом подкачки или комбинацией разделов подкачки и файлов подкачки».
  17. ^ "Документация ядра Linux для / proc / sys / vm /" .
  18. ^ Эндрюс, Джереми (2004-04-29). «Linux: настройка подкачки» . kerneltrap.org . Архивировано из оригинала на 2013-05-24 . Проверено 3 января 2018 .
  19. ^ Rik ван Риель (1998-05-20). «поменять местами смерть (как в 2.1.91) и таблицы страниц» . Архивировано 29 декабря 2017 года.
  20. ^ Кайл Рэнкин (2012). Устранение неполадок DevOps: передовые методы работы с Linux Server . Эддисон-Уэсли. п. 159. ISBN. 978-0-13-303550-6. Архивировано 29 декабря 2017 года.
  21. ^ Андрис Брауэр. «Ядро Linux: память» . Архивировано 13 августа 2017 года.
  22. ^ Красная шляпа. «Настройка мощности» . Архивировано 23 июля 2017 года.
  23. ^ "Настройки перегрузки памяти" . Архивировано 31 мая 2017 года.
  24. ^ Питер Макдональд (1993-02-10). «обмен на смерть» . Архивировано 28 марта 2017 года.
  25. ^ Джон Сиракуза (2001-10-15). «Mac OS X 10.1» . Ars Technica. Архивировано 05 сентября 2008 года . Проверено 23 июля 2008 .
  26. ^ Разработчик ядра AmigaOS (2011-01-08). "Re: Проблема с подкачкой также в обновлении 4?" . Hyperion Entertainment. Архивировано 12 апреля 2013 года . Проверено 8 января 2011 .
  27. ^ Например, определение вращательного положения на канале блочного мультиплексора
  28. ^ «Выравнивание файловых систем по размеру стираемого блока SSD | Мысли Теда» . Thunk.org. 2009-02-20. Архивировано 13 ноября 2010 года . Проверено 28 октября 2010 .
  29. ^ а б Билл Бузби. «Magic-1 Minix Demand Paging Design» . Архивировано 5 июня 2013 года . Проверено 9 декабря 2013 .

Внешние ссылки [ править ]

  • Своп факты и вопросы по документации Ubuntu
  • Windows Server - перемещение файла подкачки на другой раздел или диск , Дэвид Нудельман
  • Как работает виртуальная память с сайта HowStuffWorks.com (на самом деле объясняется только концепция подкачки, а не концепция виртуальной памяти)
  • Управление пространством подкачки Linux (устаревшее, по признанию автора)
  • Руководство по оптимизации скорости виртуальной памяти (устарело, противоречит разделу 1.4 этой вики-страницы и (по крайней мере) ссылкам 8, 9 и 11.)
  • Алгоритмы замены страниц виртуальной памяти
  • Windows XP: Как вручную изменить размер файла подкачки виртуальной памяти
  • Windows XP: факторы, которые могут истощить запас памяти выгружаемого пула
  • Драйвер SwapFs, который можно использовать для сохранения файла подкачки Windows в разделе подкачки Linux.