Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Связное и несвязное распределение памяти.




Самые первые ЭВМ требовали связного распределения – каждая программа должна была занимать один блок ячеек.

Свободная память

Программа пользователя

Операционная система

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

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

Основные способы распределения памяти.

Все способы можно разделить на 2 класса в зависимости оттого, используются ли перемещения сегментов процессов между ОП и диском или нет.

Методы без перемещения сегментов:

1. с фиксированными разделами

2. с динамическими разделами

3. с перемещаемыми разделами.

Методы с перемещением сегментов:

1. со страничным распределением

2. с сегментным распределением

3. с сегментно-страничным распределением.

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

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

Динамические разделы. В общем случае память не делится на разделы, сначала вся память для приложений свободна, каждому процессу на этапе создания выделяется необходимая память, после завершения вся память освобождается. Таким образом в произвольный момент времени ОП представляет собой последовательность занятых и свободных участков. Функции ОС: ведение таблиц свободных и занятых областей памяти; при создании новых процессов – анализ требуемой памяти, просмотр таблицы свободных областей и выбор раздела необходимых размеров; сама загрузка программы и корректировка таблиц свободных и занятых областей; после завершения процесса корректировка таблиц. Недостаток – фрагментация памяти – наличие большого числа несмежных свободных участков. Распределение памяти с динамическими разделами лежит в основе подсистем управления памяти многих мультипрограмм 60–70 годов.

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

 

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

 

 

30 марта 2012 г.

Виртуальная память.

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

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

Виртуализация осуществляется посредством 2 подходов: swapping (свопинг) – образы процессов перегружаются на диск и обратно целиком; virtual memory – между ОП и диском перемещаются части образов процессов. Свопинг представляет собой частный и наиболее простой случай виртуальной памяти, при котором в основной памяти в каждый момент времени находится только одна программа. Программа выполняется по мере возможного, потом на её место вклинивается другая программа. Этот метод эффективен, когда основная память имеет ограниченные размеры. Ему свойственна избыточность, а именно при активизации процесса для его выполнения, как правило, не требуется загружать в память все его сегменты полностью, аналогично при освобождении не требуется выгружать диск целиком. Перемещение избыточной информации замедляет работу системы. Кроме того системы, поддерживающие свопинг, не способны загрузить процесс, виртуальное пространство которого превышает свободное место в памяти. Такие системы практически не используются в настоящий момент.

Концепция виртуальной памяти впервые была реализована в машине Atlas в 1960 году. Её суть заключается в том, что адреса, к которым обращается процесс, отделяются от адресов, реально существующих в первичной памяти. Те адреса, на которые делает ссылки выполняющийся процесс, называются виртуальными, а те адреса, которые существуют в физической памяти, называются реальными. Диапазон виртуальных адресов называется пространством виртуальных адресов V этого процесса. Диапазон реальных адресов – пространство реальных адресов R компьютера. Смежные адреса виртуального пространства не обязательно будут смежными в реальной памяти. Это свойство называется искусственной смежностью. В случае с виртуальной памятью нет необходимости вести её учет, но несмотря на то, что процессы обращаются только к виртуальным адресам, в действительности они должны работать с реальной памятью, поэтому виртуальные адреса необходимо динамически преобразовывать в реальные. Для преобразования используются таблицы отображения виртуальных адресов на реальные. Главная проблема преобразований – это минимизация количества информации отображения, которую необходимо держать в первичной памяти, а также достижение удовлетворительных скоростей. Решению этих проблем способствует так называется поблочное отображение. Существует 2 способа реализации виртуальной памяти: страничная и сегментная. Страница – это блок фиксированного размера, сегмент – блок переменного размера. В системах с комбинированием обоих блоков обычно применяются сегменты, длина которых выражается целым числом страниц. В схемах поблочного отображения адреса рассматриваются как упорядоченные пары. V=(b,d), b – блок, в котором находится виртуальный адрес, d – смещение адреса относительно начала блока. Из скоростных соображений эта таблица размещается в кэш-памяти или в ассоциативной памяти, в которой адресация производится на основе содержимого, а не их положения.

 

14. Преобразование адреса виртуальной памяти в реальный адрес осуществляется по схеме:

 

Таких таблиц отображения существует несколько, все они располагаются в реальной памяти. Все методы поблочного отображения, применяемые в системах с сегментной, страничной и комбинированной организацией, подобны рассмотренной схеме. При страничной организации виртуальный адрес – это упорядоченная пара (p, d). Первичная память разделяется на страничные кадры, что и виртуальные страницы. Динамическое преобразование адресов предусматривает отображение номера страницы р на номер страничного кадра р’. Отображение может быть прямым – в этом случае используется полная таблица страниц, размещаемая в первичной или кэш-памяти, либо ассоциативным – такая таблица размещается в высокоскоростной ассоциативной памяти. Ввиду высокой стоимости отображение может быть комбинированным – в ассоциативной памяти хранится часть таблицы, и ассоциативное отображение используется только для самых последних по времени обращения страниц, а таблицы прямого отображения используются, если поиск по ассоциативной памяти дает отрицательный результат. Для коллективного использования информации в страничной системе в строках таблицы страниц различных процессов указывается один и тот же страничный кадр.

В сегментной организации используются блоки переменного размера, необязательно, чтобы все сегменты находились в первичной памяти, тем более были бы смежными, виртуальный адрес представляет собой пару (s, d), динамическое преобразование выполняется так же, как и при страничной, защита сегментов оказывается более надежной по сравнению со страничными системами, поскольку защищаются не физические объекты, а логические. Для коллективного использования информации в строках таблиц сегментов указывается совместно используемый сегмент.

Комбинированная организация. Виртуальный адрес представляет собой тройку (s, p, d). Динамическое преобразование осуществляется довольно сложно как бы в 2 этапа, поскольку строки таблиц сегментов указывают на таблицы страниц, а строки таблиц страниц указывают на кадры. В комбинированных системах почти всегда применяются высокоскоростные ассоциативные устройства или кэш-память. Коллективное использование в комбинированной системе осуществляется благодаря тому, что строки различных таблиц сегментов указывают на одну таблицу страниц.

 

3 апреля 2012 года

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...