Наверх Системное программирование
Предыдущий раздел Оглавление Следующий раздел

5.3.2.2. Размещение с использованием связанного списка

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

Рис

Рис. 5.5. Хранение файла в виде
связанного списка дисковых блоков

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

Но, если сравнивать скорость чтения файла при использовании данного метода с последовательным чтением файла при их непрерывном размещении, то окажется, что произвольный доступ сильно проигрывает в этом отношении. Операционная система для того, чтобы прочитать блок n, должна прочитать поочередно n − 1 предшествующих блоков, начиная со стартовой позиции. Осуществление такого количества операций чтения, очевидно, будет происходить достаточно продолжительное время.

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

Предыдущий раздел Оглавление Следующий раздел