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

В вычислительной , виртуальной памяти или виртуальной памяти [B] является управление памятью метод , который обеспечивает «идеализированный абстракции ресурсов хранения данных , которые фактически доступны на данной машине» [3] , который «создает иллюзию для пользователей очень большой (основная память". [4]

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

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

Свойства [ править ]

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

Виртуализацию памяти можно рассматривать как обобщение концепции виртуальной памяти.

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

Виртуальная память - неотъемлемая часть современной компьютерной архитектуры ; реализации обычно требуют аппаратной поддержки, обычно в виде блока управления памятью, встроенного в ЦП . Хотя в этом нет необходимости, эмуляторы и виртуальные машины могут использовать аппаратную поддержку для повышения производительности своих реализаций виртуальной памяти. [5] Следовательно, более старые операционные системы, такие как для мэйнфреймов 1960-х годов и для персональных компьютеров от начала до середины 1980-х (например, DOS ), [6], как правило, не имеют функциональности виртуальной памяти, [ сомнительно ],хотя заметные исключения для мэйнфреймов 1960-х годов включают:

  • Атлас Supervisor для Atlas
  • Мультипрограммная система для Electrologica X8 (виртуальная память на основе программного обеспечения без аппаратной поддержки)
  • MCP для Burroughs B5000
  • MTS , TSS / 360 и CP / CMS для IBM System / 360 Model 67
  • Мультики для GE 645
  • Операционная система общего доступа Время для RCA Spectra +70 / 46

а операционная система для Apple Lisa - это пример операционной системы для персонального компьютера 1980-х годов с виртуальной памятью.

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

Большинство современных операционных систем, поддерживающих виртуальную память, также запускают каждый процесс в собственном выделенном адресном пространстве . Таким образом, кажется, что каждая программа имеет единственный доступ к виртуальной памяти. Однако некоторые старые операционные системы (такие как OS / VS1 и OS / VS2 SVS ) и даже современные (например, IBM i ) представляют собой операционные системы с одним адресным пространством, которые запускают все процессы в одном адресном пространстве, состоящем из виртуализированной памяти.

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

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

В 1940 - х годах [ править ] и 1950 - е годы, все более крупные программы должны содержать логику для управления первичного и вторичного хранения, такие как наложение . Поэтому виртуальная память была введена не только для расширения первичной памяти, но и для того, чтобы сделать такое расширение максимально простым для использования программистами. [7] Чтобы обеспечить возможность мультипрограммирования и многозадачности , многие ранние системы разделяли память между несколькими программами без виртуальной памяти, например ранние модели PDP-10 через регистры .

Утверждение о том, что концепция виртуальной памяти была впервые разработана немецким физиком Фрицем-Рудольфом Гюнчем в Техническом университете Берлина в 1956 году в его докторской диссертации « Логический дизайн цифрового компьютера с несколькими асинхронно вращающимися барабанами и автоматической высокоскоростной операцией памяти» [8] [9] не выдерживает тщательной проверки. Компьютер, предложенный Гюнчем (но так и не построенный), имел адресное пространство из 10 5 слов, которые точно отображались на 10 5 слов барабанов, то есть адреса были реальными адресами, и не было формы косвенного сопоставления, ключевой особенности виртуальная память. Гюнч изобрел формукэш-память , поскольку его высокоскоростная память была предназначена для хранения копии некоторых блоков кода или данных, взятых с барабанов. Более того, он писал (как указано в переводе [10] ): «Программисту не нужно уважать существование первичной памяти (ему даже не нужно знать, что она существует), поскольку существует только один вид адресов ( sic ), по которым можно программировать так, как будто существует только одно хранилище ». Именно так обстоит дело с компьютерами с кэш-памятью, одним из первых коммерческих примеров которых была IBM System / 360 Model 85 [11].В Model 85 все адреса были реальными адресами, относящимися к основному хранилищу ядра. Хранилище полупроводникового кэша, невидимое для пользователя, содержало содержимое частей основного хранилища, используемых текущей выполняющейся программой. Это в точности аналогично системе Güntsch, разработанной как средство повышения производительности, а не для решения проблем, связанных с мультипрограммированием.

Первая настоящая система виртуальной памяти была реализована в Манчестерском университете для создания одноуровневой системы хранения [12] как часть компьютера Атлас . Он использовал механизм подкачки для отображения виртуальных адресов, доступных программисту, на реальную память, которая состояла из 16 384 слов первичной памяти ядра с дополнительными 98 304 словами вторичной памяти барабана . [13] Первый Атлас был введен в эксплуатацию в 1962 году, но рабочие прототипы подкачки были разработаны к 1959 году. [7] ( p2 ) [14] [15] В 1961 году корпорация Burroughsнезависимо выпустила первый коммерческий компьютер с виртуальной памятью, B5000 , с сегментацией, а не подкачкой. [16] [17]

Прежде чем виртуальная память могла быть реализована в основных операционных системах, необходимо было решить множество проблем. Для динамической трансляции адресов требовалось дорогостоящее и сложное в сборке специализированное оборудование; начальные реализации немного замедляли доступ к памяти. [7] Были опасения, что новые общесистемные алгоритмы, использующие вторичное хранилище, будут менее эффективными, чем ранее использовавшиеся алгоритмы для конкретных приложений. К 1969 году споры о виртуальной памяти для коммерческих компьютеров закончились; [7] IBM исследовательской группа под руководством Дэвида Сейр показала , что их виртуальная система наложения памяти последовательно работала лучше , чем лучшие вручную управляемые системы. [18]На протяжении 1970-х годов серии IBM 370, работающие с их операционными системами на основе виртуальных хранилищ, предоставляли бизнес-пользователям средства для миграции нескольких старых систем на более мощные мэйнфреймы с меньшим количеством операций, которые имели улучшенное соотношение цена / производительность. Первым миникомпьютером с виртуальной памятью стал норвежский NORD-1 ; в течение 1970-х годов другие мини-компьютеры реализовали виртуальную память, особенно модели VAX, работающие под управлением VMS .

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

Выгружаемая виртуальная память [ править ]

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

Таблицы страниц [ править ]

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

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

Некоторые более ранние системы с меньшим объемом реальной памяти, такие как SDS 940 , использовали регистры страниц вместо таблиц страниц в памяти для преобразования адресов.

Руководитель пейджинга [ править ]

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

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

Закрепленные страницы [ править ]

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

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

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

В операционных системах IBM для System / 370 и последующих системах термин «фиксированный», и такие страницы могут быть фиксированными на длительный срок, или могут быть фиксированными на короткий срок, или могут быть нефиксированными (т. Е. Доступными для страниц). Структуры управления системой часто являются фиксированными на длительный срок (измеряются во времени настенных часов, т. Е. Время измеряется в секундах, а не в долях одной секунды), тогда как буферы ввода / вывода обычно фиксируются на короткий срок (обычно измеряются в значительных долях секунды). меньше времени настенных часов, возможно, на десятки миллисекунд). Действительно, в ОС есть специальная возможность для «быстрого исправления» этих краткосрочных фиксированных буферов данных (исправление, которое выполняется без использования длительной инструкции вызова супервизора ).

Multics использовал термин «проводной». OpenVMS и Windows относятся к страницам, которые временно не могут быть выгружены на страницу (как для буферов ввода-вывода), как к «заблокированным», и просто «не к страницам» для тех, которые никогда не доступны для страницы. В спецификации Single UNIX также используется термин "заблокирован" в спецификации , как и в справочных страницах многих Unix-подобных систем.mlock()mlock()

Виртуально-реальная операция [ править ]

В OS / VS1 и аналогичных операционных системах некоторые части системной памяти управляются в «виртуально-реальном» режиме, называемом «V = R». В этом режиме каждому виртуальному адресу соответствует один и тот же реальный адрес. Этот режим используется для механизмов прерывания , для супервизора подкачки и таблиц страниц в старых системах, а также для прикладных программ, использующих нестандартное управление вводом-выводом. Например, z / OS IBM имеет 3 режима (виртуально-виртуальный, виртуально-реальный и виртуальный-фиксированный). [21] [ необходима страница ]

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

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

Сегментированная виртуальная память [ править ]

Некоторые системы, такие как Burroughs B5500 [22], используют сегментацию вместо пейджинга, разделяя виртуальные адресные пространства на сегменты переменной длины. Виртуальный адрес здесь состоит из номера сегмента и смещения внутри сегмента. Intel 80286 поддерживает аналогичную схему сегментации , как вариант, но он редко используется. Сегментацию и разбиение на страницы можно использовать вместе, разделив каждый сегмент на страницы; в системах с такой структурой памяти, таких как Multics и IBM System / 38 , обычно преобладает подкачка, а сегментация обеспечивает защиту памяти. [23] [24] [25]

В процессорах Intel 80386 и более поздних IA-32 сегменты находятся в 32-битном линейном адресном пространстве с подкачкой. Сегменты можно перемещать в это пространство и из него; страницы могут «постранично» входить и выходить из основной памяти, обеспечивая два уровня виртуальной памяти; лишь немногие операционные системы, если таковые имеются, используют только разбиение на страницы. Ранние решения виртуализации x86 без аппаратной поддержки сочетали разбиение на страницы и сегментацию, поскольку разбиение на страницы x86 предлагает только два домена защиты, тогда как стеку VMM / гостевой ОС / гостевых приложений требуется три. [26] : 22Разница между системами подкачки и сегментации не только в разделении памяти; сегментация видна пользовательским процессам как часть семантики модели памяти. Следовательно, вместо памяти, которая выглядит как одно большое пространство, она разбита на несколько пространств.

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

Это не то же самое, что механизмы, предоставляемые такими вызовами, как mmap и Win32.MapViewOfFile, потому что межфайловые указатели не работают при отображении файлов в полу произвольные места. В Multics файл (или сегмент из многосегментного файла) отображается в сегмент в адресном пространстве, поэтому файлы всегда отображаются на границе сегмента. Раздел связывания файла может содержать указатели, для которых попытка загрузить указатель в регистр или сделать косвенную ссылку через него вызывает ловушку. Неразрешенный указатель содержит указание имени сегмента, на который ссылается указатель, и смещение внутри сегмента; обработчик прерывания отображает сегмент в адресное пространство, помещает номер сегмента в указатель, изменяет поле тега в указателе так, чтобы оно больше не приводило к прерыванию, и возвращается к коду, в котором возникла прерывание, повторно выполняя инструкция, вызвавшая ловушку.[28] Это устраняет необходимость для линкера полностью [7] и работаеткогда различные процессы отображения одного файла в разные места в своих частных адресных пространствах. [29]

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

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

