Управление памятью в операционных системах

Содержание

Слайд 2

Операционные системы

3.1. Организация памяти современного компьютера
3.1.1. Логическая организация памяти: Линейное (одномерное) адресное

Операционные системы 3.1. Организация памяти современного компьютера 3.1.1. Логическая организация памяти: Линейное
пространство, отражающее особенности аппаратного обеспечения, но не соответствующее современной технологии создания программного обеспечения.
Большинство программ организовано в виде модулей. Для эффективной работы с пользовательскими программами необходимо чтобы:
Модули могли быть созданы и скомпилированы независимо друг от друга, при этом все ссылки из одного модуля в другой разрешаются системой во время работы программы.
Разные модули могли получать разные степени защиты (только чтение, только исполнение и т. п.) за счет весьма умеренных накладных расходов.
Возможно применение механизма, обеспечивающего совместное использование модулей разными процессами (для случая сотрудничества разных процессов в работе над одной задачей).

Слайд 3

Операционные системы

3.1.2. Физическая организация памяти

Центральный процессор

Внутренние регистры (0,1-0,3 нс.)

Внутренний кэш, 64 Кбайт,

Операционные системы 3.1.2. Физическая организация памяти Центральный процессор Внутренние регистры (0,1-0,3 нс.)
0,3-0,5 нс.

Кэш второго уровня

1Мбайт SRAM, 1-3 нс.

Основная память

512 Мбайт DDRAM, 3-6 нс..

Кэш диска

8 Мбайт

Жесткий диск

100 Гбайт,
10 мс.

МЛ

Сотни с.

Слайд 4

Операционные системы

3.1.2. Физическая организация памяти

Предположим, процессор имеет доступ к памяти двух уровней.

Операционные системы 3.1.2. Физическая организация памяти Предположим, процессор имеет доступ к памяти
На первом уровне содержится E1 слов, и он характеризуется временем доступа T1 = 1 нс. К этому уровню процессор может обращаться непосредственно. Однако если требуется получить слово, находящееся на втором уровне, то его сначала нужно передать на первый уровень. При этом передается не только требуемое слово, а блок данных, содержащий это слово. Поскольку адреса, к которым обращается процессор, имеют тенденцию собираться в группы (циклы, подпрограммы), процессор обращается к небольшому повторяющему набору команд. Таким образом, работа процессора с вновь полученным блоком памяти будет проходить достаточно длительное время.

Слайд 5

Операционные системы

20%

50%

80%

Z =1 – Pn, где n – число процессов

20 %

50 %

80

Операционные системы 20% 50% 80% Z =1 – Pn, где n –
%

Слайд 6

Операционные системы

3.1.3. Виртуальная память

В условиях, когда для обеспечения приемлемого уровня мультипрограммирования имеющейся

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

Слайд 7

Операционные системы

3.1.3. Виртуальная память

Такая подмена (виртуализация) оперативной памяти дисковой памятью позволяет повысить

Операционные системы 3.1.3. Виртуальная память Такая подмена (виртуализация) оперативной памяти дисковой памятью
уровень мультипрограммирования, поскольку объем оперативной памяти теперь не столь жестко ограничивает число одновременно выполняемых процессов.
При этом суммарный объем оперативной памяти, занимаемой образами процессов, может существенно превосходить имеющийся объем оперативной памяти.
В данном случае в распоряжение прикладного программиста предоставляется виртуальная оперативная память, размер которой намного превосходит реальную память системы и ограничивается только возможностями адресации используемого процесса (в ПК на базе Pentium 232 = 4 Гбайт).

Слайд 8

Операционные системы

3.1.3. Виртуальная память

Вообще виртуальным (кажущимся) называется ресурс, обладающий свойствами (в

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

Слайд 9

Операционные системы

Виртуализация оперативной памяти осуществляется совокупностью аппаратных и программных (ОС) средств вычислительной

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

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

3.1.3. Виртуальная память

Методы виртуализации памяти:
свопинг (swapping) – образы процессов выгружаются на диск и возвращаются в ОЗУ целиком,
виртуальная память (virtual memory) – между ОЗУ и диском перемещаются части образов процессов.

Слайд 10

Операционные системы

3.1.3. Виртуальная память

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

Операционные системы 3.1.3. Виртуальная память Недостатки виртуальной памяти: необходимость преобразования виртуальных адресов
сложность аппаратной и программной (ОС) поддержки.

Слайд 11

Операционные системы

3.2. Функции операционной системы по управлению памятью

В однопрограммных операционных системах

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

Слайд 12

Операционные системы

3.2. Функции операционной системы по управлению памятью

Эта задача распределения выполняется операционной

Операционные системы 3.2. Функции операционной системы по управлению памятью Эта задача распределения
системой динамически специальной подсистемой управления памятью (memory management).

Слайд 13

Операционные системы

3.2. Функции операционной системы по управлению памятью

ОС в ОЗУ

ОС в ОЗУ

ОС

Операционные системы 3.2. Функции операционной системы по управлению памятью ОС в ОЗУ
в ПЗУ

BIOS

Скрытая память

1 Мбайт

Программа пользователя

Программа пользователя

60 Кбайт

640 Кбайт

Программа пользователя

Распределение памяти в однопрограммных ОС

Слайд 14

Операционные системы

3.2. Функции операционной системы по управлению памятью

В ранних ОС управление памятью

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

Распределение памяти в однопрограммных ОС

Слайд 15

Операционные системы

3.2. Функции операционной системы по управлению памятью

Третья модель была характерна для

Операционные системы 3.2. Функции операционной системы по управлению памятью Третья модель была
ранних персональных компьютеров с MS DOS.

Распределение памяти в однопрограммных ОС

Слайд 16

Операционные системы

Функции операционной системы по управлению памятью в мультипрограммных системах

отслеживание (учет) свободной

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

Слайд 17

Операционные системы

Типы адресов

Символьные имена

Виртуальные адреса

Физические адреса

Идентификаторы переменных в программе на алгоритмическом языке

Транслятор

Условные

Операционные системы Типы адресов Символьные имена Виртуальные адреса Физические адреса Идентификаторы переменных
адреса, вырабатываемые транслятором

Номера ячеек физической памяти

1. Перемещающий загрузчик (статическое преобразование) 2. Динамическое преобразование (аппаратные средства)

Слайд 18

Операционные системы

Типы адресов

Для идентификации переменных и команд на разных этапах жизненного цикла

Операционные системы Типы адресов Для идентификации переменных и команд на разных этапах
программы используются символьные имена, виртуальные (математические, условные, логические - все это синонимы) и физические адреса.
Символьные имена присваивает пользователь при написании программ на алгоритмическом языке или ассемблере.

Слайд 19

Операционные системы

Типы адресов

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

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

Слайд 20

Операционные системы

Типы адресов

Диапазон адресов виртуального пространства у всех процессов один и тот

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

Слайд 21

Операционные системы

Типы адресов

Преобразование осуществляет перемещающий загрузчик на основании имеющихся у него данных

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

Слайд 22

Операционные системы

3.3. Алгоритмы распределение памяти 3.3.1. Классификация методов распределения памяти

Методы распределения памяти

Без использования

Операционные системы 3.3. Алгоритмы распределение памяти 3.3.1. Классификация методов распределения памяти Методы
внешней памяти

С использованием внешней памяти

Фиксированными разделами

Динамическими разделами

Перемещаемыми разделами

Страничное распределение

Сегментное распределение

Сегментно-страничное распределение

Слайд 23

Операционные системы

3.3.2. Распределение памяти фиксированными разделами (MFT в OS/360)

Операционная система 8 М

Программа

Операционные системы 3.3.2. Распределение памяти фиксированными разделами (MFT в OS/360) Операционная система
№1, 4М

Программа №2, 3М

Программа №3, 7М





Разделы одинакового размера

Операционная система 8 М

Программа №1, 4М

Программа №2, 3М

Программа №3, 7М

Разделы разного размера

Неиспользованная память

Слайд 24

Операционные системы

3.3.2. Распределение памяти фиксированными разделами

1. Разделы одинакового размера.
Процесс загружается

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

Слайд 25

Операционные системы

1 М

2 М

4 М

8 М

12 М

Новые процессы

1 М

2 М

4 М

8 М

12

Операционные системы 1 М 2 М 4 М 8 М 12 М
М

Новые процессы

Очереди для каждого раздела

Общая очередь для всех разделов

Разделы разного размера

Слайд 26

Операционные системы

Распределение памяти фиксированными разделами

2. Разделы разного размера. Очередь к каждому

Операционные системы Распределение памяти фиксированными разделами 2. Разделы разного размера. Очередь к
разделу.
Процесс размещается в наименьшем свободном разделе, способном вместить этот процесс.
Достоинство: возможность распределения процессов между разделами с минимизацией внутренней фрагментации.
Недостаток: возможно неэффективное использование памяти за счет «простоя» больших разделов при наличии только небольших процессов.

3. Разделы разного размера. Общая очередь к разделам.
Когда требуется загрузить процесс в ОП, выбирается наименьший доступный раздел, способный вместить данный процесс.
Достоинство: улучшается использование памяти.

В целом для распределения памяти фиксированными разделами
Достоинства: простота, минимальные требования к операционной системе. Недостатки: 1) количество разделов, определенных во время генерации ОС (режим MFT OS/360), ограничивает число активных процессов; 2) неэффективное использование памяти.

Слайд 27

Операционные системы

3.3.3. Распределение памяти динамическими разделами

ОС

ОС

ОС

ОС

P1

P2

P3

P4

P5

P1

P2

P3

P5

P1

P3

P5

P6

P6

t0

t1

t2

t3

Операционные системы 3.3.3. Распределение памяти динамическими разделами ОС ОС ОС ОС P1

Слайд 28

Операционные системы

Распределение памяти динамическими разделами

Функции ОС для реализации метода MVT OS/360 (ЕС

Операционные системы Распределение памяти динамическими разделами Функции ОС для реализации метода MVT
ЭВМ):
ведение таблиц свободных и занятых областей ОП с указанием начального адреса и размера (поддерживается переменное число разделов переменной длины);
при создании нового процесса просмотр таблиц и выбор раздела, достаточного для размещения процесса (наименьший и достаточный из свободных);
загрузка процесса в выделенный раздел и корректировка таблиц свободных и занятых областей основной памяти;
после завершения процесса корректировка таблиц свободных и занятых областей.

Слайд 29

Операционные системы

Распределение памяти динамическими разделами

Достоинства: большая гибкость по сравнению с фиксированными разделами.
Недостаток:

Операционные системы Распределение памяти динамическими разделами Достоинства: большая гибкость по сравнению с
внешняя фрагментация – после многократной загрузки/выгрузки процессов образуется множество мелких свободных участков памяти, в которых нельзя разместить новый процесс

Слайд 30

Операционные системы

3.3.4. Распределение памяти перемещаемыми разделами

ОС

ОС

a

b

c

d

e

P1

P1

P2

P2

P3

P4

P3

P4

P5

P5

P6

P6

P5

P7

P7

Процедура сжатия

a+b+c+d+e

