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

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



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

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

1. Программа может быть слишком велика для размещения в разделе. В этом случае программист должен разрабатывать программу, использующую оверлеи, чтобы в любой момент времени требовался только один раздел памяти. Когда требуется модуль, отсутствующий в данный момент в ОП, пользовательская программа должна сама его загрузить в раздел памяти программы. Таким образом, в данном случае уп­равление памятью во многом возлагается на программиста.

2. Использование ОП крайне неэффективно. Любая программа, независимо от ее раз­мера, занимает раздел целиком. При этом могут оставаться неиспользованные уча­стки памяти большого размера. Этот феномен появления неиспользованной памяти называется внутренней фрагментацией (internal fragmentation).

Бороться с этими трудностями (хотя и не устранить полностью) можно посред­ством использования разделов разных размеров (рис. 3.7, б). В этом случае программа размером до 8 Мбайт может обойтись без оверлеев, а разделы малого размера позволя­ют уменьшить внутреннюю фрагментацию при загрузке небольших программ.

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

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

Недостаток заключается в том, что отдельные очереди для разделов могут привести к неоптимальности распределения памяти для системы в целом. Например, если в неко­торый момент времени нет ни одного процесса размером от 7 до 12 Мбайт, то раздел размером 12 Мбайт будет пустовать, в то время как он мог бы использоваться меньши­ми процессами.

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

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

Количество разделов, определенное в момент генерации системы, ограничивает ко­личество активных процессов (т. е. уровень мультипрограммирования).

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

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





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



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