Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
OS.docx
Скачиваний:
2
Добавлен:
19.11.2019
Размер:
73.2 Кб
Скачать

1. Иерархия памяти

2. Методы разделения памяти

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

Физическая организация памяти

Запоминающие устройства компьютера разделяют, как минимум, на два уровня: основную (главную,

оперативную, физическую) и вторичную (внешнюю) память.

Основная память представляет собой упорядоченный массив однобайтовых ячеек, каждая из

которых имеет свой уникальный адрес (номер). Процессор извлекает команду из основной

памяти, декодирует и выполняет ее. Для выполнения команды могут потребоваться

обращения еще к нескольким ячейкам основной памяти.

Вторичную память (это главным образом диски) также можно рассматривать как одномерное

линейное адресное пространство, состоящее из последовательности байтов. В отличие от

оперативной памяти, она является энергонезависимой, имеет существенно большую емкость

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

Оперативная память – важнейший ресурс вычислительной системы, требующий управления со

стороны ОС. Причина – процессы и потоки хранятся и обрабатываются в оперативной памяти.

Память распределяется между приложениями и модулями самой операционной системы.

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

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

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

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

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

Представление потоков в оперативной памяти

Для идентификации переменных и команд программы используются разные типы адресов:

Символьные (имена переменных, функций и т.п.);

Логические/Виртуальные – условные числовые значения, вырабатываемые

компиляторами;

Физические – адреса фактического размещения в оперативной памяти.

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

1. Отображение логического адресного пространства процесса на физическое адресное

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

2. Распределение памяти между конкурирующими процессами

3. Контроль доступа к адресным пространствам процессов

4. Выгрузка процессов (целиком или частично) во внешнюю память

5. Учет свободной и занятой памяти

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

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

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

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

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

Логические адреса обычно образуются на этапе создания загрузочного модуля (компоновки

программы)

Линейное непрерывное отображение

Связывание логического адреса, порожденного оператором программы, с физическим

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

выполнения

Обычно программа проходит нескольких шагов: текст на языке программирования ->

объектный модуль -> загрузочный модуль -> бинарный образ в памяти

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

Адреса в исходных текстах обычно символические. Компилятор связывает символические

адреса с перемещаемыми адресами.

Компоновщик связывают перемещаемые адреса с виртуальными адресами.

Каждое связывание - отображение одного адресного пространства в другое

Связывание адресов

Логическое адресное пространство

Символьное адресное пространство – совокупность всех допустимых идентификаторов переменных

Логическое адресное пространство – совокупность всех допустимых адресов, с которыми работает

процессор

Физическое адресное пространство – совокупность всех доступных физических адресов в

вычислительной системе

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

отслеживание (учет) свободной и занятой памяти;

первоначальное и динамическое распределение памяти процесса приложений и сaмой ОС;

освобождение памяти при завершении процессов;

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

полное или частичное вытеснение кодов и данных процессов из ОП на диск, когда размеры

ОП недостаточны для размещения всех процессов и возвращение их в ОП;

защита памяти, выделенной процессу, от возможных вмешательств со стороны других

процессов;

дефрагментация памяти

Классификация методов распределения памяти

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

однозадачной ОС.

В памяти размещается один пользовательский процесс.

Остается определить, где располагается пользовательская программа по отношению к ОС -

сверху, снизу или посередине

При этом часть ОС может располагаться в ROM (read-only-memory) (например, BIOS,

драйверы устройств)

Главный фактор, влияющий на это решение - расположение вектора прерываний, который обычно

локализован в нижней части памяти, поэтому ОС также размещают в нижней.

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

быть организована при помощи одного граничного регистра, содержащего адрес границы ОС .

Схема с фиксированными разделами

Схема основана на предварительном разбиении общего адресного пространства на несколько

разделов фиксированной величины.

Процессы помещаются в тот или иной раздел.

Связывание физических и логических адресов процесса происходит на этапе его загрузки.

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

Очевидным недостатком схемы является то, что число одновременно выполняемых

процессов ограничено числом разделов.

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

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

Фрагментация возникает потому, что процесс не полностью занимает выделенный ему раздел

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

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

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

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

участков

Смежные свободные участки могут быть объединены в один.

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

Типовой цикл работы менеджера:

анализ запроса на выделение свободного участка (раздела);

выборка его среди имеющихся в соответствие с одной из стратегий

загрузка процесса в выбранный раздел

внесение изменений в таблицы свободных и занятых областей

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

Схема с динамическими разделами

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

1. Первый подходящий (first-fit). Процесс размещается в первое подходящее по размеру пустое

место

2. Наиболее подходящий (best-fit). Процесс размещается в наименьшее подходящее по размеру

пустое место

3. Наименее подходящий (worst-fit). Процесс размещается в наибольшее пустое место

Внутренняя фрагментация

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

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

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

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

достаточного размера.

2. Коррекция таблиц свободных и занятых областей.

3. Изменение адресов команд и данных, к которым обращаются процессы при их перемещении

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

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

абсолютные адреса основной памяти.

5. Защита памяти, выделяемой процессу, от взаимного влияния других процессов.

Достоинства распределения памяти перемещаемыми разделами: эффективное использование

оперативной памяти, исключение внутренней и внешней фрагментации.

Недостаток: дополнительные накладные расходы ОС.

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

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

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

для этого виртуальная память решает следующие задачи:

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

программы в оперативной памяти, а часть на диске;

2. перемещает по мере необходимости данные между запоминающими устройствами

разного типа, например, подгружает нужную часть программы с диска в оперативную

память;

3. преобразует виртуальные адреса в физические.

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

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

пользователю.

1. Виртуальная память позволяет адресовать пространство, гораздо большее, чем емкость

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

2. В соответствии с принципом локальности для реальных программ обычно нет

необходимости в помещении их в физическую память целиком

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

ряд преимуществ

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

1. Страничная виртуальная память – организует перемещение данных между ОП и диском

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

небольшого размера.

2. Сегментная виртуальная память предусматривает перемещение данных сегментами – частями

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

смыслового значения данных.

3. Сегментно-страничная виртуальная память использует двухуровневое деление: виртуальное

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

Единицей перемещения данных является страница.

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

страничный файл или файл подкачки (paging file).

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

В наиболее простом и наиболее часто используемом случае страничной ВП она (и ОП)

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

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

Соответствующие единицы в ОП образуют страничные кадры (page frames)

В целом, система поддержки страничной ВП памяти называется пейджингом (paging)

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

Управление страничным обменом - Задачи управления страничным обменом:

- когда передавать страницу в основную память;

- где размещать страницу в физической памяти;

- какую страницу основной памяти выбирать для замещения, если в основной

памяти нет свободных страниц;

- сколько страниц процесса следует загрузить в основную память;

- когда измененная страница должна быть записана во вторичную память;

- сколько процессов размещать в основной памяти

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

Логическое адресное пространство представляет собой набор сегментов

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

разрешенные виды обращений, флаги присутствия)

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

Это отличается от схемы пэйджинга, где пользователь задает только один адрес, который

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

Каждому сегменту соответствует линейная последовательность адресов от 0 до максимума

Различные сегменты могут иметь разные длины, которые могут меняться динамически

(например, сегмент стека)

В элементе таблицы сегментов, помимо физического адреса начала сегмента (если

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

Если размер смещения в виртуальном адресе выходит за пределы размера сегмента,

возникает прерывание__

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]