Операционные системы 3.3.4. Распределение памяти перемещаемыми разделами ОС ОС a b c

Слайд 31

Операционные системы

Распределение памяти перемещаемыми разделами

Перемещение всех занятых участков в сторону старших или

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

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

Слайд 32

Операционные системы

Распределение памяти перемещаемыми разделами

Уплотнение может выполняться либо при каждом завершении процесса,

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

Слайд 33

Операционные системы

Распределение памяти перемещаемыми разделами

При использовании фиксированной схемы распределения процесс всегда

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

Слайд 34

Операционные системы

Распределение памяти перемещаемыми разделами

В этих случаях расположение команд и данных, к

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

Слайд 35

Операционные системы

Базовый регистр ОС

ОС

Управляющий блок процесса

Начальный адрес процесса

Сумматор

Относительный адрес

Компаратор

ОС

Граничный регистр

Программа

Данные

Прерывание ОС

Стек

Абсолютный адрес

Аппаратная

Операционные системы Базовый регистр ОС ОС Управляющий блок процесса Начальный адрес процесса
поддержка перемещения

Слайд 36

Операционные системы

Распределение памяти перемещаемыми разделами

Когда процесс переходит в состояние выполнения, в специальный

Операционные системы Распределение памяти перемещаемыми разделами Когда процесс переходит в состояние выполнения,
регистр процесса, называемый базовым, загружается начальный адрес процесса в основной памяти.
Кроме того, используется «граничный» (bounds) регистр, в котором содержится адрес последней ячейки программы.
Эти значения заносятся в регистры при загрузке программы в основную память.
При выполнении процесса относительные адреса в командах обрабатываются процессором в два этапа.
Сначала к относительному адресу прибавляется значение базового регистра для получения абсолютного адреса.

Слайд 37

Операционные системы

Распределение памяти перемещаемыми разделами

Затем полученный абсолютный адрес сравнивается со значением в

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

Слайд 38

Операционные системы

3.4. Виртуальная память

3.4.1. Методы структуризации виртуального адресного пространства

1962 г. – Kilburn

Операционные системы 3.4. Виртуальная память 3.4.1. Методы структуризации виртуального адресного пространства 1962
T. и др. “One –Level Storage System”

Методы реализации виртуальной памяти:
Страничная виртуальная память – организует перемещение данных между ОП и диском страницами – частями виртуального адресного пространства фиксированного и сравнительно небольшого размера.
Сегментная виртуальная память предусматривает перемещение данных сегментами – частями виртуального адресного пространства произвольного размера, полученными с учетом смыслового значения данных.
Сегментно-страничная виртуальная память использует двухуровневое деление: виртуальное адресное пространство делится на сегменты, а затем сегменты делятся на страницы. Единицей перемещения данных является страница.
Для временного хранения сегментов и страниц на диске отводится специальная область – страничный файл или файл подкачки (paging file).

Слайд 39

Операционные системы

3.4. Виртуальная память

3.4.1. Методы структуризации виртуального адресного пространства

Когда используется виртуальная память,

Операционные системы 3.4. Виртуальная память 3.4.1. Методы структуризации виртуального адресного пространства Когда
виртуальные адреса не передаются напрямую шиной памяти.
Вместо этого они передаются диспетчеру памяти (MMU - Memory Management Unit), который отображает виртуальные адреса на физические адреса памяти. Диспетчер памяти может быть частью микросхемы процессора, как обычно и бывает чаще всего.
Но логически он может быть и отдельной микросхемой, как было в недавнем прошлом.

Слайд 40

Операционные системы

3.4. Виртуальная память

3.4.1. Методы структуризации виртуального адресного пространства

Размер страничного файла в

Операционные системы 3.4. Виртуальная память 3.4.1. Методы структуризации виртуального адресного пространства Размер
современных ОС является настраиваемым параметром, который выбирается администратором системы для достижения компромисса между уровнем программирования и быстродействием системы.

Слайд 41

Операционные системы

3.4.2. Страничная организация виртуальной памяти

При страничной организации виртуальное адресное пространство каждого

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

Слайд 42

Операционные системы

3.4.2. Страничная организация виртуальной памяти

Размер страницы выбирается равным степени двойки:

Операционные системы 3.4.2. Страничная организация виртуальной памяти Размер страницы выбирается равным степени
1024, 2408, 4096 байт и т. д. Это позволяет упростить механизм преобразования адресов.
При создании процесса ОС загружает в операционную память несколько его виртуальных страниц (начальные страницы кодового сегмента и сегмента данных).
Копия всего виртуального адресного пространства процесса находится на диске. Смежные виртуальные страницы не обязательно находятся в смежных физических страницах.

Слайд 43

Операционные системы

3.4.2. Страничная организация виртуальной памяти

Для каждого процесса ОС создает таблицу

Операционные системы 3.4.2. Страничная организация виртуальной памяти Для каждого процесса ОС создает
страниц - информационную структуру, содержащую записи обо всех виртуальных страницах процесса.
Запись таблицы (дескриптор страницы) включает следующую информацию:
• номер физической страницы (N ф.с.), в которую загружена данная виртуальная страница;
• признак присутствия Р, устанавливаемый в единицу, если данная страница находится в оперативной памяти;

Слайд 44

Операционные системы

3.4.2. Страничная организация виртуальной памяти

• признак модификации страницы D, который устанавливается

Операционные системы 3.4.2. Страничная организация виртуальной памяти • признак модификации страницы D,
в единицу всякий раз, когда производится запись по адресу, относящемуся к данной страницы;
• признак обращения А к странице, называемый также битом доступа, который устанавливается в единицу при каждом обращении по адресу, относящемуся к данной странице;
• другие управляющие биты, служащие, например для целей защиты или совместного использования памяти на уровне страниц.

