
- •IX. Алгоритмы замещения страниц
- •2. Локальные и глобальные алгоритмы замещения страниц
- •3. Алгоритм замещения неиспользовавшейся в последнее время страницы (nru)
- •4. Алгоритм выталкивания первой пришедшей страницы (fifo)
- •8. Алгоритм выталкивания редко используемой страницы (nfu)
- •8.1. Отличительная особенность в реализации алгоритма nfu.
- •7.2. Недостатки алгоритма nfu.
- •9. Алгоритм замещения страниц Рабочий набор
- •10. Алгоритм замещения страниц wsClock
- •11. Распределение памяти
- •11.1. Зависимость частоты страничных прерываний от размеров памяти, предоставленной процессу.
- •11.2. Размер страниц.
- •11.3. Совместно используемые страницы. Отдельные пространства команд и данных.
- •11.4. Очистка страниц.
- •Очистка страниц в ос unix и unix-подобных системах (linux)
- •Очистка страниц в Windows-системах
- •X. Сегментация памяти
- •1. Сегменты, доступ к сегментам, сегментация
- •2. Основные способы адресации
- •2.2. Сегментная адресация (сегментация).
- •2.3. Страничная организация.
- •2.4. Комбинация сегментирования и страничного способа.
- •Использование единого адресного пространства и использование сегментов
- •3.1. Программа, использующая единое адресное пространство:
- •3.2. Использование сегментов.
- •4. Реализация сегментации
- •4.1. Сегментация с использованием страниц в ос multics.
- •Преобразование адреса в системе multics
Очистка страниц в Windows-системах
В Windows-системах каждому процессу выделяется виртуальное адресное пространство в 4 Гбайт (ограничение – 32 разрядов): нижние 2 Гбайт доступны для процесса, а верхние 2 Гбайт отображаются на память ядра, что позволяет при переключении потока в режим ядра не менять карту памяти. Области в 64 Кбайт, в начале и в конце выделенного адресного пространства, используются для защиты виртуального адресного пространства процесса; при попытке чтения или записи в эти области будет вызвано прерывание. Страницы имеют фиксированный размер и подгружаются по требованию. В Windows существуют три состояния страниц:
свободное состояние – когда страница не используется;
фиксированное состояние – когда данные отображены в странице;
зарезервированное состояние – когда страница зарезервирована, но не занята данными (при создании потока).
Изменяемые страницы хранятся в файлах свопинга, которых может быть до 16; опережающая подкачка страниц в Windows не используется.
Страничный демон в Windows состоит из менеджера балансового множества, который проверяет, достаточно ли свободных страниц, и менеджера рабочих наборов, который исследует рабочие наборы и освобождает страницы. Также в Windows есть другие демоны: свопер-демон, демон записи отображенных страниц – запись в отображенные файлы, демон записи модифицированных страниц.
X. Сегментация памяти
1. Сегменты, доступ к сегментам, сегментация
Средства организации памяти работают с единицами памяти, называемыми сегментами, каждый из которых представляет собой независимое, защищенное адресное пространство и является логическим объектом.
При разбиении виртуальной памяти на сегменты каждому модулю программных кодов и данных может быть присвоен свой собственный логический сегмент памяти, что способствует достаточно простой реализации механизмов, обеспечивающих защиту отдельных модулей, разделение информации между сегментами, совместную или раздельную их обработку.
Доступ к сегментам управляется данными, в которых описаны их размер, уровень привилегированности, необходимый для доступа к ним, типы ссылок к памяти, применимые к этому сегменту (выборка команды, помещение или извлечение из стека, операции чтения и записи), а также его присутствие в памяти.
Сегментация обеспечивает каждую программу несколькими независимыми, защищенными адресными пространствами, т. е. позволяет иметь либо полностью неструктурированную, простую память, подобную модели памяти 8-битового процессора, либо высоко структурированную память, с использованием трансляции адресов и защиты.
Таким образом, сегментация служит для управления доступом к памяти, что обеспечивает удобство нахождения ошибок при разработке программы и повышение надежности конечного программного продукта и используется также для упрощения компоновки объектных модулей кода.
Механизм сегментации делает ненужным создание кодов, независимых от позиции в памяти, поскольку все ссылки к памяти могут выполняться относительно базового адреса кодового сегмента и сегмента данных модуля.
Аппаратное обеспечение сегментации транслирует сегментированный (логический) адрес в адрес непрерывного, несегментированного адресного пространства, который называется линейным адресом.
Если разрешена подкачка страниц, то аппаратное обеспечение подкачки транслирует линейный адрес в физический адрес.
Если подкачка страниц не разрешена, то в качестве физического адреса используется линейный адрес.
Физический адрес подается на выходящую из процессора адресную шину.