Распределение массовой памяти
Одной из функций ФС является перемещение объектов архива между уровнями внешней памяти. Промежуточным уровнем между дисковой и оперативной памятью служит массовая память. Так как при открытии файлов они переносятся с дисковой памяти в массовую память, где происходит основная обработка файлов, ФС должна распределять и массовую память.
Объекты ФС отображаются на одну или две области массовой памяти (вторая область - фрагмент приращения). Отображения располагаются в таблице активных файлов задачи ОБМЕНМП.
При открытии файл отображается на одну область. Если файл обрабатывается в режиме только чтения, отображение не меняется. Если файл обрабатывается в режиме модификации, то возможно,что его размер будет увеличен. Общая дисциплина управления динамическими файлами такова: при увеличении размера файла за исходную границу выделяется фрагмент приращений. Если его не хватает для расширения файла, запрашивается фрагмент, превышающий вдвое размер предыдущего фрагмента приращений; осуществляется пере-
пись исходного фрагмента приращений в новый; заменяется отображение в задаче ОБМЕНМП. Процесс будет повторен таким образом до тех пор, пока фрагмент приращений не станет сравнимым с начальным файлом, после чего будет запрошен удвоеннный размер файла, в него будет переписан исходный файл и фрагмент приращений, затем обработка будет продолжена по общей схеме.
Распределение массовой памяти происходит по такому же алгоритму, как и распределение дисковой памяти. Вся память делится на области. Минимальный размер области - блок 512 слов. Последующие размеры областей: 2*512, 4*512, ...
При наступлении фрагментации происходит уплотнение массовой памяти с модификацией отображений в таблице активных файлов задачи ОБМЕНМП.
Начальный размер фрагмента приращений равен 25% от размера файла и далее удваивается до размера файла. Для файла в 128 блоков приращения будут увеличиваться таким ступенями: 32, 64,
128. На любом этапе увеличения фрагмента приращений коэфициент использования внешней памяти будет не хуже 75%.
Следует отметить, что перепись из фрагмента в фрагмент осуществляется внутри контроллера массовой памяти, без накладных расходов по передаче по каналам и обработке прерываний.