Таблица 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
В.В.Назаренко, Г.В.Неласа, В.М.Крищук
Розглядаються icnymni файлов1 системи, та проводитися аналiз ¿х характеристик. Описуються принципи побудови файловоi системи, в якш реалiзована нова теxнологiя розподiлy дискового простору Cluster free. Завдяки цьому тдвищуеться швидкicть роботи з диском, 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дома операцшна система (ОС) TR-DOS, яка використовуеться на комп'ютерах ZX-Spectrum працюе з файлом як з одним безперервним блоком шформаци. Для збереження адресно!' шформаци "Каталог" вид1ляеться нульова дор1жка на дискет, а весь шший простр вид1ляеться тд даш. Файли записуються посл1довно один за другим. Для зб1льшення розм1ру файла його треба скотювати в к1нець диска. Якщо файл знищуеться, його м1сце залишаеться зайнятим у тому випадку, якщо файл не був останшм. Проте перевагами е те, що для збереження адресно'! шформаци не потр1бно багато м1сця й ОС може прочитувати файл блоками тих розм1р1в, 1з якими 1'й легше i швидше працювати.
Розбивка дiлянки даних диска на кластери, яю можна позначати як вiльнi, зайнятi або зшсоваш, дозволила обминути розглянутi вище обмеження. Кластер у ФС це мШмальна область даних, яка може зчитуватись за один цикл звертання до диску засобами ФС, i складаеться з одного або деюлькох сумiжних секторiв. У файловiй системi FAT (File Allocation Table) iз введенням таблищ розташування файлiв стало можливим записувати один файл у несумiжнi кластери. Тобто файл може бути розкиданий по диску, але по ланцюжку в FAT ОС може його зiбрати. Тепер ОС треба працювати з файлом тими блоками, на яю вш розбитий в результат введення кластерiв. При цьому, чим менше
В.В.Назаренко, Г.В.Неласа, В.М.Крищук: КОНЦЕПЦ1Я ПОБУДОВИ ФАЙЛОВО! СИСТЕМИ CLUSTER FREE
розм1р кластера, тим част1ше треба звертатися до диска. Можна зробити розм1р кластера великим, щоб зменшити юльюсть звертань до диска. Але е й зворотна сторона медали маленький файл або залишок файла буде займати на диску весь кластер, який би великий вш не був. Тобто на диску буде багато кластер1в, у яких корисною шформащею зайнято зовим мало м1сця. Виходячи з цього, виб1р розм1ру кластера - це завжди компром1с м1ж швидкод1ею i розм1ром дискового простору в "хвостах" файлiв. Також, крiм пе1 шформаци про файл, що збер^аеться в каталозi, необх^но додатково зберiгати ланцюжок кожного файла[1].
У Unix застосовуеться iнший тдх^. При форматуваннi видiляeться статична таблиця дескрипторiв файлiв, що не може зб^ьшуватися. Таким чином, кiлькiсть файлiв на диску обмежена. Область даних також розбиваеться на блоки (кластери). Шд час запису файла на диск виконуеться схожа процедура пошуку вiльних кластерiв i заповнення "х. Але тут уже вiдсутня загальна таблиця розмщення файлiв, а для кожного файла створюеться окрема. 1нформащя про вiльнi та зайнятi кластери збертеться у бiтовiй картi. Даш про файл, таю як розмiр i розташування, зберiгаються в дескрипторЦ2].
Один iз методiв збiльшення швидкоди - це збiльшення розмiру дескриптора. Невеликий файл може розмщуватися в дескриптора що значно пiдвищуe швидюсть роботи. Проте в такому випадку розмiр таблицi дескрипторiв значно зростае. Прикладом тако! реалiзацil е NTFS (New Technology File System). При форматуванш тд таблицю дескрипторiв вид^яеться 12% дискового простору. Це в^разу "вiдкушуe" великий шматок вiльного мшця.
Фiрмою IBM разом iз Microsoft для OS/2 розроблена власна ФС за назвою HPFS (High Performance File System), що означае високопродуктивна файлова система. У HPFS розмiр кластера зведений до розмiру сектора, i сектори групуються в блоки по 8 юлобайт. Для кожного такого блока шнуе б^овий блок розмiром 1 юлобайт, у якому для кожного сектора видшений 1 бт Значення цього бт означае зайнятий сектор або в^ьний. На початку диска знаходяться два системних сектори, яю мiстять покажчики на список дефектних секторiв, в^ьних бiтових полiв i покажчик на кореневий каталог, а також дату останньо! модифжацп. Також у HPFS застосована нова технолопя B - tree (В - дерево). В -дерево - це деревоподiбна структура, що дозволяе працювати з каталогом значно ефектившше, шж лшшний список, що використовуеться в шших ФС. Так iмена файлiв у каталозi розташовуються не один за другим, а збалансованим деревом. Тому для пошуку файла не треба прочитувати весь каталог i перебирати ум iмена, а лише "пробiгтися" по плках дерева, що значно швидше при великому каталозь Але при додаванш файла в каталог або перейменуванш файла в каталозi необхiдно виконати багато складних операцш, тому що В-дерево повинне
бути збалансованим. Може також знадобиться пересортовування всього дерева. При цьому може не вистачити в^ьного мшця на диску, навiть якщо файл не зб^ьшився в розмiрi. Тому ОС резервуе для таких операцш вшьш сектори. Тобто загальне зб^ьшення швидкоди ставиться пiд питання, особливо для каталопв iз невеличкою юльюстю файлiв. Для опису ланцюжка секторiв файла також використовуеться В-дерево, що може зб^ьшити швидкiсть опрацювання великого файла в порiвняннi з лшшним збереженням ланцюжка, якщо робота з файлом ведеться не лiнiйно, а, наприклад, iз частими "стрибками" у рiзнi частини файла, що зустрiчаeться не так часто. Але при зб^ьшенш або зменшенш файла в розмiрi його ланцюжок доведеться збалансувати[3].
На основi HPFS була розроблена NTFS. Для не! було взято краще з рашше розглянутих ФС а також додана в^мовостшюсть. Для забезпечення в^мовостшкоси введений файл реестраци (журнал), у якому збертються транзакцil. Кожна операщя, що змiнюe файл, розглядаеться як транзакцiя. При змiнi файла в журнал заноситься шформащя про поточну транзакщю. При успiшному виконанш операцil транзакцiя знищуеться з журналу. При збо!' NTFS переглядае вш незавершенi транзакцil i скасовуе ви незавершенi дil ФС. Таким чином, у NTFS тдтримуеться захист в^ збо1в, при цьому запис у журнал про початок транзакци е привiлейованою дieю, тобто повинний виконуватися якнайшвидше, що позначаеться на зниженш продуктивностi[4].
Для зберiгання iнформацil про в^ьш та зайнятi сектори у б^ьшосп сучасних ФС використовуеться метод б^ового поля, у якому кожен б^ вiдповiдаe за один кластер на диску.
ПОСТАНОВКА ЗАДАЧ1
Таким чином, уи сучасш файловi системи виршили проблеми розмiщення iнформацil на диску в принцит однаковим засобом. Як ми бачимо, ильки ФС HPFS вид^яеться з шнуючих ФС, тому що не мае поняття кластер i оперуе секторами диску. Загальною проблемою е обмеження на швидкодт i корисний дисковий просир, якi в iснуючих ФС пов'язаш вiдношенням зворотно1 пропорцiйностi, що накладаеться обраним розмiром кластера, тому що розмiр кластера не може змшюватися i задаеться при форматуваннi. Для виршення дано1 задачi потрiбно використати такий метод роботи з дисковим простором, щоб не бути прив'язаним до статичного розмiру кластерiв на диску.
МЕТОДИ ТА АЛГОРИТМИ Р1ШЕННЯ
У запропоновано1 ФС Cluster Free ця проблема виршуеться за рахунок розробленого методу видтення дискового простору блоками змшного розмiру. При цьому не губиться функцюнальшсть, що присутня у розглянутих ФС.
Каталоги збертають мiнiмальний об'ем шформаци необхщно1 для роботи з файлами, тако1 як iм'я, атрибути, час створення, розмiр, прапорець змiнюваностi i покажчик на перший кластер. Основним питанням при форматуванш е розмiр кластера. Як уже визначалося, потрiбно вибрати таке спiввiдношення, щоб "хвости" файлiв не вiднiмали багато втьного простору, i при цьому система працювала з диском як можна бтьшими блоками. Для розв'язку ще1 проблеми, у ФС Cluster free розмiр кластера не встановлюеться, а вибираеться динамiчно для кожного окремого файла в залежност вiд потреби.
Весь лопчний диск розбиваеться на фiзичнi сектори розмiром 512 байт. Якщо при створенш файла вщомий його розмiр, то ОС шукае на диску скупчення вiльних секторiв, що вiдповiдаe максимально необхiдному розмiру кластера i записуе туди дань Якщо на диску немае втьних кластерiв необхiдного розмiру, то файл розбиваеться на бтьш дрiбнi кластери. Якщо ж розмiр файла заздалепдь не вiдомий, то можна видшити пiд нього великий кластер i потiм його зменшити, якщо файл виявився невеликим, або додати новi кластери, якщо в один кластер файл не вмщаеться. У разi малого розмiру файла, пiд нього видтяеться кластер розмiром один сектор, i хвiст файла не буде займати багато зайвого мшця, а якщо файл великий, видтяеться кластер бтьшого розмiру, i працювати з таким файлом можна великими блоками, що тдвищуе швидкодт. При збтьшенш розмiру файла, що обробляеться, можна переписати його з буфера в шше мшце на диску, видшив-ши кластер бiльшого розмiру, або добавити новий кластер в ланцюжок цього файлу, що аналопчно пошуку ще одного втьного кластеру в шших ФС. Для пошуку втьного простору треба здшснювати операци подiбнi до тих, що роблять розглянут ФС. Але при такому пiдходi потрiбно зберiгати iнформацiю не пльки про ланцюжок файла, але i про розмiр кластерiв у ланцюжку, тому що розмiр кластера може змшюватися навiть у межах одного файла. Проте чим бтьше розмiр кластеру тим менше зайво1 шформаци треба збертати. Таким чином, швидкодiя роботи файлово1 системи пiдвищуeться за рахунок зменшення кiлькостi звертань до диску. Але навантаження на процесор збтьшуеться, тому що необх^но постшно розраховувати розмiр кластера.
В процеи роботи були реалiзованi основнi блоки запропоновано1 ФС [5].
Для наочност розглянемо декiлька прикладiв коду для роботи з фшсованим розмiром та з втьним розмiром кластеру.
1. Отримання наступного кластеру файла.
Втьний розмiр:
file->num_clust=file->buf_fat[file->ofs_in_fat].num_clust; // номер кластера
file->size_clust=file->buf_fat[file->ofs_in_fat].size_clust; // розм1р кластера
Фiксований розмiр: file->num_clust=file->buf_fat[file->ofs_in_fat].num_clust;// номер кластера
2. Пошук наступного кластеру для файла.
В1льний розм1р: beg_bit=0;//з видки починати пошук тах_Ы1=МАХ_Б17Е_С1-и8Т;//сюльки сектор1в знайти bit_seek_clear(fs, &beg_bit, -1, &тах_ЫЦ;//пошук в1льних сектор1в
bit_set(fs, В!Т_БЕТ, beg_bit, max_bit);//вiдмiтка найдених сектор1в
file->buf_fat[file->ofs_in_fat].num_clust=beg_bit;//зберiгання номеру сектора
file->buf_fat[file->ofs_in_fat].size_clust=max_bit; //розмiру
сектора
file->buf_fat[file->ofs_in_fat].type_clust=END_FILE; //типу сектора file->num_clust=beg_bit; //зберiгання номеру сектора file->size_clust=max_bit; //зберiгання розмiру сектора
Фжсований розм1р: beg_bit=0; //з видки починати пошук max_bit=MAX_SIZE_CLUST; //скiльки сеюхрв знайти bit_seek_clear(fs, &beg_bit, -1, &max_bit); //пошук вiльних секторiв
bit_set(fs, BIT_SET, beg_bit, max_bit); //вiдмiтка найдених сеюх^в
file->buf_fat[file->ofs_in_fat].num_clust=beg_bit; //зберiгання номеру сектора
file->buf_fat[file->ofs_in_fat].type_clust=END_F!LE; //типу сектора file->num_clust=beg_bit; //зберiгання номеру сектора 3. Читання данних з файлу. В1льний розм1р: size_clust=file->size_clust*S!ZE_SECT;//розмiр поточного
кластеру
/*розрахунок сюльки байтiв можна зчитати*/
read_sect(fs, file->num_clust, file->size_clust, file_buf);//читання
данних
memcpy(&buf[pos],&file_buf[file->pos_in_clust],byte_read); file->pos+=byte_read;//змiщення позицп у файлi file->pos_in_clust+=byte_read; //змiщення позицп у кластерi if(file->pos_in_clust>=size_clust){//якщо вийшли за межу кластеру
get_next_clust(fs,file);//отримати новий
file->pos_in_clust=0;//скинути позишю у кластерi }
Ф1ксований розм1р: {//розрахунок скiльки байтiв можна зчитати} read_sect(fs, file->num_clust, file->size_clust, file_buf);//читання данних
memcpy(&buf[pos],&file_buf[file->pos_in_clust],byte_read); file->pos+=byte_read;//змiщення позицií у файлi file->pos_in_clust+=byte_read; //змiщення позицií у кластерi if(file->pos_in_clust>=size_clust){//якщо вийшли за межу кластеру
get_next_clust(fs,file);//отримати новий
file->pos_in_clust=0;//скинути позицiю у кластерi }
3 приклад1в видно, як мало додаеться до коду програми для роботи з кластером в1льного розм1ру. Треба тшьки розрахувати його розм1р, 1 пот1м йде звичайна робота з кластером.
В.В.Назаренко, Г.В.Неласа, В.М.Крищук: КОНЦЕПЦ1Я ПОБУДОВИ ФАЙЛОВО! СИСТЕМИ СЬШТЕИ БИЕЕ
Таблица 1 - Пор{вняльний анал{з к1лькост{ процесорних команд для систем з в{льним та фЫсованим розм{ром кластера
Як можна бачити, навантаження на процесор зб!льшуеться незначно. Якщо прийняти до уваги р!зницю м!ж швидкод!ею процесора та жорсткого диску, стае очевидним перевага запропонованого тдходу.
Таблица 2 - Залежтсть часу зчитування в1д розм{ру кластера
Як можна бачити з таблиц! 2, зчитування двох кластер!в одного розм!ру п!дряд виконуеться довше
н!ж зчитування одного кластеру, розм!р якого дор!внюе сумарному розм!ру цих кластер!в. У середньому р!зниця дор!внюе 0,1 мс, але це без урахування змщення головки, тому що в експериментах зчитувались одш й и сам1 кластери. У процесор1 що працюе на частот! 166МГц за 0,1 мс в1дбуваеться 16600 такт1в. На виконання одше! команди в залежност! в1д и складност1, процесор може витратити часу порядку одного-трьох такт1в. 3 цього очевидно, що виграш у час! звертання до диску на багато б!льший, н!ж час, що витрачаеться на додатков! процесорн! операц!'!.
Для збереження ланцюжка файла вид!ляеться перший кластер файла, п!сля якого будуть йти кластери з даними. У випадку ж, якщо файл вм!щуеться в один кластер, немае необх!дност! вид!ляти спец!альне м!сце для ланцюжка, а дан! розташовуються безпосередньо в ньому. Розм!р кластера для ланцюжка вибираеться ОС. Якщо розм!р файла зб!льшуеться, так що його ланцюжок не вм!-щуеться у вид!лений кластер, то до файла додаеться ще один кластер ланцюжка, на який встановлюеться посилання з попереднього кластера. Приклад тако' структури можна побачити на рисунку 1. Тут наведено приклад файла, у якого два кластера ланцюжка. Перший кластер збер!гае покажчик на початков! кластери з даними ! також на кластер ланцюжка, який у свою чергу збер!гае покажчик на кластери даних. А також "хв!ст" файла записаний у в!льне м!сце кластера ланцюжка для економ!! м!сця.
Для збереження !нформац!' про в!льн! сектори використовуеться б!товий прост!р, у якому для кожного сектора на диску вид!ляеться б!т, значення якого означае, зайнятий сектор чи в!льний.
Операщя К1льк1сть процесорних команд
В1льний розм1р Ф1ксований розм1р
Отримання наступного кластеру файла 8 4
Пошук наступного кластеру для файла 51 40
Читання данних з файлу 32 29
Розм1р кластера у секторах Час зчитування, мс
1-го кластера 2-х кластер1в п1дряд
1 0,17 0,34
2 0,22 0,44
4 0,34 0,66
8 0,56 1,10
16 0,97 1,92
32 1,84 3,69
64 3,60 7,17
128 7,10 14,18
Рисунок 1 - Приклад збер1гання файлу з використанням технологи Cluster Free
ВИСНОВКИ
ПЕРЕЛ1К ПОСИЛАНЬ
В робот подана концепцiя побудови ФС Cluster Free, засновано! на принцип видшення дискового простору блоками змшного розмiру. В цiй системi тдвищуеться швидкiсть роботи з диском, i при цьому зменшуеться втрата дискового простору в "хвостах" фа^в. Такий подвiйний ефект досягаеться завдяки розробленому алгоритму розмщення данних на диску за рахунок збшьшення процесорних операцш та необхiдностi зберiгання розмiру кожного кластера, що виявляеться незначними збитками по зрiвнянню з отриманими перевагами.
1.
2.
3.
4.
5.
А. Фролов, Г. Фролов. Операционная система MS-DOS. -М.: Диалог-МИФИ, 1992, 222с.
Maurice J. Bach The Design оf The Unix Operating System. -Нью-Джерси: Prentice-Hall, 1986.
Duncan, Roy. Design goals and implementation of the new High Performance File System. (includes related article on B-Trees and B+ Trees).// Microsoft Systems Journal. 1989.-№9
Ресурсы Windows NTTM. - СПб.: BHV, 1996. - 720 с. Вильямс А. Системное программирование в Windows 2000 для профессионалов - СпБ: Питер, 2001, - 624с.: ил.
УДК 681.32:007.52
PRO-СЕТЕВАЯ МОДЕЛЬ ЦИФРОВОГО НЕЙРОНА
М.А.Новотарский
Рассмотрена модель формального нейрона и причины ее широкого использования в качестве базового элемента нейронных сетей. Обосновывается необходимость усложнения модели нейрона для расширения сферы применения нейронных сетей. Дается краткий обзор принципов функционирования биологического нейрона при обработке и передаче информации. На основе этих принципов предлагается PRO-сетевая модель цифрового нейрона, дается ее статическое и динамическое описание.
Розглянута модель формального нейрона та причини ii широкого використання в якоcтi базового елемента
neupoHHUx cimoK. 06fpyHmoeyembcx HeoSxidmcmb ycKAadneHHM Modexi HeupoHa 3 Memom po3wupeHHM ctyepu 3acmocyeaHHM HeUpoHHUx cimoK. flaembcx KopomKuU ozamB npuHU,unie rf>yHKU,ioHyeaHHx 6ioxozmHozo HeupoHa nid %ac o6po6KU ma nepedani iH^opMau,i'i. Ha ocHoei u!ux npuHU,unie nponoHyembcM PRO-cimKoea ModeAb uu^poeoгo HeupoHa, daembcM i'i cmamunHuu ma duHaMinHuu onuc.
In paper the model of a formal neuron and reasons of its wide usage as a base unit of neural nets is briefly considered. The necessity to use more complicated model of a neuron for the extension of sphere of neural net application is justified.