Основные подсистемы ОС: подсистема управления памятью

Содержание

Слайд 2

Иерархия типов памяти

Иерархия типов памяти


Слайд 3

Регистры процессора Имеют разное предназначение: от хранения адреса текущей исполняемой инструкции

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

Имеют разное предназначение: от хранения адреса текущей исполняемой инструкции до

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

Функции подсистемы управления основной памятью отслеживание свободной и занятой памяти; выделение

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

отслеживание свободной и занятой памяти;
выделение памяти процессам

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

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

Типы адресов

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

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

Типы адресов

Типы адресов


Слайд 7

Основная память Называется также оперативной памятью, или оперативным запоминающим устройством (ОЗУ)

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

Называется также оперативной памятью, или оперативным запоминающим устройством (ОЗУ)
На самом

низком уровне это микросхемы памяти — микросхемы, которые собственно «запоминают» информацию. Эти микросхемы соединяются с внешним миром четырьмя типами контактов:
Контакты питания (чтобы микросхема могла работать)
Контакты данных (чтобы микросхема могла обмениваться данными)
Контакты чтения/записи (определяющие, выполняется ли чтение или запись данных)
Контакты адреса (определяющие, куда записываются или откуда считываются данные)
Слайд 8

Чтение / запись в ОЗУ Сохранения данных в ОЗУ: На контактах

Чтение / запись в ОЗУ

Сохранения данных в ОЗУ:
На контактах микросхемы появляются

сохраняемые данные.
На контактах адреса появляется адрес, по которому будут сохранены данные.
На контакте чтение/запись устанавливается режим записи.
Чтение данных из ОЗУ:
На контактах адреса появляется адрес нужных данных.
На контакте чтение/запись устанавливается режим чтения.
Затребованные данные считываются с контактов данных.
Слайд 9

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

Организация основной памяти

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

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

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

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


Слайд 11

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

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

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

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

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

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

размещение данных в запоминающих устройствах разного

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

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

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

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

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

Распределение памяти фиксированными разделами: с общей очередью (а), с отдельными очередями (б)

Распределение памяти фиксированными разделами: с общей очередью (а), с отдельными очередями

(б)
Слайд 15

Достоинства и недостатки работы с жесткими разделами Достоинство – простота реализации

Достоинства и недостатки работы с жесткими разделами

Достоинство – простота реализации
Недостаток –

жесткость (уровень мультипрограммирования ограничен числом разделов)
Слайд 16

Распределение памяти динамическими разделами Каждому вновь поступающему на выполнение приложению на

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

Каждому вновь поступающему на выполнение приложению на этапе

создания процесса выделяется вся необходимая ему память (если достаточный объем памяти отсутствует, то приложение не принимается на выполнение и процесс для него не создается).
После завершения процесса память освобождается, и на это место может быть загружен другой процесс.
Слайд 17

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

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

Слайд 18

Функции подсистемы при работе с динамическими разделами Ведение таблиц свободных и

Функции подсистемы при работе с динамическими разделами

Ведение таблиц свободных и занятых

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

Достоинства и недостатки работы с динамическими разделами Достоинство – гибкость (по

Достоинства и недостатки работы с динамическими разделами

Достоинство – гибкость (по сравнению

с фиксированными разделами)
Недостаток – фрагментация памяти.
Фрагментация – это наличие большого числа несмежных участков свободной памяти очень маленького размера (фрагментов).
Слайд 20

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

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

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

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

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

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

Слайд 22

СВОПИНГ И ВИРТУАЛЬНАЯ ПАМЯТЬ

СВОПИНГ И ВИРТУАЛЬНАЯ ПАМЯТЬ

Слайд 23

2 подхода к виртуализации памяти свопинг (swapping), или подкачка, – образы

2 подхода к виртуализации памяти

свопинг (swapping), или подкачка, – образы

процессов выгружаются на диск и возвращаются в оперативную память целиком;
виртуальная память (virtual memory) – между оперативной памятью и диском перемещаются части (сегменты, страницы и т. п.) образов процессов.
Слайд 24

Достоинства и недостатки свопинга Достоинство – относительная простота реализации Недостаток –

Достоинства и недостатки свопинга

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

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

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

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

Страничная виртуальная память организует перемещение данных между памятью и

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

Страничный файл (файл подкачки) Для временного хранения сегментов и страниц на

Страничный файл (файл подкачки)

Для временного хранения сегментов и страниц на диске

отводится специальная область: специальный файл (Windows) или раздел (Linux), называемые файлом (разделом) подкачки.
Употребляется также термин страничный файл, т.к. используется работа со страницами (page file, или paging file).
Слайд 27

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

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



Слайд 28

Стратегии управления памятью стратегии выборки (загрузки); а) стратегии выборки по запросу

Стратегии управления памятью

стратегии выборки (загрузки);
а) стратегии выборки по запросу (по

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

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

Виртуальная страница (определение)

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

фиксированного для данной системы размера. Такая область называется виртуальной страницей (virtual page).
Вся оперативная память машины также делится на части такого же размера, называемые физическими страницами (или страничными фреймами). В процессорах Intel Pentium он равен 4 кбайтам.
Слайд 30

Таблица страниц Для каждого процесса операционная система создает таблицу страниц –

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

Для каждого процесса операционная система создает таблицу страниц – информационную

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

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

Алгоритм работы виртуальной памяти

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

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

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

Алгоритм работы виртуальной памяти

Если нужная виртуальная страница в данный момент выгружена

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

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

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

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

Алгоритм работы виртуальной памяти

Слайд 34

Виртуальный и физический адреса Виртуальный адрес - (р, sv) - где:

Виртуальный и физический адреса

Виртуальный адрес - (р, sv) -
где:
р –

порядковый номер виртуальной страницы процесса (нумерация страниц начинается с 0),
sv – смещение в пределах виртуальной страницы. Физический адрес- (n, sf)-
где :
n – номер физической страницы,
sf – смещение в пределах физической страницы.
Задача подсистемы виртуальной памяти –
отображение (р, sv) в (n, sf).
Слайд 35

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

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

объем страницы выбирается равным степени двойки –

2k (это значит - смещение может быть получено простым отделением k младших разрядов в двоичной записи адреса, а оставшиеся старшие разряды адреса представляют собой двоичную запись номера страницы);
в пределах страницы непрерывная последовательность виртуальных адресов однозначно отображается в непрерывную последовательность физических адресов ( значит, смещения в виртуальном и физическом адресах sv и sf равны между собой).