36253

Структура оперативной памяти. Организация виртуальной памяти. Страничное, сегментное и сегментно-страничное распределение памяти

Доклад

Информатика, кибернетика и программирование

Структура оперативной памяти. Организация виртуальной памяти. Страничное сегментное и сегментно-страничное распределение памяти. Структура памяти любой машины является многоуровневой.

Русский

2014-09-23

71.5 KB

37 чел.

6

PAGE  6

39. Структура оперативной памяти. Организация виртуальной памяти.
                Страничное, сегментное и сегментно-страничное распределение памяти.

Оперативная память.

Структура памяти любой машины является многоуровневой. Можно выделить уровни регистровой, оперативной и внешней памяти. Уровень оперативной памяти имеет первостепенное значение, т. к. ни один процесс в системе не может развиваться без такого ресурса как ОП. В составе любой ОС имеется распределитель ОП. Алгоритмы распределения ОП весьма разнообразны в силу следующих обстоятельств:

1) оперативная память, несмотря на развитие схемотехники, остается дорогим ресурсом, поэтому необходимо заботиться о ее эффективной с точки зрения ОС загрузке;

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

3) ОП является особым ресурсом, поскольку ее распределение должно происходить не изолированно, а согласованно с распределением ЦП.

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

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

В любой момент времени все пространство ОП представляет собой чередующуюся последовательность из занятых (распределенных) и свободных (не распределенных) участков памяти. Свободные участки ОП принято называть дырами.

Задача распределения ОП как на уровне долгосрочного, так и краткосрочного планирования распадается на три взаимосвязанных задачи: учета, выделения и возврата, которые заключаются в следующем:

  1.  Учету подвергаются по определенным правилам либо только дыры, либо, более часто, и дыры и занятые участки.
  2.  Решение задачи выделения происходит всякий раз, когда приходит запрос на выделение некоторой области памяти для отдельного задания или процесса в составе задания. В наиболее простых случаях выделение требуемого непрерывного участка памяти происходит из резерва свободной памяти, представленной некоторой совокупностью дыр. По определенным правилам выбирается дыра, внутри которой и выделяется участок памяти требуемого размера. Если все дыры имеют размер, меньший требуемого непрерывного участка памяти, то используется более сложный алгоритм. Тогда, если это допустимо в системе, распределение обеспечивается за счет переупорядочивания (перемещения) занятых участков и дыр с целью получить дыру большего размера. В других случаях память выделяется непрерывно так, что выделяемая область частично захватывает и дыры, и смежные занятые участки. Для обеспечения сохранности информации, находящейся в занятых участках распределяемой памяти, осуществляется ее переписывание на внешнюю память. В последующем эта информация возвращается либо в то же место ОП, либо в другое (тогда происходит перенастройка адресов средствами ОС) без нарушения логики работы других процессов.
  3.  Задача возврата решается при освобождении занятых участков по требованию самих процессов или без их ведома (в случае необходимости выделения памяти за счет занятых участков).

При решении указанных задач стремятся:

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

Независимо от того, какой из двух алгоритмов распределения памяти применяется – самая подходящая или первая подходящая дыра, распределение и освобождения памяти требует выполнения следующих действий:

  1.  найти свободную область не меньше требуемого размера;
  2.  поделить ее на две части – распределяемую и свободную;
  3.  при освобождении, если возможно, объединить освободившуюся область с любой свободной смежной областью.

Организация виртуальной оперативной памяти.

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

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

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

Обычно адрес – это число, которое однозначно определяет номер требуемого элемента хранения. Адресное пространство в этом случае есть последовательность целых чисел, начинающаяся с 0. Число различных адресов конечно и равно N, т.е. размеру адресного пространства (или объему памяти V).

В качестве адреса может быть использовано некоторое символьное имя, однозначно определяющее элемент хранения. Такие адреса называют виртуальными, а их совокупность – виртуальным адресным пространством. Виртуальное адресное пространство поддерживается с помощью программно-аппаратного механизма доступа, который является средством виртуализации физического адресного пространства. Программный слой обеспечивает преобразование каждого виртуального адреса в некоторый физический адрес.
Адресное пространство символических адресов, используемых в программах на ассемблере, можно рассматривать как виртуальное адресное пространство. Оно преобразуется статически в адресное пространство физической памяти средствами транслятора и загрузчика, которые в данном случае представляют собой программный компонент механизма доступа к ОП.
При построении виртуальной ОП приходиться распределять не только виртуальное и физическое адресные пространства ОП, но и адресное пространство внешней памяти.
В представлении как виртуального, так и физического адресного пространства оперативной памяти применяется несколько схем структуризации. В основе их лежит два класса схем структуризации: страничная схема и сегментная схема.
Рассмотрим сначала страничную схему. На первом шаге ее реализации сгруппируем адреса в адресном пространстве 0А N-1. В каждую группу, называемую страницей, должно входить одинаковое число адресов L. Обычно N=2n, L=2m, тогда 2(n-m) есть число страниц. Последовательность номеров страниц есть k= 0,1,2,…, 2(n-m)-1. Адресом начала страницы номер k является Ak0=kL.

Второй шаг структуризации заключается в том, что нумеруются адреса независимым образом внутри каждой страницы. В пределах каждой страницы адрес R меняется 0 до 2(m-1) и называется смещением. В результате адресное пространство превращается в двумерное, состоящее из адресных пар (k, R), где k – номер страницы, R – смещение. Каждая страница при этом рассматривается как отдельное адресное пространство.

Переход от странично-структурированного адресного пространства к одномерному непрерывному осуществляется по формуле A=kL+R по принципу база + смещение.
В случае страничной схемы с переменными страницами для задания адреса необходимы две координаты – базовый адрес страницы Ak0 и смещение R , которые в совокупности образуют адресную пару (Ak0, R). В этом случае переход от структурного представления (Ak0, R) к непрерывному выполняется по формуле A= Ak0+R, обратный же переход невозможен.
Второй класс схем структуризации называется сегментным. Он представляет собой обобщение варианта структуризации переменными страницами.
На первом шаге структуризации производят объединение адресов в группы, называемые сегментами. Размеры сегментов 1LsN, где s – номер сегмента. Упорядочивание номеров необязательно, номер выступает лишь как идентификатор сегмента.
На втором шаге структуризации каждому сегменту ставится в соответствие его базовый адрес AS0 , так что каждый сегмент определяется своими координатами (s, AS0). В каждом сегменте производится перенумерация адресов, адрес внутри сегмента называется смещением. Получаем трехмерное адресное пространство: (s, AS0, R). В рассматриваемой схеме можно осуществить переход от трехмерного адреса к одномерному непрерывному, обратный же переход невозможен. На практике при использовании сегментной схемы структуризации задают две координаты (s, R). Тогда при переходе к непрерывному адресу необходима операция установления соответствия (сегменту с номером s присваивается базовый адрес AS0).
Используются также комбинированные схемы структуризации, называемые сегментно-страничными: адресное пространство сначала структурируется фиксированными страницами, затем происходит группировка страниц в сегменты. Каждый сегмент с номером s содержит некоторое количество страниц, нумеруемых с нуля в возрастающем порядке. Адрес задается четырьмя координатами (s, AS0, R’, R), где s – номер сегмента, AS0 – базовый адрес сегмента, R’ – смещение страницы в пределах сегмента, R – смещение в пределах страницы.
Виртуальная память строится как для удовлетворения нужд пользователя, так и для повышения эффективности работы ОС в плане управления главными ресурсами – оперативной памятью и центральным процессором.
Использование виртуальной памяти позволяет ОС исключить потери памяти и уменьшить задержку при обращении процессов к данным, обеспечивает условия для функционирования максимального числа параллельных процессов, не мешающих друг другу, т.е. повышает пропускную способность системы. Виртуальная память дает возможность ОС решать и другие важные задачи: эффективное использования программных ресурсов, защита информации при развитии процессов, обеспечение взаимодействие между процессами и т. д.
Требования пользователей разнообразны и весьма противоречивы: одни пишут короткие программы, другие – длинные (больше объема ОП). Некоторые программы не структурированы (не содержат в своём составе дистанционно вызываемых программных единиц типа подпрограмм, процедур, блоков и т. д.), другие, наоборот, состоят из ведущей программы и некоторые числа вызываемых ей программных единиц.
Процесс исполнения программы одного пользователя может взаимодействовать с процессом исполнения программы другого пользователя посредством разделения одного и того же программного ресурса (процедуры).

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