Слайд 45

Операционные системы

3.4.2. Страничная организация виртуальной памяти

Виртуальное адресное пространство процесса 1

Виртуальное адресное пространство

Операционные системы 3.4.2. Страничная организация виртуальной памяти Виртуальное адресное пространство процесса 1
процесса 2

Виртуальные страницы

Виртуальные страницы

0

1

2

.

.

k

n

0

1

2

Таблица страниц процесса 1

Nф.с.

P

A

D

W

P

A

Таблица страниц процесса 2

Nф.с.

D

W

Магнитный диск

Физическая память

0123456789 . . . .

01234

5

ВП

ВП

9

2

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

1

1

1

0

Стр. 4 процесса 1

Стр. 3 процесса 1

01234

3

Стр. 1 процесса 2

Стр. 0 процесса 1

1

0

0

1

Слайд 46

Операционные системы

3.4.2. Страничная организация виртуальной памяти

Перечисленные признаки в большинстве моделей процессов устанавливаются

Операционные системы 3.4.2. Страничная организация виртуальной памяти Перечисленные признаки в большинстве моделей
аппаратно схемами процессора при выполнении операций с памятью. Информация из таблицы страниц используется для решения вопроса о необходимости перемещения той или иной страницы между памятью и диском, а также для преобразования виртуального адреса в физический.
Сами таблицы страниц, так же как и описываемые ими страницы размещаются в оперативной памяти.
Поскольку процесс может использовать большой объем виртуальной памяти (например, в Windows 2000 он равен 232 = 4 Гбайт), при использовании страницы объемом 4 Кбайт (212) потребуется 220 записей в таблице страниц для каждого процесса.

Слайд 47

Операционные системы

3.4.2. Страничная организация виртуальной памяти

Выделять такое количество оперативной памяти под

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

Слайд 48

Операционные системы

3.4.2. Страничная организация виртуальной памяти

При активизации очередного процесса ОС загружает адрес

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

Слайд 49

Операционные системы

3.4.2. Страничная организация виртуальной памяти

Выполняющийся процесс переводится в состояние ожидания, и

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

Слайд 50

Операционные системы

3.4.2. Страничная организация виртуальной памяти

Если удаляемая страница за время последнего требования

Операционные системы 3.4.2. Страничная организация виртуальной памяти Если удаляемая страница за время
в оперативной памяти была модифицирована, то ее новая версия должна быть переписана на диск.
Если нет, то принимается во внимание, что на диске уже имеется предыдущая копия этой виртуальной страницы, и никакой записи на диск не производится.
Физическая страница объявляется свободной.
Из соображений безопасности в некоторых системах освобождаемая страница обнуляется, чтобы невозможно было использовать содержимое выгруженной страницы.
Для хранения информации о положении вытесненной страницы в страничном файле ОС может использовать специальные поля таблицы страниц.

Слайд 51

Операционные системы

3.4.2. Страничная организация виртуальной памяти

Виртуальный адрес при страничном распределении может быть

Операционные системы 3.4.2. Страничная организация виртуальной памяти Виртуальный адрес при страничном распределении
представлен в виде пары (Р, Sν), где Р - номер виртуальной страницы процесса (нумерация страниц начинается с 0), а Sν - смещение в пределах виртуальной страницы.
Физический адрес также может быть представлен в виде пары (N, Sf), где N - номер физической страницы, a.Sf- смещение в пределах физической страницы.
Задача подсистемы виртуальной памяти состоит в отображении пары значений (Р, Sν) в пару (N, Sf).
Объем страницы как виртуальной, так и физической выбирается равным степени двойки – 2k (k = 8 и более).

Слайд 52

Операционные системы

3.4.2. Страничная организация виртуальной памяти

Отсюда следует, что смещение Sν и Sf

Операционные системы 3.4.2. Страничная организация виртуальной памяти Отсюда следует, что смещение Sν
может быть получено отделением k младших разделов в двоичной записи виртуального и соответственно физического адреса страниц.
При этом оставшиеся старшие разделы адреса представляют собой двоичную запись номеров виртуальной и соответственно физической страницы.
Дополнив эти номера к нулям, можно получить начальный адрес виртуальной и физической страниц.
Второе свойство - линейность адресного пространства виртуальной и физической страницы - приводит к тому, что Sf =Sν. Отсюда следует простая схема преобразования виртуального адреса в физический.

Слайд 53

Операционные системы

3.4.2. Страничная организация виртуальной памяти

При обращении к памяти по некоторому виртуальному

Операционные системы 3.4.2. Страничная организация виртуальной памяти При обращении к памяти по
адресу (Р, Sν) аппаратные схемы процессора выполняют следующие действия:
1. Из специального регистра процессора извлекается начальный адрес AT таблицы страниц активного процесса. С помощью сумматора S определяется адрес нужной записи в таблице страниц.
2. Считывается номер соответствующей физической страницы - N.
3. К номеру физической страницы присоединяется смещение Sν.
В итоге полученный физический адрес оперативной памяти представляется парой значений (N, Sf).

Слайд 54

Операционные системы

Виртуальный адрес

Номер виртуальной страницы

Смещение в виртуальной странице

P

SV

Начальный адрес таблицы страниц

ОС

+

Таблица страниц

Nф.с.

P

A

D

W

N1

N2

1

Операционные системы Виртуальный адрес Номер виртуальной страницы Смещение в виртуальной странице P
0 1 0

1 0 1 0

1 0 0 0

N2

