Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

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



Для преодоления сложностей, связанных с фиксированным распределением был раз­работан альтернативный подход, известный как динамическое распределение. В свое время этот подход был использован фирмой IBM в операционной системе для мэйнфреймов в OS/MVT (мультипрограммирование с переменным числом задач - Multiprogramming With a Variable number of Tasks). Позже этот же подход к распределению памяти был использован в ОС ЕС ЭВМ [24,26].

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

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

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

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

Перечислим функции операционной системы по управлению памятью в этом случае:

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

· Коррекция таблиц свободных и занятых областей.

· Изменение адресов команд и данных, к которым обращаются процессы при их пере­мещении в памяти за счет использования относительной адресации.

· Аппаратная поддержка процесса динамического преобразования относительных адресов в абсолютные адреса основной памяти.

· Защита памяти, выделяемой процессу, от взаимного влияния других процессов.

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





Дата публикования: 2014-11-04; Прочитано: 636 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...