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

Содержание

Слайд 2

В.А.Серков "Операционные системы" 3 Функции ОС по управлению памятью 1. Отслеживание

В.А.Серков "Операционные системы" 3

Функции ОС по управлению памятью

1. Отслеживание свободной и

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

Типы адресов

Типы адресов


Слайд 4

В.А.Серков "Операционные системы" 3 Символьные имена присваивает пользователь при написании программы на алгоритмическом языке или ассемблере.

В.А.Серков "Операционные системы" 3

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

алгоритмическом языке или ассемблере.
Слайд 5

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

В.А.Серков "Операционные системы" 3

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

язык.
Слайд 6

В.А.Серков "Операционные системы" 3 Физические адреса соответствуют номерам ячеек оперативной памяти,

В.А.Серков "Операционные системы" 3

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

в действительности расположены или будут расположены переменные и команды.
Слайд 7

В.А.Серков "Операционные системы" 3 Переход от виртуальных адресов к физическим может

В.А.Серков "Операционные системы" 3

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

двумя способами.

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

Слайд 8

В.А.Серков "Операционные системы" 3 Методы распределения памяти

В.А.Серков "Операционные системы" 3

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

Слайд 9

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

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

Слайд 10

В.А.Серков "Операционные системы" 3 Распределение памяти фиксированными разделами

В.А.Серков "Операционные системы" 3

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

Слайд 11

В.А.Серков "Операционные системы" 3 Распределение памяти фиксированными разделами Подсистема управления памятью

В.А.Серков "Операционные системы" 3

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

Подсистема управления памятью в

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

В.А.Серков "Операционные системы" 3 Распределение памяти разделами переменной величины

В.А.Серков "Операционные системы" 3

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

Слайд 13

В.А.Серков "Операционные системы" 3 Задачами операционной системы при реализации данного метода

В.А.Серков "Операционные системы" 3

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

памятью является:

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

Слайд 14

В.А.Серков "Операционные системы" 3 Достоинство: Программный код не перемещается во время

В.А.Серков "Операционные системы" 3

Достоинство: Программный код не перемещается во время выполнения,

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

В.А.Серков "Операционные системы" 3 Перемещаемые разделы

В.А.Серков "Операционные системы" 3

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

Слайд 16

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

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

Слайд 17

В.А.Серков "Операционные системы" 3 Для активизации процесса необходимо программу, реализующую процесс,

В.А.Серков "Операционные системы" 3

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

в оперативную память компьютера. Поскольку объем памяти ограничен, то может наступить момент, когда для очередного процесса просто не найдется места в оперативной памяти.
Слайд 18

В.А.Серков "Операционные системы" 3 Оверлеи

В.А.Серков "Операционные системы" 3

Оверлеи

Слайд 19

В.А.Серков "Операционные системы" 3 Для решения проблемы памяти операционная система поддерживает

В.А.Серков "Операционные системы" 3

Для решения проблемы памяти операционная система поддерживает файл

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

В.А.Серков "Операционные системы" 3 Понятие виртуальной памяти Виртуальная память - это

В.А.Серков "Операционные системы" 3

Понятие виртуальной памяти

Виртуальная память - это совокупность

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

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

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

Слайд 22

В.А.Серков "Операционные системы" 3 Виртуальное адресное пространство каждого процесса делится на

В.А.Серков "Операционные системы" 3

Виртуальное адресное пространство каждого процесса делится на части

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

В.А.Серков "Операционные системы" 3 Вся оперативная память машины также делится на

В.А.Серков "Операционные системы" 3

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

такого же размера, называемые физическими страницами (или блоками).
Размер страницы обычно выбирается равным степени двойки: 512, 1024 и т.д., это позволяет упростить механизм преобразования адресов.
Слайд 24

В.А.Серков "Операционные системы" 3 При загрузке операционная система создает для каждого

В.А.Серков "Операционные системы" 3

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

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

В.А.Серков "Операционные системы" 3

В.А.Серков "Операционные системы" 3

Слайд 26

В.А.Серков "Операционные системы" 3 При активизации очередного процесса в специальный регистр

В.А.Серков "Операционные системы" 3

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

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

В.А.Серков "Операционные системы" 3 Механизм преобразования виртуального адреса в физический при

В.А.Серков "Операционные системы" 3

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

организации памяти

Виртуальный адрес при страничном распределении может быть представлен в виде пары (p, s).
p - номер виртуальной страницы процесса (нумерация страниц начинается с 0);
s - смещение в пределах виртуальной страницы.
Учитывая, что размер страницы равен 2k , смещение s может быть получено простым отделением k младших разрядов в двоичной записи виртуального адреса. Оставшиеся старшие разряды представляют собой двоичную запись номера страницы p.

