СПОСОБ АВТОМАТИЧЕСКОГО ПРЕРЫВАНИЯ ЗАДАЧ, НАХОДЯЩИХСЯ В ЦИКЛИЧНОСТИ
METHOD FOR AUTOMATIC INTERRUPTION OF TASKS IN CYCLICITY

Изобретение относится к вычислительной технике и к многоагентным системам (MAC) и может быть использовано для автоматического прерывания задач, находящихся в цикличности.
Из уровня техники ближайшими аналогами и прототипами заявленной системы являются существующие структуры супервизоров и диспетчеров операционных систем компьютеров универсального назначения.
В рамках области техники «Мультиагентные системы» заявленная система относится к так называемым интеллектуальным практичным агентам [http://ru.wikipedia.org/wiki/Интеллектуальный_агент]. Практичные агенты обладают целенаправленностью как способностью различать состояния, когда цель достигнута и когда не достигнута, и помимо того, обладают способностью различать, насколько желанно для них текущее состояние.
Прототипом заявленной системы является многоуровневая архитектура интеллектуального агента, названная BDI (beliefs, desires, intentions, goals, plans, events), или убеждения, потребности, деятельности, цели, планы, события. [A.S.Rao, M.P.Georgeff. (1995). "BDI-agents: From Theory to Practice". Proceedings of the First International Conference on Multiagent Systems (ICMAS'95).
https://www.aaai.org/Papers/ICMAS/1995/ICMAS95-042.pdf.]
Недостатком прототипа является то, что агент BDI не предусматривает условий и возможностей комплексирования двух параллельно работающих процессоров - одного, разрабатывающего и корректирующего планы, и другого, исполняющего планы по расходу-доходу ресурсов.
Следовательно, в агенте системы BDI не предусматривается возможность «осознания» рациональности его собственного поведения, которая, естественно, связана с соотнесением выгоды от искомого решения о поведении с текущими затратами ресурсов на продолжение поиска рационального решения.
Целью заявленного изобретения является устранение данного недостатка прототипа и реализация способности комплексирования двух параллельно работающих процессоров (компьютеров) и возможность придания агенту свойств «квазиразумности» в рамках определения интеллектуального практичного агента (http://ru.wikipedia.org/wiki/). Техническим результатом заявленного способа является разрешение проблем безопасности компьютеров, компьютерных систем и сетей за счет: предотвращения «зависаний», обусловленных циклической логикой прикладных программ, их взаимной блокировкой, модификацией вредоносными программами (вирусами), или сохранение работоспособности компьютера при «зависании», обусловленном физическими причинами (перегрев); за счет повышения защищенности от нелицензионного использования программ; за счет диалогового согласования текущих ресурсных возможностей операционных систем и изменяющихся потребностей пользователя в вычислительных ресурсах без прерывания вычислительного процесса; за счет повышения защищенности от вредоносных программ (вирусов). Технический результат достигается за счет того, что предложен новый способ автоматического прерывания задач, находящихся в цикличности, характеризующийся использованием стандартного подсчета процессорных ресурсов, задействованных при выполнении задачи, отличающийся тем, что при достижении некоего порогового значения ресурса, используемого процессором или ядром процессора, а также при достижении порога временной задержки исполнения задачи, выполнение задачи прерывают и перенаправляют ее решение или анализ возникшей цикличности на другой процессор или ядро процессора, причем пороговые значения временной задержки исполнения задачи задаются пользователем или их формируют исходя из эталонной оценки зависания задачи по временной задержке исполнения и пороговому значению ресурса.
Кроме того, в процессе параллельного выполнения задач обоими процессорами или ядрами процессора и при завершении решения задачи одним из процессоров или ядер результаты решения задачи передают другому процессору или ядру как исходные данные (в том числе данные о требуемом вычислительном ресурсе) для решения новой задачи, а предыдущую задачу другого процессора прерывают. Кроме того, при решении задачи одним процессором или ядром промежуточные пошаговые результаты решения задачи одновременно используют другим процессором или ядром как дополнительные исходные данные для решения его задачи. Заявленный способ предполагает следующие модификации в структуре данных, пользовательских программ, системных программ ОС и конфигурации компьютеров:
1. Вводится Аккаунт задачи (новый файл учетной записи для каждой пользовательской задачи).
2. Модифицируется Регистр состояния ОЗУ (с адресом следующей инструкции прерванной программы) добавлением в него полей аккаунта задачи.
3. Вводится дополнительная стандартная первая инструкция для каждой
пользовательской программы, считывающая аккаунт по адресу из ВЗУ в Регистр состояния в ОЗУ компьютера 1, и дополнительная стандартная последняя инструкция для каждой пользовательской программы, переписывающая аккаунт из Регистра состояния компьютера 1 по адресу в ВЗУ.
4. Вводятся системные программы ТАС1 (контроль аккаунта) и ТАС2 (коррекция аккаунта).
5. Вводится размещение системной программы ТАС1 в защищенной области ОЗУ вместе с супервизором компьютера 1.
6. Вводится дополнительный компьютер 2, недоступный для пользовательских программ, с единственной системной программой ТАС2, обрабатывающей только аккаунты задач в диалоге с пользователем.
7. Вводится размещение Регистра состояния с аккаунтом задачи на специальной общей шине, доступной супервизорам компьютера 1 и компьютера 2.
8. Вводится параллельный доступ в асинхронном режиме супервизоров компьютера 1 и компьютера 2 к общей шине Регистра состояния с аккаунтом.
Изобретение может быть осуществлено следующим образом. В каждую пользовательскую задачу, содержащую программу и файлы данных, разработчик задачи включает дополнительный файл данных стандартной структуры, представляющий собой аккаунт (учетную запись) задачи. Предполагается наличие специальной системной программы ТАС1 (Task Account Checking), работающей с супервизором операционной системы первого компьютера, которая должна анализировать аккаунт задачи перед запуском на исполнение супервизором каждого оператора пользовательской программы. И только после анализа аккаунта системная программа ТАС1 должна принимать решение о продолжении исполнения пользовательской программы супервизором или о приостановке исполнения программы и передаче аккаунта на корректировку пользователю. Второй процессор располагается во втором компьютере, имеющем собственную операционную систему, оперативную память и систему терморегулирования, но конструктивно размещенном в общем корпусе с первым компьютером и имеющем общие с ним внешние устройства (внешнюю память, дисплей, клавиатуру). Этот процессор должен исполнять специальную системную задачу ТАС2 (Task Account Changing), которая стереотипно обеспечивает коррекцию аккаунта пользовательской задачи, исполняемой первым компьютером, и взаимодействует в диалоге с пользователем во всех случаях неподтверждения идентификаторов и в случаях перерасхода вычислительных ресурсов пользовательской программой в первом компьютере.
Аккаунт задачи должен содержать следующие принципиально важные данные (см. фиг.2):
- Уникальный идентификатор лица (5) - собственника данной программы (например, ИНН), формируемый при разработке программы,
- Уникальный идентификатор (например, ИНН) лица (4) - обладателя правом пользования данной программы, но не обязательно являющегося ее собственником; данный идентификатор формируется при первичном запуске каждой программы: для системных программ - при покупке пользователем компьютера с операционной системой в магазине, для каждой программы-приложения - при ее первичном запуске пользователем. Если собственник и пользователь программы - одно и то же лицо, то в обе позиции записывается один и тот же идентификатор при первичном запуске программы собственником/пользователем.
- План (6)/Факт (7) расхода вычислительного ресурса (памяти и времени) пользовательской программой, позволяющий соотносить затраты ресурсов, требуемые разработчиком программы, предельные затраты ресурсов, допускаемые супервизором, и фактические затраты ресурсов на момент исполнения каждой инструкции программы.
Использование аккаунта в пользовательской программе, а также специальных системных программ в двух компьютерах, параллельно работающих с общим регистром состояния и аккаунтов, позволяет решать следующие технологические задачи:
- проверка пользователя на наличие прав, предоставленных собственником, на запуск любой программы,
- сравнение расчетной нормы предельно допустимых затрат текущих
вычислительных ресурсов с планом пользовательской программы по затратам ресурсов, и при превышении плана над нормой -диалог с пользователем по коррекции аккаунта,
- сравнение фактических затрат с плановыми затратами ресурсов программой, и при перерасходе плана - согласование с пользователем коррекции аккаунта задачи.
На фиг.1 представлена блок-схема параллельного доступа компьютеров 1 и 2 к Общему Регистру состояния и Аккаунту пользовательской задачи. Любая задача, которая передается супервизором процессору на обработку, должна иметь стандартную структуру: условия, исходные данные, результат. Процессор (1) компьютера 1 запускает на исполнение пользовательскую задачу, которая получает на обработку исходные данные из Среды (с внешних устройств), посредством системной задачи ТАС1 контролирует аккаунт в Регистре (3) на общей шине как условие исполнения каждой инструкции пользовательской программы (легитимность пользователя и план-факт расхода ресурсов), и фиксирует готовность/неготовность аккаунта для его обработки процессором компьютера 2 в асинхронном режиме, в зависимости от выполнения условий завершает исполнение пользовательской программы, вычисляет и передает результат во внешние устройства (в Среду). Процессор (2) компьютера 2 запускает на исполнение системную задачу ТАС2, которая получает аккаунт очередной пользовательской задачи в Регистре (3) на общей шине как исходные данные, ТАС2 посредством диалога согласовывает с пользователем условия, и записывает результат согласования в аккаунт (как подтверждение легитимности и соответствие плана нормам по затратам вычислительных ресурсов пользовательской программой), фиксирует готовность/неготовность аккаунта для его обработки процессором компьютера 1 в асинхронном режиме.
На фиг.2 представлена структура Регистра состояния и аккаунтов.
На фиг.3 представлена структура Аккаунта пользовательской задачи и функциональная схема параллельной работы двух компьютеров с аккаунтом.
На фиг.4 представлена блок-схема алгоритма программы «Проверка Аккаунта задачи пользователя» (Task Account Checking - ТАС1) и ее взаимодействия с супервизором компьютера 1.
Описание алгоритма:
1. При поступлении прерывания от новой пользовательской задачи или при передаче управление от исполняемой программы супервизор выясняет, есть ли следующая инструкция в программе.
2. Если очередная инструкция есть и она не первая, супервизор передает управление задаче ТАС1. Если инструкция первая, то она читает адрес Аккаунта задачи на ВЗУ и переписывает его в Регистр состояния, поле чего супервизор также передает управление задаче ТАС1.
3. ТАС1 проверяет наличие Аккаунта в Регистре состояния.
4. Если Аккаунт есть, ТАС1 читает признак Готовности, записанный программой ТАС2 (т.е. подтверждение легальности использования задачи, и отсутствие превышение Плана над Нормой по расходу памяти и по времени).
5. Если Аккаунт имеет признак Готовности (10) (см. фиг.2) задачи от ТАС 2 компьютера 2, ТАС1 выполняет проверку в Аккаунте фактическое (9) превышения над Планом (8) по Памяти и по Времени (по числу циклов) нарастающим итогом.
6. Если есть превышение Факта над Планом по памяти или по времени, то ТАС1 записывает в Аккаунт признак Неготовности (11) задачи (информация для работы ТАС2 компьютера 2). ТАС1 передает управление супервизору, который осуществляет «подвешивание» задачи и запоминает адрес текущей инструкции пользовательской задачи в Регистре состояния.
7. Если Аккаунт не имеет признака Готовности (11) задачи от ТАС 2 компьютера 2, ТАС1 передает управление супервизору, который также осуществляет «подвешивание» задачи.
8. Если нет превышения Факта (7) над Планом (6) по памяти или по времени, то ТАС1 вычисляет и добавляет в аккаунт средний шаговый расход ресурсов в поля Факта по памяти и по времени, и передает управление супервизору.
9. Если аккаунта у задачи нет, ТАС1 передает управление супервизору, который выполняет останов пользовательской задачи в компьютере 1 до формирования аккаунта в компьютере 2.
10. Последняя инструкция каждой пользовательской программы должна переписать скорректированный аккаунт из Регистра состояния в файл на ВЗУ.
На фиг.5. представлена блок-схема алгоритма диалоговой программы «Корректировка Аккаунта задачи» (Task Account Changing - ТАС2) компьютера 2.
Описание алгоритма:
1. Задача ТАС2 при запуске ее супервизором компьютера 2 читает в Регистре состояния аккаунт с признаком неготовности от ТАС1, или без готовности от самой ТАС2, или задачу без аккаунта.
2. Если есть аккаунт с неготовностью от ТАС1, или есть аккаунт без готовности от ТАС2, задача ТАС2 осуществляет в диалоговом режиме запрос к пользователю о его идентификаторе.
3. Если у задачи нет Аккаунта, ТАС2 осуществляет формирование пустого Аккаунта в Регистре состояния и переходит к п.2.
4. Если пользователь ответил и идентификаторы собственника в Аккаунте и в ответе пользователя совпали, ТАС2 проверяет превышение нормы в Плане аккаунта по затратам памяти и времени (норма затрат по памяти и по времени вычисляется стандартно).
5. Если пользователь ответил, но идентификаторы Собственника в Аккаунте и в ответе Пользователя не совпали, ТАС2 осуществляет запрос по WWW к внешнему Собственнику программы.
6. Если Собственник программы подтверждает право Пользователя, ТАС2 переходит к п.3.
7. Если Собственник программы не подтверждает право Пользователя, ТАС2 переходит к п.10.
8. Если План аккаунта по затратам памяти и времени не превышает нормы, ТАС2 записывает признак готовности в Аккаунт задачи (для чтения ТАС1 в компьютере 1) и передает управление супервизору п.1.
9. Если План аккаунта по затратам памяти и времени превышает норму, ТАС2 осуществляет в диалоге с Пользователем корректировку (формирование) Плана по Памяти и по Времени.
10. Если не удается согласовать в диалоге с Пользователем корректировку (формирование) Плана за приемлемое время, ТАС2 переходит к п.11.
11. ТАС2 сообщает Пользователю причину отказа исполнять его задачу, записывает признак Остановка в Аккаунт задачи и передает управление супервизору п.1.
Во всех случаях, касающихся проблемы нелегитимности использования пользовательских программ, непредумышленного перерасхода вычислительных ресурсов по памяти и времени, предложенный способ обеспечивает безусловный контроль и согласование с пользователем и собственником условий продолжения исполнения пользовательской задачи. При этом или предотвращается «зависание» компьютера 1, или продолжается взаимодействие с пользователем через компьютер 2 при случившемся «зависании» компьютера 1 (например, по физическим причинам - перегрев). В случаях зараженности пользовательской программы вирусом предлагаемый способ обусловливает свою работоспособность наличием защищенной области в ОЗУ, в которой, наряду с Супервизором, должна быть расположена программа ТАС1, а также защищенным Регистром состояния с аккаунтами задач на общей шине. Тогда программа-вирус, могущая модифицировать тело пользовательской программы в ОЗУ и аккаунты задач на ВЗУ, не сможет модифицировать программы ТАС1 и ТАС2 и аккаунт, контролируемый ими в Регистре в текущий момент. Значит, любые предварительные вредоносные модификации аккаунта смогут быть выявлены программой ТАС2 в диалоге с пользователем, а вредоносные модификации тела программы в состоянии быть косвенно зафиксированы программой ТАС1, отслеживающей фактический перерасход плановых вычислительных ресурсов при исполнении пользовательской программы.
Предлагаемый способ обеспечивает диалоговое согласование текущих ресурсных возможностей операционных систем и изменяющихся потребностей пользователя в вычислительных ресурсах без прерывания вычислительного процесса за счет приостановки программой ТАС1 исполнения супервизором пользовательской программы на компьютере 1, в которой план вычислительных ресурсов превышает динамически рассчитанную норму, и переключения ее аккаунта на компьютер 2 для диалоговой корректировки с пользователем (посредством программы ТАС2) в части приведения плана вычислительных ресурсов к норме, и возврата скорректированного аккаунта на компьютер 1 для исполнения задачи супервизором. При этом под нормой понимаются пороговые значения временной задержки исполнения задачи и значения затрат ресурсов, которые формируют исходя из эталонной оценки зависания задачи по временной задержке исполнения и значению затрат ресурса.