Возможны две ситуации. В первом случае пользователь пишет программы без структуризации в пределах непрерывного адресного пространства. Во втором случае пользователь пишет уже структурированную программу, состоящую из функционально обособленных элементов. Адресное пространство каждого такого элемента рассматривается в виртуальном адресном пространстве как отдельный сегмент. Имена сегментов и смещения задает программист.
Каждая программа, которая погружена в виртуальную память, должна подвергаться структуризации. Если она на выходе не структурирована, то структуризацию проводят системные средства – трансляторы, программно-аппаратные средства. Даже если программа структурирована, она может быть подвергнута дополнительной структуризации.
Структуризация программы нужна для того, чтобы в процессе функционирования виртуальной памяти отдельные фрагменты (кодовые сегменты, массивы данных) можно было автоматически переносить на уровень внешней памяти и обратно на уровень ОП. Уровень внешней памяти используется для хранения, как копий, так и оригиналов информации, помещенной в ОП. В ОП хранится информация, непосредственно используемая процессами. Поэтому эти среды хранения называются соответственно архивной и рабочей. Элементы хранения каждой из них адресуются в пределах физических адресных пространств внешней и оперативной памяти.
Структуризация программ (программных текстов и соответствующих им адресных пространств) позволяет наиболее просто и эффективно решать системные задачи распределения рабочей и архивной сред хранения при помещении в них таких программ и их частей.

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

  1.  Чисто страничная схема функционирования виртуальной оперативной памяти. Разбиению на страницы одинакового размера L=2m подвергается как виртуальное, так и реальное адресные пространства. Структуризация осуществляется системой, а не пользователем. Весь текст программы размером Q слов полностью помещается в оперативную память, для чего требуется K=[Q/L]+1 виртуальных страниц, где [x] означает целую часть числа x.

При этом страницы располагаются не в одной непрерывной области (как предполагает пользователь), а в нескольких несмежных областях. При такой схеме ОС поставлена в наиболее благоприятные условия, поскольку вместо того, чтобы выделить один непрерывный участок памяти размером Q, ОС может найти K несмежных блоков памяти, что более вероятно.

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

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

2) Имеет место локальность вычислений – в течение малого промежутка времени t происходит обращение к памяти в пределах ограниченного интервала адресов. Обращение к другому блоку памяти может произойти в более редких случаях либо по командам перехода (условного или безусловного), либо после исполнения последней команды данного блока.

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

  1.  Сегментная схема функционирования виртуальной оперативной памяти. Адресное пространство и виртуальной памяти и физической ОП сегментно-структурировано. Предполагается также, что пользователь пишет сегментно-структурированную программу, текст которой состоит из произвольного числа сегментов. Размер Ni каждой i-й составной части программы произволен, но не превосходит размера оперативной памяти. Перед исполнением каждая часть программы заносится в архивную среду. Система производит замену пользовательского имени виртуального сегмента s’ на системный номер сегмента s, последовательно размещая сегменты в едином виртуальном адресном пространстве пользователя. При этом не требуется отображения всего адресного пространства программы на адресное пространство оперативной памяти. Перед исполнением программы выделяется непрерывная область в оперативной памяти (физический сегмент) для первой исполняемой части программы, написанной в пределах некоторого виртуального сегмента. По мере исполнения этой части производится отображение данного виртуального сегмента на выделенный физический. Система отслеживает обращение из одного сегмента к другому в составе одной программы и динамически обеспечивает связь с вызываемым сегментом. Вызываемая часть программы переносится из архивной среды в рабочую, после чего в процессе ее исполнения происходит отображение виртуального сегмента адресов на выделенный физический сегмент и т.д. Данная схема функционирования ОП ориентирована на пользователя. Он имеет возможность не только писать произвольно большие программы, но и разрабатывать их на основе принципов модульного программирования.
  1.  Сегментно-страничная схема функционирования виртуальной оперативной памяти. Здесь адресное пространство оперативной памяти разбивается на фиксированные страницы, причем размеры виртуальной и физической страниц берутся одинаковыми. Данная схема также ориентирована на то, что пользователь пишет многомодульные программы в сегментно-структурированном виртуальном адресном пространстве. Но в отличие от предыдущей схемы при погружении программы в виртуальную память каждый виртуальный сегмент не только получает системный номер, но и подвергается дополнительной структуризации. Каждому сегменту длиной qi отводится целое число виртуальных смежных страниц, перенумерованных в пределах каждого сегмента. При длине страницы L=2m их потребуется K=[qi/L]+1.
При выполнении программы сначала выбирается модуль, который должен быть выполнен первым. Но соответствующий ему виртуальный сегмент не переносится полностью в ОП. В этом модуле выбирается совокупность команд, с которой начинается счет программы, находящаяся в пределах адресов некоторой виртуальной страницы. Именно для этой страницы и выделяется блок оперативной памяти. После перенесения в него текста программы устанавливается соответствие между адресами выбранной виртуальной страницы и выделенной физической страницы. По мере исполнения загруженной части программы происходит соответствующее преобразование виртуальных адресов в физические. При обращении к виртуальной странице, еще не отображенной на соответствующую физическую, система определяет требуемый сегмент, отыскивает в нем необходимую виртуальную страницу и производит ее отображение на некоторую физическую страницу.
Данная схема работы с виртуальной памятью обеспечивает должный компромисс при удовлетворении требований как пользователя, так и ОС. Система имеет возможность эффективно распределять ОП и увеличивать пропускную способность на основе преимуществ страничной по требованию схемы, а пользователь – использовать преимущества модульного программирования и писать сколь угодно большие программы.


 

А также другие работы, которые могут Вас заинтересовать

22165. Порядок создания предприятия 346.63 KB
  Обычно предприниматели выбирают вид деятельности, подсказанный предыдущим профессиональным опытом. Опыт помогает сориентироваться на рынке данного вида товаров и услуг - профессионалам примерно известен спрос и особенности продукции, что даёт возможность быстро сформировать клиентуру
22166. ИСПОЛЬЗОВАНИЕ УЛЬТРАЗВУКОВЫХ ПРЕОБРАЗОВАТЕЛЕЙ 319.5 KB
  ФИЗИЧЕСКИЕ ОСНОВЫ УЛЬТРАЗВУКОВЫХ КОЛЕБАНИЙ 1. Природа и получение ультразвуковых колебаний 1. ФИЗИЧЕСКИЕ ОСНОВЫ УЛЬТРАЗВУКОВЫХ КОЛЕБАНИЙ. Природа и получение ультразвуковых колебаний Упругие механические колебания распространяющиеся в воздухе воспринимают обычно как звуки.
22167. УЛЬТРАЗВУК И УЛЬТРАЗВУКОВЫЕ ПРЕОБРАЗОВАТЕЛИ 1.27 MB
  ПРЕОБРАЗОВАТЕЛИ 19 2. Серийные преобразователи 27 2. Специальные преобразователи и контактные среды 31 2.
22168. Понятие затрат, общие положения по управлению затратами 182 KB
  Управление затратами – это не минимизация затрат, что может привести к сокращению производства, а более эффективное использование ресурсов компании, их экономия и максимизация отдачи от них на всех этапах производственного процесса. Постановка процесса управления затратами в компании заключается в признании затрат
22169. ФОТОПРИЕМНИКИ 965.5 KB
  25 Заключение31 Контрольные вопросы. Для ВОП характерны два основных способа получения измерительной информации. Первый способ отражает работу ВОП рефлектометрического типа для которых наиболее характерно отсутствие контакта с объектом измерений или вспомогательным измерительным звеном. Рассмотрим зависимость выходного сигнала ВОП на примере преобразования светового потока отражающегося без потерь и рассеяния от движущейся плоской поверхности.
22170. Явления, эффекты, законы. Восстановление связей между состояниями вещества или предмета и внешними физическими полями 830.5 KB
  В рассматриваемом курсе мы условно разобьем физические величины на ряд групп: пространственновременные физические величины; механические физические величины; тепловые физические величины; акустические физические величины; электромагнитные физические величины; оптические физические величины; ядерные физические величины; химические физические величины. Приборы позволяющие измерять перечисленные физические величины разнообразны по принципу работы используемым явлениям эффектам конструктивному исполнению параметрам...
22171. ТЕПЛОВЫЕ ЯВЛЕНИЯ 112.5 KB
  ОБЩИЕ ПОНЯТИЕ ТЕОРИИ ТЕПЛОВЫХ ЯВЛЕНИЙ В отличие от механической энергии которая может изменяться только за счет работы внутренняя энергия может изменяться как за счет работы так и при контакте с телами имеющими другую температуру т.При соприкосновении двух тел имеющих различную температуру происходит обмен энергией движения структурных частиц молекул атомов свободных электронов вследствие чего интенсивность движения частиц тела имеющего меньшую температуру увеличивается а интенсивность движения частиц тела с более высокой...
22172. ТЕРМОМАГНИТНЫЙ МЕТОД ИЗМЕРЕНИЯ ТЕМПЕРАТУРЫ 195 KB
  Зависимость парамагнитной восприимчивости от Температуры 4 2. Экспериментально достижимая область температур постоянно понижается; вместе с тем повышаются требования к точности измерения температуры поэтому конструирование новых и надёжных приборов становиться жизненно необходимой задачей. Можно сказать что измерение температуры в миллиградусном диапазоне более сложно чем само достижение этих температур и едва ли менее важно.
22173. ТЕРМОЭЛЕКТРИЧЕСКИЕ ПРЕОБРАЗОВАТЕЛИ. Конструкция термопар 5.65 MB
  Если один спай термопары называемый рабочим спаем поместить в среду с температурой t1 подлежащей измерению а температуру другого нерабочего спая поддерживать постоянной то и независимо от того каким образом произведено соединение термоэлектродов спайкой сваркой и т. Таким образом естественной входной величиной термопары является температура t1 ее рабочего спая а выходной величиной термоэ. Приборы представляющие собой сочетание термопары и указателя используемые для измерения температуры часто называют не термометрами а...