Разделы презентаций


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

Содержание

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

Слайды и текст этой презентации

Слайд 1Операционные системы
Тема 3. Управление памятью в операционных системах
3.1. Организация памяти

современного компьютера

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

3.3. Алгоритмы распределение памяти
3.3.1. Классификация методов распределения памяти
3.3.2. Распределение памяти фиксированными разделами
3.3.3. Распределение памяти динамическими разделами
3.3.4. Распределение памяти перемещаемыми разделами
3.4. Виртуальная память
3.4.1. Методы структуризации виртуального адресного пространства
3.4.2. Страничная организация виртуальной памяти
3.4.3. Оптимизация функционирования страничной виртуальной памяти
3.4.4. Сегментная организация виртуальной памяти
Операционные системыТема 3. Управление памятью в операционных системах3.1. Организация памяти современного компьютера  3.2. Функции операционной системы

Слайд 2Операционные системы

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

Линейное (одномерное) адресное пространство, отражающее особенности аппаратного обеспечения, но не

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

Слайд 3Операционные системы
3.1.2. Физическая организация памяти

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



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

Внутренний кэш,

64 Кбайт, 0,3-0,5 нс.
Кэш второго уровня
1Мбайт SRAM, 1-3 нс.

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

512

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







Кэш диска

8 Мбайт

Жесткий диск

100 Гбайт,
10 мс.

МЛ

Сотни с.

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

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

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

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

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

%
50 %
80 %

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

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

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

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

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

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

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

Слайд 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. Функции операционной системы по управлению памятью
Эта задача распределения

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


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

Слайд 13Операционные системы




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

в ОЗУ
ОС в ПЗУ
BIOS
Скрытая память
1 Мбайт
Программа пользователя
Программа пользователя
60 Кбайт
640 Кбайт
Программа

пользователя

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

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

Слайд 14Операционные системы
3.2. Функции операционной системы по управлению памятью
В ранних ОС

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

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

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

Операционные системы3.2. Функции операционной системы по управлению памятью	В ранних ОС управление памятью сводилось просто к загрузке программы

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

характерна для ранних персональных компьютеров с MS DOS.
Распределение памяти в

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

Слайд 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 М
Программа №1, 4М

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

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





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

Операционная

система 8 М




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



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



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


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

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

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

Слайд 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 МНовые процессы1 М2 М4 М8 М12 МНовые процессыОчереди для каждого разделаОбщая

Слайд 26Операционные системы

Распределение памяти фиксированными разделами
2. Разделы разного размера. Очередь

к каждому разделу.
Процесс размещается в наименьшем свободном разделе, способном вместить

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

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

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

Операционные системыРаспределение памяти фиксированными разделами 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. Распределение памяти динамическими разделамиОСОСОСОСP1P2P3P4P5P1P2P3P5P1P3P5P6P6t0t1t2t3

Слайд 28Операционные системы

Распределение памяти динамическими разделами
Функции ОС для реализации метода MVT

OS/360 (ЕС ЭВМ):
ведение таблиц свободных и занятых областей ОП

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

Слайд 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. Распределение памяти перемещаемыми разделамиОСОСabcdeP1P1P2P2P3P4P3P4P5P5P6P6P5P7P7Процедура сжатияa+b+c+d+e

Слайд 31Операционные системы

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

старших или младших адресов при каждом завершении процесса или для

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

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

Операционные системыРаспределение памяти перемещаемыми разделамиПеремещение всех занятых участков в сторону старших или младших адресов при каждом завершении

Слайд 32Операционные системы
Распределение памяти перемещаемыми разделами
Уплотнение может выполняться либо при каждом

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

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

Слайд 33Операционные системы
Распределение памяти перемещаемыми разделами
При использовании фиксированной схемы распределения

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

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

Слайд 34Операционные системы
Распределение памяти перемещаемыми разделами
В этих случаях расположение команд и

данных, к которым обращается процесс, не является фиксированным и изменяется

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

Слайд 35Операционные системы





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

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

ОС
Граничный регистр
Программа
Данные
Прерывание

ОС
Стек
Абсолютный адрес
Аппаратная поддержка перемещения

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

Слайд 36Операционные системы
Распределение памяти перемещаемыми разделами
Когда процесс переходит в состояние выполнения,

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

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

Слайд 37Операционные системы
Распределение памяти перемещаемыми разделами
Затем полученный абсолютный адрес сравнивается со

значением в граничном регистре.
Если полученный абсолютный адрес принадлежит данному процессу,

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

Слайд 38Операционные системы

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

– Kilburn T. и др. “One –Level Storage System”
Методы реализации

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

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

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

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

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

файла в современных ОС является настраиваемым параметром, который выбирается администратором

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

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

пространство каждого процесса делится на части одинакового, фиксированного для данной

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

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

