Страничный демон - Большая Энциклопедия Нефти и Газа, статья, страница 2
Одежда делает человека. Голые люди имеют малое или вообще нулевое влияние на общество. (Марк Твен). Законы Мерфи (еще...)

Страничный демон

Cтраница 2


16 Карта памяти в 4BSD. [16]

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

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

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

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

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

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

Алгоритм замещения страниц работает следующим образом. Система Linux пытается поддерживать некоторые страницы свободными, чтобы их можно было предоставить при необходимости. Конечно, этот пул страниц должен постоянно пополняться, поэтому реальный алгоритм страничной подкачки заключается в том, как это происходит. Во время загрузки процесс init запускает страничный демон kswapd, который работает раз в секунду. Он проверяет, есть ли достаточное количество свободных страниц. Если да, он отправляется спать еще секунду, хотя он может быть разбужен и раньше, если внезапно понадобятся дополнительные страницы. Страничный демон состоит из цикла, который выполняется до шести раз с возрастающей срочностью. Вероятно, автор программы думал, что четырех будет недостаточно, а восемь будет слишком много. В отдельных местах операционная система Linux реализована именно так.  [23]

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

Алгоритм замещения страниц работает следующим образом. Система Linux пытается поддерживать некоторые страницы свободными, чтобы их можно было предоставить при необходимости. Конечно, этот пул страниц должен постоянно пополняться, поэтому реальный алгоритм страничной подкачки заключается в том, как это происходит. Во время загрузки процесс init запускает страничный демон kswapd, который работает раз в секунду. Он проверяет, есть ли достаточное количество свободных страниц. Если да, он отправляется спать еще секунду, хотя он может быть разбужен и раньше, если внезапно понадобятся дополнительные страницы. Страничный демон состоит из цикла, который выполняется до шести раз с возрастающей срочностью. Вероятно, автор программы думал, что четырех будет недостаточно, а восемь будет слишком много. В отдельных местах операционная система Linux реализована именно так.  [25]

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

Передняя ( длинная) стрелка контролируется страничным демоном. Когда она указывает на грязную страницу, копия страницы на диске обновляется, а стрелка сдвигается на позицию. Когда она направлена на чистую страницу, она просто сдвигается вперед. Задняя ( короткая) стрелка используется для замещения страниц, как в стандартном алгоритме часы. Только теперь возрастает вероятность попадания короткой стрелки на чистую страницу благодаря работе страничного демона.  [27]

Алгоритм замещения страниц работает следующим образом. Система Linux пытается поддерживать некоторые страницы свободными, чтобы их можно было предоставить при необходимости. Конечно, этот пул страниц должен постоянно пополняться, поэтому реальный алгоритм страничной подкачки заключается в том, как это происходит. Во время загрузки процесс init запускает страничный демон kswapd, который работает раз в секунду. Он проверяет, есть ли достаточное количество свободных страниц. Если да, он отправляется спать еще секунду, хотя он может быть разбужен и раньше, если внезапно понадобятся дополнительные страницы. Страничный демон состоит из цикла, который выполняется до шести раз с возрастающей срочностью. Вероятно, автор программы думал, что четырех будет недостаточно, а восемь будет слишком много. В отдельных местах операционная система Linux реализована именно так.  [28]



Страницы:      1    2