Лекция 3 Управление памятью. Распределение памяти предполагает удовлетворение потребностей как пользователей, так и системных средств. Эти требования.

Презентация:



Advertisements
Похожие презентации
Процессоры Intel в защищенном режиме. Недостатки реального режима Невозможно адресовать пространство памяти свыше 1-го Мб Невозможно работать с массивами,
Advertisements

Дисциплина: Операционные системы § 7. Организация памяти компьютера План: 1.Физическая память компьютера. 2.Логическая память компьютера. 3.Функции системы.
Лекция 6. Способы адресации в микропроцессорных системах.
1 ЛЕКЦИЯ 3 ХАРАКТЕРИСТИКА ЗАЩИЩЕННОГО РЕЖИМА РАБОТЫ МИКРОПРОЦЕССОРА В реальном режиме работы поддерживается выполнение всего одной программы. Для этого.
Операционные системы, среды и оболочки Управление памятью.
Системное программное обеспечение Кыргызско – Российский Славянский Университет Кафедра ИВТ, 3-й курс ИВТ, 5 семестр Лекция 9.
Лекция 5 Управление памятью Виртуальное адресное пространство.
Лекция 7 Управление памятью Сегментная, страничная и сегментно- страничная организация памяти.
Тема 2. Способы адресации и система команд МП. Непосредственная адресация Суть способа. Требуемые данные (#data ̶ непосредственный операнд, константа)
Основы операционных систем.
Управление памятью. В ИРТУАЛЬНАЯ ПАМЯТЬ Основная идея заключается в разбиении программы на части, и в память эти части загружаются по очереди. Программа.
Учебный курс Принципы построения и функционирования ЭВМ Лекция 11 Микрокоманды и микрооперации профессор ГУ-ВШЭ, доктор технических наук Геннадий Михайлович.
Функциональные возможности ВС. Составные части понятия «архитектура» Вычислительные и логические возможности ВС. Они обусловливаются системой команд (СК),
Прерывания Определение прерывания Прерывания представляют собой механизм, позволяющий координировать параллельное функционирование отдельных устройств.
1 Управление памятью Системное и прикладное программное обеспечение Малышенко Владислав Викторович.
Управление памятью. Модели памяти Линейное адресное пространство Страничная организация Сегментная организация Комбинированное определение адреса Виртуальная.
Учебный курс Принципы построения и функционирования ЭВМ Лекция 10 Типы адресации. Стеки. Процессоры. ОЗУ. профессор ГУ-ВШЭ, доктор технических наук Геннадий.
Управление памятью Управление физической памятью.
Управление памятью. Память является важнейшим ресурсом, требующим тщательного управления со стороны мультипрограммной операционной системы. Распределению.
Лекция 5 Управление памятью Виртуальное адресное пространство Непрерывное…..
Транксрипт:

Лекция 3 Управление памятью

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

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

Aсвободно D BB CCC a)a)б)в)г) a – начальное распределение; б – после завершения программы A; в – после завершения программы B; г – после завершения программы C Исходное состояние: V ОП = 10 МБ, для выполнения программ A, B, C, D требуются следующие объемы памяти: A – 2МБ, B – 1МБ, C – 4МБ, D – 4МБ. ПРИМЕР СТАТИЧЕСКОГО РАСПРЕДЕЛЕНИЯ ПАМЯТИ

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

Принцип виртуальной памяти предполагает, что пользователь при подготовке своей программы имеет дело не с физической ОП, действительно работающей в составе компьютера и имеющей некоторую фиксированную емкость, а с виртуальной (кажущейся) одноуровневой памятью, емкость которой равна всему адресному пространству, определяемому размером адресной шины (L ша ) компьютера: V вирт >> V физ, V вирт = 2 Lша. Виртуальная память, обеспечивая возможность программисту обращаться к очень большому объему непрерывного адресного пространства, предоставляемого в его монопольное распоряжение, обладает обычными свойствами: побайтовая адресация, время доступа, сравнимое со временем доступа к оперативной памяти.

