Мегаобучалка Главная | О нас | Обратная связь


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



2019-08-13 274 Обсуждений (0)
Распределение динамическими разделами 0.00 из 5.00 0 оценок




§ Изначально память на разделы не разделена. Процессы целиком помещаются в разделы;

§ При удалении процесса и записи в раздел нового процесса меньшего размера получается неиспользуемая память - присутствует фрагментация (между разделами), она меньше чем у схемы с фиксированными разделами;

§ Количество разделов жестко не задано.

31. Распределение перемещаемыми разделами.

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

ОС копирует содержимое разделов из одного места памяти в другое, корректируя таблицы свободных и занятых областей;

Сжатие может выполняться либо при каждом завершении процесса, либо только тогда, когда для вновь поступившего процесса нет свободного раздела достаточного размера;

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

32. Механизм виртуальной памяти и его функции. Диапазон виртуального адресного пространства процесса для х86 и х64 архитектур.

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

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

§ Механизм виртуальной памяти решает следующие задачи:

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

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

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

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

§ Наиболее распространенными реализациями виртуальной памяти является страничное, сегментное и странично-сегментное распределение памяти.

Диапазон виртуального адресного пространства процесса для х86 и х64 архитектур

Каждому процессу выделяется собственное виртуальное адресное пространство. Для 32-разрядных процессов его размер составляет 4 Гб. Соответственно 32-битный указатель может быть любым числом от 0x00000000 до 0xFFFFFFFF. Для 64-разрядных процессов размер адресного пространства равен 16 экзабайтам, поскольку 64-битный указатель может быть любым числом от 0x00000000 00000000 до 0xFFFFFFFF FFFFFFFF.

33. Страничное распределение виртуальной памяти. Таблицы страниц. Преобразование виртуального адреса в физический.

Страничное распределение виртуальной памяти

• Часть виртуальных страниц отображается на физические страничные блоки

• Аппаратура отслеживает присутствие конкретных страниц в физической памяти за счет бита присутствия-отсутствия.

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

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

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

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

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

Преобразование виртуального адреса в физический

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

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

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

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

34. Задание уровня доступа при сегментном распределении памяти. GDT и LDT таблицы, доступ к сегментам.

Задание уровня доступа при сегментном распределении памяти



2019-08-13 274 Обсуждений (0)
Распределение динамическими разделами 0.00 из 5.00 0 оценок









Обсуждение в статье: Распределение динамическими разделами

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (274)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.006 сек.)