Слайд 28

В.А.Серков "Операционные системы" 3 При каждом обращении к оперативной памяти аппаратными

В.А.Серков "Операционные системы" 3

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

выполняются следующие действия:
1. На основании:
- начального адреса таблицы страниц (содержимое регистра адреса таблицы страниц);
- номера виртуальной страницы (старшие разряды виртуального адреса);
- длины записи в таблице страниц (системная константа) определяется адрес нужной записи в таблице.
2. Из этой записи извлекается номер физической страницы.
3. К номеру физической страницы присоединяется смещение (младшие разряды виртуального адреса).
Слайд 29

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

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

Слайд 30

В.А.Серков "Операционные системы" 3 Виртуальное адресное пространство процесса делится на сегменты,

В.А.Серков "Операционные системы" 3

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

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

В.А.Серков "Операционные системы" 3

В.А.Серков "Операционные системы" 3

Слайд 32

В.А.Серков "Операционные системы" 3 Система с сегментной организацией функционирует аналогично системе

В.А.Серков "Операционные системы" 3

Система с сегментной организацией функционирует аналогично системе со

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

В.А.Серков "Операционные системы" 3 Виртуальный адрес при сегментной организации памяти может

В.А.Серков "Операционные системы" 3

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

представлен парой (g, s).
g - номер сегмента;
s - смещение в сегменте.
Физический адрес получается путем сложения начального физического адреса сегмента, найденного в таблице сегментов по номеру g, и смещения s.
Недостатком данного метода распределения памяти является фрагментация на уровне сегментов и более медленное по сравнению со страничной организацией преобразование адреса.
Слайд 34

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

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

Слайд 35

В.А.Серков "Операционные системы" 3 Данный метод представляет собой комбинацию страничного и

В.А.Серков "Операционные системы" 3

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

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

В.А.Серков "Операционные системы" 3 Загрузка процесса выполняется операционной системой постранично, при

В.А.Серков "Операционные системы" 3

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

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

Свопинг

Свопинг

Слайд 38

В.А.Серков "Операционные системы" 3 При свопинге, в отличие от рассмотренных ранее

В.А.Серков "Операционные системы" 3

При свопинге, в отличие от рассмотренных ранее методов

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

В.А.Серков "Операционные системы" 3

В.А.Серков "Операционные системы" 3

Слайд 40

В.А.Серков "Операционные системы" 3

В.А.Серков "Операционные системы" 3

Слайд 41

В.А.Серков "Операционные системы" 3

В.А.Серков "Операционные системы" 3

Слайд 42

В.А.Серков "Операционные системы" 3 Соотношение параметров памяти

В.А.Серков "Операционные системы" 3

Соотношение параметров памяти

Слайд 43

Кэш-память

Кэш-память

Слайд 44

В.А.Серков "Операционные системы" 3 Кэш-память - это способ организации совместного функционирования

В.А.Серков "Операционные системы" 3

Кэш-память - это способ организации совместного функционирования двух

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

В.А.Серков "Операционные системы" 3 Механизм кэш-памяти является прозрачным для пользователя, который

В.А.Серков "Операционные системы" 3

Механизм кэш-памяти является прозрачным для пользователя, который не

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

В.А.Серков "Операционные системы" 3 Просматривается содержимое кэш-памяти с целью определения, не

В.А.Серков "Операционные системы" 3

Просматривается содержимое кэш-памяти с целью определения, не находятся

ли нужные данные в кэш-памяти; кэш-память не является адресуемой, поэтому поиск нужных данных осуществляется по содержимому - значению поля "адрес в оперативной памяти", взятому из запроса.
Слайд 47

В.А.Серков "Операционные системы" 3 Если данные обнаруживаются в кэш-памяти, то они

В.А.Серков "Операционные системы" 3

Если данные обнаруживаются в кэш-памяти, то они считываются

из нее, и результат передается в процессор.
Слайд 48

В.А.Серков "Операционные системы" 3 Если нужных данных нет, то они вместе

В.А.Серков "Операционные системы" 3

Если нужных данных нет, то они вместе со

своим адресом копируются из оперативной памяти в кэш-память, и результат выполнения запроса передается в процессор.
Слайд 49

В.А.Серков "Операционные системы" 3 При копировании данных может оказаться, что в

В.А.Серков "Операционные системы" 3

При копировании данных может оказаться, что в кэш-памяти

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

В.А.Серков "Операционные системы" 3 Кэш-память

В.А.Серков "Операционные системы" 3

Кэш-память