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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Разбивка [ править ]

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

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

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

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

Обмен [ править ]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Linux [ править ]

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

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

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

Swappiness [ править ]

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

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

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

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

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

macOS [ править ]

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

AmigaOS 4 [ править ]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Примечания [ править ]

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

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

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