Разница Обмен и Пейджинг - PullRequest
19 голосов
/ 11 декабря 2010

Каковы различия между Swapping и Paging в отношении Process Memory Management?

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

Ответы [ 6 ]

41 голосов
/ 12 декабря 2010

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

Принимая во внимание, что под пейджингом понимается копирование одной или нескольких страниц адресного пространства.В частности, это намного лучше.Например, в адресном пространстве ОЗУ 1 ГБ содержится ~ 250 000 страниц по 4 КБ.

В ранние времена использовалась подкачка, например, DEC pdp-11 эпоха Unix, 1975-80 гг.Для всего, что вы хотели бы знать, и даже больше, могу ли я порекомендовать The Lions Document, также известный как Lions's Comment по Unix 6th Ed.с исходным кодом, Джон Лайонс, ISBN 1-57398-013-7?

Вы наверняка оцените главу 14 «Обмен программами», которая начинается так: «Unix, как все системы с разделением времени и некоторые мультипрограммные системы», использует «замену программы» (также называемую «развертывание / развертывание») для разделения ограниченного ресурса основной физической памяти между несколькими процессами. *

Пейджинг (в Unix) поступил с BSD (Berkeley Systems Distribution) на VAX-11/780, начиная примерно с 1980 года.

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

Аппаратно, подкачка может выполняться без какого-либо управления памятью, хотя на ранних машинахиспользовала простую схему отображения памяти (например, базовый и связанный, или простую одноуровневую таблицу отображения страниц фиксированного размера (например, разделить 64 КБ адресного пространства данных into 8, 8 КБ страниц в большем физическом адресном пространстве (256 КБ ... 4 МБ).

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

Счастливого взлома!

2 голосов
/ 05 февраля 2017

Хотя оба термина считаются различными, скажем, в основных академических СМИ, факт заключается в том, что некоторые авторы используют их как синонимы.Чтобы процитировать превосходную книгу по компьютерным архитектурам, написанную Дэвидом и Сарой Харрис ( Цифровой дизайн и компьютерная архитектура ), «запись физической страницы обратно на диск и перезагрузка ее с другой виртуальной страницей называется swapping, поэтому диск в системе виртуальной памяти иногда называется swap space".Таким образом, Тайлер на самом деле правильно ответил на вопрос, и его ответ вообще не следует опускать.

1 голос
/ 30 июня 2018

Отличный ответ от Сиддхарт Теотия над Quora, который помог мне понять эти понятия:

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

[...]

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

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

[...]

Более подробно см. Весь его ответ: https://www.quora.com/What-is-difference-between-paging-and-swapping

0 голосов
/ 22 февраля 2019

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

Обмен: - это когда процесс esбыли обменены и перемещены в или из области подкачки / раздела подкачки

0 голосов
/ 02 августа 2016
Пейджинг

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

0 голосов
/ 11 декабря 2010

Отсутствует. Обычно это также называется обменом на платформах Unix и подкачкой в ​​Windows. Та же концепция, хотя.

...