Подтвердить что ты не робот

Какая разница между операционной системой "своп" и "страницей"?

В чем разница между этими двумя терминами в операционной системе: своп и страница?

4b9b3361

Ответ 1

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

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

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

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

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

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

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

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

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

В любом случае, может быть, больше, чем вы ищете, но, надеюсь, интересно.

Ответ 2

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

При замене части памяти, которые не используются, записываются на диск; это позволяет запускать несколько программ, общее потребление памяти которых превышает объем физической памяти. Когда программа делает запрос на часть памяти, которая была записана на диск, эта часть должна быть загружена в память. Чтобы освободить место, другая часть должна быть записана на диск (фактически эти две части меняются местами - отсюда и название). Это "расширение" физической памяти обычно известно как "виртуальная память".

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

Ответ 3

Swap in linux - это раздел, который используется для виртуальной памяти. Он содержит страницы, которые являются блоками памяти, которые могут быть обменены в и из реальной памяти.

Ответ 4

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

* nix, et al. назовите его "swap" Вызовы Windows - это файл подкачки

В Linux и т.д. пространство подкачки обычно представляет собой отдельный раздел. В Windows обычно находится файл, хранящийся в файловой системе ОС.

Ответ 5

Страница - это блок памяти, управляемый ОС. В Linux вы можете узнать распределение ядра для своей версии ОС, введя

$getconf PAGESIZE  4096

4KB - довольно распространенное распределение.

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

Ответ 6

Смотрите: Пейджинг и обмен

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

Подкачка была первой используемой технологией в Unix System V в качестве физической памяти заполняет процессы, есть проблема. Что происходит, когда система полностью выходит из ОЗУ? Он "размалывает" на остановке "!

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

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

Можно выделить один процесс 100 Мб памяти, хотя только 64 МБ ОЗУ в системе. процессу не потребуется доступ к всего 100 мб, в то же время это где находится виртуальная память. [...]