stringtranslate.com

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

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

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

В зависимости от модели памяти , функциональность страничной памяти обычно жестко зашита в CPU/MCU с помощью блока управления памятью (MMU) или блока защиты памяти (MPU) и отдельно включается привилегированным системным кодом в ядре операционной системы . Например, в CPU, реализующих архитектуру набора инструкций x86 (ISA), страничная память включается через регистр управления CR0 .

История

В 1960-х годах подкачка была ранней техникой виртуальной памяти. Вся программа или весь сегмент «выгружалась» (или «разворачивалась») из ОЗУ на диск или барабан, а другая подгружалась ( или разворачивалась ). [1] [2] Выгруженная программа была текущей, но ее выполнение приостанавливалось, пока ее ОЗУ использовалось другой программой; программа с выгруженным сегментом могла продолжать работать до тех пор, пока ей не понадобится этот сегмент, после чего она приостанавливалась, пока сегмент не был подгружен.

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

Atlas Ферранти и Atlas Supervisor, разработанный в Манчестерском университете [ 4] (1962), были первой системой, реализовавшей страничную память. Последующие ранние машины и их операционные системы, поддерживающие страничную память, включают IBM M44/44X и ее операционную систему MOS (1964), [5] SDS 940 [6] и Berkeley Timesharing System (1966), модифицированную IBM System/360 Model 40 и операционную систему CP-40 (1967), IBM System/360 Model 67 и операционные системы, такие как TSS/360 и CP/CMS (1967), RCA 70/46 и операционную систему Time Sharing Operating System (1967), GE 645 и Multics (1969), а также PDP-10 с добавленным разработанным BBN страничным оборудованием и операционной системой TENEX (1969).

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

Ошибки страниц

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

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

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

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

Методы извлечения страниц

Пейджинг по требованию

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

Упреждающий пейджинг

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

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

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

Если программа завершается, операционная система может отложить освобождение ее страниц на случай, если пользователь снова запустит ту же программу.

Методы замены страниц

Бесплатная очередь страниц, кража и возврат

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

Предварительная очистка

Операционная система может периодически предварительно очищать грязные страницы: записывать измененные страницы обратно на диск, даже если они могут быть дополнительно изменены. Это минимизирует объем очистки, необходимый для получения новых фреймов страниц в момент запуска новой программы или открытия нового файла данных, и улучшает отзывчивость. (Операционные системы Unix периодически используют синхронизацию для предварительной очистки всех грязных страниц; операционные системы Windows используют потоки "измененных страниц writer".)

Избиение

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

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

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

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

Поделиться

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

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

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

Реализации

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

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

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

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

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

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

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

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

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

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

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

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

линукс

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

Подкачка файлов и разделов

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

Обмен

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

Обмен смертью

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

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

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

macOS

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

AmigaOS 4

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

Производительность

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

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

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

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

Размеры физического и виртуального адресного пространства

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

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

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

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

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

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

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

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

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

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

Смотрите также

Примечания

  1. ^ Первоначально для подкачки страниц использовались барабаны , а затем жесткие диски и твердотельные накопители .
  2. ^ Например, Multics , OS/VS1 , OS/VS2 , VM/370
  3. ^ Например, z/OS .
  4. ^ Некоторые системы имеют глобальную таблицу страниц, некоторые системы имеют отдельную таблицу страниц для каждого процесса, некоторые системы имеют отдельную таблицу страниц для каждого сегмента [b] , а некоторые системы имеют каскадные таблицы страниц. [c]
  5. ^ Например, MVS (множественное виртуальное хранилище).
  6. ^ Прерывание неэквивалентности происходит, когда старшие биты адреса не соответствуют ни одной записи в ассоциативной памяти.

Ссылки

  1. ^ Белзер, Джек; Хольцман, Альберт Г.; Кент, Аллен, ред. (1981). «Операционные системы». Энциклопедия компьютерной науки и технологий. Т. 11. CRC Press. С. 442. ISBN 0-8247-2261-2. Архивировано из оригинала 2017-02-27.
  2. ^ Cragon, Harvey G. (1996). Системы памяти и конвейерные процессоры. Jones and Bartlett Publishers. стр. 109. ISBN 0-86720-474-5. Архивировано из оригинала 2017-02-27.
  3. ^ Белзер, Джек; Хольцман, Альберт Г.; Кент, Аллен, ред. (1981). "Виртуальные системы памяти". Энциклопедия компьютерной науки и техники. Т. 14. CRC Press. С. 32. ISBN 0-8247-2214-0. Архивировано из оригинала 2017-02-27.
  4. ^ Килберн, Т .; Пейн, Р.Б.; Ховарт, ДЖ. (1962). «Руководитель Атласа».
  5. ^ RW O'Neill. Опыт использования мультипрограммной системы с разделением времени и аппаратным обеспечением динамического перемещения адресов . Proc. AFIPS Computer Conference 30 (Spring Joint Computer Conference, 1967). pp. 611–621. doi :10.1145/1465482.1465581.
  6. ^ Справочное руководство по системам научных данных, компьютер SDS 940 (PDF) . 1966. С. 8–9.
  7. ^ "Предварительная загрузка подкачки". Linux Weekly News . 2005-09-27.
  8. ^ Самнер, Ф. Х.; Хейли, Г.; Чен, Э. С. И. (1962). «Центральный блок управления компьютером «Атлас»». Обработка информации 1962. Труды конгресса ИФИП. Т. Труды конгресса ИФИП 62. Spartan.
  9. ^ "Атлас". Манчестерский университет: Кафедра компьютерных наук. Архивировано из оригинала 28.07.2012.
  10. ^ "Atlas Architecture". Atlas Computer . Чилтон: Atlas Computer Laboratory. Архивировано из оригинала 2012-12-10.
  11. ^ Kilburn, T.; Payne, RB; Howarth, DJ (декабрь 1961 г.). «The Atlas Supervisor». Компьютеры — ключ к тотальному контролю систем . Труды конференций. Том 20, Труды Восточной объединенной компьютерной конференции Вашингтон, округ Колумбия, Macmillan. С. 279–294. Архивировано из оригинала 31 декабря 2009 г.
  12. ^ Килберн, Т.; Эдвардс, DBG; Ланиган, MJ; Самнер, FH (апрель 1962 г.). «Одноуровневая система хранения». Труды IRE по электронным компьютерам (2). Институт радиоинженеров: 223–235. doi :10.1109/TEC.1962.5219356.
  13. ^ Цигкогианнис, Илиас (2006-12-11). "Анализ аварийного дампа". водитель пишет != автобус вождение . Microsoft . Архивировано из оригинала 2008-10-07 . Получено 2008-07-22 .
  14. ^ "Windows Sysinternals PageDefrag". Sysinternals . Microsoft . 2006-11-01. Архивировано из оригинала 2010-12-25 . Получено 2010-12-20 .
  15. ^ Оба, Дэвид (2020-03-27). "Введение в пространство подкачки в системах Linux". Opensource.com . Получено 2021-12-08 .
  16. ^ "swapon(2) – Linux man page". Linux.Die.net . Архивировано из оригинала 2014-02-28 . Получено 2014-09-08 .
  17. ^ ""Jesper Juhl": Re: Как отправить прерывание? - дамп из замороженного 64-битного Linux". LKML. 2006-05-29. Архивировано из оригинала 2010-11-24 . Получено 2010-10-28 .
  18. ^ "Andrew Morton: Re: Раздел подкачки против файла подкачки". LKML. Архивировано из оригинала 2010-11-24 . Получено 2010-10-28 .
  19. ^ «Документация ядра Linux для /proc/sys/vm/».
  20. ^ Эндрюс, Джереми (29.04.2004). "Linux: Tuning Swappiness". kerneltrap.org . Архивировано из оригинала 24.05.2013 . Получено 03.01.2018 .
  21. ^ Рик ван Риел (1998-05-20). "поменять местами смерть (как в 2.1.91) и таблицы страниц". Архивировано из оригинала 2017-12-29.
  22. ^ Кайл Ранкин (2012). Устранение неполадок DevOps: лучшие практики Linux Server. Addison-Wesley. стр. 159. ISBN 978-0-13-303550-6. Архивировано из оригинала 29.12.2017.
  23. ^ Андрис Брауэр. "Ядро Linux: Память". Архивировано из оригинала 2017-08-13.
  24. ^ Red Hat. "Настройка емкости". Архивировано из оригинала 2017-07-23.
  25. ^ "Настройки перераспределения памяти". 2014-02-16. Архивировано из оригинала 2017-05-31.
  26. ^ Питер Макдональд (10.02.1993). "обмен на смерть". Архивировано из оригинала 28.03.2017.
  27. ^ Джон Сиракуза (2001-10-15). "Mac OS X 10.1". Ars Technica. Архивировано из оригинала 2008-09-05 . Получено 2008-07-23 .
  28. ^ AmigaOS Core Developer (08.01.2011). "Re: Проблема с подкачкой также в обновлении 4?". Hyperion Entertainment. Архивировано из оригинала 12.04.2013 . Получено 08.01.2011 .
  29. ^ Например, определение вращательного положения на канале блочного мультиплексора
  30. ^ "Выравнивание файловых систем по размеру стираемого блока SSD | Размышления Теда". Thunk.org. 2009-02-20. Архивировано из оригинала 2010-11-13 . Получено 2010-10-28 .
  31. ^ ab Билл Бузби. "Magic-1 Minix Demand Paging Design". Архивировано из оригинала 2013-06-05 . Получено 2013-12-09 .

Внешние ссылки