Cтраница 1
Страничный демон использует модифицированную версию алгоритма часов. Это глобальный алгоритм, то есть при удалении страницы он не учитывает, чья зто страница. Таким образом, количество страниц, выделяемых каждому процессу, меняется со временем. [1]
Страничный демон использует модифицированную версию алгоритма часов. Это глобальный алгоритм, то есть при удалении страницы он не учитывает, чья это страница. Таким образом, количество страниц, выделяемых каждому процессу, меняется со временем. [2]
![]() |
Карта памяти в 4BSD. [3] |
Алгоритм замещения страниц выполняется страничным демоном. [4]
Если установить значение min существенно большим, чем min, страничный демон, завершив освобождение страниц, создает достаточный запас, чтобы иметь возможность отдохнуть некоторое время. [5]
Если установить значение min существенно большим, чем тгп, страничный демон, завершив освобождение страниц, создает достаточный запас, чтобы иметь возможность отдохнуть некоторое время. [6]
Страничная подкачка реализуется частично ядром и частично новым процессом, называемым страничным демоном. Как и все демоны, страничный демон периодически запускается и смотрит, есть ли для него работа. Если он обнаруживает, что количество страниц в списке свободных страниц слишком мало, страничный демон инициирует действия по освобождению дополнительных страниц. [7]
Если же количество свободных страничных блоков больше или равно lotsfree, тогда страничный демон, ничего не предпринимая, отправляется спать дальше. Если у компьютера много памяти и мало активных процессов, страничный демон спит практически все время. [8]
Изначально в Berkley UNIX использовался основной алгоритм часов, но затем было обнаружено, что при больших объемах оперативной памяти проходы занимают слишком много времени. В этом алгоритме страничный демон поддерживает два указателя на карту памяти. При работе он сначала очищает бит использования передней стрелкой, а затем проверяет этот бит задней стрелкой. После чего перемещает обе стрелки. Если две стрелки находятся близко друг от друга, то только у очень активно используемых страниц появляется шанс, что к ним будет обращение между проходами двух стрелок. Если же стрелки разнесены на 359 градусов ( то есть задняя стрелка находится слегка впереди передней), мы снова получаем исходный алгоритм часов. [9]
Страничная подкачка реализуется частично ядром и частично новым процессом, называемым страничным демоном. Как и все демоны, страничный демон периодически запускается и смотрит, есть ли для него работа. Если он обнаруживает, что количество страниц в списке свободных страниц слишком мало, страничный демон инициирует действия по освобождению дополнительных страниц. [10]
Передняя ( длинная) стрелка контролируется страничным демоном. Когда она указывает на грязную страницу, копия страницы на диске обновляется, а стрелка сдвигается на позицию. Когда она направлена на чистую страницу, она просто сдвигается вперед. Задняя ( короткая) стрелка используется для замещения страниц, как в стандартном алгоритме часы. Только теперь возрастает вероятность попадания короткой стрелки на чистую страницу благодаря работе страничного демона. [11]
Во-вторых, вместо единственной переменной lots / геев System V используются две переменные, min и max. Когда количество свободных страниц опускается ниже mm, страничный демон начинает освобождать страницы. [12]
Во-вторых, вместо единственной переменной lotsfree в System V используются две переменные, min и max. Когда количество свободных страниц опускается ниже тгп, страничный демон начинает освобождать страницы. [13]
Если же количество свободных страничных блоков больше или равно lotsfree, тогда страничный демон, ничего не предпринимая, отправляется спать дальше. Если у компьютера много памяти и мало активных процессов, страничный демон спит практически все время. [14]
Модель памяти состоит из трех сегментов для каждого процесса: для текста ( исполняемого кода), данных и стека. Изначально для управления памятью использовался свопинг, но в большинстве современных версий системы UNIX для этого применяется страничная подкачка. Состояние каждой страницы отслеживается в карте памяти, а страничный демон поддерживает достаточное количество свободных страниц при помощи алгоритма часов. [15]