Читайте также:
|
|
Одним із основних компонентів G2 є машина виводу, що виконує роздуми на основі:
· знань, що містяться в базі знань;
· даних, що надходять від підсистеми імітаційного моделювання;
· даних, що надходять від зовнішніх джерел.
Правила збуджуються машиною виводу. При цьому перевіряється істинність умови, що знаходиться в умові правила. Якщо вона істинна, то машина виводу виконує дії, що знаходяться у висновку. При перевірці умови правила машині виводу необхідно знайти значення всіх змінних і параметрів, які містяться в них. Параметри в будь-який момент часу мають певне значення, в той час як значення змінних може бути відсутнім, оскільки для них визначено час життя. Якщо змінна немає значення, система може отримати її значення із наступних джерел:
· сервер даних, що отримує дані від зовнішніх джерел;
· оператор;
· підсистема моделювання зовнішнього середовища;
· правило, визначаюче шукані значення змінних;
· формула приписана до змінної (чи класу змінних), значення якої потрібне системі.
Після того, як всі потрібні значення отримані, система визначає чи істинна умова розглядуваного правила. Якщо умови істині, система виконує дії, що знаходяться у висновку даного правила. В набір дій, які використовуються у висновках правил, включаються наступні:
· присвоєння значення простому атрибуту, параметру чи змінній;
· надсилання управляючої інформації зовнішньому об’єкту;
· запуск процедури;
· створення екземпляра об’єкта;
· видалення екземпляра об’єкта;
· створення і видалення задач (підзадач);
· зміна положення чи кольору піктограм на екрані дисплею;
· управління способом відображення робочих просторів (положення на екрані, масштаб і т.п.);
· вивід повідомлень для оператора і системи;
· активізація всіх правил, асоційованих із заданим об’єктом;
· зупинка системи і т.п.
В зв’язку з тим, що G2 орієнтована на динамічні застосування, що працюють в реальному часі, машина виводу повинна мати засоби для скорочення перебору, реакції на непередбачувані ситуації і т.п. Головним недоліком традиційно використовуваного в статичних ЕС прямого і зворотного виводу є непередбачуваність затрат часу на їх виконання. Для динамічних систем прямого і зворотного виводу з повним перебором можливих до застосування правил – це недозволена розкіш.
Особливістю машини виводу G2 є багатий набір способів збудження правил. Правило в G2 може збуджуватись в одному із 9 випадків. Методи 4-9 збуджують правило при виникненні деякої події. Для реалізації цих методів в G2 введений спеціальний тип правил, що починаються з ключового слова whenever (як тільки). Правила whenever збуджуються в першу чергу і володіють найбільшим пріоритетом, що гарантує своєчасну реакцію системи на зміни в навколишньому світі. Правила цього типу не використовуються (по замовчуванню) не в прямому, ні в зворотному виводі, вони є метаправилами і реагують на події.
Планувальник
В зв’язку з тим, що G2- додаток управляє множиною задач, необхідний Планувальник. Планувальник управляє всіма процесами в G2. Хоч користувач ніколи не взаємодіє з ним, планувальник контролює як свою активність, яку бачить користувач, так і активність фонових задач. Планувальник визначає порядок обробки задач, взаємодіє з джерелами даних і користувачами, запускає процеси і здійснює комунікацію з іншими процесами в мережі (рис. 9.2).
Планувальник G2 циклічно виконує наступну послідовність кроків:
1. Перевірка приходу початку циклу: якщо початок циклу наступив, планувальник починає цикл і переходить до наступного кроку.
2. Планування очікуваних задач: Планувальник формує список задач, які будуть виконуватися на даному циклі. Цей список називається чергою поточних задач.
3. Обслуговування джерел даних: Планувальник обмінюється з кожним джерелом даних. Кожному з джерел даних відводиться не більше 0,1 с на виконання цієї операції. Для джерел, що не закінчили обмін за відведений час, плануються задачі для спроби закінчити передачу даних.
4. Виконання задач: Планувальник бере чергу поточних задач і намагається виконати якомога більшу їх кількість. Будь-яка задача, що не закінчилася на протязі 0,2с, відкладається для виконання в кінці даного циклу чи в наступному циклі.
5. Обслуговування пакетів мережі: Планувальник надсилає і отримує повідомлення через мережу. На це виділяється до 0,2 с.
6. Обслуговування користувачів: Планувальник приймає і передає дані для всіх користувачів, що працюють в даному сеансі G2.
7. Підготовка до наступного циклу: Планувальник перевіряє, чи залишилася якась активність в рамках даного циклу. Якщо так, він повертається до кроку 1 і перевіряє, чи не прийшов час нового циклу. Якщо ні він переходить до кроку 3 для завершення всіх відкладених дій. Якщо так, Планувальник переходить на наступний цикл. Якщо відкладених задач не залишилося і час нового циклу не настав, то Планувальник «засинає» на 40 мл с і після цього переходить до кроку 1.
Рис.9.2. Блок-схема роботи Планувальника G2
Дата добавления: 2015-07-20; просмотров: 115 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Об’єкти | | | Підсистема моделювання |