Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Билеты 2026.docx
Скачиваний:
0
Добавлен:
31.01.2026
Размер:
140.26 Кб
Скачать

47. Страничное распределение памяти.

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

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

Аппаратная поддержка, включая TLB (translation lookaside buffer), позволяет ускорять преобразование виртуальных адресов в физические, снижая накладные расходы при частых обращениях к памяти.

48. Таблицы страниц для больших объёмов памяти.

Таблицы страниц для больших объёмов памяти – это структуры данных, которые ОС использует для сопоставления виртуальных адресов страниц с физическими фреймами в памяти, когда адресное пространство процесса очень велико.

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

Кроме того, применяются инвертированные таблицы страниц (IPT), где каждая запись соответствует физическому фрейму, а не виртуальной странице, и содержит информацию о процессе и виртуальной странице, которая его использует. Инвертированные таблицы уменьшают общий объём памяти для хранения таблиц и облегчают управление адресным пространством при больших объёмах виртуальной памяти.

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

49. Алгоритмы замещения страниц.

Алгоритмы замещения страниц – это методы, с помощью которых ОС выбирает страницы для выгрузки из оперативной памяти при её недостатке, чтобы освободить место для новых страниц и минимизировать количество page fault.

Оптимальный алгоритм (OPT, MIN) – теоретически выгружается страница, которая понадобится позже всех. Служит эталоном эффективности, но в реальных условиях не реализуем.

NRU (Not Recently Used) – удаляет страницы, к которым в последнее время не было обращений. Использует биты обращения (R) и модификации (M) для классификации страниц и выбора наименее активных.

FIFO (First In, First Out) – страница, находящаяся в памяти дольше всех, выгружается первой. Простой, но не учитывает актуальную активность страниц.

Алгоритмы улучшения FIFO:

  • Второй шанс – проверяется бит R: если страница недавно использовалась, она получает «второй шанс» и перемещается в конец списка.

  • Часы (Clock) – логическая модификация «второго шанса», где страницы проверяются циклически по указателю стрелки.

LRU (Least Recently Used) – выгружается страница, к которой дольше всего не было обращений. Реализуется аппаратно (счётчики, матрица бит) или программно (списки, NFU с алгоритмом старения).

NFU (Not Frequently Used) и алгоритм старения – это методы, приближённо имитирующие алгоритм LRU. В NFU каждая страница имеет счётчик, который увеличивается при обращении к странице, показывая её частоту использования. Алгоритм старения улучшает NFU: периодически счётчик сдвигается вправо, а новый бит обращения добавляется в старший разряд. Так старые обращения постепенно «забываются», а счётчик отражает недавнюю активность страницы. Это позволяет выбирать для замещения страницы, которые реже всего использовались недавно, не требуя полного ведения истории обращений.

Рабочий набор и WSClock – это методы, ориентированные на страницы, активно используемые процессом за последнее время. Рабочий набор определяет набор страниц, к которым было обращение за последние t секунд или k операций; страницы вне этого набора считаются кандидатами на замену. WSClock реализует идею рабочего набора с помощью «часовой стрелки»: страницы проверяются по кругу, учитываются биты обращения и модификации, и только страницы, которые не использовались недавно и (если изменены) уже сохранены на диске, выгружаются. Такой подход снижает число ненужных замен страниц и делает использование памяти более эффективным.

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