Операционные системы и сети ЭВМ Operating Systems and Networking презентация

Содержание

Слайд 2

(C) В.О. Сафонов, 2007

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

Мотивировка
Потребность в страничной организации
Создание процесса
Замена страницы
Размещение фреймов
Thrashing
Примеры ОС

Слайд 3

(C) В.О. Сафонов, 2007

Мотивировка

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

часть программы требует размещения в памяти для исполнения.
Таким образом, логическое адресное пространство может быть намного больше, чем физическое.
Поддерживает совместное использование одного и того же адресного пространства более чем одним процессом (lightweight processes, etc.).
Допускает более эффективное создание процесса.
Виртуальная память может быть реализована с помощью:
Страничной организации по требованию
Сегментной организаци по требованию

Слайд 4

(C) В.О. Сафонов, 2007

Виртуальная память больше, чем физическая память

Слайд 5

(C) В.О. Сафонов, 2007

Страничная организация по требованию

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

реально требуется.
Меньший объем ввода-вывода
Меньший объем памяти
Более быстрая реакция системы
Система может обслуживать более число пользователей
Страница требуется => на нее есть ссылка
Неверная ссылка => прерывание
Страница отсутствует в памяти => подкачать ее в память

Слайд 6

(C) В.О. Сафонов, 2007

Преобразование страничной памяти в непрерывное дисковое пространство

Слайд 7

(C) В.О. Сафонов, 2007

Бит “valid – invalid”

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

“valid/invalid”: 1 ⇒ страница в памяти, 0 ⇒ страница отсутствует в памяти.
Инициализация: для всех элементов таблицы страниц бит valid/invalid = 0.
Пример состояния таблицы страниц.
Если в процессе трансляции адреса бит “valid/invalid” в таблице страниц равен 0 => прерывание по отсутствию страницы в памяти (page fault).

Слайд 8

(C) В.О. Сафонов, 2007

Пример таблицы страниц, в которой не все страницы присутствуют в

памяти

Слайд 9

(C) В.О. Сафонов, 2007

Отсутствие страницы в памяти

Если имеется ссылка на страницу, отсутствующую в

памяти, первое же обращение по такой ссылке приведет к прерыванию и вызову ОС (ситуация page fault – отсутствие страницы)
ОС по таблицам определяет:
Неверная ссылка ⇒ прекращение работы программы.
Обычное отсутствие страницы в памяти.
Найти незанятый фрейм.
Считать содержимое страницы в данный фрейм.
Изменение таблиц; validation bit = 1.
Продолжение работы программы

Слайд 10

(C) В.О. Сафонов, 2007

Этапы обработки ситуации отсутствия страницы в памяти

Слайд 11

(C) В.О. Сафонов, 2007

Ситуация отсутствия свободного фрейма

Замена страницы – найти страницу, загруженную в

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

Слайд 12

(C) В.О. Сафонов, 2007

Оценка производительности стратегии обработки страницы по требованию

Коффициент отказов страниц (Page

Fault Rate) 0 ≤ p ≤ 1.0
Если p = 0 – отсутствие отказов страниц
Если p = 1, каждое обращение к странице приводит к отказу
Эффективное время доступа (Effective Access Time - EAT)
EAT = (1 – p) * время доступа к памяти
+ p * (время реакции на отказ
+ [время откачки страницы ]
+ время подкачки страницы
+ время рестарта)

Слайд 13

(C) В.О. Сафонов, 2007

Создание процесса

Виртуальная память дает также преимущества при создании процессов:
- Совместное

использование страниц процессами (Copy-on-Write)
- Отображение файлов в память (Memory-Mapped Files)

Слайд 14

(C) В.О. Сафонов, 2007

Совместное использование страниц процессами

Принцип совместного использования страниц процессами (Copy-On-Write -

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

Слайд 15

(C) В.О. Сафонов, 2007

Файлы, отображаемые в память (memory-mapped files)

Ввод-вывод файлов, отображаемых в память,

позволяет трактовать файловый ввод-вывод как обычное обращение к памяти путем отображения блока на диске в страницу памяти.
Первоначально файл читается с использованием запроса страниц по требованию. Часть файла размером с одну страницу читается из файла в физическую страницу (фрейм). Последующие чтения из файла и записи в файл трактуются как обычные обращения к памяти.
Это упрощает доступ к файлу, по сравнению с системными вызовами read() и write().
Это позволяет также нескольким процессам отображать в память один и тот же файл, по тому же принципу, как они совместно используют страницы.

Слайд 16

(C) В.О. Сафонов, 2007

Файлы, отображаемые в память

Слайд 17

(C) В.О. Сафонов, 2007

Замещение страниц

Предотвращение переполнения памяти: подпрограмма обслуживания отказов страниц дополняется поддержкой

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

Слайд 18

(C) В.О. Сафонов, 2007

Пример: замещение страниц

Слайд 19

(C) В.О. Сафонов, 2007

Краткое изложение стратегии (алгоритма) замещения страниц

Найти, где размещается требуемая страница

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

Слайд 20

(C) В.О. Сафонов, 2007

Замещение страниц

Слайд 21

(C) В.О. Сафонов, 2007

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

Необходимо добиваться уменьшения коэффициента отказов страниц p.
Оценка алгоритма

может быть выполнена путем опробования его на конкретной строке обращений к памяти (строке запросов) и определения числа отказов страниц при данной строке запросов.
Во всех приводимых примерах из области страничной организации строка запросов имеет вид:
1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5.

Слайд 22

(C) В.О. Сафонов, 2007

График зависимости числа отказов страниц от числа фреймов

Слайд 23

(C) В.О. Сафонов, 2007

Алгоритм FIFO (First-in-First-Out)

Строка запросов: 1, 2, 3, 4, 1, 2,

5, 1, 2, 3, 4, 5
3 фрейма (3 страницы могут быть одновременно в памяти для одного процесса)
(1, 2, 3) (4, 1, 2) (5, 3, 4)
9 отказов страниц
4 фрейма (1, 2, 3, 4) (5, 1, 2, 3) (4, 5)
10 (!) отказов страниц
FIFO – алгоритм замещения => аномалия Belady
больше фреймов ⇒ меньше отказов страниц

Слайд 24

(C) В.О. Сафонов, 2007

Пример замещения страниц по алгоритму FIFO

Слайд 25

(C) В.О. Сафонов, 2007

Аномалия Belady при использовании алгоритма FIFO замещения страниц

Слайд 26

(C) В.О. Сафонов, 2007

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

Замещается та страница, которая не использовалась в

течение наибольшего периода времени.
Пример с четырьмя фреймами
1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5
(1 2 3 4)
4 5 - (всего) 6 отказов страниц
Определение (измерение) того, насколько эффективно работает алгоритм, позволило прийти именно к такому выводу.

Слайд 27

(C) В.О. Сафонов, 2007

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

Слайд 28

(C) В.О. Сафонов, 2007

Алгоритм Least Recently Used (LRU)

Строка запросов: 1, 2, 3, 4,

1, 2, 5, 1, 2, 3, 4, 5 (1 2 3 4) 5 5 3
4
Реализация счетчиков:
Каждый элемент таблицы страниц содержит счетчик; каждый раз при обращении к странице через некоторый элемент таблицы страниц содержимое часов (clock) копируется в его поле счетчика.
Когда требуется изменение в конфигурации страниц, необходимо проанализировать поля счетчиков, чтобы определить, какую именно страницу заместить (ту, у которой содержимое поля счетчика меньше => требуется применить алгоритм поиска минимального элемента в массиве; сложность O(n), где n – длина таблицы страниц)

Слайд 29

(C) В.О. Сафонов, 2007

Замещение страниц по алгоритму LRU

Слайд 30

(C) В.О. Сафонов, 2007

Алгоритм LRU (продолжение)

Стековая реализация – хранить стек номеров страниц (в

форме двухсвязного списка):
При обращении к странице:
Переместить ее в начало списка
Для этого требуется изменить 6 указателей
При замещении страниц не требуется поиска

Слайд 31

(C) В.О. Сафонов, 2007

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

страницам
Имя файла: Операционные-системы-и-сети-ЭВМ-Operating-Systems-and-Networking.pptx
Количество просмотров: 52
Количество скачиваний: 0