степени двойки: 1024, 2408, 4096 байт и т. д. Это

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

Слайд 43Операционные системы
3.4.2. Страничная организация виртуальной памяти
Для каждого процесса ОС

создает таблицу страниц - информационную структуру, содержащую записи обо всех

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

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

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

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



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

Слайд 45Операционные системы
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

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

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

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

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

Слайд 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. Страничная организация виртуальной памяти
Виртуальный адрес при страничном распределении

может быть представлен в виде пары (Р, Sν), где Р

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

Слайд 52Операционные системы
3.4.2. Страничная организация виртуальной памяти
Отсюда следует, что смещение Sν

и Sf может быть получено отделением k младших разделов в

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

Операционные системы3.4.2. Страничная организация виртуальной памяти 		Отсюда следует, что смещение Sν и Sf может быть получено отделением

Слайд 53Операционные системы
3.4.2. Страничная организация виртуальной памяти
При обращении к памяти по

некоторому виртуальному адресу (Р, Sν) аппаратные схемы процессора выполняют следующие

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


Операционные системы3.4.2. Страничная организация виртуальной памяти 		При обращении к памяти по некоторому виртуальному адресу (Р, Sν) аппаратные

Слайд 54Операционные системы






Виртуальный адрес
Номер виртуальной страницы
Смещение в виртуальной странице
P
SV
Начальный адрес таблицы

страниц

ОС
+
Таблица страниц
Nф.с.
P
A
D
W

N1
N2
1 0 1 0
1

0 1 0

1 0 0 0

N2

SF

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

N2

SF

0



AT

Операционные системыВиртуальный адресНомер виртуальной страницыСмещение в виртуальной страницеPSVНачальный адрес таблицы страницОС+Таблица страницNф.с.PADWN1N21  0   1

Слайд 55Операционные системы

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

функционирования
страничной виртуальной памяти:

1. Структуризация виртуального адресного пространства, например,

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

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









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

бит
12 бит
Виртуальный адрес
Смещение
N физ. стр.
+
+


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

страниц (1024 записи)

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

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

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



Операционные системыДвухуровневая страничная организацияРегистр процессораУказатель на корневую таблицу страниц10 бит10 бит12 битВиртуальный адресСмещениеN физ. стр.++4 Кбайт4 Кбайт

Слайд 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Таблица страницВнешняя памятьНомер страницыСмещениеN физ. Стр  СмещениеОсновная памятьПоиск в TLB успешенПоиск в TLB неуспешенЗагрузка

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

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

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

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

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

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

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

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

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

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

Слайд 63Операционные системы
Если бит присутствия данной виртуальной страницы не установлен, это

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

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

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

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

Слайд 64Операционные системы

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

512 65 1 1

1 0 45312
7812

0 1 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

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

Слайд 65Операционные системы
Ассоциативное отображение
Каждая запись TLB должна наряду с полной информацией

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

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

Операционные системыАссоциативное отображение	Каждая запись TLB должна наряду с полной информацией из записи таблицы страниц включать также номер

Слайд 66Операционные системы





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

N вирт. стр.
Смещение
Виртуальный адрес
Отсутствует
Имеется
Значение
Отсутствует
Взаимодействие кэша

основной памяти и TLB

Операционные системыСмещениеTLBОперативная памятьТаблица страницN физ. стр.КэшN вирт. стр.СмещениеВиртуальный адресОтсутствуетИмеетсяЗначениеОтсутствуетВзаимодействие кэша основной памяти и TLB

Слайд 67Операционные системы
Механизм виртуальной памяти должен взаимодействовать с кэшем оперативной памяти

(кроме TLB).
Сначала происходит обращение к TLB для выяснения, имеется ли

в нем соответствующая запись таблицы страниц.
При положительном результате путем объединения номера физической страницы, получаемого из 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 = 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

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

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

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

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

Слайд 82Операционные системы
Часовая стратегия замещения
При замещении страницы указатель перемещается к следующему

кадру в буфере.
Когда наступает время замещения страницы, ОС сканирует буфер

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

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

размера резидентного множества;
• определение области видимости замещения.
При использовании виртуальной памяти

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

Слайд 84Операционные системы
Управление резидентным множеством
1. Чем меньше памяти выделяется процессу, тем

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

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

Слайд 85Операционные системы
Управление резидентным множеством
Стратегия переменного распределения позволяет изменять во время

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

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

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

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

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

Слайд 87Операционные системы
Управление резидентным множеством
При очистке по требованию страница записывается во

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

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

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

в двух списках: модифицированных и немодифицированных страниц.
Страницы из списка модифицированных

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

Слайд 89Операционные системы
Управление резидентным множеством
Подход, известный под названием критерий L-S, был

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

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

