[Kingdao Notes-Операционная система] Глава 3 Управление памятью

Каталог статей

1. Основной принцип работы программы

Вставьте описание изображения сюда

Два, непрерывное распространение

  Непрерывное выделение - это выделение непрерывного пространства памяти для пользовательской программы.

1. Метод непрерывного распределения

Вставьте описание изображения сюда

2. Алгоритм динамического распределения разделов

Вставьте описание изображения сюда

Три, прерывистое выделение

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

1. Режим управления хранилищем подкачки (таблица страниц в основной памяти)

  Этот метод использует блок / страничный фрейм в качестве единицы хранения, которая относительно мала и имеет фиксированный размер. Процесс будет генерировать фрагментацию основной памяти только тогда, когда он применяется к пространству блока основной памяти для последнего неполного блока, поэтому, хотя внутренняя фрагментация произойдет, эта фрагментация также очень мала по сравнению с процессом, и каждый процесс является средним Только половина блока размер внутренней фрагментации (также называемой внутристраничной фрагментацией).

Вставьте описание изображения сюда

Вставьте описание изображения сюда

  • Преобразование адресов :

  Сначала сравните номер страницы P с длиной таблицы страниц M.
  ① Если он вне допустимого диапазона, то есть P≥M, это означает, что адрес вне допустимого диапазона и прерван.
  ② Если он не выходит за границы, добавьте произведение начального адреса таблицы страниц и номера страницы и длину записи таблицы страниц, чтобы получить позицию записи в таблице страниц, получить физический номер блока страницы из него и загрузите его в физический адресный регистр.
  Отправьте смещение страницы в действующем адресе в поле адреса блока регистра физического адреса, чтобы получить физический адрес памяти, к которой будет осуществляться доступ.

2. Режим управления сегментированным хранилищем (таблица сегментов в основной памяти)

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

Вставьте описание изображения сюда
Вставьте описание изображения сюда

Вставьте описание изображения сюда

  • Преобразование адресов :

  Система сравнивает номер сегмента S в логическом адресе с длиной таблицы сегментов TL.
  ① Если он находится за пределами диапазона, то есть S> TL, это означает, что номер сегмента слишком велик и доступ находится вне диапазона, поэтому генерируется сигнал прерывания вне диапазона.
  ② Если граница не пересекается, вычислить положение соответствующей записи в таблице сегментов сегмента в соответствии с начальным адресом таблицы сегментов и номером сегмента сегмента и считать из него начальный адрес сегмента в памяти. .
  Проверить, превышает ли адрес W в сегменте длину SL сегмента.
  ① Если он превышает, то есть W> SL, также отправляется сигнал прерывания за пределами допустимого диапазона.
  ② Если граница не превышена, добавьте базовый адрес сегмента d к адресу в сегменте, чтобы получить физический адрес памяти, к которой необходимо получить доступ.

2. Сравнение страничного хранилища и сегментированного хранилища.

Вставьте описание изображения сюда
Вставьте описание изображения сюда

4. Метод управления хранением страниц сегментов.

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

Вставьте описание изображения сюда
Вставьте описание изображения сюда

В-четвертых, управление хранилищем виртуальных страниц

1. Определение и характеристики виртуальной памяти

  Основываясь на принципе локальности, при загрузке программы часть программы может быть загружена в память, а остальная часть программы может быть оставлена ​​во внешней памяти для запуска выполнения программы. Во время выполнения программы, когда доступная информация отсутствует в памяти, операционная система переносит требуемую часть в память. С другой стороны, операционная система выгружает временно неиспользуемое содержимое из памяти во внешнюю память. Таким образом, система, кажется, предоставляет пользователям память, которая намного больше, чем фактическая память, называемая виртуальной памятью.
  Виртуальная память имеет следующие три режима реализации: разбиение по страницам запроса, сегментация запроса и разбиение на страницы сегмента запроса.
  Виртуальное хранилище имеет следующие три основные характеристики: повторяемость, взаимозаменяемость и виртуальность.
  Емкость виртуальной памяти зависит от размера адресного пространства, а не от фактического объема памяти.