SF

Оперативная память

N2

SF

0

AT

Слайд 55

Операционные системы

3.4.3. Оптимизация функционирования страничной виртуальной памяти

Методы повышения эффективности функционирования
страничной виртуальной

Операционные системы 3.4.3. Оптимизация функционирования страничной виртуальной памяти Методы повышения эффективности функционирования
памяти:
1. Структуризация виртуального адресного пространства, например, двухуровневая (типичная для 32-битовой адресации).
2. Хранение активной части записей таблицы страниц в высокоскоростном КЭШе или буфере быстрого преобразования адреса (translation lookaside buffer – TLB).
3. Выбор оптимального размера страниц.
4. Эффективное управление страничным обменом, использование оптимальных алгоритмов замены страниц.

Слайд 56

Операционные системы

Двухуровневая страничная организация

Регистр процессора

Указатель на корневую таблицу страниц

10 бит

10 бит

12 бит

Виртуальный

Операционные системы Двухуровневая страничная организация Регистр процессора Указатель на корневую таблицу страниц
адрес

Смещение

N физ. стр.

+

+

4 Кбайт

4 Кбайт (1024 записи)

Корневая таблица страниц (1024 записи)

Таблица страниц размером

Страничное прерывание

Оперативная память

Слайд 57

Операционные системы

Двухуровневая страничная организация

При такой схеме имеется каталог таблиц страниц, в котором

Операционные системы Двухуровневая страничная организация При такой схеме имеется каталог таблиц страниц,
каждая запись указывает на таблицу страниц.
Обычно максимальный размер таблицы страниц определяется условием ее размещения в одной странице (такой подход используется в процессоре Pentium).
При 32-битовой адресации виртуальное адресное пространство пользовательского процесса может составлять 232 = 4 Гбайт.
При объеме страницы 212 = 4 Кбайт в этом пространстве размещается 232/212 = 220 страниц.
Таким образом, пользовательская таблица страниц будет иметь 220 4-байтных записей общим объемом 4 Мбайт.

Слайд 58

Операционные системы

Двухуровневая страничная организация

Разместить такие таблицы для нескольких процессов в ОП

Операционные системы Двухуровневая страничная организация Разместить такие таблицы для нескольких процессов в
нереально. В двухуровневой схеме это и не требуется. В основной памяти постоянно находится корневая таблица, содержащая 1024 записи, указывающие на начальный адрес пользовательской таблицы страниц (ее объем, как указано выше 4 Мбайт). Указание на начальный адрес корневой таблицы (активного процесса) заносится в регистр процессора. Первые 10 бит виртуального адреса используются для индексации в корневой таблице для поиска записей о странице пользовательской таблицы.
Если страница находится в ОП, то следующие 12 бит виртуального адреса используются для задания смещения в физической странице ОП.

Слайд 59

Операционные системы

Двухуровневая страничная организация

В противном случае генерируется страничное прерывание, но уже из-за

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

Слайд 60

Операционные системы

Виртуальный адрес

TLB

Таблица страниц

Внешняя память

Номер страницы

Смещение

N физ. Стр Смещение

Основная память

Поиск в TLB

Операционные системы Виртуальный адрес TLB Таблица страниц Внешняя память Номер страницы Смещение
успешен

Поиск в TLB неуспешен

Загрузка страницы

Ошибка обращения к странице (страничное прерывание)

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

Буфер быстрого преобразования адреса

Слайд 61

Операционные системы

Большинство реально применяющихся схем виртуальной памяти используют специальный высокоскоростной кэш для

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

Буфер быстрого преобразования адреса

Слайд 62

Операционные системы

Если запись в TLB не найдена, то процессор использует номер виртуальной

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

Буфер быстрого преобразования адреса

Слайд 63

Операционные системы

Если бит присутствия данной виртуальной страницы не установлен, это означает, что

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

Буфер быстрого преобразования адреса

Слайд 64

Операционные системы

Ассоциативное отображение

512 65 1 1 1 0 45312

7812 0 1

Операционные системы Ассоциативное отображение 512 65 1 1 1 0 45312 7812
1 0 22233

912 0 1 1 1 6253

452 1 1 1 0 1234

34233 1 1 1 0 53

11233 0 1 1 0 453

452

674

Номер страницы

Смещение

Номер страницы

Управляющая информация

Номер физической страницы

1234

Номер физической страницы

674

Смещение

Реальный адрес

TLB

Слайд 65

Операционные системы

Ассоциативное отображение

Каждая запись TLB должна наряду с полной информацией из записи

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

Слайд 66

Операционные системы

Смещение

TLB

Оперативная память

Таблица страниц

N физ. стр.

Кэш

N вирт. стр.

Смещение

Виртуальный адрес

Отсутствует

Имеется

Значение

Отсутствует

Взаимодействие кэша основной памяти

Операционные системы Смещение TLB Оперативная память Таблица страниц N физ. стр. Кэш
и TLB

Слайд 67

Операционные системы

Механизм виртуальной памяти должен взаимодействовать с кэшем оперативной памяти (кроме TLB).
Сначала

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

Взаимодействие кэша основной памяти и TLB

Слайд 68

Операционные системы

После получения физического адреса в обеих ситуациях выполняется обращение к кэшу

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

Взаимодействие кэша основной памяти и TLB

Слайд 69

Операционные системы

Оптимальный размер страниц

С уменьшением размера страницы уменьшается внутренняя фрагментация.
С уменьшением размера

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

Размер страницы

P

N

W

Количество выделенных физических страниц

Частота возникновения прерываний из-за отсутствия страниц

Частота возникновения прерываний из-за отсутствия страниц

P – размер процесса в страницах
N – общее количество страниц процесса
W – размер рабочего множества

Слайд 70

Операционные системы

Оптимальный размер страниц

Внутренняя фрагментация уменьшается с уменьшением размера страницы.
Однако, чем меньше

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

Слайд 71

Операционные системы

Оптимальный размер страниц

Такое двойное прерывание существенно снизит производительность виртуальной памяти. Кроме

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

Слайд 72

Операционные системы

Управление страничным обменом

Задачи управления страничным обменом:

- когда передавать страницу в

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

Слайд 73

Операционные системы

НАИМЕНОВАНИЕ ВОЗМОЖНЫЕ АЛГОРИТМЫ

Стратегия выборки (когда?)

По требованию, предварительная выборка

Стратегия размещения (где?)

Первый

Операционные системы НАИМЕНОВАНИЕ ВОЗМОЖНЫЕ АЛГОРИТМЫ Стратегия выборки (когда?) По требованию, предварительная выборка
подходящий раздел для сегментной виртуальной памяти. Любая страница физической памяти для сегментно-страничной и страничной организации памяти.

Стратегия замещения (какие?)

Оптимальный выбор, дольше всех не использовавшиеся, первым вошел – первым вышел (FIFO), часовой, буферизация страниц.

Управление резидентным множеством (сколько?)

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

Стратегия очистки (когда?)

По требованию, предварительная очистка

Управление загрузкой (сколько?) и приостановкой процессов

Рабочее множество, критерии L = S (среднее время между прерываниями = среднему времени обработки прерывания) и 50%

Слайд 74

Операционные системы

Управление страничным обменом

Стратегия выборки определяется, когда страница должна быть передана в

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

Слайд 75

Операционные системы

Управление страничным обменом

Такая выборка использует особенности работы дисковых устройств, заключающиеся в

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

Слайд 76

Операционные системы

Управление страничным обменом

В многопроцессорных системах с неоднородным доступом к памяти (различные

Операционные системы Управление страничным обменом В многопроцессорных системах с неоднородным доступом к
расстояния между процессорами и модулями памяти) стратегия размещения становится очень важной и требует всестороннего исследования.
Стратегия замещения определяет выбор страниц в основной памяти для замещения их загружаемыми из вторичной памяти страницами.

Слайд 77

Операционные системы

Управление страничным обменом

Эта стратегия связана с решением следующих вопросов:
• какое количество

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

Слайд 78

Операционные системы

Управление страничным обменом

Все используемые стратегии замещения направлены на то, чтобы выгрузить

Операционные системы Управление страничным обменом Все используемые стратегии замещения направлены на то,
страницы, обращений к которым в ближайшем будущем не последует. Имеется ряд основных алгоритмов, используемых для выбора замещаемой страницы:
• оптимальный алгоритм;
• алгоритм дольше всех неиспользующейся страницы;
• алгоритм «первым вошел - первым вышел» (FIFO);
• часовой алгоритм и др.

Слайд 79

Операционные системы

Управление страничным обменом

Оптимальный алгоритм состоит в выборе замещения той страницы, обращение

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

Слайд 80

Операционные системы

Управление страничным обменом

В простейшей схеме часовой стратегии с каждой физической страницей

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

Слайд 81

Операционные системы

Страница 9 use = 0

Страница 21 use = 1

Страница 1 use

Операционные системы Страница 9 use = 0 Страница 21 use = 1
= 1

Страница 17 use = 1

Страница 19 use = 0

Страница 563 use = 0

Указатель буфера

Страница 9 use = 0

Страница 21 use = 1

Страница 1 use = 0

Страница 17 use = 0

Страница 11 use = 1

Страница 563 use = 0

Указатель буфера

0

1

2

3

4

N - 1

N - 1

0

1

2

3

4

Часовая стратегия замещения

Состояние буфера перед замещением страниц

Состояние буфера после замещения страниц

Слайд 82

Операционные системы

Часовая стратегия замещения

При замещении страницы указатель перемещается к следующему кадру в

Операционные системы Часовая стратегия замещения При замещении страницы указатель перемещается к следующему
буфере.
Когда наступает время замещения страницы, ОС сканирует буфер для поиска кадра, бит использования которого равен 0.
При этом когда в процессе поиска встречается кадр с битом использования, равным 1, он сбрасывается в 0.
Первый же встреченный кадр с нулевым битом использования выбирается для замещения.
Если все кадры имеют бит использования, равный 1, указатель совершает полный круг и возвращается к начальному положению, заменяя страницу в этом кадре.

Слайд 83

Операционные системы

Управление резидентным множеством

Эта задача включает решение следующих вопросов:
• выбор размера резидентного

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

Слайд 84

Операционные системы

Управление резидентным множеством

1. Чем меньше памяти выделяется процессу, тем большее количество

Операционные системы Управление резидентным множеством 1. Чем меньше памяти выделяется процессу, тем
процессов может одновременно находиться в памяти, тем больше степень мультипрограммирования.
2. При относительно небольшом количестве страниц процесса, размещенных в оперативной памяти, частота страничных прерываний будет достаточно велика.
В современных ОС используется два типа стратегий: фиксированного и переменного распределения.
В первом случае процессу выделяется фиксированное количество страниц основной памяти, в пределах которого он выполняется.

Слайд 85

Операционные системы

Управление резидентным множеством

Стратегия переменного распределения позволяет изменять во время работы процесса

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

Слайд 86

Операционные системы

Управление резидентным множеством

Глобальная стратегия замещения рассматривает в качестве кандидатов на замещение

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

Слайд 87

Операционные системы

Управление резидентным множеством

При очистке по требованию страница записывается во вторичную память

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

Слайд 88

Операционные системы

Управление резидентным множеством

При использовании буферизации замещаемые страницы могут находиться в двух

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

Слайд 89

Операционные системы

Управление резидентным множеством

Подход, известный под названием критерий L-S, был предложен Деннингом

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

Слайд 90

Операционные системы

Управление резидентным множеством

При снижении степени многозадачности один или несколько резидентных процессов

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

Слайд 91

Операционные системы

3.4.4. Сегментная организация виртуальной памяти

Таблица кодировки символов

Таблица кодировки символов достигла таблицы

Операционные системы 3.4.4. Сегментная организация виртуальной памяти Таблица кодировки символов Таблица кодировки
с исходным текстом

Исходный текст

Таблица констант

Свободно

Дерево синтаксического анализа

Стек вызовов

Виртуальное адресное пространство

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

Слайд 92

Операционные системы

Сравнение страничной и сегментной организации памяти

Вопрос Страничная Сегментация

Нужно ли программисту

Операционные системы Сравнение страничной и сегментной организации памяти Вопрос Страничная Сегментация Нужно
знать о том, что используется эта техника?

Сколько в системе линейных адресных пространств?

Может ли суммарное адресное пространство превышать размеры физической памяти?

Возможно ли разделение процедур и данных, а также раздельная защита для них?

Легко ли размещаются таблицы с непостоянными размерами?

Облегчен ли совместный доступ пользователей к процедурам?

Зачем была придумана эта техника?

Нет

Да

1

Много

Да

Да

Нет

Нет

Нет

Да

Да

Да

Чтобы получить большое линейное адресное пространство без затрат на физическую память

Для разбиения программ и данных на независимые адресные пространства, облегчения защиты и совместного доступа

Слайд 93

Операционные системы

Сегментная организация виртуальной памяти

Сегменты - это независимые адресные пространства.
Каждый сегмент содержит

Операционные системы Сегментная организация виртуальной памяти Сегменты - это независимые адресные пространства.
линейную последовательность адресов от 0 до некоторого максимума.
Различные сегменты могут быть различной длины.
Длины сегментов могут изменяться во время выполнения.
Поскольку каждый сегмент составляет отдельное адресное пространство, разные сегменты могут расти и сокращаться независимо друг от друга.

Слайд 94

Операционные системы

Сегментная организация виртуальной памяти

Чтобы определить адрес в такой сегментированной или двумерной

Операционные системы Сегментная организация виртуальной памяти Чтобы определить адрес в такой сегментированной
памяти, программа должна указать адрес, состоящий из двух частей: номер сегмента и адрес внутри сегмента.
Максимальный размер сегмента определяется разрядностью виртуального адреса, например при 32-разрядном микропроцессоре он равен 232 = 4 Гбайт.
При этом максимально возможное виртуальное адресное пространство представляет набор из N виртуальных сегментов (заметим, что общего для сегментов линейного виртуального адреса не существует).

Слайд 95

Операционные системы

Сегментная организация виртуальной памяти

Сегмент - это логический объект, о чем программист

Операционные системы Сегментная организация виртуальной памяти Сегмент - это логический объект, о
знает и поэтому использует его как логический объект.
Преимущества сегментной модели:
• простота компоновки отдельно скомпилированных процедур (обращение к начальной точке процедуры осуществляется адресом вида (n, 0), где n - номер сегмента);
• легкость обеспечения дифференцируемого доступа к различным частям программы (например, запретить обращаться для записи в сегмент программы);

Слайд 96

Операционные системы

Сегментная организация виртуальной памяти

простота организации совместного использования фрагментов программ различными процессами,

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

Слайд 97

Операционные системы

Сегментная организация виртуальной памяти

При загрузке процесса в оперативную память помещается только

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

Слайд 98

Операционные системы

Сегментная организация виртуальной памяти

Операционная система в данном случае работает аналогично подобному

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

Слайд 99

Операционные системы

Сегментная организация виртуальной памяти

Если виртуальные адресные пространства нескольких процессов включают один

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

Слайд 100

Операционные системы

Виртуальный адрес

Номер сегмента - N

Смещение - S

+

Физический адрес

Таблица сегментов

Базовый адрес

Размер

Управляющая информация

Управляющая

Операционные системы Виртуальный адрес Номер сегмента - N Смещение - S +
информация: P – присутствие; M – модификация; U – использование; Sh – разделение; S – защита.

Недостатки сегментной организации: 1. Увеличение времени преобразования виртуального адреса в физический. 2. Избыточность перемещаемых данных (между диском и ОП). 3. Внешняя фрагментация памяти.

Слайд 101

Операционные системы

Адрес

Физический адрес получается сложением базового адреса сегмента, который определяется по номеру

Операционные системы Адрес Физический адрес получается сложением базового адреса сегмента, который определяется
сегмента n из таблицы сегментов, и смещения S.
Использование операции сложения вместо конкатенации замедляет процедуру преобразования виртуального адреса в физический.

Слайд 102

Операционные системы

Сегментно-страничная организация виртуальной памяти

Данный метод организации виртуальной памяти направлен на сочетание

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

Слайд 103

Операционные системы

Сегментно-страничная организация виртуальной памяти

С каждым процессом связана одна таблица сегментов и

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

Слайд 104

Операционные системы

Сегментно-страничная организация виртуальной памяти

Затем часть адреса, представляющая смещение, используется для получения

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

Слайд 105

Операционные системы

Сегментно-страничная организация виртуальной памяти

Для того чтобы отличить разделяемые сегменты от индивидуальных,

