36253

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

Доклад

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

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

Русский

2014-09-23

71.5 KB

36 чел.

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.
При выполнении программы сначала выбирается модуль, который должен быть выполнен первым. Но соответствующий ему виртуальный сегмент не переносится полностью в ОП. В этом модуле выбирается совокупность команд, с которой начинается счет программы, находящаяся в пределах адресов некоторой виртуальной страницы. Именно для этой страницы и выделяется блок оперативной памяти. После перенесения в него текста программы устанавливается соответствие между адресами выбранной виртуальной страницы и выделенной физической страницы. По мере исполнения загруженной части программы происходит соответствующее преобразование виртуальных адресов в физические. При обращении к виртуальной странице, еще не отображенной на соответствующую физическую, система определяет требуемый сегмент, отыскивает в нем необходимую виртуальную страницу и производит ее отображение на некоторую физическую страницу.
Данная схема работы с виртуальной памятью обеспечивает должный компромисс при удовлетворении требований как пользователя, так и ОС. Система имеет возможность эффективно распределять ОП и увеличивать пропускную способность на основе преимуществ страничной по требованию схемы, а пользователь – использовать преимущества модульного программирования и писать сколь угодно большие программы.


 

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

22019. Общая схема реакций 129.5 KB
  Кинетика окисления ионов Fe2 образование продуктов перекисного окисления липидов MDA и хемилюминесценции I в суспензии митохондрий к которой добавлены ионы двухвалентного железа момент введения показан стрелкой Vladimirov Yu. Кинетика окисления ионов Fe2 образование продуктов перекисного окисления липидов MDA и хемилюминесценции I в суспензии митохондрий к которой добавлены ионы двухвалентного железа момент введения показан стрелкой Vladimirov Yu. Кинетика процесса перекисного окисления обладает большой сложностью...
22020. Кинетика химических реакций 144.5 KB
  Зависимость изменения концентрации участников реакции т. субстратов и продуктов от времени называют кинетикой реакции. Итак повторим некоторые определения: Субстраты вещества вступающие в реакцию Продукты вещества образующиеся в результате реакции Промежуточные вещества продукты сразу же вступающие в новую реакцию Скорость реакции изменение концентрации одного из продуктов который рассматривается в качестве главного.
22021. Принцип метода ЭПР 488.5 KB
  Кроме свободнорадикальных состояний методом ЭПРисследуют триплетные состояния возникающие в ходе фотобиологических процессов. Пионерами применения ЭПР в биологических исследованиях в СССР были Л. Характеристики спектров ЭПР Амплитуда сигнала Сигнал ЭПР представляет собой первую производную от линии.
22022. Сила, работа и энергия 219 KB
  Экспериментальная работа с биологическими объектами ставит своей задачей по сути дела моделирование процессов протекающих в живом организме. Сила работа и энергия Из физики мы знаем что сила это причина изменения скорости тела. По определению работа A равна произведению силы F действующей на некоторое тело на перемещение s этого тела в направлении действия силы. И сила и перемещение векторы; работа же скалярная величина равная призведению этих векторов: 1 Будучи скаляром работа рассматривается в термодинамике а...
22023. Реакции окисления-восстановления 126.5 KB
  Атомы цинка могут переходить из металлической решетки в водный раствор в виде ионов цинка Zn2; при этом освободившиеся электроны уходят по электрической цепи т. происходит процесс: Zn Zn2 2e Отрыв электрона от цинка называется процессом его окисления присоединение электронов к ионам цинка называют их восстановлением. Интуитивно мы понимаем что увеличение потенциала будет способствовать восстановлению ионов цинка до металлического цинка тогда как его уменьшение наоборот окислению цинка до ионов см. Для этого рассчитаем количество...
22024. Свечение, сопровождающее биохимические реакции 131.5 KB
  В последнее время все больший интерес привлекает собственное сверхслабое свечение клеток и тканей животных и человека которое обусловлено реакциями свободных радикалов: радикалов липидов и кислорода а также окиси азота соединениями играющими огромную роль в жизни организма а при определенных условиях и развитии ряда патологических состояний. свечение сопровождающее химические реакции называется хемилюминесценцией ХЛ. Процессы жизнедеятельности как теперь стало известно практически всегда сопровождаются очень слабым...
22025. Собственное свечение клеток и тканей животных 78.5 KB
  Строение Фазовые переходы липидов в мембранах Диффузия как результат случайных блужданий частиц Диффузия ионов при наличии электрического поля Кинетика реакций цепного окисления липидов Cвечение сопровождающее биохимические реакции Активированная хемилюминесценция и биолюминесценция как инструмент в медикобиологических исследованиях Метод электронного парамагнитного резонанса Кинетика химических реакций Кальциевый насос животной клетки Реакции окисления восстановления .
22026. Метод ДСК 195 KB
  Температуры плавления некоторых синтетических фосфолипидов Жирные кислоты Название остатка жирной кислоты Сокращённое название фосффолипида Температура плавления Tc oC 14:0 Миристоил ДМЛ 23 16:0 Пальмитоил ДПЛ 41 18:0 Стеароил ДСЛ 58 18:1 Олеил ДОЛ 21цисформа Полное название фосфолипидов: ДМЛ 12димиристоилфосфатидилхолин еще одно возможное сокращение ДМФХ€ и так далее. На первом этапе нас будут интерессовать три из них: Температура фазового перехода плавления Tc. T полуширина фазового перехода Tc температура...
22027. Активированная хемилюминесценция и биолюминесценция 114 KB
  Так например комплекс редкоземельного иона европия Eu3 c антибиотиком хлортетрациклином усиливает ХЛ при окислении липидов почти в 1000 раз. Хемилюминесцентный иммунный анализ По идеологии хемилюминесцентный иммунный анализ не отличается от радиоиммунного с той только разницей что вместо радиоактивномеченных субстратов или антител используются субстраты и антитела меченные соединением которое вступает в реакции сопровождающиеся хемилюминесценцией в присутствии перекиси водорода и катализатора обычно это фермент пероксидаза....