Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


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

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

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

    На Рис. 3 показано состояние памяти в различные моменты времени при использовании динамического распределения. В момент t0 в памяти находится только ОС, к моменту t1 память разделена между 5 процессами, причем процесс П4, завершаясь, покидает память. На освободившейся от процесса П4 место загружается процесс П6, поступивший в момент t3.

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

 

        П6      
                 
ОС   ОС   ОС   ОС   ОС

 

  П1   П1   П1    
  П2   П2   П2    
  П3   П3   П3    

 

П4

 

 

 

П6

 

 
   

 

П5

 

П5

 

П5

 

 
 
 
               
t0   t1   t2   t3 tk

 

 

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

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

Задачами операционной системы при реализации данного метода управления памятью являются:

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

- при поступлении новой задачи – анализ запроса, просмотр таблицы свободных областей и выбор раздела, размер которого достаточен для размещения поступившей задачи;

- загрузка задачи в выделенный ей раздел и корректировка таблиц свободных и занятых областей;

- после завершения задачи корректировка таблиц свободных и занятых областей.

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

 

ОС
П1
П2
П3
П4

Перемещаемые разделы

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

ОС
П1
П2
П3
П4

                                 

Процедура сжатия
a+b+c+d
d
c
b
a

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

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

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

Можно рассматривать три основных алгоритма. Все они ограничены выбором среди свободных блоков размера, достаточно большого для размещения процесса:

Наилучший подходящий. Выбирает блок, размер которого наиболее близок к требуемому.

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

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

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

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

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

• Метод наилучшего подходящего, вопреки своему названию, оказывается, как правило, наихудшим. Так как он ищет блоки, наиболее близкие по размеру к требуемому, он оставляет после себя множество очень маленьких блоков. В результате, хотя при каждом выделении впустую тратится наименьшее возможное количество памяти, основная память очень быстро засоряется множеством мелких блоков, неспособных удовлетворить ни один запрос (так что при этом алгоритм уплотнения памяти должен выполняться значительно чаще).

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



<== предыдущая лекция | следующая лекция ==>
Распределение памяти фиксированными разделами | Страничное распределение памяти
Поделиться с друзьями:


Дата добавления: 2018-10-18; Мы поможем в написании ваших работ!; просмотров: 377 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

80% успеха - это появиться в нужном месте в нужное время. © Вуди Аллен
==> читать все изречения...

2294 - | 2147 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.008 с.