Каково различие между операционной системой “подкачка” и “страницей”? [закрытый]

запросить область OAuth, чтобы включить «Область отображения электронной почты» https://www.googleapis.com/auth/userinfo.email

scope="http://www.google.com/m8/feeds/ https://www.googleapis.com/auth/userinfo.email"

Затем используйте REST API, например Гамак , чтобы получить адрес

            RestClient client = new RestClient
            {
                Authority = "https://www.googleapis.com",
            };

            RestRequest request = new RestRequest
            {
                Path = "userinfo/email?alt=json",
                Credentials = OAuthCredentials.ForProtectedResource(
                     this.requestSettings.ConsumerKey,
                     this.requestSettings.ConsumerSecret,
                     this.requestSettings.Token,
                     this.requestSettings.TokenSecret)
            };

            var response = client.Request(request);

33
задан Shog9 8 November 2009 в 05:01
поделиться

6 ответов

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

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

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

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

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

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

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

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

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

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

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

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

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

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

64
ответ дан 27 November 2019 в 17:41
поделиться

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

2
ответ дан 27 November 2019 в 17:41
поделиться

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

* nix и др. назовите это "своп" Windows вызывает файл подкачки

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

1
ответ дан 27 November 2019 в 17:41
поделиться

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

$ getconf PAGESIZE 4096

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

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

1
ответ дан 27 November 2019 в 17:41
поделиться

См .: Пейджинг и подкачка

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

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

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

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

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

1
ответ дан 27 November 2019 в 17:41
поделиться

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

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

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

22
ответ дан 27 November 2019 в 17:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: