Особенности реализации в UNIX

В UNIXсистемах последовательность запуска процессов, следующая:

процесс 0 - это свопер

процесс 1 - это init

процесс 2 - это страничный демон

Страничный демон просыпается каждые 250мс, и проверяет количество свободных страничных блоков, если их меньше 1/4 памяти, то он начинает выгружать страницы на диск. Он использует модифицированный алгоритм часов, и он является глобальным (т.е. он не различает, какому процессу принадлежит страница).

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

В LUNIXсистеме нет предварительной загрузки страниц и концепции рабочего набора.

Тексты программ и отображаемые файлы подгружаются прямо из файлов расположенных на диске.

Все остальное выгружается в раздел свопинга или файлы свопинга (их может быть от 0 до 8).

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

Демон состоит из трех процедур:

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

o Вторая процедура ищет совместно редко используемые страницы.

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

В LINUX есть еще один демон - bdflush. Он регулярно просыпается и проверяет, не превысило ли определенное значение количество измененных страниц, если да то он начинает их принудительно сохранять на диск.

7.4 Особенности реализации в Windows

В Windows системах сегментация (следующая лекция) не поддерживается. Поэтому каждому процессу выделяется виртуальное адресное пространство в 4 Гбайт (ограничение 32 разрядов). Нижние 2 Гбайт доступны для процесса, а верхние 2 Гбайт отображаются на память ядра. В Advanced server и Datacenter server процесс может использовать до 3 Гбайт.

Страницы имеют фиксированный размер (на процессорах Pentium 4 Кбайт, на Itanium 8 или 16 Кбайт) и подгружаются по требованию.

Конфигурация виртуального адресного пространства Windows

Белым цветом выделены области приватных данных процесса.

Затемнены области, совместно используемые всеми процессами.

Области в 64 Кбайт в начале и в конце, используются для защиты виртуального адресного пространства процесса, при попытке чтения или записи в эти области будет вызвано прерывание.

Системные данные содержат указатели и таймеры, доступные на чтение другим процессам.

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

У страниц есть три состояния:

o свободное - не используется

o фиксированное - данные отображены в странице

o зарезервированное - зарезервировано, но не занято данными (при создании потока)

Файлы свопинга может быть до 16, разделов свопинга нет. В файлах свопинга хранятся только изменяемые страницы.

Опережающая подкачка в Windows не используется.

В Windows используется понятие рабочий набор.

Страничный демон в Windows состоит из :

o менеджера балансового множества - проверяет, достаточно ли свободных страниц.

o менеджера рабочих наборов - который исследует рабочие наборы и освобождает страницы.

Также в Windows есть следующие демоны:

o свопер-демон

o демон записи отображенных страниц - запись в отображенные файлы

o демон записи модифицированных страниц


 








Дата добавления: 2015-12-26; просмотров: 881;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.006 сек.