Слайд 90Операционные системы
Управление резидентным множеством
При снижении степени многозадачности один или несколько

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

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

Слайд 91Операционные системы

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


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

достигла таблицы с исходным текстом

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

Таблица констант
Свободно

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

Стек вызовов
Виртуальное

адресное пространство

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

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

Слайд 92Операционные системы




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

Страничная Сегментация

Нужно ли программисту знать о том, что используется эта техника?

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

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

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

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

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

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

Нет

Да

1


Много

Да

Да

Нет

Нет

Нет

Да

Да

Да

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

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

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

Слайд 93Операционные системы
Сегментная организация виртуальной памяти
Сегменты - это независимые адресные пространства.
Каждый

сегмент содержит линейную последовательность адресов от 0 до некоторого максимума.
Различные

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

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

или двумерной памяти, программа должна указать адрес, состоящий из двух

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

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

чем программист знает и поэтому использует его как логический объект.
Преимущества

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

Слайд 96Операционные системы
Сегментная организация виртуальной памяти
простота организации совместного использования фрагментов программ

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

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

Слайд 97Операционные системы
Сегментная организация виртуальной памяти
При загрузке процесса в оперативную память

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

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

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

аналогично подобному процессу в страничной виртуальной памяти.
На этапе создания процесса

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

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

включают один и тот же сегмент, то в таблицах сегментов

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

Слайд 100Операционные системы







Виртуальный адрес
Номер сегмента - N
Смещение - S
+
Физический адрес
Таблица сегментов



Базовый

адрес
Размер
Управляющая информация
Управляющая информация:

P – присутствие; M – модификация; U – использование; Sh – разделение; S – защита.

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

Операционные системыВиртуальный адресНомер сегмента - NСмещение - S+Физический адресТаблица сегментовБазовый адресРазмерУправляющая информацияУправляющая информация:

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

по номеру сегмента n из таблицы сегментов, и смещения S.
Использование

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

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

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

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

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

сегментов и несколько (по одной) на сегмент таблиц страниц.
При работе

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

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

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

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

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

от индивидуальных, записи таблицы сегментов содержат 1-битовое поле, имеющее два

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

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







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


+
Программа
Механизм сегментации
Механизм

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

сегментов

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

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

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


Смещение


Смещение

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

Слайд 107Операционные системы



















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

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

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

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

Операционные системы	Для осуществления совместного использования сегмента он помещается в виртуальное адресное пространство нескольких процессов, при этом параметры

Слайд 108Операционные системы



















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

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

и совместно используют часть оперативной памяти.

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

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

Слайд 109Операционные системы




















































36
























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

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

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

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

виртуального адресного пространства (2 Гбайт – ОС, 2 Гбайт –

пользовательская программа). 16 К независимых сегментов (8К локальных и 8К глобальных).

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


2

1

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

GDT – 0, LDT - 1

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

СЕЛЕКТОР






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

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



GDTR

LDTR


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

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

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

Слайд 111Операционные системы
Организация памяти в Windows
Основа виртуальной памяти Windows 2000

представляется двумя таблицами: локальной таблицей дескрипторов LDT (Local Descriptor Table)

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

Слайд 112Операционные системы
Организация памяти в Windows
В каждый момент времени в специальных

регистрах GDTR и LDTR хранится информация о местоположении и размерах

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

Слайд 113Операционные системы
Организация памяти в Windows
Селектор состоит из трех полей.
Индекс задает

пользовательский номер дескриптора в таблице GDT или LDT (всего 213

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

Слайд 114Операционные системы
Организация памяти в Windows
Поле из двух битов селектора задает

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

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

Слайд 115Операционные системы
Пользовательские программы
Ядро 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 селектора, указывающего на запрашиваемый сегмент.

Операционные системыПользовательские программыЯдро 0Библиотечные процедуры123Утилиты ОСОбработчик системных вызововСистема защиты использует переменные, характеризующие уровень привилегий:DPL (Descriptor Privilege Level)

Слайд 116Операционные системы
Ядро 0
1

2
3
Система защиты использует в Windows
Под запросом понимается любое

обращение к памяти.
Уровни привилегий DPL и RPL назначаются операционной системой

при создании новых процессов и во время их загрузки в память.
Уровень привилегий определяет не только возможности доступа к сегментам и дескрипторам, но и разрешенный набор инструкций.
В каждый момент времени работающая программа находится на определенном уровне, что отмечается 2-битовым полем в регистре слова состояние программы (PSW).
Уровень привилегий кодового сегмента DPL определяет текущий уровень привилегий CPL, фиксируемый в PSW.
Операционные системыЯдро 0123Система защиты использует в Windows	Под запросом понимается любое обращение к памяти.	Уровни привилегий DPL и RPL

Обратная связь

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

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика