Рубрики

Методы размещения файлов

Методы размещения определяют, как файлы хранятся в дисковых блоках. Существует три основных дисковых пространства или методы размещения файлов.

  • Непрерывное распределение
  • Связанное распределение
  • Индексированное распределение

Основная идея этих методов заключается в обеспечении:

  • Эффективное использование дискового пространства.
  • Быстрый доступ к файлам блоков.

Все три метода имеют свои преимущества и недостатки, как описано ниже:

1. Непрерывное распределение

В этой схеме каждый файл занимает непрерывный набор блоков на диске. Например, если для файла требуется n блоков и в качестве исходного местоположения ему назначен блок b, тогда блокам, назначенным файлу, будут: b, b + 1, b + 2, …… b + n-1. Это означает, что с учетом начального адреса блока и длины файла (с точки зрения требуемых блоков) мы можем определить блоки, занятые файлом.
Запись каталога для файла с непрерывным размещением содержит

  • Адрес стартового блока
  • Длина выделенной части.

Файл 'mail' на следующем рисунке начинается с блока 19 длиной = 6 блоков. Поэтому он занимает 19, 20, 21, 22, 23, 24 блока.


Преимущества:

  • И последовательный и прямой доступ поддерживаются этим. Для прямого доступа адрес k-го блока файла, который начинается в блоке b, может быть легко получен как (b + k).
  • Это очень быстро, так как количество запросов минимально из-за непрерывного выделения блоков файлов.

Недостатки:

  • Этот метод страдает как от внутренней, так и от внешней фрагментации. Это делает его неэффективным с точки зрения использования памяти.
  • Увеличение размера файла затруднено, поскольку оно зависит от наличия непрерывной памяти в конкретном экземпляре.

2. Распределение связанных списков

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

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

Преимущества:

  • Это очень гибкий с точки зрения размера файла. Размер файла может быть легко увеличен, так как система не должна искать непрерывный кусок памяти.
  • Этот метод не страдает от внешней фрагментации. Это делает его относительно лучшим с точки зрения использования памяти.

Недостатки:

  • Поскольку файловые блоки распределяются случайным образом на диске, большое количество запросов необходимо для доступа к каждому блоку индивидуально. Это замедляет связанное размещение.
  • Он не поддерживает произвольный или прямой доступ. Мы не можем напрямую получить доступ к блокам файла. К блоку k файла можно получить доступ путем последовательного обхода k блоков (последовательный доступ) из начального блока файла с помощью указателей блоков.
  • Указатели, требуемые в связанном выделении, несут дополнительные издержки.

3. Индексированное распределение

В этой схеме специальный блок, известный как индексный блок, содержит указатели на все блоки, занятые файлом. Каждый файл имеет свой собственный индексный блок. I-я запись в блоке index содержит адрес диска i-го блока файла. Запись каталога содержит адрес индексного блока, как показано на рисунке:


Преимущества:

  • Это поддерживает прямой доступ к блокам, занятым файлом, и, следовательно, обеспечивает быстрый доступ к блокам файла.
  • Это преодолевает проблему внешней фрагментации.

Недостатки:

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

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

  1. Связанная схема: эта схема связывает два или более индексных блока вместе для удержания указателей. Каждый индексный блок будет содержать указатель или адрес следующего индексного блока.
  2. Многоуровневый индекс. В этой политике блок индекса первого уровня используется для указания на блоки индекса второго уровня, которые внутри указывают на блоки диска, занятые файлом. Это может быть расширено до 3 или более уровней в зависимости от максимального размера файла.
  3. Комбинированная схема: В этой схеме специальный блок, называемый Inode (информационный узел), содержит всю информацию о файле, такую как имя, размер, полномочия и т. Д., А оставшееся пространство Inode используется для хранения адресов дисковых блоков, которые содержат фактический файл, как показано на рисунке ниже. Первые несколько из этих указателей в Inode указывают на прямые блоки, то есть указатели содержат адреса блоков диска, которые содержат данные файла. Следующие несколько указателей указывают на косвенные блоки. Косвенные блоки могут быть одиночными, двойными или тройными. Одиночный косвенный блок — это блок диска, который содержит не данные файла, а адрес диска блоков, содержащих данные файла. Аналогично, двойные косвенные блоки содержат не данные файла, а адрес диска блоков, которые содержат адрес блоков, содержащих данные файла.

Эта статья предоставлена Saloni Baweja . Если вы как GeeksforGeeks и хотели бы внести свой вклад, вы также можете написать статью с помощью contribute.geeksforgeeks.org или по почте статьи contribute@geeksforgeeks.org. Смотрите свою статью, появляющуюся на главной странице GeeksforGeeks, и помогите другим вундеркиндам.

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

Рекомендуемые посты:

Методы размещения файлов

0.00 (0%) 0 votes