Сравнительная характеристика работы распределенных генетических алгоритмов

operations research. - 1981. - V. 6. - P. 222-248.

13. Ватолин A.A. О задачах линейного программирования с интервальными коэффициентами //Журнал

вычислительной математики и математической физики. -1984. - Т. 24, №11. - С. 1629-1637.

YAK 658.512

14. Вощинин А.П., Сотиров Г.Р. Оптимизация в условиях неопределенности. - М.: Изд-во МЭИ, София: Техника, 1989.

15. Левин В.И. Интервальные методы оптимизации систем в условиях неопределенности. - Пенза: Изд-во Пенз. технол. ин-та, 1999.

СРАВНИТЕЛЬНАЯ ХАРАКТЕРИСТИКА РАБОТЫ РАСПРЕДЕЛЕННЫХ ГЕНЕТИЧЕСКИХ АЛГОРИТМОВ

В.И.Литвиненко, Ю.А.Бюргер, А.В.Мельник

В статье рассматриваются характеристики трех моделей распределенного генетического алгоритма. Этими моделями являются крупнозернистая модель с изолированными островами, топологией кольцо и топологией полный граф. Приведена оценка таких характеристик работы как время вычисления, ускорение, алгоритмическое ускорения и число используемых процессоров. Характеристики исследовались на тестовых функциях Растригина и Griewank. Сделан вывод, что для решения данного класса задач больше подходит модель с топологией кольцо с периодом миграций 1.

In paper the characteristics of three models of distributed genet-ical algorithm are considered. These models are macrogranular model with the isolated islands, topology the ring and topology the complete graph. The rating of such characteristics of work as time of calculation, acceleration, algorithmic accelerations and number of used processors is reduced. The characteristics were researched on test functions Rastrigin and Griewank. The output is made that for solution of the given class of problems model with topology the ring with the term of migrations 1 approaches more.

1. ВВЕДЕНИЕ

Генетические алгоритмы (ГА) являются одним из мощных инструментальных средств для решения задач оптимизации. ГА разработан и описан J. Holland [1] в 70-х, на основе генетических механизмов естественной эволюции. В настоящее время генетические алгоритмы уже продемонстрировали свои возможности находить новаторские решения во многих сложных задачах. Механизм естественного отбора выбраковывает худшие решения и поощряет лучшие, давая им возможность переходить из поколения в поколение и постоянно совершенствоваться, скрещиваясь друг с другом.

ГА позволяют решать многие прикладные задачи в сложных техногенных и природных системах, отражать свойства разрывности и нелинейности [2]. Исследования показывают, что генетические алгоритмы могут находить оптимальные решения даже, когда имеются несколько пиков целевых функций в пространстве поиска. Однако одной из проблем ГА является число итераций, требуемых для нахождения решения и следовательно потребность в большой вычислительной мощности. Одним из решений данной проблемы является использование распределенных вычислений при реализации ГА.

Известно несколько исследований, где обсуждается использование ГА на параллельных компьютерах [3]. Для работы в многопроцессорной или распределенной среде необходимо использовать немного отличные от обычных ГА -параллельные генетические алгоритмы (ПГА), которые базируются на классических генетических алгоритмах.

Большинство параллельных программ базируются на принципе "разделяй и властвуй". Описано несколько моделей параллельных генетических алгоритмов. По степени манипулирования популяцией ПГА можно классифицировать как глобальные (мелкозернистые, т. н. "фермер-рабочие"), крупнозернистые (островные) и гибридные. В свою очередь существует различные виды крупнозернистых ПГА, обладающих рядом значительных преимуществ: покрытие большого пространства поиска, малая вероятность преждевременной сходимости и устойчивость к сбоям т.к. выход из строя одного или нескольких процессоров почти не повлияет на работу алгоритма и поиск решения в целом. Имеется ряд работ посвященных данному виду ГА, однако все еще остаются открытыми вопросы в выборе оптимальной топологии и оптимальных параметров островных ГА.

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

2. РАСПРЕДЕЛЕННЫЕ МОДЕЛИ

ГЕНЕТИЧЕСКИХ АЛГОРИТМОВ

2.1 Генетический алгоритм

Формально ГА можно представить следующим образом [4]: ОЛ =

где Р0 = (Ь0, ..., Ьт) - исходная популяция;

Ь0 - одно из возможных решений задачи, представленное в виде цепочки (индивидуума); т - размер популяции; I - длина индивидуума в популяции; ^ - оператор селекции;

с - отображение, определяющее рекомбинацию (кроссин-говер, мутация);

- целевая функция, определяющая эффективность каждого индивидуума; £ - критерий останова.

ГА работает с совокупностью "особей" (набор решений) -популяцией, каждая из которых представляет возможное решение данной задачи. Каждая из особей оценивается мерой пригодности согласно тому насколько "хорошо" соответст-

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

Традиционным считается ГА представленный на рисунке 1.

2.2 Генетический алгоритм в решении общей задачи оптимизации

Пусть задана функция /(х) , определенная во всех значениях х е X. В общем случае, х может быть вектором значений многопараметрической функции /(х) . Тогда, в общей задаче оптимизации требуется найти вектор х = {Х1, Х2, ..., хп} из допустимой области X, который обращает в минимум целевую функцию /(х) .

Если необходимо найти максимум функции, то в качестве целевой берут обратную функцию - /(х) .

В общем случае глобальный минимум в точке х* области определения X характеризуется:

/(х*)</(х)Ух е X.

Такое определение предполагает возможность существования нескольких минимумов. При этом глобальный минимум будем называть слабым [].

Сильный глобальный минимум определяется:

/(х*)</(х)Ух е X а х Ф х* .

Минимум в точке х = х* будем называть локальным, если найдется такая окрестность О(х*) точки х* , что для всех х е О(х*) имеет место /(х*) </(х) .

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

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

Рисунок 1 - Блок-схема простого генетического алгоритма

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

Совместно с оператором мутации часто используют понятия "вероятность" и "плотность" мутации, которые определяют вероятность мутации особи в целом и вероятность мутации каждого гена особи по отдельности. Мутация также может быть адаптивной, когда мутируют только те гены, значения которых одинаковы у обоих родительских особей.

х = х ц * (х тах х тш ) + х хв 2 N хтт ,

где хв - вещественное значение соответствующее бинарной строке;

хц - целое число соответствующее бинарной строке; хтах - максимальное вещественное значение (верхняя граница);

хтш - минимальное вещественное значение (нижняя граница);

N - длина бинарной строки.

В соответствии с рисунком 1, осуществляется оптимизация целевой функции

Ф(х) = /(х) ^ тах ,

где х - вектор аргументов целевой функции, элементы которого определяются по формуле (4).

На первых шагах генетический алгоритм действует как

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

Рисунок 3 - Топологии островных моделей: а) изолированная, Ь) кольцо, с) полный граф

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

Рисунок 2 - Распределение особей популяции на поверхности целевой функции

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

2.3 Распределенный генетический алгоритм

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

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

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

На рисунке 3 показаны основные топологии островных моделей ГА.

3. РЕЗУЛЬТАТЫ ЭКСПЕРИМЕНТОВ

Нами было реализовано несколько моделей и конфигураций параллельного ГА. Сравнивались такие островные топологии как изолированная, кольцо и полный граф. Предварительно были отобраны лучшие конфигурации параметров ГА (процесс выбора параметров описан ниже). Все модели были реализованы средствами языка программирования Visual C++ с использованием интерфейса MPICH под управлением операционной системы Windows 2000.

Таблица 1. Характеристики узла кластера

CPU узла AMD K6-2+ 550MHz

Память узла 128Mb

Операционная система Windows 2000

Сеть 100Mbit

Коммуникационные средства MPICH.NT

Сравнение моделей происходило на трех задачах максимизации. В первой задаче в качестве целевой функции выступала функция Растригина для десяти переменных (Р#6):

10 о

£

г = 1

Переменные функции принимают значения в интервале

[-5.12, 5.12]. Функция имеет 1010 - 1 локальных максимумов и 1 глобальный.

Во второй задаче в качестве целевой выступала функция Растригина для двух переменных (Р#5):

20 + х2 + х| - 10*ео8

Переменные функции принимают значения в интервале [-5.12, 5.12]. Функция имеет 96 локальных максимумов и 4 глобальных.

В третей задаче использовалась функция Griewank (F#4):

x 1 + x2 2 00

rx-

- cos(x1 )*cos

1 ^72

+ 2

Переменные функции принимают значения в интервале [-20, 20]. Функция характеризуется одним глобальным максимумом и множеством локальных.

a)

b)

Рисунок 4 - Графики функций: а) Растригина

решения (превышающего заданный порог) в секундах.

Поставим в соответствие триаду |а,Ь,с) следующим параметрам ГА: а -кроссинговер (1 - одноточечный, 2 - двухточечный, 3 - равномерный); Ь - оператор мутации (2 -мутация с заданной вероятностью и плотностью, 3 - мутация с заданной вероятностью и случайной плотностью, 5 - адаптивная мутация со случайной плотностью); с - условие позиционирования особи в популяции (1 - всегда, 2 - только новый генотип, 3 - только новый фенотип). Результаты оценивания возможных конфигураций приведены в таблице 2.

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

Таблица 2

ab

12 22 32 13 23 33 15 25 35

C 1 - 35.25 - 15.21 2.18 - 12.28 35.01 -

2 54.29 - - 16.21 6.07 - 12.59 5.7 -

3 51.96 - - 15.39 7.96 - 14.87 12.51 -

К уже имеющимся параметрам добавим й - оператор позиционирования новых особей в популяции (1 - взамен наихудшего в популяции, 2 - взамен случайного, 3 - взамен первого худшего при отсчете с конца популяции, 4 -взамен первого худшего при отсчете с начала популяции). Результаты оценивания приведены в таблице 3.

Таблица 3

d

1 2 3 4

131 15.21 16.59 23.66 14.87

231 2.18 6.64 17.26 35.47

151 12.28 12.27 22.54 8.84

132 16.21 18.23 18.39 26.69

аЬс 232 6.07 5.38 8.01 6.21

152 12.59 11.69 5.56 9.46

252 5.7 3.87 4.95 12.21

133 15.39 21.36 17.48 25.34

233 7.96 3.85 6.03 7.17

153 14.87 7.32 6.14 28.18

253 12.51 23.45 6.7 13.84

Предварительно, нами был произведен поиск наилучшей конфигурации генетического алгоритма на функции ^#6 при временном пороге работы алгоритма в 60 секунд и пороге значения целевой функции - 3. В качестве критерия качества использовалось время нахождения удовлетворительного

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

Таблица 4 - Конфигурация {йЬс4} = {2311}

Размер популяции

4 8 16 32 64 128 256

4 - - - - - - -

Количество особей для репродукции 8 - - - - - -

16 - 6 - - -

32 1.95 - 2.21 -

64 - - -

128 - -

256 -

Таблица 5 - Конфигурация {аЬс^}={1514}

Размер популяции

4 8 16 32 64 128 256

4 - - - - - - -

Количество 8 - - - - - -

особей 16 - - - - -

для репродукции 32 1.46 - 8.84 -

64 - - -

128 - -

256 -

Дальнейшие эксперименты проводились на отобранных конфигурациях при различных топологиях и различном числе островов. Результаты экспериментов для тестовой функции Г#6 приведены в таблицах 6 и 7. При проведении экспериментов устанавливался временной порог в 300 секунд, а также пороговое значение целевой функции -0.0009.

Рисунок 5 - Время поиска решения для топологии кольцо с периодом миграций 1 и 10 при различном числе островов

Таблица 6 - Конфигурация {аЬс^}={2311}

Период миграции Число островов

1 2 3 4 5 6 7 8

Топология Изолир. - 148.11 15.63 14.22 14.69 14.57 15.15 13.94 13.5

Кольцо 1 148.11 69.35 45.48 19.34 8.834 6.213 5.475 2.577

10 148.11 26.08 14.64 7.895 4.212 4.489 4.344 2.802

100 148.11 17.07 19.29 11.95 14.57 21.65 8.899 9.406

Полный граф 1 148.11 69.35 46.65 33.05 17.37 - - -

10 148.11 26.08 17.82 9.031 8.595 6.541 6.482 6.631

100 148.11 17.07 13.5 22.6 7.323 7.384 6.568 5.284

Таблица 7 - Конфигурация {аЬс^}={1514}

Период миграции Число островов

1 2 3 4 5 6 7 8

Топология Изолир. - 22.08 21.91 22.13 22.33 21.9 14.62 14.00 14.55

Кольцо 1 22.08 29.21 52.55 20.75 14.1 12.38 14.62 21.05

10 22.08 22.6 16.78 21.41 16.99 9.799 6.683 7.964

100 22.08 32.12 14.04 14.43 7.148 11.96 18.2 17.32

Полный граф 1 22.08 29.21 66.53 21.47 11.82 - - -

10 22.08 22.6 13.19 12.93 6.476 15.03 18.05 6.445

100 22.08 32.12 32.53 22.99 12.553 19.17 11.17 8.524

Полученные результаты позволяют делать следующие выводы. Конфигурация {1514} не поддается эффективному распараллеливанию. В распределении времени поиска решения при заданном параллелизме (числе островов) не прослеживается достаточных закономерностей. Однако, конфигурация {1514} имеет в сравнении с конфигурацией {2311} значительно лучшие показатели при не распределенной организации алгоритма. Такая конфигурация может быть эффективно использована в задачах, где нет возможности организовать распределенный ГА. Из приведенных таблиц видно, что для распределенного ГА наиболее подходит конфигурация {2311}. При этом, наиболее эффективной топологией является топология кольцо с периодом миграции особей т=1 или т=10 циклов.

Дополнительный анализ результатов экспериментов можно получить при помощи таких характеристик как

ускорение и алгоритмическое ускорение

^ = п*( / + ^ + 1а 1) + 1а2

особей 1 и 10 соответственно. Как видно, отклонение ускорения от алгоритмического ускорения значительно меньше при периоде миграции 10 циклов, что объясняется меньшей сетевой нагрузкой по сравнению со случаем, когда период миграции составляет 1 цикл.

При

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

где п - число просмотренных алгоритмом решений; / - доля времени, приходящаяся на оценивание одного

решения;

- доля времени сетевого сообщения, приходящаяся на обработку одного решения;

1а 1 , 1а 2 - затраты времени, связанные с алгоритмическими особенностями.

При этом величины 1а 1 и ta2 можно опустить, так как они пренебрежительно малы в сравнении с величинами / и ts. Рассмотрим расчет ускорения ГА при числе островов к для идеальной среды сообщения процессоров, когда сетевые затраты стремятся к нулю:

Рисунок 6 - Ускорение и алгоритмическое ускорение при периоде миграций 1

Рисунок 7 - Ускорение и алгоритмическое ускорение при периоде миграций 10

а)

, „т

пк'

п

^ = 7 = ап. пк ts ^ 0

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

На рисунках 5 и 6 показаны графики ускорения и алгоритмического ускорения ГА при конфигурации {2311} для топологии "кольцо" при значении периода миграции

а

п

а, =

Ь)

с)

Рисунок 8 - Время поиска решения для функции ¥#4: а) топология кольцо с периодом миграции 1, Ь) топология "кольцо" с периодом миграции 10, с) независимые острова

с)

Рисунок 9 - Время поиска решения для функции ¥#5: а) топология кольцо с периодом миграции 1, Ь) топология "кольцо" с периодом миграции 10, с) независимые острова

Эксперименты проводились также и с другими тестовыми функциями - ¥#4 и ¥#5. Некоторые результаты приведены на рисунках 7 и 8.

а)

0,3

0,15

0,1  0,05

0 -.-.-1-

12 3 4

Ь)

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

4. ЗАКЛКЛЕНИЕ

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

В результате было выяснено, что организация решения задач при помощи ПГА имеет смысл лишь в тех случаях, когда задача является достаточно сложной, с множеством локальных оптимумов и большим пространством поиска. Среди рассмотренных топологий наиболее эффективной является топология кольцо с периодом миграций 10 циклов. Также, полученные результаты позволяют говорить о том, что конфигурация генетического алгоритма {1514} более подходит задачам, где нет возможности организовать распределенный ГА, т.к. эта конфигурация достаточно эффективна в подобных условиях. Для распределенного ГА из рассмотренных конфигураций наиболее подходит конфигурация {2311}, полное описание которой приведено в таблице 8.

Таблица 8 - Параметры генетического алгоритма конфигурации {2311}

Длина хромосомы Число переменных * 32

Кодирование Двоичное

Оператор отбора Элитарный

Тип кроссинговера Двухточечный

Вероятность мутации 10%

Плотность мутации Случайная

Условие позиционирования Всегда

Логика позиционирования Взамен наихудшего в популяции

ПЕРЕЧЕНЬ ССЫЛОК

1. Holland John H., Adaptation in Natural and Artificial Systems: An Introductory Analysis with Application to Biology, control, And Artificial Intelligence. University of Michigan, 1975

2. В.И.Литвиненко, А.А.Ткачук, А.H.Мельник, А.А.Фефелов Прикладные аспекты генетических алгоритмов// Вестник ХГТУ №1(10), 2001 г. с.36-43

3. Whitley D. Starkwheather, T. and K. Mathias. Optimization using distributed genetic algorithms. In Proceedings of Parallel Problem from Nature, pages 176-184, 1991.

4. А.Н.Скурихин генетические алгоритмы// Новости искусственного интеллекта № 4.Москва 1995 с.6-46

УДК 004.451.5

К0НЦЕПЦ1Я ПОБУДОВИ ФАЙЛ0В01 СИСТЕМИ CLUSTER FREE

В.В.Назаренко, Г.В.Неласа, В.М.Крищук

Розглядаються 1снуюч1 файлов1 системи, та проводитися анал1з ¿х характеристик. Описуються принципи побудови файловоЧ системи, в якш реал1зована нова технолог1я розпод1лу дискового простору Cluster free. Завдяки цьому тдвищуеться швидтсть роботи з диском, i при цьому зменшуеться втрата дискового простору в "хвостах" файлiв.

Рассматриваются существующие файловые системы, и проводится анализ их характеристик. Описываются принципы построения файловой системы, в которой реализована новая технология распределения дискового пространства Cluster free. При этом увеличивается скорость работы с диском и одновременно уменьшается потеря дискового пространства в "хвостах" файлов.

The existing file systems and their performances are considered. The new Cluster free technology of distributing disk space is offered. Its application to create file system is allowed to enlarge speed of disk operations and decrees loss of disk space in the "tails" of the files.

ВСТУП

Сучасш обчислювальш системи опрацьовують величезш масиви шформаци, для збереження яких розробляються найр1зномаштшш1 пристро!

посл1довного i дов1льного доступу. Зараз магштш диски (МД) е найб^ьше розповсюдженим пристроем збертння шформаци. Для доступу до необх^но! шформаци на МД розробляються рiзноманiтнi файловi системи (ФС), як дозволяють зв'язувати фiзичнi блоки шформаци у файли. З часом файловi системи удосконалюються. Шукаються шляхи тдвищення продуктивности стшкост до помилок, захисту шформаци.

Основш принципи побудови ФС були закладеш у час виникнення дискових операцшних систем,

зокрема MS-DOS та Unix [1,2]. Поступово вони зазнавали деяких змш, як полягали в забезпеченш роботи з дисками, об'еми яких все зб1льшувалися, тдвищенш в1дмовостшкост1 та додаванш нових серв1сних можливостей. Але методи розпод1лу дискового простору не зазнали значних змш до тепер1шнього часу.

Добре в1дома операцшна система (ОС) TR-DOS, яка використовуеться на комп'ютерах ZX-Spectrum працюе з файлом як з одним безперервним блоком шформаци. Для збереження адресно!' шформаци "Каталог" вид1ляеться нульова дор1жка на дискет, а весь шший простр вид1ляеться п1д дан1. Файли записуються посл1довно один за другим. Для зб1льшення розм1ру файла його треба скотювати в к1нець диска. Якщо файл знищуеться, його м1сце залишаеться зайнятим у тому випадку, якщо файл не був останшм. Проте перевагами е те, що для збереження адресно!' шформаци не потр1бно багато м1сця й ОС може прочитувати файл блоками тих розм1р1в, 1з якими 1'й легше i швидше працювати.

Розбивка д^янки даних диска на кластери, яю можна позначати як вiльнi, зайняп або зiпсованi, дозволила обминути розглянуп вище обмеження. Кластер у ФС це мШмальна область даних, яка може зчитуватись за один цикл звертання до диску засобами ФС, i складаеться з одного або деюлькох сумiжних секторiв. У файловiй системi FAT (File Allocation Table) iз введенням таблищ розташування файлiв стало можливим записувати один файл у несумiжнi кластери. Тобто файл може бути розкиданий по диску, але по ланцюжку в FAT ОС може його зiбрати. Тепер ОС треба працювати з файлом тими блоками, на яю вш розбитий в результат введення кластерiв. При цьому, чим менше