Распределение динамическими разделами
§ Изначально память на разделы не разделена. Процессы целиком помещаются в разделы; § При удалении процесса и записи в раздел нового процесса меньшего размера получается неиспользуемая память - присутствует фрагментация (между разделами), она меньше чем у схемы с фиксированными разделами; § Количество разделов жестко не задано. 31. Распределение перемещаемыми разделами. Одним из методов борьбы с фрагментацией является перемещение всех занятых участков в одну область, а свободных в другую; ОС копирует содержимое разделов из одного места памяти в другое, корректируя таблицы свободных и занятых областей; Сжатие может выполняться либо при каждом завершении процесса, либо только тогда, когда для вновь поступившего процесса нет свободного раздела достаточного размера; Перемещения всей памяти занимает значительное время. 32. Механизм виртуальной памяти и его функции. Диапазон виртуального адресного пространства процесса для х86 и х64 архитектур. Механизм виртуальной памяти и его функции § Виртуальная память - это совокупность программно-аппаратных средств, позволяющих пользователям писать программы, размер которых превосходит имеющуюся оперативную память; § Механизм виртуальной памяти решает следующие задачи: • размещает данные в запоминающих устройствах разного типа, например, часть программы в оперативной памяти, а часть на диске, т.е. подменяет оперативную память дисковой; • перемещает по мере необходимости данные между запоминающими устройствами разного типа, например, подгружает нужную часть программы с диска в оперативную память и обратно; • преобразует виртуальные адреса в физические. § Все эти действия выполняются автоматически, без участия программиста; § Наиболее распространенными реализациями виртуальной памяти является страничное, сегментное и странично-сегментное распределение памяти. Диапазон виртуального адресного пространства процесса для х86 и х64 архитектур Каждому процессу выделяется собственное виртуальное адресное пространство. Для 32-разрядных процессов его размер составляет 4 Гб. Соответственно 32-битный указатель может быть любым числом от 0x00000000 до 0xFFFFFFFF. Для 64-разрядных процессов размер адресного пространства равен 16 экзабайтам, поскольку 64-битный указатель может быть любым числом от 0x00000000 00000000 до 0xFFFFFFFF FFFFFFFF. 33. Страничное распределение виртуальной памяти. Таблицы страниц. Преобразование виртуального адреса в физический. Страничное распределение виртуальной памяти • Часть виртуальных страниц отображается на физические страничные блоки • Аппаратура отслеживает присутствие конкретных страниц в физической памяти за счет бита присутствия-отсутствия. • При обращении программы к виртуальной странице, не отображенной на физическую память вырабатывается системное прерывание, которое называется ошибкой отсутствия страницы. Вызывается программный диспетчер задач операционной системы, который выбирает редко используемый страничный блок и сбрасывает его содержимое на диск. Затем он извлекает страницу, на которую была ссылка, и помещает ее в только что освободившийся страничный блок, вносит изменения в таблицы и заново запускает прерванную команду. Таблицы страниц При простой реализации отображение виртуальных адресов на физические может быть сведено к следующему: виртуальный адрес делится на номер виртуальной страницы (старшие биты) и смещение (младшие биты). Номер виртуальной страницы используется в качестве индекса внутри таблицы страниц, который нужен для поиска записи для этой виртуальной страницы. Из записи в таблице страниц берется номер страничного блока (если таковой имеется). Номер страничного блока присоединяется к старшим битам смещения, заменяя собой номер виртуальной страницы, чтобы сформировать физический адрес, который может быть послан к памяти. Таким образом, предназначение таблицы страниц заключается в отображении виртуальных страниц на страничные блоки. Преобразование виртуального адреса в физический Переход от виртуальных адресов к физическим может осуществляться двумя способами. • В первом случае замену виртуальных адресов на физические делает специальная системная программа - перемещающий загрузчик. Перемещающий загрузчик на основании имеющихся у него исходных данных о начальном адресе физической памяти, в которую предстоит загружать программу, и информации, предоставленной транслятором об адресно-зависимых константах программы, выполняет загрузку программы, совмещая ее с заменых виртуальных адресов физическими. • Второй способ заключается в том, что программа загружается в память в неизмененном виде в виртуальных адресах, при этом операционная система фиксирует смещение действительного расположения программного кода относительно виртуального адресного пространства. Во время выполнения программы при каждом обращении к оперативной памяти выполняется преобразование виртуального адреса в физический. В некоторых случаях (обычно в специализированных системах), когда заранее точно известно, в какой области оперативной памяти будет выполняться программа, транслятор выдает исполняемый код сразу в физических адресах. 34. Задание уровня доступа при сегментном распределении памяти. GDT и LDT таблицы, доступ к сегментам. Задание уровня доступа при сегментном распределении памяти
Популярное: Модели организации как закрытой, открытой, частично открытой системы: Закрытая система имеет жесткие фиксированные границы, ее действия относительно независимы... Как построить свою речь (словесное оформление):
При подготовке публичного выступления перед оратором возникает вопрос, как лучше словесно оформить свою... Личность ребенка как объект и субъект в образовательной технологии: В настоящее время в России идет становление новой системы образования, ориентированного на вхождение... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (299)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |