Управление памятью
Иерархическая организация памяти
Иерархия машинной памяти
Типы адресов
3. Алгоритмы распределения памяти
Распределение памяти фиксированными разделами
Распределение памяти динамическими разделами
Распределение памяти перемещаемыми разделами
Страничное распределение памяти
Сегментное распределение памяти
Странично-сегментное распределение
4. Свопинг. Кэширование. Виртуальная память

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

1. Управление памятью

1.
2.
3.
4.
Иерархическая организация памяти
Функции ОC по управлению памятью
Алгоритмы распределения памяти
Свопинг. Кэширование. Виртуальная
память

2. Иерархическая организация памяти

1.
Иерархическая организация памяти
Память компьютера представляет собой набор
запоминающих устройств (ЗУ) – технических
средств, осуществляющих запись, хранение и
выдачу информации.
Основными их характеристиками являются
емкость и быстродействие.
Один из пяти принципов построения ЭВМ,
сформулированный Дж. фон Нейманом - память
должна иметь иерархическую структуру.

3. Иерархия машинной памяти

4.

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

5.

Для идентификации переменных и команд
используются
символьные имена (метки)
виртуальные адреса
физические адреса

6. Типы адресов

7.

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

8.

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

9.

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

10.

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

11. 3. Алгоритмы распределения памяти

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

13.

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

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

15.

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

16.

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

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

18.

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

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

20.

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

21.

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

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

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

23.

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

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

25. 4. Свопинг. Кэширование. Виртуальная память

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

26.

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

27.

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

28.

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

29.

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