Jump to content

Виртуальная память

(Перенаправлено из виртуального хранилища )

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

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

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

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

Характеристики

[ редактировать ]

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

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

Использование

[ редактировать ]

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

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

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

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

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

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

Манчестерского университета Компьютер Atlas Computer был первым компьютером, оснащенным настоящей виртуальной памятью.

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

IBM разработала [ с ] концепцию гипервизоров в своих CP-40 и CP-67 , а в 1972 году представила ее для S/370 как Virtual Machine Facility/370. [ 21 ] IBM представила инструкцию Start Interpretive Execution ( SIE ) как часть 370-XA на 3081 и версии VM/XA для ее использования.

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

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

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

[ редактировать ]

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

Таблицы страниц

[ редактировать ]

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

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

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

Супервизор пейджинговой связи

[ редактировать ]

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

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

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

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

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

Закрепленные страницы

[ редактировать ]

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

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

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

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

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

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

[ редактировать ]

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

избиение

[ редактировать ]

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

Сбой системы часто является результатом внезапного резкого увеличения спроса на страницы со стороны небольшого количества запущенных программ. Своп-токен [ 26 ] представляет собой легкий и динамичный механизм защиты от выбрасывания. Основная идея состоит в том, чтобы установить в системе токен, который случайным образом передается процессу, у которого возникают страничные ошибки при возникновении сбоев. Процессу, имеющему токен, предоставляется привилегия выделять больше страниц физической памяти для создания своего рабочего набора, который, как ожидается, быстро завершит свое выполнение и освободит страницы памяти другим процессам. Отметка времени используется для передачи токена один за другим. Первая версия swap-токена была реализована в Linux 2.6. [ 27 ] Вторая версия называется preempt swap-token и также присутствует в Linux 2.6. [ 27 ] В этой обновленной реализации токена подкачки для каждого процесса устанавливается счетчик приоритетов для отслеживания количества страниц подкачки. Токен всегда отдается процессу с высоким приоритетом, который имеет большое количество страниц подкачки. Длина отметки времени не является константой, а определяется приоритетом: чем больше страниц процесса выгрузки, тем длиннее будет отметка времени для него.

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

[ редактировать ]

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

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

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

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

Замена адресного пространства

[ редактировать ]

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

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

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

См. также

[ редактировать ]

Примечания

[ редактировать ]
  1. ^ Ранние системы использовали барабаны ; современные системы используют диски или твердотельную память
  2. ^ IBM использует термин виртуальное хранилище в операционных системах мэйнфреймов. Это использование выполняется из TSS [ 1 ] на 360/67 через z/OS [ 2 ] на z/Архитектура .
  3. ^ IBM ранее использовала термин «гипервизор» для 360/65 , [ 20 ] но это не задействовало виртуальную память
  4. ^ IBM DOS/VS , OS/VS1 и DOS/VS поддерживали только страницы размером 2 КБ.
  5. ^ На IBM Z [ 25 ] для каждого адресного пространства существует трехуровневое дерево регионов.
  1. ^ «КОМПОНЕНТЫ СИСТЕМЫ: Динамическое перемещение» (PDF) . Предварительное техническое описание системы разделения времени System/360 Model 67 (PDF) . ИБМ. 1966. с. 21. С20-1647-0.
  2. ^ «BCP (Программа базового управления)» (PDF) . z/OS Версия 2 Выпуск 4 Руководство по ознакомлению и выпуску z/OS (PDF) . ИБМ. 22 сентября 2020 г. с. 3. ГА32-0887-40.
  3. ^ Бхаттачарджи, Абхишек; Люстиг, Дэниел (2017). Архитектурная и операционная поддержка виртуальной памяти . Издательство Морган и Клейпул. п. 1. ISBN  9781627056021 . Проверено 16 октября 2017 г.
  4. ^ Халдар, Сибсанкар; Аравинд, Алекс Алагарсами (2010). Операционные системы . Пирсон Образовательная Индия. п. 269. ИСБН  978-8131730225 . Проверено 16 октября 2017 г.
  5. ^ Чжоу, Сянжун; Петров, Петр (1 декабря 2008 г.). «Прямая трансляция адресов виртуальной памяти в энергоэффективных встраиваемых системах» . Транзакции ACM во встроенных вычислительных системах . 8 (1): 1–31. дои : 10.1145/1457246.1457251 . ISSN   1539-9087 . S2CID   18156695 .
  6. ^ «Вложенный пейджинг AMD-V™» (PDF) . АМД . Проверено 28 апреля 2015 г.
  7. ^ «История версий Windows» . Майкрософт. 23 сентября 2011 года. Архивировано из оригинала 8 января 2015 года . Проверено 9 марта 2015 г.
  8. ^ Jump up to: а б с д и Деннинг, Питер (1997). «До того, как память была виртуальной» (PDF) . В начале: воспоминания пионеров программного обеспечения .
  9. ^ Джессен, Эльке (2004). «Происхождение концепции виртуальной памяти». IEEE Анналы истории вычислений . 26 (4): 71–72.
  10. ^ Джессен, Э. (1996). «Эволюция виртуальной памяти». Спектр компьютерных наук (на немецком языке). 19 (4): 216–219. дои : 10.1007/s002870050034 . ISSN   0170-6012 . S2CID   11514875 .
  11. ^ Джессен (2004) .
  12. ^ Липтэй, Дж. С. (1968), «Структурные аспекты модели System/360 85 – Кэш», IBM Systems Journal , 7 : 15–21, doi : 10.1147/sj.71.0015
  13. ^ Килберн, Т.; Эдвардс, DBG; Ланиган, MJ; Самнер, Ф.Х. (1962), «Одноуровневая система хранения», IRE Trans EC-11 (2): 223–235, doi : 10.1109/TEC.1962.5219356
  14. ^ «Атлас Ферранти 1 и 2 - Системная архитектура» (PDF) . 12 ноября 2009 г.
  15. ^ Деннинг, Питер Дж. (1 января 2003 г.). «Виртуальная память» . Энциклопедия информатики . Джон Уайли и сыновья. стр. 1832–1835. ISBN  978-0-470-86412-8 . Проверено 10 января 2023 г.
  16. ^ Кризи, Р.Дж. (сентябрь 1981 г.). «Происхождение системы разделения времени VM/370» (PDF) . Журнал исследований и разработок IBM . 25 (5): 486. дои : 10.1147/rd.255.0483 .
  17. ^ «Атлас» . Архивировано из оригинала 6 октября 2014 года. {{cite web}}: CS1 maint: неподходящий URL ( ссылка )
  18. ^ Джойнер, Ян. «Берроуз» . Архивировано из оригинала 10 мая 2017 года.
  19. ^ Крагон, Харви Г. (1996). Системы памяти и конвейерные процессоры . Издательство Джонс и Бартлетт. п. 113. ИСБН  978-0-86720-474-2 .
  20. ^ Гэри Р. Оллред (май 1971 г.). Интегрированная эмуляция System/370 под OS и DOS (PDF) . 1971 года Весенняя совместная компьютерная конференция . Том. 38. АФИПС Пресс. п. 164. дои : 10.1109/AFIPS.1971.58 . Проверено 12 июня 2022 г.
  21. ^ z/VM создан на основе общей информации о технологии виртуализации IBM, версия 4, выпуск 3.0 (PDF) . 12 апреля 2002 г. GC24-5991-04.
  22. ^ Сэйр, Д. (1969). «Достаточно ли эффективно автоматическое «свертывание» программ, чтобы заменить ручное?». Коммуникации АКМ . 12 (12): 656–660. дои : 10.1145/363626.363629 . S2CID   15655353 .
  23. ^ Кинтеро, Дино; и др. (1 мая 2013 г.). Руководство по производительности IBM Power Systems: внедрение и оптимизация . Корпорация IBM. п. 138. ИСБН  978-0738437668 . Проверено 18 июля 2017 г.
  24. ^ Шарма, доктор медицинских наук (2009). Основание операционных систем . Книги Excel Индия. п. 62. ИСБН  978-81-7446-626-6 . Проверено 18 июля 2017 г.
  25. ^ «Таблицы перевода» (PDF) . z/Architecture - Принципы работы (PDF) (Четырнадцатое изд.). ИБМ . Май 2022 г. стр. 3-46–3-53. SA22-7832-13 . Проверено 18 января 2023 г.
  26. ^ Сун Цзян; Сяодун Чжан (2005). «LRU с токеном: эффективная политика замены страниц и ее реализация в системах Linux». Оценка производительности . 60 (1–4): 5–29. дои : 10.1016/j.peva.2004.10.002 . ISSN   0166-5316 .
  27. ^ Jump up to: а б «Swap Token эффективно минимизирует эффекты перераспределения системы и применяется в ядрах ОС» .
  28. ^ Берроуз (1964). Справочное руководство по системе обработки информации Burroughs B5500 (PDF) . Корпорация Берроуз . 1021326 . Проверено 28 ноября 2013 г.
  29. ^ Системное руководство GE-645 (PDF) . Январь 1968 г., стр. 21–30 . Проверено 25 февраля 2022 г.
  30. ^ Корбато, Ф.Дж. ; Высоцкий В.А. «Введение и обзор системы Мультикс» . Проверено 13 ноября 2007 г.
  31. ^ Глейзер, Эдвард Л.; Кулер, Джон Ф. и Оливер, Джорджия «Проектирование системы компьютера для приложений с разделением времени» .
  32. ^ Смит, Дж. Э.; Улиг, Р. (14 августа 2005 г.). « Виртуальные машины: архитектуры, реализации и приложения» , HOTCHIPS 17, Учебное пособие 1, часть 2» (PDF) .
  33. ^ Бенсуссан, Андре; Клинген, Чарльз Т.; Дейли, Роберт К. (май 1972 г.). «Виртуальная память Multics: концепции и дизайн» . Коммуникации АКМ . 15 (5): 308–318. CiteSeerX   10.1.1.10.6731 . дои : 10.1145/355602.361306 . S2CID   6434322 .
  34. ^ «Мульти-среда выполнения» . Multicians.org . Проверено 9 октября 2016 г.
  35. ^ Органик, Эллиот И. (1972). Система Multics: исследование ее структуры . МТИ Пресс. ISBN  978-0-262-15012-5 .
  36. ^ Самым важным требованием является наличие авторизации программы APF.
  37. ^ например, запрос на использование предпочтительной памяти
  38. ^ «Подмена управления (DONTSWAP, OKSWAP, TRANSWAP)» . Центр знаний IBM . Программирование z/OS MVS: Справочник авторизованных служб ассемблера SET-WTO SA23-1375-00. 1990–2014 гг . Проверено 9 октября 2016 г.

Дальнейшее чтение

[ редактировать ]
  • Хеннесси, Джон Л.; и Паттерсон, Дэвид А.; Компьютерная архитектура, количественный подход ( ISBN   1-55860-724-2 )
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 35d36c91e968c1a0105858eee26d73cc__1705440240
URL1:https://arc.ask3.ru/arc/aa/35/cc/35d36c91e968c1a0105858eee26d73cc.html
Заголовок, (Title) документа по адресу, URL1:
Virtual memory - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)