IBM MVS от OS / VS2 Release 2 до z / OS позволяет пометить адресное пространство как не подлежащее замене; при этом никакие страницы не закрепляются в адресном пространстве. Это можно сделать на время выполнения задания, введя имя подходящей [30] основной программы в таблице свойств программы с флагом отмены замены. Кроме того, привилегированный код может временно сделать адресное пространство недоступным для замены с помощью инструкции SYSEVENT Supervisor Call (SVC); некоторые изменения [31] в свойствах адресного пространства требуют, чтобы ОС выгрузила его, а затем вернула обратно, используя SYSEVENT TRANSWAP. [32]

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

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

  • Дизайн процессора
  • Страница (вычисления)
  • Алгоритмы кеширования
  • Выделение памяти
  • Управление памятью (операционные системы)
  • Защищенный режим , режим x86, который позволяет использовать виртуальную память.
  • CUDA закрепленная память
  • Гетерогенная системная архитектура , серия спецификаций, предназначенных для объединения оперативной памяти и памяти видеокарты в виртуальную.
  • Виртуализация хранилища

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

  1. ^ Ранние системы использовали барабаны ; современные системы используют диски или твердотельную память
  2. ^ IBM использует термин виртуальное хранилище в операционных системах мэйнфреймов. Это использование выполняется от TSS [1] на 360/67 до z / OS , [2] на z / Architecture .
  3. ^ IBM DOS / VS , OS / VS1 и DOS / VS поддерживали только страницы размером 2 КБ.

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

  1. ^ «КОМПОНЕНТЫ СИСТЕМЫ: Динамическое перемещение» (PDF) . System / 360 Model 67 Предварительное техническое резюме системы разделения времени (PDF) . IBM. 1966. с. 21. C20-1647-0.
  2. ^ «BCP (Базовая программа управления)» (PDF) . z / OS версии 2, выпуск 4 z / OS: Введение и руководство по выпуску (PDF) . IBM. 22 сентября 2020 г. с. 3. GA32-0887-40.
  3. ^ Бхаттачарджи, Абхишек; Люстиг, Даниэль (2017). Поддержка виртуальной памяти архитектурой и операционной системой . Издатели Morgan & Claypool. п. 1. ISBN 9781627056021. Проверено 16 октября 2017 года .
  4. ^ Халдар, Sibsankar; Аравинд, Алекс Алагарсами (2010). Операционные системы . Pearson Education India. п. 269. ISBN. 978-8131730225. Проверено 16 октября 2017 года .
  5. ^ «AMD-V ™ Nested Paging» (PDF) . AMD . Проверено 28 апреля 2015 года .
  6. ^ «История версий Windows» . Microsoft. 23 сентября 2011 . Проверено 9 марта 2015 года .
  7. ^ a b c d e Деннинг, Питер (1997). «До того, как память стала виртуальной» (PDF) . В начале: воспоминания пионеров программного обеспечения .
  8. ^ Йенсен, Элька (2004). «Происхождение концепции виртуальной памяти». IEEE Annals of the History of Computing . 26 (4): 71–72.
  9. ^ Джессен, Э. (1996). "Die Entwicklung des virtuellen Speichers". Информатик-Спектрум (на немецком языке). 19 (4): 216–219. DOI : 10.1007 / s002870050034 . ISSN 0170-6012 . S2CID 11514875 .  
  10. ^ Джессен (2004) .
  11. ^ Liptay, JS (1968), "Структурные аспекты системы / 360 Model 85 - Кэш", IBM Systems Journal , 7 : 15-21, DOI : 10,1147 / sj.71.0015
  12. ^ Kilburn, T .; Эдвардс, DBG; Ланиган, MJ; Самнер, FH (1962), "Одноуровневый System Storage", IRE Trans EC-11 (2): 223-235, DOI : 10,1109 / TEC.1962.5219356
  13. ^ "Ferranti Atlas 1 & 2 - Системная архитектура" (PDF) . 12 ноября 2009 г.
  14. ^ RJ Creasy, " Происхождение системы разделения времени VM / 370 ", IBM Journal of Research & Development , Vol. 25, № 5 (сентябрь 1981 г.), стр. 486
  15. ^ "Атлас" . Архивировано из оригинала на 6 октября 2014 года.
  16. Ян Джойнер на Burroughs B5000
  17. ^ Cragon, Харви Г. (1996). Системы памяти и конвейерные процессоры . Джонс и Бартлетт Издательство. п. 113. ISBN 978-0-86720-474-2.
  18. ^ Сейр, D. (1969). «Является ли автоматическое« сворачивание »программ достаточно эффективным, чтобы заменить ручное?». Коммуникации ACM . 12 (12): 656–660. DOI : 10.1145 / 363626.363629 . S2CID 15655353 . 
  19. ^ Кинтеро, Дино; и другие. (1 мая 2013). Руководство по производительности IBM Power Systems: внедрение и оптимизация . Корпорация IBM. п. 138. ISBN 978-0738437668. Проверено 18 июля 2017 года .
  20. ^ Шарма, Dp (2009). Основы операционных систем . Excel Книги Индия. п. 62. ISBN 978-81-7446-626-6. Проверено 18 июля 2017 года .
  21. ^ «Информационный центр по базовым навыкам z / OS: концепции z / OS» (PDF) .
  22. ^ Берроуз (1964). Справочное руководство по системе обработки информации Burroughs B5500 (PDF) . Корпорация Берроуз . 1021326 . Проверено 28 ноября 2013 года .
  23. ^ Системное руководство GE-645 (PDF) . Январь 1968. С. 21–30 . Проверено 28 апреля 2015 года .
  24. ^ Корбато, FJ ; Высоцкий В.А. "Введение и обзор системы Multics" . Проверено 13 ноября 2007 .
  25. ^ Глейзер, Эдвард Л .; Кулер, Джон Ф. и Оливер, GA "Дизайн системы компьютера для приложений с разделением времени" .
  26. ^ «Дж. Э. Смит, Р. Улиг (14 августа 2005 г.) Виртуальные машины: архитектуры, реализации и приложения , HOTCHIPS 17, Учебник 1, часть 2» (PDF) .
  27. ^ Бенсуссан, Андре; Clingen, CharlesT .; Дейли, Роберт С. (май 1972 г.). «Виртуальная память Multics: концепции и дизайн» . Коммуникации ACM . 15 (5): 308–318. CiteSeerX 10.1.1.10.6731 . DOI : 10.1145 / 355602.361306 . S2CID 6434322 .  
  28. ^ «Среда выполнения Multics» . MultICAL.org . Проверено 9 октября, 2016 .
  29. ^ Organick, Эллиот И. (1972). Система Multics: исследование ее структуры . MIT Press. ISBN 978-0-262-15012-5.
  30. ^ Наиболее важным требованием является авторизация программы APF.
  31. ^ например, запрос на использование предпочтительной памяти
  32. ^ «Смена управления (DONTSWAP, OKSWAP, TRANSWAP)» . Центр знаний IBM . Программирование z / OS MVS: Справочник по авторизованным сервисам ассемблера SET-WTO SA23-1375-00. 1990–2014 гг . Проверено 9 октября, 2016 .

Дальнейшее чтение [ править ]

  • Хеннесси, Джон Л .; и Паттерсон, Дэвид А .; Компьютерная архитектура, количественный подход ( ISBN 1-55860-724-2 ) 

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

  • Операционные системы: Три простых пьесы , Ремзи Х. Арпачи-Дюссо и Андреа К. Арпачи-Дюссо. Arpaci-Dusseau Books, 2014. Соответствующие главы: Адресные пространства Сегментация преобразования адресов Введение в TLB подкачки Расширенный обмен таблицами страниц: Обмен механизмами : Политики
  • «Программы супервизора с разделением времени» Майкла Т. Александера в книге «Продвинутые темы системного программирования» , Летняя конференция инженеров Мичиганского университета 1970 г. (пересмотренная в мае 1971 г.), сравнивает подходы к планированию и распределению ресурсов, включая виртуальную память и подкачку, которые используются в четырех мэйнфреймах. операционные системы: CP-67 , TSS / 360 , MTS , Multics .
  • LinuxMM: Управление памятью Linux .
  • Рождение ядра Linux , обсуждение в списке рассылки.
  • Диспетчер виртуальной памяти в Windows NT, Рэнди Кэт, Microsoft Developer Network Technology Group, 12 декабря 1992 г. на Wayback Machine (архивировано 22 июня 2010 г.)