2. Механизм прерывания сбоя страницы

  В системе подкачки запросов всякий раз, когда страница, к которой нужно получить доступ, не находится в памяти, генерируется прерывание из-за ошибки страницы, запрашивающее у операционной системы загрузку отсутствующей страницы в память. В это время процесс ошибок страниц должен быть заблокирован (разбиение на страницы завершено и пробуждается). Если в памяти есть свободный блок, выделяется блок, страница для передачи загружается в блок, а соответствующая страница запись в таблице страниц изменена. В настоящее время в памяти нет свободного блока, и страница должна быть удалена (если удаленная страница была изменена во время памяти, она должна быть записана обратно во внешнюю память) .
  Прерывание из-за ошибки страницы также является разновидностью прерывания, но оно генерируется и обрабатывается во время выполнения инструкции и относится к внутреннему прерыванию; во время выполнения инструкции прерывание из-за ошибки страницы может генерироваться несколько раз.

3. Быстрый TLB таблицы (в кэше)

  Основанный на принципе локальности, высокоскоростной кэш с возможностью параллельного поиска - быстрая таблица, также известная как регистр ассоциации (TLB), добавляется к механизму преобразования адресов для хранения нескольких записей таблицы страниц, к которым в настоящее время осуществляется доступ.

  • Процесс преобразования адреса выглядит следующим образом :

Вставьте описание изображения сюда

4. Запросить управление подкачкой.

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

(1) Разница между пейджингом запросов и базовым пейджингом

Вставьте описание изображения сюда

(2) Аппаратная поддержка

Вставьте описание изображения сюда

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

(1) Оптимальный алгоритм замены OPT (смотреть вперед)

  Удаляемые страницы, выбранные этим алгоритмом, - это страницы, которые никогда не будут использоваться в будущем, или страницы, к которым больше не будет осуществляться доступ в течение самого длительного периода времени, чтобы обеспечить наименьшую частоту отказов страниц. Однако, поскольку люди в настоящее время не могут предсказать, какая из нескольких страниц в памяти процесса не будет доступна в течение длительного времени в будущем, этот алгоритм не может быть реализован. Этот алгоритм имеет лучшую производительность.

Вставьте описание изображения сюда

(2) FIFO в порядке очереди.

  Времена замены много.В зависимости от реализации очереди могут возникать аномалии Belady.Физические блоки процесса увеличиваются, но количество ошибок страниц не уменьшается, а увеличивается.
  Реализация простая, но производительность оставляет желать лучшего.

(3) LRU в последнее время не использовался долгое время (оглянуться назад)

  Выберите страницу, которая в последнее время не посещалась дольше всех, для удаления.
  Производительность лучше, но реализация сложная (все страницы нужно отсортировать).
  Требуется аппаратная поддержка регистров и стеков.Это алгоритм стекового типа, и исключения Belady маловероятны.

(4) Алгоритм замены часов ЧАСЫ / недавно неиспользованный алгоритм

  По производительности близка к LRU, но реализация не так уж и сложна.
  Любой оптимизированный и эффективный алгоритм замены страниц в операционной системе имеет принцип, то есть, насколько это возможно, сохранить используемые страницы и исключить неиспользуемые страницы, считается, что это может уменьшить количество изменений страниц в целом. Алгоритм CLOCK учитывает только то, был ли он посещен, поэтому, конечно, те, которые были посещены, сохраняются в максимально возможной степени, а те, которые не использовались, удаляются.

  Усовершенствованный алгоритм ЧАСОВ дополнительно подразделяет используемые страницы на используемые, но не измененные, и используемые и измененные. Следовательно, если есть неиспользуемая страница, она, конечно, будет заменена первой. Если все страницы были использованы, конечно, неизмененная страница будет заменена первой.

6. Рабочий набор / Резидентный набор

  Под рабочим набором понимается набор страниц, к которым процесс должен получить доступ в течение определенного интервала времени. Исходя из принципа локальности, последняя посещенная страница может использоваться для определения рабочего набора. Вообще говоря, рабочий набор W может быть определен временем t и размером окна рабочего набора A. Для предотвращения джиттера, как правило, количество физических блоков, выделенных процессу (то есть размер резидентного набора), больше, чем размер рабочего набора.

Вставьте описание изображения сюда

  • Чем меньше резидентный набор, выделенный процессу, тем больше процессов находится в основной памяти, что способствует улучшению использования ресурсов.
  • Но если резидентный набор процесса слишком мал, частота отказов страниц будет выше.
  • Но резидентный набор процесса слишком велик, и это мало влияет на снижение частоты отказов страниц.

7. Стратегия размещения страниц.

  • Фиксированное выделение и локальная замена : количество резидентных наборов в каждом процессе фиксировано, а когда требуется замена, меняется страница за страницей. Однако это фиксированное число определить непросто. Если оно слишком мало, оно будет часто прерываться, а если оно слишком велико, это не будет способствовать использованию ресурсов.
  • Глобальная замена распределения переменных : количество резидентных наборов для каждого процесса фиксировано, но операционная система подготавливает несколько свободных физических блоков и распределяет их по процессам по запросу. Проще всего реализовать , но слепое назначение блоков процессу не способствует параллельности работы нескольких программ.
  • Локальная замена распределения переменных : количество резидентных наборов каждого процесса фиксировано. Когда в процессе происходит сбой страницы, только одна страница может быть выгружена со страниц процесса в памяти, поэтому это не повлияет на работа других процессов. Если процесс выполняется часто с ошибками страниц, система будет выделять несколько физических блоков для процесса до тех пор, пока частота сбоев страниц процесса не приблизится к соответствующему уровню; наоборот, если частота сбоев страниц в процессе особенно низка, вы может соответствующим образом уменьшить выделение Физический блок, предоставленный процессу. Количество страниц сокращается, что способствует поддержанию параллелизма, но реализация немного сложнее.

8. Джиттер

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

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

Приложение: Примечания к вопросам с несколькими вариантами ответов после королевского курса.

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

2. Защита памяти должна быть дополнена взаимодействием (операционная система и организация оборудования), чтобы гарантировать, что пространство процесса не будет незаконным.

3. В схеме управления хранилищем (единое непрерывное управление хранилищем, управление хранилищем с фиксированным распределением разделов) можно использовать оверлейную технологию.

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

5. Операционная система имеет наименьшие затраты на реализацию (разделение) управления хранилищем.

6. Выделение основной памяти осуществляется в единицах страниц и сегментов, но доступ осуществляется в байтах или словах.

7. Можно ли использовать статическое перемещение для хранения страниц?
Нет, статическое перемещение - это единовременная сборка во время работы программы. Хранилище является непрерывным, но метод хранения страниц является дискретным. ,

8. Обратите внимание на различие длины таблицы страниц и длины записи таблицы страниц. Значение длины таблицы страниц относится к общему количеству страниц (то есть общему количеству записей таблицы страниц), а длина записи таблицы страниц относится к тому, сколько места для хранения занимает адрес страницы.

9. В процессе обработки сбоя страницы операционная система может выполнять следующие операции: дисковый ввод-вывод, выделение кадров страниц, изменение таблиц страниц и не будет обрабатывать ошибки, выходящие за границы.

10. Быстрая таблица используется для (преобразования адресов).

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

12. Известная система имеет 32-битный реальный адрес, 48-битный виртуальный адрес, размер страницы 4 КБ и размер записи в таблице страниц 8 Байт. Предполагая, что система использует чистое хранилище страниц, используется таблица страниц (4) уровня со смещением (12) бит на странице.
Размер страницы составляет 4 КБ, поэтому смещение внутри страницы составляет 12 бит. В системе используется 48-битный виртуальный адрес, поэтому номер виртуальной страницы составляет 48-12 = 36 бит. При использовании многоуровневой таблицы страниц запись таблицы страниц самого высокого уровня не может превышать размер страницы; количество записей таблицы страниц, которые могут быть размещены на каждой странице, составляет 4 КБ / 8 Б = 512 = 2, 36/9 = 4, поэтому следует использовать четырехуровневую таблицу страниц. Запись таблицы страниц самого высокого уровня занимает ровно одно пространство страницы.

13. Измеренные данные о состоянии определенной компьютерной системы, использующей стратегию подкачки по требованию, следующие: коэффициент использования ЦП составляет 20%, коэффициент использования диска для пространства подкачки составляет 97,7%, а коэффициент использования другого оборудования составляет 5%. Исходя из этого, считается, что система работает ненормально. В этом случае (добавление полосы памяти для увеличения емкости физического пространства) может улучшить производительность системы.
Коэффициент использования диска, используемого для пространства подкачки, достиг 97,7%, коэффициент использования других устройств составляет 5%, а коэффициент использования ЦП составляет 20%, что указывает на то, что операция подкачки выполняется очень часто, когда задач не так много, поэтому судил, что есть серьезная нехватка физической памяти.

14. Увеличение области обмена: не помогает ускорить преобразование виртуальных и реальных адресов, устранить джиттер и улучшить загрузку ЦП.

рекомендация

отblog.csdn.net/Tracycoder/article/details/109324186