Формирование блоков из записей файла

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

Файлы, состоящие из простого набора байтов или битов, разбиваются на блоки для записи на дисковое устройство простым способом: в каждый блок помещается часть байтов ( битов), какую по максимуму можно в блоке разместить.

Файлы, состоящие из записей могут разбиваться на блоки разными способами. Так как записи файла как правило меньше блока, то существует несколько способов формирования блоков из записей:

1) из целого числа записей – это возможно только, если записи фиксированной длины

2) из записей переменной длины с образованием пустот – записи помещаются в блок до тех пор, пока они помещаются целиком. Остальная часть места в блоке остается пустой. Это приводит к перерасходу места на диске

3) из записей переменной длины без образования пустот. При укладке записей в блоки, запись, которая не помещается, разбивается на 2 части. Одна часть помещается (сколько поместится) в один блок, а вторая в следующий.