Операционные системы Сегментно-страничная организация виртуальной памяти Для того чтобы отличить разделяемые сегменты
записи таблицы сегментов содержат 1-битовое поле, имеющее два значения: shared (разделяемый) или private (индивидуальный).

Слайд 106

Операционные системы

Сегментно-страничная организация виртуальной памяти

Виртуальный адрес

Указатель на таблицу сегментов

+

+

Программа

Механизм сегментации

Механизм страничной организации

Основная

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

Начальный адрес таблицы сегментов

Номер сегмента

Начальный адрес таблицы страниц

Таблица сегментов

Таблица страниц

Номер страницы

Номер физ. страницы

Смещение

Смещение

Слайд 107

Операционные системы

Для осуществления совместного использования сегмента он помещается в виртуальное адресное пространство

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

Способы создания разделяемого сегмента памяти

Слайд 108

Операционные системы

В этом случае настройка соответствующей записи для разделяемого сегмента выполняется только

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

Способы создания разделяемого сегмента памяти

Слайд 109

Операционные системы

36

ВП 1

ВП 2

ВП N

Оперативная память

Оперативная память

ВП 1

ВП 2

ВП N

Способы создания разделяемого

Операционные системы 36 ВП 1 ВП 2 ВП N Оперативная память Оперативная
сегмента памяти

Слайд 110

Операционные системы

Виртуальная память Windows обеспечивает каждому процессу: 4 Гбайт виртуального адресного пространства

Операционные системы Виртуальная память Windows обеспечивает каждому процессу: 4 Гбайт виртуального адресного
(2 Гбайт – ОС, 2 Гбайт – пользовательская программа). 16 К независимых сегментов (8К локальных и 8К глобальных).

Процесс ОС и системные сегменты

2

1

Уровень привилегий RPL = 0 - 3

GDT – 0, LDT - 1

Индекс – номер сегмента (13 разр.)

СЕЛЕКТОР

LDT - локальная таблица дескрипторов прикладного процесса

GDT – глобальная таблица дескрипторов процессов ОС и системных сегментов

GDTR

LDTR

Дескриптор сегмента

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

Слайд 111

Операционные системы

Организация памяти в Windows

Основа виртуальной памяти Windows 2000 представляется двумя

Операционные системы Организация памяти в Windows Основа виртуальной памяти Windows 2000 представляется
таблицами: локальной таблицей дескрипторов LDT (Local Descriptor Table) и глобальной таблицей дескрипторов GDT (Global Descriptor Table).
У каждого процесса есть своя собственная таблица LDT, но глобальная таблица дескрипторов одна, ее совместно используют все процессы.
Таблица LDT описывает сегменты, локальные для каждой программы, включая ее код, данные, стек и т. д.; таблица GDT несет информацию о системных сегментах, включая саму операционную систему.

Слайд 112

Операционные системы

Организация памяти в Windows

В каждый момент времени в специальных регистрах GDTR

Операционные системы Организация памяти в Windows В каждый момент времени в специальных
и LDTR хранится информация о местоположении и размерах глобальной таблицы GDT и активной таблицы LDT.
Регистр LDTR указывает на расположение сегмента LDT в оперативной памяти косвенно - он содержит индекс дескриптора в таблице GTD, в котором содержится адрес таблицы LDT и ее размер.
Процесс обращается к физической памяти по виртуальному адресу, представляющему собой пару - селектор и смещение.
Селектор определяет номер сегмента, а смещение - положение искомого адреса относительно начала сегмента.

Слайд 113

Операционные системы

Организация памяти в Windows

Селектор состоит из трех полей.
Индекс задает пользовательский номер

Операционные системы Организация памяти в Windows Селектор состоит из трех полей. Индекс
дескриптора в таблице GDT или LDT (всего 213 = 8 К сегментов).
Таким образом, виртуальное адресное пространство процесса состоит из 8К локальных и 8К глобальных сегментов, всего из 16К сегментов.
Каждый сегмент имеет максимальный размер 4 Гбайт при чисто сегментной организации виртуальной памяти (без включения страничного механизма), поэтому процесс может работать в виртуальном адресном пространстве в 64 Тбайт.

Слайд 114

Операционные системы

Организация памяти в Windows

Поле из двух битов селектора задает требуемый уровень

Операционные системы Организация памяти в Windows Поле из двух битов селектора задает
привилегий и используется механизм защиты.
В системах на базе микропроцесса Pentium поддерживается 4 уровня защиты, где уровень 0 является наиболее привилегированным, а уровень 3 - наименее привилегированным.
Эти уровни образуют так называемые кольца защиты.

Слайд 115

Операционные системы

Пользовательские программы

Ядро 0

Библиотечные процедуры

1

2

3

Утилиты ОС

Обработчик системных вызовов

Система защиты использует переменные, характеризующие

Операционные системы Пользовательские программы Ядро 0 Библиотечные процедуры 1 2 3 Утилиты
уровень привилегий:

DPL (Descriptor Privilege Level) – задается полем DPL в дескрипторе сег-мента;
RPL (Requested Privilege Level) – запрашиваемый уровень привилегий, задается полем RPL селектора сегмента;
CPL (Current Privilege Level) – текущий уровень привилегий выполняемого кода задается полем RPL селектора кодового сегмента (фиксируется в PSW);
EPR (Effective Privilege Level) – эффективный уровень привилегий запроса.

Контроль доступа к сегменту данных осуществляется , если EPL <= DPL, где EPL = max { CPL, RPL }. Значение RPL – уровня запрашиваемых привилегий – определяется полем RPL селектора, указывающего на запрашиваемый сегмент.