stringtranslate.com

Пейджинг памяти

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

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

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

История

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

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

«Атлас » Ферранти и «Атлас-супервизор» , разработанный в Манчестерском университете [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 и операционная система с разделением времени (1967 г.). ), GE 645 и Multics (1969 г.), а также PDP-10 с добавленным пейджинговым оборудованием, разработанным BBN , и операционной системой TENEX (1969 г.).

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

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

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

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

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

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

Методы получения страницы

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

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

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

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

избиение

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

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

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

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

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

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

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

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

Реализации

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

Первым компьютером, поддерживавшим пейджинг, был суперкомпьютер Atlas , [8] [9] [10], совместно разработанный Ферранти , Манчестерским университетом и Плесси в 1963 году. Машина имела ассоциативную ( адресуемую по содержимому ) память с одной записью для каждой записи. Страница из 512 слов. Супервизор [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 НТ

Файл, используемый для подкачки в семействе 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]

Поменять файлы и разделы местами

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

Обмен

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

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

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

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

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

macOS

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

АмигаОС 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 с расширением физического адреса . Это сводит на нет значительное преимущество подкачки, поскольку один процесс не может использовать больше оперативной памяти, чем объем его виртуального адресного пространства. Такие системы часто используют методы пейджинга для получения дополнительных преимуществ:

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

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

Примечания

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

Рекомендации

  1. ^ Белзер, Джек; Хольцман, Альберт Г.; Кент, Аллен, ред. (1981). "Операционные системы". Энциклопедия информатики и технологий. Том. 11. ЦРК Пресс. п. 442. ИСБН 0-8247-2261-2. Архивировано из оригинала 27 февраля 2017 г.
  2. ^ Крагон, Харви Г. (1996). Системы памяти и конвейерные процессоры. Издательство Джонс и Бартлетт. п. 109. ИСБН 0-86720-474-5. Архивировано из оригинала 27 февраля 2017 г.
  3. ^ Белзер, Джек; Хольцман, Альберт Г.; Кент, Аллен, ред. (1981). «Системы виртуальной памяти». Энциклопедия информатики и технологий. Том. 14. ЦРК Пресс. п. 32. ISBN 0-8247-2214-0. Архивировано из оригинала 27 февраля 2017 г.
  4. ^ Килберн, Т ; Пейн, РБ; Ховарт, ди-джей (1962). «Супервайзер Атласа».
  5. ^ Р.В. О'Нил. Опыт использования многопрограммной системы с разделением времени и аппаратным обеспечением динамического перемещения адресов . Учеб. 30-я компьютерная конференция AFIPS (Весенняя совместная компьютерная конференция, 1967 г.). стр. 611–621. дои : 10.1145/1465482.1465581.
  6. ^ Справочное руководство по системам научных данных, компьютер SDS 940 (PDF) . 1966. стр. 8–9.
  7. ^ «Предварительная выборка подкачки» . Еженедельные новости Linux . 27 сентября 2005 г.
  8. ^ Самнер, FH; Хейли, Г.; Чен, ECY (1962). «Центральный блок управления компьютером «Атлас». Обработка информации 1962 . Материалы Конгресса ИФИП. Том. Материалы Конгресса ИФИП 62. Спартанец.
  9. ^ "Атлас". Манчестерский университет: факультет компьютерных наук. Архивировано из оригинала 28 июля 2012 г.
  10. ^ «Архитектура Атласа». Компьютер Атлас . Чилтон: Компьютерная лаборатория Атласа. Архивировано из оригинала 10 декабря 2012 г.
  11. ^ Килберн, Т.; Пейн, РБ; Ховарт, ди-джей (декабрь 1961 г.). «Супервайзер Атласа». Компьютеры – ключ к полному контролю над системами . Материалы конференций. Том. 20, Материалы Восточной объединенной компьютерной конференции, Вашингтон, округ Колумбия, Макмиллан. стр. 279–294. Архивировано из оригинала 31 декабря 2009 г.
  12. ^ Килберн, Т.; Эдвардс, DBG; Ланиган, MJ; Самнер, Ф.Х. (апрель 1962 г.). «Одноуровневая система хранения». IRE-транзакции на электронных компьютерах . Институт радиоинженеров (2): 223–235. дои : 10.1109/TEC.1962.5219356.
  13. ^ Цигкояннис, Илиас (11 декабря 2006 г.). «Анализ аварийной свалки». водитель пишет != вождение автобуса . Майкрософт . Архивировано из оригинала 7 октября 2008 г. Проверено 22 июля 2008 г.
  14. ^ "Windows Sysinternals PageDefrag" . Сисинтерналы . Майкрософт . 01.11.2006. Архивировано из оригинала 25 декабря 2010 г. Проверено 20 декабря 2010 г.
  15. ^ Оба, Дэвид (27 марта 2020 г.). «Введение в пространство подкачки в системах Linux». Opensource.com . Проверено 8 декабря 2021 г.
  16. ^ "swapon(2) - справочная страница Linux" . Linux.Die.net . Архивировано из оригинала 28 февраля 2014 г. Проверено 8 сентября 2014 г.
  17. ^ ""Йеспер Юл": Re: Как отправить перерыв? - дамп из замороженного 64-битного Linux" . ЛКМЛ. 29 мая 2006 г. Архивировано из оригинала 24 ноября 2010 г. Проверено 28 октября 2010 г.
  18. ^ «Эндрю Мортон: Re: Раздел подкачки против файла подкачки» . ЛКМЛ. Архивировано из оригинала 24 ноября 2010 г. Проверено 28 октября 2010 г.
  19. ^ «Документация ядра Linux для /proc/sys/vm/» .
  20. ^ Эндрюс, Джереми (29 апреля 2004 г.). «Linux: настройка подкачки». kerneltrap.org . Архивировано из оригинала 24 мая 2013 г. Проверено 3 января 2018 г.
  21. ^ Рик ван Риель (20 мая 1998 г.). "поменять местами смерть (как в 2.1.91) и таблицы страниц". Архивировано из оригинала 29 декабря 2017 г.
  22. ^ Кайл Рэнкин (2012). Устранение неполадок DevOps: лучшие практики Linux-сервера. Аддисон-Уэсли. п. 159. ИСБН 978-0-13-303550-6. Архивировано из оригинала 29 декабря 2017 г.
  23. ^ Андрис Брауэр. «Ядро Linux: Память». Архивировано из оригинала 13 августа 2017 г.
  24. ^ Красная шляпа. «Настройка мощности». Архивировано из оригинала 23 июля 2017 г.
  25. ^ «Настройки превышения объема памяти» . 16 февраля 2014 г. Архивировано из оригинала 31 мая 2017 г.
  26. ^ Питер Макдональд (10 февраля 1993 г.). «обмен до смерти». Архивировано из оригинала 28 марта 2017 г.
  27. ^ Джон Сиракузы (15 октября 2001 г.). «Мак ОС Х 10.1». Арс Техника. Архивировано из оригинала 5 сентября 2008 г. Проверено 23 июля 2008 г.
  28. ^ Основной разработчик AmigaOS (08 января 2011 г.). «Re: Проблема со свопом также в обновлении 4?». Гиперион Развлечения. Архивировано из оригинала 12 апреля 2013 г. Проверено 8 января 2011 г.
  29. ^ Например, определение положения вращения на канале блочного мультиплексора.
  30. ^ «Выравнивание файловых систем по размеру стираемого блока SSD | Мысли Теда» . Thunk.org. 20 февраля 2009 г. Архивировано из оригинала 13 ноября 2010 г. Проверено 28 октября 2010 г.
  31. ^ аб Билл Бузби. «Проектирование пейджинга по запросу Magic-1 Minix». Архивировано из оригинала 5 июня 2013 г. Проверено 9 декабря 2013 г.

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