Конспект лекций для студентов специальности 5В070200 Автоматизация и управление Алматы 2015



Pdf көрінісі
бет20/33
Дата13.03.2023
өлшемі0,92 Mb.
#73886
түріКонспект
1   ...   16   17   18   19   20   21   22   23   ...   33
Байланысты:
PXcdfzCNmVjtZ8sMK5nLG1UywOruSq


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


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


Достарыңызбен бөлісу:
1   ...   16   17   18   19   20   21   22   23   ...   33




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет