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

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

Так как процесс 4 меньше процесса 2, возникает еще свободный участок памяти. После того как Распределение памяти динамическими разделами в некий момент времени все процессы оказались неактивными, но стал готовым к работе процесс 2, свободного места в памяти для него не находится, а ОС обязана выгрузить процесс 1, чтоб высвободить нужное место и расположить процесс 2 в ОП. Как указывает данный пример, этот способ отлично начинает работу, но плохо продолжает. В конечном счете, он Распределение памяти динамическими разделами приводит к наличию огромного количества маленьких свободных участков памяти, в каких нет способности расположить какой-нибудь новый процесс. Это явление именуется наружной фрагментацией (external fragmentation), что отражает тот факт, что очень фрагментированной становится память, наружняя по отношению ко всем разделам.

В какой раздел помещать процесс? Более Распределение памяти динамическими разделами всераспространены три стратегии.

• Стратегия первого подходящего (Firstfit). Процесс помещается в 1-ый подходящий по размеру раздел.

• Стратегия более подходящего (Bestfit). Процесс помещается в тот раздел, где после его загрузки остается меньше всего свободного места.

• Стратегия менее подходящего (Worstfit). При помещении в наибольший раздел в нем остается довольно места для вероятного размещения Распределение памяти динамическими разделами еще 1-го процесса.

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

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

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

Имея дело с пакетными системами, можно обходиться фиксированными разделами и не использовать ничего более сложного. В системах с разделением времени вероятна ситуация, когда память не в состоянии содержать все пользовательские процессы. Приходится прибегать к свопингу (swapping) – перемещению Распределение памяти динамическими разделами процессов из главной памяти на диск и назад полностью. Частичная выгрузка процессов на диск осуществляется в системах со страничной организацией (paging) и будет рассмотрена ниже.

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

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

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

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

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

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

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

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


raspredelenie-uchitelej-po-stazhu-i-pedagogicheskoj-deyatelnosti-publichnij-doklad-smirnova-d-v-direktora-gbou.html
raspredelenie-umershih-po-prichinam-smerti-za-yanvar-sentyabr-v-m-yarlov-predsedatel-redakcionnoj-kollegii.html
raspredelenie-vesovih-dolej-po-vidam-tekushej-uspevaemosti-i-itogovogo-kontrolya.html