Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Память и отображения, виртуальное адресное пространство.



Термин " память" используется для обозначения любого устройства, способного хранить информацию. Здесь будем иметь в виду оперативную память компьютера (ОЗУ). Управление памятью – одна из основных задач ОС, и занимается им менеджер памяти, который входит в состав ядра ОС. /* (от редактора) */

/* каже это муть

Если не оговорено иное, под памятью (memory) понимается оперативная память компьютера, в отличие от внешней памяти (storage).

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

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

· отслеживание свободной и занятой памяти;

· выделение памяти процессам и ее освобождение при завершении процесса;

· вытеснение процессов из оперативной памяти на диск при нехватке оперативной памяти и возвращение в оперативную память при освобождении места в ней (механизм виртуальной памяти);

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

· динамическое выделение памяти процессам (выделение памяти по запросу приложения во время его выполнения); выделяются свободные участки, расположенные произвольным образом, что приводит к фрагментации памяти;

· дефрагментация освобожденной динамической памяти;

· выделение памяти для создания служебных структур ОС (дескрипторы процессов и потоков, таблицы распределения ресурсов, буферы, синхронизирующие объекты и т.д.;

· защита памяти – выполняемый процесс не должен записывать или читать данные из памяти, назначенной другому процессу.

Существует понятие физической оперативной памяти, с которой собственно и работает процессор, извлекая из неё команды и данные и помещая в неё результаты вычислений. Физическая память представляет собой упорядоченное множество пронумерованных ячеек. Количество ячеек физической памяти ограничено и фиксировано. С другой стороны, программист обращается к памяти с помощью некоторого набора логических имён, которые, как правило, являются символьными и для которых отсутствует отношение порядка. Имена переменных и входных точек программных модулей составляют пространство имён (см. схему). */

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

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

Появление виртуальной памяти (ВП) стало одним из главных усовершенствований архитектуры компьютеров. Она была впервые реализована в 1959 г. на компьютере " Атлас" в Манчестерском университете и приобрела популярность только спустя десятилетие.

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

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

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

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

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

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

Размер виртуального адресного пространства может быть меньше объёма физической памяти (старые 16-разрядные ЭВМ могли адресовать только до 216 = 64К адресов). В таком случае вся физическая память разбивалась на разделы объёмом по 64К, и на каждый такой раздел с помощью специальных регистров осуществлялось отображение своего виртуального адресного пространства.

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

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

Главной особенностью виртуальной памяти является преобразование (или трансляция) адреса, к которому производится обращение со стороны программы, в реальный адрес, причём это преобразование должно выполняться быстро. Механизмы динамического преобразования адресов (ДПА) преобразуют смежные адреса виртуальной памяти в необязательно смежные адреса реальной памяти. Таким образом, пользователь освобождается от необходимости учитывать размещение своих процедур и данных в реальной памяти. Программа обращается к виртуальной памяти по виртуальному адресу.

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

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

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

Две модели преобразования адреса – сегментная и страничная – могут применяться как в чистом виде, так и комбинироваться, и тогда сегменты реализуются как объекты переменных размеров, формируемые из страниц фиксированного размера. В таком случае адрес состоит из трех компонентов < сегмент, страница, смещение>.

/* пиздец какой-то */

 


Поделиться:



Популярное:

Последнее изменение этой страницы: 2016-07-14; Просмотров: 1030; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.013 с.)
Главная | Случайная страница | Обратная связь