Номер физической страницы Смещение в странице Номер программы Номер виртуальной страницы Смещение в странице Физический адрес Виртуальный адрес n p L Таблица страничного m=f(n, p) m L Принцип преобразования виртуального страничного адреса в физический

Пример преобразования адреса виртуальной страницы в адрес физической страницы Пусть компьютер использует адресное пространство, предполагающее разбиение на страницы объемом V стр =1, и имеет оперативную память V ОЗУ =3 страницы. Пусть на компьютере одновременно выполняются четыре программы, имеющие следующее количество страниц: V A =2, V B =1, V C =3, V D =2. Переключение между программами происходит через t k = 1. Время выполнения каждой страницы любой программы составляет t = 2t k. Страницы программ загружаются в оперативную память по мере их необходимости и, по возможности, в свободные области ОЗУ. Если вся память занята, то новая страница замещает ту, к которой дольше всего не было обращений (механизм LRU). Тогда таблица загрузки оперативной памяти и таблицы страничного преобразования для каждой программы будут следующий вид.

Страница Такты Динамическое распределение оперативной памяти ОЗУ 0А0А0А0А0А0А0D0D0D0D0D0D0C0C0C0C0C0C0C1C1C1C1C1C1C1C1C1C1C1C1C1C1 1B0B0B0B0B0B0A0A0А0А0А0А0D0D0D0D0D0D0D1D1D1D1D1D1D1D1D1D1D1D1 2C0C0C0C0C0C0B0B0B0B0B0B0A1A1А1А1А1А1A1A1А1А1А1А1 C2C2C2C2 Таблица страничного преобразования для программы A A Таблица страничного преобразования для программы B B Таблица страничного преобразования для программы C C Таблица страничного преобразования для программы D D

Архитектура компьютера различает физическое адресное пространство (ФАП) и логическое адресное пространство (ЛАП). Физическое адресное пространство – это память, организованная как простой одномерный массив байтов, доступ к которому реализуется аппаратурой памяти по адресу, присутствующему на шине адреса микропроцессорной системы (МПС). Логическое адресное пространство организуется программистом исходя из своих потребностей. Процессор автоматически транслирует логические адреса в физические, выдаваемые затем на системную шину. Трансляция логических адресов программ в физические осуществляет диспетчер памяти (блок управления памятью memory manager unit – MMU).

Варианты организации логического адресного пространства : – плоское (линейное) ЛАП; состоит из массива байтов, не имеющего определенной структуры; трансляция адреса не требуется, так как логический адрес совпадает с физическим; – сегментированное ЛАП; Состоит из сегментов, каждый из которых в общем случае содержит переменное число байтов; логический адрес содержит 2 части: идентификатор сегмента и смещение внутри сегмента. Трансляцию адреса проводит MMU; – страничное ЛАП; состоит из страниц, каждая из которых содержит фиксированное число байтов; логический адрес состоит из номера (идентификатора) страницы и смещения внутри страницы; трансляция проводится блоком управления памятью MMU; – сегментно-страничное ЛАП; состоит из сегментов, которые, в свою очередь, состоят из страниц; логический адрес состоит из идентификатора сегмента и смещения внутри сегмента. MMU производит трансляцию логического адреса в номер страницы и смещение в ней, которые затем транслируются в физический адрес.

Режимы формирования физического адреса: - режим реальных адресов (реальный режим); - режим защищенной памяти (защищенный режим). При работе в реальном режиме возможности процессора ограничены: - объем адресуемой памяти составляет 1 Мб, - длина сегмента постоянная и равна 2 16 байт, - отсутствует страничная организация памяти, - отсутствуют механизмы защиты. Этот режим обычно используется на начальном этапе загрузки компьютера для перехода в защищенный режим.

ФА - физический адрес ЭА - эффективный адрес (смещение в сегменте, формируемое исходя из режима адресации операнда Абаз - базовый адрес сегмента Формирование физического адреса в реальном режиме работы микропроцессора ФА - физический адрес Абаз - базовый адрес сегмента ЭА - эффективный адрес (смещение в сегменте, формируемое исходя из режима адресации операнда Для команды ADD AX,[CX+DI+25] эффективный адрес операнда ЭА = [CX]+[DI]+25 ФAФA команда операнд Сегмент кода Сегмент данных CS DS SS ES IP x2 4 ЭAЭA ФAФA Абаз Сегментные регистры

Обобщённая схема формирования адреса при сегментно-страничной организации памяти в защищённом режиме работы

Обобщённая схема формирования адреса при сегментно-страничной организации памяти

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

Бит разрядности D (demention) определяет длину адресов и операндов, используемых в команде по умолчанию. Бит пользователя U (User) может использоваться системными программистами по своему усмотрению. Доступен только на высшем уровне привилегий. Микропроцессор в своей работе этот бит игнорирует. Бит обращения A: устанавливается в 1при любом обращении к сегменту. Используется операционной системой для того, чтобы отслеживать сегменты, к которым дольше всего не было обращений.

Байт доступа определяет основные правила обращения с сегментом. Бит присутствия P показывает возможность доступа к сегменту. При P = 1 сегмент находится в физической памяти. Если P=0 (сегмент отсутствует), поля базового адреса и предела дескриптора игнорируются. При этом процессор отвергает все последующие попытки использовать дескриптор в командах. Операционная система копирует запрошенный сегмент с диска в память (при этом, возможно, удаляя другой сегмент), загружает в дескриптор новый базовый адрес сегмента, устанавливает P=1 и осуществляет рестарт, то есть повторное выполнение виноватой команды. Описанный процесс называется свопингом, или подкачкой. Поле DPL (Descriptor privilege level) указывает уровень привилегий дескриптора, определяемый возможность доступа к сегменту со стороны тех или иных программ.

СRAСегмент кода 10EDWAСегмент данных 0Т и пСистемный объект ФОРМАТ ПОЛЯ ТИПА БАЙТА ДОСТУПА В сегменте данных: бит направления расширения ED (Expand Down): ED = 1 – сегмент стека (относительный адрес должен быть больше размера сегмента), при ED = 0 – сегмент собственно данных (относительный адрес должен быть меньше или равен размера сегмента); бит разрешения записи W (Writeable): при W = 1 – разрешено изменение сегмента, при W = 0 запись в сегмент запрещена; при попытке записи в сегмент возникает исключение по защите памяти.

В сегменте кода: бит C (Conforming): бит подчинения или согласования – определяет дополнительные правила обращения, которые обеспечивают защиту сегментов программ (специальный порядок обращения к подчиненным и неподчиненным сегментам – разрешение или запрещение межсегментных переходов); При С = 1 – подчиненный сегмент кода. В этом случае сегмент намеренно лишается защиты по привилегиям. Такое средство удобно для организации в системе библиотек, программы которых должны быть доступны всем выполняющимся в системе задачам. Библиотечные программы оформляются как подчиненные сегменты кода и они могут быть вызваны командой типа CALL любой текущей задачей. При C= 0 – обычный сегмент кода; бит R (Readable) – бит считывания. Устанавливает, можно ли обращаться к сегменту только на исполнение или на исполнение и считывания (например, констант) как данных с помощью префикса замены сегмента. При R = 0 допускается только выборка из сегмента для выполнения через CS, при R = 1 чтение из сегмента разрешено. При любой попытке записи в сегмент кода возникает прерывание.

ФОРМАТ СЕЛЕКТОРА Index: поле индекса – номер дескриптора в соответствующей таблице дескрипторов. TI (Table Indicator): индикатор таблицы – показывает, к какой таблице идёт обращение. RPL (Request privilege level) – уровень привилегий запроса. При обращении сравнивается с полем DPL в байте доступа дескриптора. Обращение разрешается, если уровень привилегий запроса не ниже, чем уровень привилегий дескриптора.

ПОЛУЧЕНИЕ ДЕСКРИПТОРА, НАХОДЯЩЕГОСЯ В ГЛОБАЛЬНОЙ ТАБЛИЦЕ ДЕСКРИПТОРОВ x2 3