Р. Г. Стронгина. Ниж- ний Новгород: Изд-во Нижегородского университета, 2002, 217 с


Программные средства верификации и моделирования



Pdf көрінісі
бет107/151
Дата26.01.2022
өлшемі1,64 Mb.
#24342
түріСеминар
1   ...   103   104   105   106   107   108   109   110   ...   151
Байланысты:
Seminar 1

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


146 
вующих последовательных процессов, описываемых в соответствии с 
правилами алгебры Хоара.  
Язык программирования – Java. 
Основу  системы  составляет  библиотека  классов,  реализующих 
различные  типы  событий,  процессов  и  алгоритмов  передачи  данных. 
Библиотека моделей программ обработки информации содержит опре-
деления сложных процессов, моделирующих наиболее типичные зада-
чи обработки информации, через список внутренних событий и собы-
тий-взаимодействий.  Для  использования  программных  средств  моде-
лирования  в  интерактивном  режиме  служит  подсистема  организации 
диалога,  позволяющая  задавать  описание  процессов  через  список  со-
ставляющих их событий, сохранять эти описания в библиотеке моде-
лей программ обработки информации для дальнейшего использования, 
составлять  программные  сети,  объединяя  процессы  через  события-
взаимодействия. 
Подсистема моделирования запускает процесс, определяющий ис-
следуемую сеть, проводит трассировку процесса моделирования, сбор 
информации  о  динамике  заполненности  буферов  программных  кана-
лов передачи данных и передает собранную информацию в подсисте-
му организации диалога
Рассмотрим  структуру  классов  моделирующего  комплекса.  Каж-
дый новый производный класс обладает как свойствами, унаследован-
ными им от родительского класса, так и приобретает новые, характер-
ные только для данного класса. 
Класс  PBase 
−  это  абстрактный  базовый  класс,  который  является 
предшественником всех других классов. PBase определяет общее для 
них  поведение  через  методы,  позволяющие  классам  создавать,  изме-
нять и удалять внутренние структуры данных. 
Класс PEvent 
− базовый класс, определяющий поведение простого 
события какого-либо процесса. В качестве параметра PEvent содержит 
ссылку на следующее в списке событие процесса. При запуске объекта 
из данного класса событие всегда успешно завершается и устанавлива-
ет  следующее  из  списка  событий  процесса.  Производными  от  этого 
класса являются классы, описывающие более сложные события. 
Класс PEventDo определяет конструкцию бесконечного цикла. Па-
раметрами являются ссылка на начало списка событий данного цикла 
и ссылка на событие, которому передается управление при необходи-


 
147 
мости выхода из цикла. При запуске объекта данного класса управле-
ние передается текущему событию из внутреннего списка. Внутренний 
список является циклическим. 
Класс  PEventWhile  является  производным  от  предыдущего  класса 
и определяет конструкцию обычного цикла. 
Класс PEventIf определяет конструкцию условного оператора. Па-
раметрами  класса  являются  ссылка  на  переменную,  определяющую 
условие,  ссылки  на  события, выполняющиеся соответственно при от-
личии значения условия от нуля (ветвь 
− then) и при равенстве его ну-
лю  (ветвь 
−  else).  При  запуске  объекта  данного  класса  проверяется 
значение  условия,  и  в  соответствии  с  этим  устанавливается  текущее 
событие процесса. 
Классы 
PEventIn 
и 
PEventOut 
определяют 
события-
взаимодействия. 
Класс PProcess 
− базовый класс, определяющий поведение просто-
го процесса. В качестве параметра PProcess содержит ссылку на внут-
ренний  упорядоченный  список  событий  процесса.  Объект  из  данного 
класса событий может находится в одном из трех состояний: «Приос-
тановлен», «В  работе»  и  «Завершен»,  которые  изменяются  его  внут-
ренними событиями.  
Производными  от  этого  класса  являются  классы,  описывающие 
укрупненные  процессы,  являющиеся  комбинацией  нескольких  про-
стых  процессов.  В  качестве  базового  для  таких  классов  используется 
абстрактный класс PGroupProc, который отличается от своего предше-
ственника  тем,  что  вместо  списка  своих  событий  содержит  список 
процессов. 
Класс PParalProc определяет параллельную композицию несколь-
ких процессов. Класс PSequenProc задает последовательный характер 
выполнения  содержащихся  в нем процессов. Класс PNetProc модели-
рует параллельное выполнение процессов на нескольких процессорах, 
путем формирования нескольких внутренних списков процессов. 
Класс PPipe обеспечивает работу событий-взаимодействий, моде-
лируя как буферизованную, так и небуферизованную передачу данных 
между процессами. 
 
Библиотека  моделей  программ  обработки  информации  содержит 
уже  сформированные  объекты  процессов,  моделирующих  наиболее 


148 
типичные  задачи  обработки  информации.  Набор  базовых  моделей 
процессов обработки информации включает в себя: 
•  модель программы-источника одного потока данных; 
•  модель  программы−преобразователя  с  произвольной  задержкой 
данных; 
•  модель программы блочной обработки с произвольным размером 
блока; 
•  модель  программы  дублирования  входного  потока  данных  в  два 
выходных; 
•  модель  программы  обработки  двух  потоков  данных  с  выводом 
результата в один поток ; 
•  модель программы обработки двух потоков данных. 
 
Подсистема организации диалога работает в двух режимах: созда-
ние  и  редактирование  моделей  программ  обработки  и  составление 
программных сетей, реализующих параллельную обработку.  
В режиме создания и редактирования моделей программ обработ-
ки информации пользователь может определить как простой процесс, 
который  имеет  список  событий,  совпадающий  с  иерархией  классов, 
производных  от  класса  PEvent,  так  и  сложный  процесс,  являющийся 
последовательной  комбинацией  нескольких  простых.  Результатом  яв-
ляется модель последовательной программы обработки информации, у 
которой внешние события-взаимодействия выступают как формальные 
параметры. 
В  режиме  составления  и  редактирования  программных  сетей 
пользователь  задает  параллельную  композицию  используемых  моде-
лей  программ  путем  их  перечисления  с  явным  именованием  каналов 
передачи данных (событий-взаимодействий). Далее выбирается способ 
реализации  каналов  передачи  данных  (буферизованная  передача  или 
небуферизованная) и запускается процесс моделирования исполнения 
сформированной сети программ обработки информации либо на одном 
компьютере (в режиме разделения времени), либо на нескольких про-
цессорах  (в  режиме  параллельного исполнения). В случае выбора бу-
феризованной  реализации  каналов  передачи  данных  дополнительно 
указывается  размер  буфера  каждого  канала  (возможно  установить 
одинаковый размер буфера для всех каналов). В результате моделиро-
вания дается сообщение о реализуемости исследуемой сети программ 


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


Достарыңызбен бөлісу:
1   ...   103   104   105   106   107   108   109   110   ...   151




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет