Связное распределение памяти

1 Свободен
2
 
 
5 Свободен

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

Несвязное распределение памяти

Распределение при помощи списков секторов

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

1
2 Свободен
3
4 Свободен
5

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

Недостатком же такого способа распределения памяти является увеличение накладных расходов для создания механизма обработки ссылок-указателей, а также возможное увеличение времени доступа.

Поблочное распределение памяти

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

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: