Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лачинов В.М., Поляков А.О. Інформодинаміка [укр.язык].doc
Скачиваний:
31
Добавлен:
02.05.2014
Размер:
5.23 Mб
Скачать

Додаток 1 Короткий огляд способів самодеструкції програмних систем або Загальна Демонологія

Практика “сумісного використання ТСУ з тим чи іншим напрямом або галуззю діяльності” може бути розширена практично на всі серйозні галузі. Зробимо, наприклад, екскурс в організацію програмування як у систему. Точніше, спершу спробуємо влаштувати інженерний аналіз, ревізію стану проблеми “ненормальних програм” – демонів {291. Демон програмний – це програма, яка в якомусь сенсі “може більше” ніж “нормальна програма”. У давнішому і більш загальному визначенні Максвелла “Демон” – дещо, що “може більше”, ніж будь-яка структура, яка може бути побудована в рамках строго наукової теорії і за її правилами, може бути навіть більше, ніж може уявити собі людина, що бажає розкласти явище “по поличках” якої не будь логічної системи}, а також і інших структур подібної властивості і подивитися, що з цього можна витягнути для практичної користі. Скорочено називатимемо феномен Д-структурою або просто Д.

Умовимося приклади обговорювати в рамках Cache’-технології {292. Інформаційна технологія, орієнтована на спеціальний вид ієрархічного упорядкування, що забезпечує довільне подання записів у фон Нойманівській машині – ієрархічне, реляційне, мережеве, об’єктно-орієнтоване та не накладаюча обмежень на динамічну зміну структури організації цих записів} і з мінімальною кількістю подробиць. При цьому ми не тільки нічого не втрачаємо, але виграємо – всі так звані “складні таблиці”, “мережі”, у тому числі і “просторові”, насправді аніскільки не краще, оскільки суть чисте “обдурювання іменуванням”.

Для розуміння цього не треба вдаватися в подробиці. Навіть за наявності багатопортової пам’яті і багатопроцесорності обробки все одно все відбувається за допомогою адресних лічильників і стекових механізмів, тобто структур топологічно лінійних. А значить, ми маємо справу з тими ж плоскими, топологічно двовимірними деревовидними структурами. Там, де вони “склеєні в щось складніше”, ці самі “склеювання” насправді заховані або в програмах ядра системи (іноді у вигляді простого якихось коефіцієнтів), іноді в інструментальній системі у вигляді якихось угод (евристик), іноді навіть в умовностях, що знаходяться поза фізичною системою і навіть поза формальним описом мови програмування, тобто в “чистій евристиці”.

Всі спроби “заховати” проблему в структуру “мови високого рівня” у результаті все одно вилазять або у вигляді “проблеми сміття”, або “проблеми відлагоджувальника”, якщо не взагалі в що-небудь гірше. До цього моменту ми ще повернемося.

Розглянемо типову інформаційну систему:

Тут: ПВХ, ПВИХ – потоки входу і виходу;

ІС – інструментальна система;

СА – системний аналітик;

Г1...ГN – глобали;

Г – пам’ять.

Якщо система спроектована “достатньо грамотно”, то картинка приймає вигляд:

Тут Гі – пам’ять “інструментальних” глобалів, структур, що є “правилами поводження” з вхідними даними (поповненнями і запитами), робочою пам’яттю Г, а також із повідомленнями операторові системи і “внутрішніми колізіями”.

Найдосконаліша система, якщо вона з динамікою, з поповненнями, неминуче доживе до моменту, коли один з глобалів Гn “наступить” на інший не через пам’ять, а через логіку. Тут повинен спрацювати глобал (із) і “покликати на допомогу” системного аналітика – в нормальних ситуаціях СА не потрібний.

Це і є вид демона простого або плоского ДП (оскільки він глобал). Його можна також відносити до виду “демона корисного” ДПО. Відмітимо, що всі ці ситуації можна (чисто технологічно) саме укласти в глобал – тому він і плоский. Але можна зажадати і більшого – щоб було запитано у апаратної системи достатньо ресурсів і:

  • розділено адресний простір Г;

  • “заведений” новий глобал відповідно розподілу Г;

  • у “словник оператора” було поставлено відповідне повідомлення про те, що в пам’яті Г появилися два нових різних глобали.

Ситуація зовсім не фантастична і цілком вирішувана за допомогою демона відповідного вигляду, але потрібний вже демон процедурний ДПР, оскільки в Гі ці вимоги просто “не влізуть” за сенсом угод Cache’-технології.

Але демон ДПР вже по суті не плоский, такий, що має крім свого глобала з Гі ще і тіло в ІС. Якщо це неподобство оператор терпітиме достатньо довго, то у міру заповнення пам’яті Гі система може “перекинутися вниз головою”, прийти в стан, коли Гі стане “більшим і важливішим” за Г.

Звернемо увагу на наступну обставину.

Якщо “розвернути в часі” траси тіл всіх програм ІС, то “замість” тіл ІС ми отримаємо також плоску сукупність плоских “глобалів” – це траси логіки ІС, які породжують попутно зміни глобалів в Г (основній пам’яті). Всі до єдиної навіть “прості петлі” означають призупинки, а тому “розщеплюються” або демонами, або системним аналітиком особисто.

Тут ми й отримуємо той самий “листковий пиріг” із трьох рівнів, який в ТСУ вважається основою будь-якої інформаційної структури. Менше – тривіальність. Більше – треба розбиратися окремо. Поки відмітимо, що цілком можливо виконати наступне:

  • переписати тіла ІС так, щоб вони і структурно були глобалами, тобто не мали циклів, що перекривалися, “внутрішніх підвисань” (тобто неоголошених прямо чи побічно параметрів циклів) тощо. Хоча в деяких випадках це може бути і явно неекономно;

  • цілком можливо придумати “матриці” для подання вузлів, які одно-однозначно можуть розгортатися в стандартні шматки глобалів і локалів і назад (якщо від цього видима користь буде, тобто явне поліпшення використання конкретної архітектури комп’ютера).

Відзначимо ще й наступне.

По-перше, ми нічого не згадували про конкретні розміри і кількість глобалів ні в Г, ні в ІС, ні в Гі.

По-друге, якщо узяти всю цю структуру “чисту”, тобто з порожньою пам’яттю Г, мінімальним робочим набором в ІС і Гі і “необхідним запасом місця і структур” в ІС і Гі для “демонів”, то ми отримаємо “порожню метасистему” (звичайно тільки для “відповідної наочної галузі” або “близько спорідненої”).

У третіх, це може бути використано як елемент для надбудови метарівня тієї ж самої початкової системи, але тільки цілком і як один елемент – в структурно повному метарівні повинні бути три елементи, тобто три шари. І запам’ятаємо також – між двома “чисто декларативними” шарами запакований шар “чисто процедурний”. Поки це залишимо, і продовжимо демонологію.

В деяких випадках “з очевидності проблемної галузі” виникає спокуса жорстко обмежити і число і сам набір глобалів Гі (адже ж очевидно в даному ім’ярек випадку!). Одночасно можна, це вже і зовсім очевидно, обмежитися жорстким стандартним набором тіл ІС.

Але і результат отримаємо не менш очевидний. Дуже скоро інформаційні глобали стануть заповнюватися “зверху” порожніми вершинами (але заради збереження структури – набір-то Гі обмежений, їх доведеться заводити).

Система почне експансивно споживати пам’ять, а змістовний матеріал “занурюватися в Г”. Це називається створити демон пірамідальний ДПИ.

Демон тим чудовий, що при всій очевидності зустрічається вельми часто, особливо в соціальних системах.

І ще, при всій очевидній примітивності, він вельми підступний, оскільки оголошений може бути винятково засобами непрямими, а на початковому етапі роботи створює видимість дуже розумно і ефективно влаштованої системи, але обов’язково засмоктує систему всю цілком в один глобал Г – і поїхали...

Наступним, найпоширенішим в демонології і найулюбленішим “по життю” є демон гібридний ДГИ, що складається з процедурної ДПР і пірамідальною ДПИ частин. Має велику видову різноманітність через наявність процедурної частини і тому буває дуже важко уловимий навіть на етапі його “існування”, а створюватися може і “неявним способом”. Якщо має один глобал в ГИ і тіло процедури, що має доступ у Г, – називається “вірусом”, оскільки може бути зроблений компактним {293. У деяких архітектурах, які дуже багаті індексними можливостями і довгими апаратними командами, можливі «спорові» віруси, тіло яких може мінятися при розмноженні (наприклад, за рахунок перетасовування його частин «випадковим чином»), або взагалі складатися з «розсипухи» - окремих досить невеликих шматків.

Пробувати не радимо - втратите все, що було в системі.

Траплялися і зовсім смішні випадки, наприклад в RSX-11 fortran-файл, що містить HEL HEL... шістнадцять разів підряд і запущений з термінальної клавіатури робив її системною консоллю, а все інше просто вирубував. Далі зрозуміло, що можна було процесор зупинити тільки кнопкою «стоп» або чекати поки «клієнт удосталь награється».}.

Дуже люблять ДГИ дослідники “штучного інтелекту” за те, що він майстерно може прикидатися, видаючи себе за зовсім інше і “з вигляду” неначе “збалансований”.

Поставимо уявний експеримент.

  1. Завантажимо в глобал Г всі шахові партії, які коли-небудь були зіграні;

  2. У глобали ГИ – всі “класичні” етюди і позиції.

  3. “Зворотним ходом” зберемо тіла процедур, що забезпечують перемоги (можливо для цього всі ГИ і не знадобляться).

Дорого і довго, звичайно, але в уявному експерименті можна, тим більше заради того, що отримаємо. А отримаємо в результаті демона довершеного ДСОВ, який з вірогідністю близько 1 обробить будь-якого чемпіона, оскільки якщо і не виграє, то вчасно нічию запропонує.

Ось “штучники” за те ДГИ і люблять, що він дуже добре ДСОВ прикидається, тільки поки незнайому партію не зустрів, тоді він миттєво лапками догори відкидається вже з вірогідністю строго рівною 1. Застосовувати ДГИ для управління атомним реактором не варто, та і всім іншим теж, тим паче, що вірогідність наявності ДСОВ в природних системах – строго менше будь-якого уявного числа. Проте, ДГИ зустрічається в деяких цілком реальних системах.

Тут майже вся “загальновживана” комп’ютерна демонологія і закінчується, починається ще не освоєна. Розглянемо роботу системного аналітика, після того, як спрацював ДП. Наш аналітик:

  • витягує в своє “вікно” конфліктуючі глобали. Оскільки ситуація загального вигляду “вікно” потрібне велике – щоб цілком помістилися;

  • витягує “винні” процедури і відповідні глобали інструментальні ГИ;

  • якщо з процедурами все гаразд (тобто, немає явної помилки), то шукає, по-перше, “очевидну” нову процедуру і, по-друге, “очевидний” новий глобал для ГИ;

  • якщо не вийшло, або виходить занадто довго або “коряво” – біжить до постановника завдання; після відбувається перетрушування всіх інструментальних глобалів ГИ і всіх тіл процедур (хай вони “зроблені” як ГИС – глобали інструментальної системи).

Представимо цю акцію на рис. П1.3.

Фактично ми отримуємо рис. П1.2, “піднятий на одну сходинку”. За основу, зразок для неї, природно узяти “самого ближнього родича”, тобто “порожню” систему нижнього рівня, але з відповідною “начинкою” заготовок для метаглобалів інструментальних і метаглобалів ІС. Тепер зрозуміло, чому процедури зручно представляти як глобали.

За певних умов S1 – числення предикатів першого порядку. Історія S1 – теорія предикатів першого порядку. Відповідно S2 і його історія те ж, але другого порядку.

Якщо “початковий джентльменський набір” готових МГИ і МГИС у деякому розумінні “відповідний”, то систему можна замикати “на автомат”. Тільки до набору демонів ДП (повному набору, про це треба особливо піклуватися, а не про “високих” демонів) потрібно додати повний набір демонів ДПП – демонів плоских з пам’яттю.

Справа ось у чому. Через декілька кроків може вийти так, що знов створені на i-му кроці ГИ(i), ГИС(i) доведеться “повернути на місце” – просто логічно вийде, як очевидність. Тобто тут вже зовсім без нашого “злого наміру” або навіть неуважності самостійно народжується демон ДКУВ, що перекидається. Це через те, що теорія стала другого порядку. Приклади всім знайомі – достославні апорії і логічні парадокси.

Інші демони теж у боргу не залишаться, ДПИ стане високим ДВИ, ДКУВ – тремтячим (програму може “затрясти”) ДТР, ДГИ можна тепер називати “гнучким” зрозуміло через його підвищену гнучкість.

Треба відзначити, що система в цілому стає з “шарувато-плоскою” істотно, топологічно тривимірною. На програмній реалізації це ніяк особливо не повинно позначитися, окрім двох істотних моментів.

По-перше, істотно зросте час роботи, оскільки все треба обмежити “періодом роботи” демонів ДПП – інакше небезпечно.

По-друге, оскільки “історія” S2 – суть “щільна упаковка” з “шарових пирогів” – відповідно повинен зрости обсяг пам’яті, а якщо вона віртуальна, то і час роботи теж.

Далі, не виходячи з тривимірного подання, можна тим же способом надбудувати ще одну сходинку зі своїми відповідними особливостями, а саме:

  1. Історія S3 – вже не теорія, а числення предикатів, оскільки сам рівень S3 не можна робити більше ніж “перерахуванням” – читайте ТСУ;

  2. Відповідно винна рости “книга витрат”;

  3. Демон корисний ДП залишається як і раніше одного вигляду, називається “Демон пам’ятливий”;

  4. Всі демони “збільшують свої здібності”;

  5. Сам по собі народжується ще один сорт – “демон ДВЕР, що вертиться”, як нащадок ДКУВ. Всім нам знайомий дорогий і близький “діалектичний матеріалізм”;

  6. З’являються “зародки” нових сортів демонів.

Подальший виклад дуже коротко, оскільки дожити до цього моменту в сенсі конкретного програмування нам точно не доведеться, але загальну картинку знати не шкідливо.

Для наступного переходу в результаті якого повинен вийти інтелект зовсім не штучний, система повинна стати топологічно 4-и вимірною і при цьому з відповідними витратами – в ТСУ це теж викладено.

Далі демонологія подається пояснювально.

Корисні – той же ДП, тільки ще і “довгопам’ятливі” різновиди і мінімальний набір цих корисних досить великий (щоб від них реальна користь була).

Шкідливі демони:

ДТОТ – “тоталітарний”, нащадок високого ДВИ;

ДЗМЕ – що “зміїться”, нащадок тремтячого ДТР;

ДКОВ – “підступний”, нащадок гібридного ДГІ.

Швидше за все, це будуть вже не окремі структури, окремі демони, а цілі сім’ї з вказаними назвами.

З’являться і якісно нові демони, аналоги того, як з однієї неправильної посилки може вийти структура бази даних не відповідна нічому реальному, але синтаксично цілком законна. Тільки тут, оскільки ми побудували (нафантазували) систему, що вже самоструктурувалася, вони можуть народитися самі по собі, без нашої команди і крім бажання, наприклад:

ДДЗЕР – “дзеркальний” або “полірований”, від якого все йому не споріднене відскакує як від стінки горох, наприклад класична механіка з електродинамікою;

ДВС – всмоктуючий або всеосяжний – тобто загальна теорія відносності або теорія рішень, оскільки вони “всмоктуватимуть” всі факти і артефакти, поки самі не лопнуть.

Всякі інші демони такої властивості, тобто теорії породжувані “автоматичними вирішувачами проблем” – можете придумувати самі. Технологія пізнання повинна займатися своїми справами в рамках конкретних проектів – в ТСУ це теж прописано, а то тонни паперу можна списати, як корм для ДВС – все засмокче, що не дай йому.

Ось і все, хоча можуть бути і інші демони, хитрощі “неприродного інтелекту”, виходячи ж із властивостей інтелекту нормального – скільки треба, у міру його хитрості.

Тепер, кому ще це в цілому не набридло, може відкрити Кабалу чи інші стародавні книги і порівняти – це в плані “загальної теорії знань”, чомусь аналогії вельми близькі проглядаються...

Отже, в демонології ми з позиції ТСУ розглянули властивості програмних систем, які з’являються, коли ці системи і справді стають складними. На рівні того, що вже досягла Cache’-технологія в цілому, теорія може дати дуже мало “позитивних” результатів, а саме:

  • виявити одного “корисного”, тобто плоского демона;

  • виявити, що найбільш майстерні програмісти вже досягли граничних можливостей Cache’-технології, або майже досягли.

Трохи більше результатів негативних:

  • виявлено декілька типів “шкідливих” демонів і способи їх породження і принцип дії;

  • всі інші технології аніскільки не кращі, а, швидше за все гірші Cache’, оскільки “краще ховають” демонів усередині себе, або від народження таких у собі мають;

  • всі взагалі інформаційні технології “затиснуті” вже майже намертво структурою машини фон Ноймана. Якщо їм і є куди йти, то тільки кількісно, за рахунок зростання можливостей елементної бази. Але це суть все та ж ефемерність, так звана “Вавілонська башта примітивна”. Це не зростання, а мишоловка. Сучасні інформаційні технології це та межа, те місце, де “щось відбувається” і з самими теоріями, і з предметами, і процесами.

Подивимося, що ще можна витягнути зі сказаного вище.

  1. Описи демонів, тобто “негативний” результат, суть інструкція, як не можна діяти ні за яких обставин і як би цього не хотілося, оскільки крах на цьому шляху неухильний. Це однаково торкається і Cache’-технології, і будь-якої інформаційної технології, і будь-якої теорії взагалі.

  2. Підказка, як “правильно” влаштувати систему, щоб вона могла розвиватися – це максимум, що може сказати теорія. Все інше залежить від мистецтва аналітика, тобто конструктора системи (є теорія живопису, а є живопис). Але рівно те ж саме стосується будь-яких систем і теорій, які десь і колись можна у Всесвіті зустріти.

  3. Оцінки, ув’язнені в “демонах корисних”, це той мінімум, який треба “заплатити” за можливість розвитку системи, за її рівень розвитку.

  4. На даному рівні складності і далі, немає взагалі теорій, які видають прямі інструкції для “штампування цвяхів”, тобто прикладні рівняння, функціонали тощо. У цьому сенсі всі теорії однаково хороші і однаково погані, яку вибрати – воля конструктора. І не тому, що “не вистачає” метатеорії – тому, що самі “цвяхи” придбали таку властивість, тобто такий рівень складності.

  5. Все це відбувається не тому, що “невірно” вибраний шлях пізнання і є інші, “правильніші” метатеорії і шляхи. Але тому, що саме сукупне знання і сам Всесвіт, у якому це все разом існує, так влаштовані.

  6. Будь-яка строга теорія має актуально подвійну межу розвитку і за строгістю (точністю), і за спільністю (обхватом). Строгий порядок “до безкінечності і до нескінченно малої” може розвиватися тільки у виродженому вигляді – у вигляді фракталів і лише на топологічній площині. Скрутіть площину в що-небудь замкнуте і фрактали від єдиного “нескінченно малого” збою почнуть “наступати собі на хвости” і один на одного.

У трьох і більше вимірюваннях неминуче наступає момент, коли найдовершеніша конструкція вичерпує можливості узгодження своїх структур як “всередину”, так і “назовні” і звалюється в катастрофу, де руйнуються і топологія, і метрика, і взагалі всі поняття, навіть далі, ніж у “теплову смерть”.

Єдина можлива суперсистема – та, яка “зайняла все, що можна зайняти взагалі” і, влаштувавшись в довершеній топології, підтримує рівновагу цього всього, постійно породжуючи і підправляючи всілякі метрики, але користуючись при цьому тільки топологічними “правилами гри”.

- Виходить, що Ваші пояснення покрутіші, ніж у Ейнштейна?

- Ну, покрутіші. Але вони ставлять все на своє місце.

З інтерв’ю А. Денисова газеті “Новий Петербург” 2 вересня 1999 р. № 33(368)