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


 

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

81374. Сторони, їх суб’єктивні права та обов’язки у виконавчому провадженні 28.83 KB
  За виконавчим документом про стягнення в дохід держави коштів або про вчинення інших дій на користь чи в інтересах держави від її імені виступає орган, за позовом якого судом винесено відповідне рішення, або орган державної влади (крім суду), який відповідно до закону прийняв таке рішення.
81375. Теория структурного функционализма в социологии и возможность ее применения для анализа социальной работы 37.56 KB
  Структурный функционализм методологический подход в социологии и социокультурной антропологии состоящий в трактовке общества как социальной системы имеющей свою структуру и механизмы взаимодействия структурных элементов каждый из которых выполняет собственную функцию. Базовой идеей структурного функционализма является идея социального порядка то есть имманентное стремление любой системы поддержать собственное равновесие согласовать между собой различные её элементы добиться согласия между ними. Основные положения Общество...
81376. Теории социального конфликта К. Маркса и Л. Козера, их применение для анализа социальной работы 35.67 KB
  Согласно концепции Маркса именно конфликты объясняют социальные процессы и изменения именно они пронизывают жизнь общества во всех его направлениях именно конфликтами объясняется осуществление революций и переход к новому типу общества. Маркс характеризовал конфликт как естественное состояние классового основанного на частной собственности общества присущее изначально его природе. В качестве основного типа конфликта для него выступало взаимодействие между производительными силами и производственными отношениями которые на определенном...
81377. Теория символического интеракционизма при анализе социальной работы 40.33 KB
  Сходное понимание слов жестов других символов облегчает взаимодействие позволяет интерпретировать поведение друг друга. Понимая поведение друг друга люди меняют свое поведение приспосабливая свои поступки к действиям другого координируя свои действия с другими людьми обучаясь видеть себя глазами группы обучаясь учитывать ожидания других людей. Социальные ожидания экспектации влияют на поведение человека он вынужден вести себя так как требуют нормы поведения как ожидают другие люди и общество в целом реализуя те права и...
81378. Феноменологический подход в социологии. Значение положений теории А. Шюца в анализе социальной работы 38.26 KB
  Следовательно необходимо погружение в мир в котором живет человек т. в мир жизни или жизненный мир. Отсюда центральные понятия его феноменологической социологии: жизненный мир повседневный мир повседневность социальный мир. В целом это мир наполненный смыслом который придают ему люди в повседневной жизни.
81379. Познавательные возможности и особенности количественной методологии в социологии при анализе социальной работы 37.93 KB
  Организация наблюдения включает в себя определение характеристик объекта целей и задач наблюдения выбор вида наблюдения разработку программы и процедуры наблюдения установление параметров наблюдения разработку техники выполнения результатов анализ результатов и выводов. добивается максимального взаимодействия с объектом наблюдения не обнаруживая как правило своих исследовательских намерений на практике.
81380. Понятие и виды социологических исследований 34.64 KB
  Качественные методы социологии позволяют социологу понять суть какоголибо социального явления а количественные понять насколько массово часто встречаемо это социальное явление и насколько оно важно для общества. Количественные методы: социологический опрос анкетирование и интервьюирование контентанализ документов наблюдение эксперимент Качественные методы: фокус группа исследование случая кейс стади этнографические исследования неструктурированные интервью.
81381. Измерение эффективности социальной работы и типы шкал. Приведите примеры использования 36.91 KB
  Показатели эффективности социальной работы. В связи с тем что социальная работа направлена на удовлетворение социальных потребностей человека правомерно признать главным критерием эффективности социальной работы как и определяющим критерием гуманности общества полноту удовлетворения интересов отдельного человека или различных сообществ людей во всех сферах жизни. Исходя из этих особенностей следует подходить к определению критериев социальной работы.