Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

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

Размещение памяти с перемещаемыми разделами.

Распределение памяти фиксированными разделами.

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

 

Рис. 8.6. Распределение памяти фиксированными разделами.

В этом случае подсистема управления памятью выполняет задачи:

¨ сравнения размера поступившей на выполнение программы с размерами свободных разделов памяти;

¨ выбора подходящего раздела;

¨ загрузка программы и настройка адресов.

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

Другой способ – распределение памяти разделами переменной величины. При таком способе распределения в начале работы ЭВМ вся ОП свободна. Каждой поступающей на выполнение задаче выделяется необходимый ей объем ОЗУ. Если достаточный объем памяти отсутствует, задача не принимается на выполнение и стоит в очереди. После завершения задачи память освобождается, и на это место может быть загружена другая задача.

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

Рис. 8.7. Распределения памяти динамическими разделами

В начальный момент времени t0 в ОП загружена только ОС. К моменту времени t1 ОП разделена между ОС и 5 программами (задачами), имеется также свободная область. К моменту времени t2 задача П2 уже завершена и покидает ОП, а на ее место может быть подгружена задача На освободившееся место загружается задача П6, поступившая в момент времени t3. Выбором раздела для вновь поступившей задачи занимается ОС. Осуществляется выбор раздела по правилам: «первый попавшийся раздел достаточного размера», «раздел, имеющий наименьший достаточный размер», «раздел, имеющий наибольший достаточный размер».

Помимо выбора раздела для вновь поступившей задачи, ОС также выполняет задачи:

¨ ведение таблиц свободных и занятых областей, в которых указывается начальные адреса и размеры участков памяти;

¨ анализ запроса (при поступлении новой задачи);

¨ просмотр таблицы свободных областей (с целью выбора раздела для размещения вновь поступившей задачи);

¨ загрузка задачи в выделенный ей раздел;

¨ корректирование таблиц свободных и занятых областей (как после загрузки очередной задачи в ОП, так и после завершения задачи).

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

 

 

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

Такая процедура называется сжатием и выполняется ОС в дополнение к функциям, которые ОС выполняет при распределении ОП переменными разделами.

Рис. 8.8. Распределение памяти перемещаемыми разделами.

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

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

 

 

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

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

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

Т.о., виртуальная память (ВП) – это совокупность программно-

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

Для этого ВП решает след. задачи:

¨ размещает данные в ЗУ разного типа, например, часть программы в ОП, а часть на диске;

¨ перемещает данные по мере необходимости между ЗУ разного типа, например, подгружает нужную часть программы с диска в ОП;

¨ преобразует виртуальные адреса в физические.

Все эти действия выполняются без участия программиста. Можно еще сказать, что механизм ВП является «прозрачным» по отношению к пользователю. Наиболее распространенными реализациями ВП являются страничное, сегментное и странично-сегментное распределение памяти, а также свопинг.

 

<== предыдущая лекция | следующая лекция ==>
Методы управления памятью без использования дискового пространства (без использования внешней памяти) | 
Поделиться с друзьями:


Дата добавления: 2014-01-06; Просмотров: 356; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.013 сек.