Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Борьба с фрагментацией памяти.




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

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

Способы борьбы с фрагментацией памяти:

1. Расширение размера основной памяти. Например, виртуальная память позволяет расширить размер основной памяти и сделать его значительно превышающим размер реальной оперативной памяти.

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

3. Упорядочение запросов на участки памяти по размерам. Желательно, чтобы участки памяти одинакового размера располагались в смежных областях памяти. Фрагментация таких областей не вызывает проблем распределения, так как размер запроса совпадает с размером свободных участков (фрагментов) и при наличии I последних запрос может быть удовлетворен. При этом аппарат подпулов используется для классификации запросjв по размерам и направлению их в разные области памяти.

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

Многоуровневое распределение основной памяти.Как уже отмечалось, в операционных системах широко используется многоуровневое распределение основной памяти, при котором выделенный участок памяти на верхнем уровне подлежит дальнейшему распределению на нижнем. Рассмотрим три уровня распределения основной памяти:

I — уровень заданий, на котором осуществляется выделение разделов основной памяти для выполнения заданий (пунктов заданий). Размер выделяемых участков на этом уровне колеблется от десятков килобайт до мегабайт.

II — уровень задач, на котором осуществляется выделение участков памяти для подпулов, связанных с задачами. В подпулы помещаются запросы одного класса. Использование подпулов позволяет уменьшить проблемы фрагментации основной памяти. Каждая задача имеет один или несколько подпулов. Подпул может находиться или в монопольном использовании задачи, или в совместном использовании нескольких задач. Размер выделяемых участков на этом уровне (размер подпула) кратен 2 К байт. Минимальный размер подпула 2 К байт. Максимальный размер не фиксируется.

III — уровень запросов, самый нижний. Запрос на выделение участка памяти выражается макрокомандой GETMAIN; на освобождение участка памяти — макрокомандой FREEMAIN. Участки памяти выделяются для загрузочных модулей, буферов, рабочих областей и т. д. Минимальный размер запроса — 8 байт (определяется размером FQE).

Повышение уровня мультипрограммирования.Функция повышения уровня мультипрограммирования требует увеличения количества одновременно выполняемых задач (заданий) на том же объеме памяти. Причем критичным здесь является объем реальной оперативной памяти ЭВМ, а не основной. Увеличение интенсивности использования реальной памяти, как правило, приводит к повышению загрузки центрального процессора, а следовательно, и пропускной способности вычислительной системы. Радикальным способом увеличения интенсивности использования памяти за счет повышения уровня мультипрограммирования является введение в систему аппаратно-программных средств организации виртуальной памяти. Такая организация, моделирующая основную память на НМД, достигается путем странично-сегментной организации памяти. Размер виртуальной памяти обычно намного превышает размер реальной оперативной памяти. В системе может одновременно использоваться несколько виртуальных пространств.

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

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










Последнее изменение этой страницы: 2018-05-10; просмотров: 243.

stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда...