Система выявления ошибок параллельных программ

 

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

Полезная модель относится к вычислительной технике, в частности, к системе выявления ошибок параллельных программ.

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

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

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

Известны системы, которые могли бы быть использованы для решения поставленной задачи (1, 2).

Первая из известных систем содержит триггер, группу элементов И, генератор случайных чисел, группу элементов И с инверсным входом, группу элементов ИЛИ, группу триггеров и элементы И, ИЛИ (1).

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

Известна и другая система, содержащая множество логических процессоров, каждый из которых содержит блок обработки прерываний для предписывания соответствующему логическому процессору выполнять подпрограмму обработки прерываний в ответ на прерывание, и регистр заявок на прерывание, подсоединенный к к блоку обработки каждого логического процессора для хранения значения, которое показывает должен ли каждый логический процессор обрабатывать прерывание (2).

Последнее из перечисленных выше технических решений наиболее близко к описываемому.

Его недостаток заключается в конструктивной сложности, обусловленной тем, что для каждого потока данных, представленного одной программой, устройство вынуждено содержать отдельный канал обработки данных.

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

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

Сущность изобретения поясняется чертежами, где на фиг. 1 представлена структурная схема системы, на фиг. 2 представлен пример конкретного конструктивного выполнения модуля задания параметров оценки выполнения параллельных программ, на фиг. 3 - пример конкретного конструктивного выполнения модуля фиксации ошибок параллельных программ, на фиг. 4 - пример конкретного конструктивного выполнения модуля имитационного моделирования процессов исполнения параллельных программ, на фиг. 5 - пример конкретного конструктивного выполнения модуля идентификации потоков данных параллельных программ, на фиг. 6 - пример конкретного конструктивного выполнения модуля селекции циклов обработки данных, на фиг. 7 - пример конкретного конструктивного выполнения модуля определения количественных характеристик ошибок, на фиг. 8 - пример конкретного конструктивного выполнения модуля селекции интервалов приема имитируемых сообщений, на фиг.9 - пример конкретного конструктивного выполнения модуля управления базой данных.

Система (фиг. 1) содержит модуль 1 задания параметров оценки выполнения параллельных программ, модуль 2 фиксации ошибок параллельных программ, модуль 3 имитационного моделирования процессов исполнения параллельных программ, модуль 4 идентификации потоков данных параллельных программ, модуль 5 селекции циклов обработки данных, модуль 6 определения количественных характеристик ошибок, модуль 7 селекции интервалов приема имитируемых сообщений, и модуль 8 управления базой данных.

На фиг. 1 показаны первый 15 и второй 16 информационные входы системы, первый 17 и второй 18 синхронизирующие и управляющий 19 входы системы, первый 21, второй 22, третий 23 и четвертый 24 информационные выходы системы, первый 25 и второй 26 адресные выходы системы, а также первый 27, второй 28, третий 29 и четвертый 30 синхронизирующие выходы системы, и сигнальный 31 выход системы.

Модуль 1 (фиг. 2) содержит генератор 40 импульсов, первый 41 и второй 42 счетчики, первый 43 и второй 44 регистры, первый 45 и второй 46 дешифраторы, компаратор 47, триггер 48, элементы 49-53, элемент 54 ИЛИ, элемент 55 задержки. На чертеже показаны информационный 15, синхронизирующий 17 и управляющий 19 входы, а также синхронизирующий 57 и тактирующий 58 выходы.

Модуль 2 (фиг. 3) содержит первый 76 и второй 77 счетчики, регистр 78, компаратор 79, элемент 80 И, элементы 81, 82 ИЛИ, , элементы 83, 84 задержки. На чертеже показаны первый 86 и второй 87 синхронизирующие входы, и управляющий 88 вход, а также информационный 89 и адресный 90 выходы, и первый 91 и второй 92 синхронизирующие выходы.

Модуль 3 (фиг 4) содержит блок 60 памяти, выполненный в виде оперативного запоминающего устройства, регистр 61, счетчик 62, триггер 63, элемент 64 И, элементы 65, 66 задержки. На чертеже показаны синхронизирующий 67 и установочный 68 входы, а также адресный 69 выход блока, первый 70, второй 71, третий 72 и четвертый 73 информационные выходы блока, синхронизирующий 74 и управляющий выход 75 блока.

Модуль 4 (фиг. 5) содержит блок 95 памяти, выполненный в виде постоянного запоминающего устройства, дешифратор 96, счетчик 97, триггер 98, элементы 100-104 И, элемент 105 ИЛИ, элементы 106-108 задержки, блок 160 памяти, выполненный в виде постоянного запоминающего устройства, дешифратор 161, регистр 162, элементы 163-165 И, элементы 166, 167 задержки. На чертеже показаны информационные 110-111, синхронизирующий 112 и установочный 113 входы, а также информационные 115,116 и синхронизирующий 114, 117 выходы.

Модуль 5 (фиг. 6) содержит элемент 139 ИЛИ, первый 140 и второй 141 компараторы, первый 142 и второй 143 счетчики, первый 144 и второй 145 регистры, элементы 146-148 задержки. На чертеже показаны синхронизирующий 149 вход, а также первый 150, второй 151, третий 152 и четвертый 153 синхронизирующие выходы.

Модуль 6 (фиг. 7) содержит сумматор 13 и регистр 14. На чертеже показаны синхронизирующие 204, 205 и информационные входы 206, 207, а также информационный выход 23.

Модуль 7 (фиг. 8) содержит счетчик 175, регистр 176, компаратор 177, элемент 178 ИЛИ и элемент 179 задержки, дешифратор 190, блок 191 памяти, выполненный в виде постоянного запоминающего устройства, регистр 192, элементы 193 - 195 И, элементы 196, 197 задержки.

На чертеже показаны первый 180 и второй 181 синхронизирующие входы, а также информационный 201 и синхронизирующие 200, 201 входы, а также информационный 200 и синхронизирующий 201 выходы.

Модуль 8 (фиг. 9) содержит триггеры 120-121, группы 122-124 элементов И, группу 125 элементов ИЛИ, элемент 126 ИЛИ, элементы 127, 128 задержки. На чертеже показаны информационные 130-132, синхронизирующие 133-134 и установочный 135 входы, а также адресный 25 выход, первый 27 и второй 136 синхронизирующие выходы.

Все узлы и элементы системы выполнены на стандартных потенциально-импульсных элементах. Для упрощения чертежа цепи первоначальной установки узлов и блоков системы в исходное состояние не показаны.

Реализация параллельных процессов имеет свои особенности:

- на уровне задач вычислительные процессы могут быть истинно параллельными только в многопроцессорных системах или вычислительных сетях;

- многие параллельные программы используют одни и те же ресурсы, поэтому даже асинхронные параллельные программы в пределах одной системы вынуждены согласовывать свои действия при обращении к общим ресурсам;

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

В силу перечисленных особенностей для организации взаимодействия параллельных процессов в вычислительных системах используются три основных подхода:

- на основе «взаимного исключения»;

- на основе синхронизации посредством сигналов;

- на основе обмена информацией (сообщениями).

«Взаимное исключение» предполагает запрет доступа к общим ресурсам (общим данным) для всех параллельные программы, кроме одного, на время его работы с этими ресурсами (данными).

Синхронизация подразумевает обмен сигналами между двумя или более процессами по установленному протоколу. Такой «сигнал» рассматривается как некоторое событие, вызывающее у получившего его процесса соответствующие действия.

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

Система работает следующим образом.

Задание параметров оценки исполнения параллельных программ осуществляется с помощью регистра 43 модуля 1, в который перед началом работы системы с автоматизированного рабочего места администратора системы вводится кодовое значение признака параметра, которое с входа 15 по синхронизирующему импульсу, поступающему на вход 17, заносится в регистр 43.

Кроме того, в регистре 44 устанавливается величина временного периода имитации процесса выполнения параллельных программ.

Запуск работы системы осуществляется импульсом запуска с управляющего входа, поступающим на прямой вход триггера 48 модуля 1, в результате чего триггер 48 устанавливается в единичное состояние и высоким потенциалом с прямого выхода открывает по одному входу элементы 49, 50 И.

К другому входу элемента 49 И подключен генератор 40 импульсов, импульсы с выхода которого через элемент 49 И начинают поступать на счетный вход счетчика 41, выходы поразрядного переноса которого соединены с входами соответствующих элементов 51-53 И, другие входы которых подключены к соответствующим выходам дешифратора 45, состояние которого определяется значением кода в регистре 43.

Дешифратор 45 расшифровывает значение кода регистра 43 и открывает соответствующий ему элемент 51-53. В результате этого на выходы соответствующих элементов 51-53 проходят импульсы с различных выходов счетчика 41, которые через элемент 54 ИЛИ поступают на выход 57 модуля 1 и далее поступают на вход 67 модуля 3.

Одновременно с этим, с выхода датчика 46 через элемент 50 И импульсы времени поступают на счетный вход счетчика 42, который ведет подсчет времени работы системы. Показания счетчика 42 поступают на один вход компаратора 47, на другой информационный вход которого с выхода регистра 44 подан заданный код имитируемого временного периода.

Кроме того, с выхода элемента 50 И каждый импульс датчика импульсов времени задерживается элементом 55 задержки на время срабатывания счетчика 42 и поступает на синхронизирующий вход компаратора 47. По этому импульсу компаратор 47 сравнивает входные коды и только в момент их равенства формирует сигнал остановки работы системы, выдачей импульса на установочный вход триггера 48, возвращая его в исходное состояние, и закрывающий тем самым элемент 49 И.

С выхода 57 модуля 1 синхронизирующие импульсы, задающие частоту поступления имитируемых данных параллельных программ, соответствующую условиям заданного признака риска, через вход 67 модуля 3 поступают на один вход элемента 64 И, на другой вход которого подан высокий потенциал с инверсного выхода триггера 63, открывающий элемент 64 И по одному входу.

Синхронизирующие импульсы проходят элемент 64 И, и, во-первых, поступают на счетный вход счетчика 62, подсчитывающего число имитируемых входных сообщений. Поступление каждого входного импульса, начиная с первого на вход счетчика 62, формирует очередной адрес считывания очередной кодограммы данных параллельных программ, хранящейся в памяти блока 60.

Во-вторых, каждый синхронизирующий импульс с выхода элемента 64 И задерживается элементом 65 на время срабатывания счетчика 62, и поступает на вход считывания блока 60 памяти, в котором хранятся имитируемые кодограммы данных параллельных программ.

Очередное имитируемое входное сообщение одной из программ считывается из ячейки памяти, очередной адрес которой сформирован счетчиком 62, на вход регистра 61, куда оно заносится синхронизирующим импульсом с выхода элемента 66 задержки.

Имитируемое сообщение содержит следующую структуру:

Идентификатор исполняемой программыИдентификатор операции исполняемой программыВремя выполнения данной операции

С выхода 70 регистра 61 модуля 3 все содержимое регистра 61 выдается на выход 23 для последующего документирования записей в базе данных системы.

С выхода 71 модуля 1 идентификатор исполняемой программы поступает на вход 110 модуля 4 и далее подается на вход дешифратора 96, который расшифровывает код идентификатора программы, и открывает один из элементов 100-102 И по одному входу.

Для определенности положим, что высокий потенциал поступил на один вход элемента 100 И. В это время синхронизирующий импульс с выхода 74 модуля 3 поступает на вход 111 модуля 4 , и далее на входы элементов 103 и 104 И. К этому моменту времени триггер 98 находится в исходном состоянии и на его инверсном выходе будет высокий потенциал, открывающий элемент 104 И по одному входу.

В результате этого синхронизирующий импульс с входа 111 модуля 4 проходит через элемент 104 И, задерживается элементом 106 на время приема кода входного сообщения в регистр 61 модуля 3 и срабатывания дешифратора 96 модуля 4, и далее поступает на опрос состояния элементов 100-102 И.

Учитывая то обстоятельство, что открытым по одному входу будет только элемент 100 И, то пройдя этот элемент И, синхроимпульс поступает, во-первых, поступает на вход считывания фиксированной ячейки памяти постоянного запоминающего устройства 95, где хранится базовый адрес ячейки памяти в базе данных сервера, закрепленной за данной программой, и считывает его на вход счетчика 97.

Кроме того, тот же импульс считывания кода базового адреса программы с выхода элемента 106 задерживается элементом 107 на время считывания содержимого фиксированной ячейки ПЗУ, и поступает на синхронизирующий вход счетчика 97, фиксируя в нем базовый адрес ячейки памяти, закрепленной за данной программой.

Код с выхода счетчика 97 через выход 115 выдается на вход 130 модуля 8 и далее поступает на одни входы элементов 122 И группы, на другие входы которых к этому моменту времени с инверсных выходов триггеров 120 и 121 подаются высокие потенциалы, поскольку оба триггера находятся в исходном состоянии. Код базового адреса через элементы 122 И группы и через элементы 125 ИЛИ группы выдается на адресный выход 25 системы.

Параллельно с этим, импульс считывания с выхода элемента 107 проходит через элемент 105 ИЛИ, затем задерживается элементом 108 на время занесения базового адреса программы в счетчик 97, и далее, во-первых, с выхода элемента 108 задержки выдается на единичный вход триггера 98, устанавливая его в единичное состояние, при котором элемент 103 И будет открыт, а элемент 104 И - закрыт, а, во-вторых, с выхода 114 он выдается на выход 29 системы и далее на вход первого канала прерывания сервера (на чертеже не показан).

По этому сигналу сервер переходит на подпрограмму документирования первой кодограммы с выхода 22 по базовому адресу программы, который с выхода счетчика 97 выдается на адресный 25 выход системы.

Параллельно с процессом документирования первой кодограммы в базу данных системы, тот же синхронизирующий импульс записи с выхода элемента 108 задержки поступает на входы элементов 163-165 И, состояние которых определяется дешифратором 161, на информационный вход 111 которого поступает код идентификатора выполняемой операции программы с выхода 72 модуля 3. Поступивший код расшифровывается дешифратором 161 и открывает по одному входу один из элементов 163 - 165 И. Для определенности положим, что высокий потенциал поступил на один вход элемента 165 И.

В это же время синхронизирующий импульс поступает на опрос состояния элементов 163-165 И. Учитывая то обстоятельство, что открытым по одному входу будет только элемент 165 И, то, пройдя этот элемент И, синхроимпульс поступает, во-первых, на вход считывания фиксированной ячейки памяти постоянного запоминающего устройства 160, где хранится адрес ячейки памяти в базе данных сервера, закрепленной за данной операцией программы, и считывает ее содержимое на информационный вход регистра 162.

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

Код с выхода регистра 162 через выход 16 модуля 4 поступает на вход 131 модуля 8, и далее на одни входы элементов 123 И группы 123, на другие входы которых подаются потенциалы с прямого выхода триггера 120 и инверсного выхода триггера 121.

Параллельно с этим процессом, синхронизирующий импульс с выхода элемента 166 задерживается элементом 167 на время занесения адреса ячейки памяти, закрепленной за данной операцией программы из первой записи входного сообщения в регистр 162, и далее с выхода 117 модуля 4 поступает на вход 133 модуля 8, откуда он, во-первых, сразу же поступает на прямой вход триггера 120, устанавливая его в единичное состояние, при котором высоким потенциалом с прямого выхода триггер 120 открывает элементы 123 И группы, а низким потенциалом с инверсного выхода триггер 120 закрывает элементы 122 группы И.

Таким образом, элементы 123 И группы будут открыты, поскольку на их входы поступают высокие потенциалы с прямого выхода триггера 120 и с инверсного выхода триггера 121. Благодаря этому код адреса ячейки памяти, закрепленной за данной операцией программы, проходит через элементы 123 И группы и элементы 125 ИЛИ группы на адресный выход 25 системы.

Во-вторых, одновременно с этим процессом, синхронизирующий импульс с входа 133, проходит элемент 126 ИЛИ, задерживается элементом 127 на время срабатывания триггера 120 и выдачи кода адреса ячейки памяти, закрепленной за данной операцией программы, на адресный выход 25, а затем через выход 27 системы выдается на вход второго канала прерывания сервера (на чертеже не показан).

По этому сигналу сервер переходит на подпрограмму считывания содержания ячейки памяти, закрепленной за данной операцией программы из входного сообщения, в которой хранится время, требуемое для выполнения данной операции.

Содержимое адреса ячейки памяти, закрепленной за данной операцией программы из входного сообщения, считывается из базы данных сервера и через информационный вход 16 системы поступает на информационный вход регистра 14 модуля 6, куда оно заносится синхронизирующим импульсом сервера, поступающим на синхронизирующий вход 18.

Кроме того, синхронизирующий импульс с выхода элемента 127 задерживается элементом 128 на время считывания содержимого ячейки памяти, и поступает на установочный вход триггера 120, возвращая его в исходное состояние, при котором он высоким потенциалом с инверсного выхода вновь открывает элементы 122 И группы, подключая выход счетчика 97 к адресному выходу 25 системы.

Следует учесть, что перед началом работы системы все ее узлы и блоки были установлены в исходное состояние, а содержимое ячеек памяти базы данных сервера, закрепленными за каждой из параллельных программ было обнулено. В связи с этим, при считывании содержимого ячейки памяти базы данных, закрепленной за первой операцией программы, на вход регистра 14 будет считываться нулевой код, и, следовательно, регистр 14 останется в исходном состоянии.

Содержимое регистра 14 (в данном случае оно равно нулю) поступает на вход сумматора 13. На другой вход 206 сумматора 13 с выхода 73 модуля 3 подан код времени, затраченный на выполнение подобных операций.

Одновременно с этим, синхронизирующий импульс сервера с входа 18 системы поступает на вход 149 модуля 6, где задерживается элементом 146 на время занесения кода в регистр 14 и затем подается на синхронизирующий вход компаратора 140, на информационные входы которого подаются коды с выходов счетчика 142 и регистра 144.

В регистр 102 занесен код количества кодограмм, которые каждая из параллельных программ должна передать в центр обработки данных. По синхронизирующему импульсу с выхода элемента 146 задержки компаратор 140 сравнивает входные коды, и учитывая, что количество принятых записей много меньше числа записей, подлежащих передаче во время исполнения параллельных программ, то на выходе 155 компаратора 140 формируется импульс, поступающий на синхронизирующий вход сумматора 13, суммирующего временные показатели исполнения соответствующих программ.

Одновременно с этим, импульс с выхода 155 компаратора 140 задерживается элементом 147 задержки на время срабатывания сумматора 13, и, во-первых, с выхода 151 модуля 6 выдается на выход 30 системы, и далее на вход третьего канала прерывания сервера. По этому сигналу сервер переходит на подпрограмму записи показателя затраченного времени на выполнение программы с выхода 23 системы по адресу ячейки памяти, закрепленной за первой операцией с адресного выхода 25, и выдачу сигнала на имитацию очередной входной кодограммы, который с выхода 151 модуля 6 поступает на вход 87 модуля 2.

Во-вторых, тот же импульс с выхода элемента 147 задержки поступает на счетный вход счетчика 142, фиксируя факт записи в длительности временного интервала, в базу данных системы.

Сигнал на прием очередной кодограммы с входа 87 модуля 2 поступает на синхронизирующий вход компаратора 79, сравнивающего по этому сигналу показания счетчика 76 и регистра 78. Счетный вход счетчика 76 через элемент И 80 и вход 86 модуля 2 подключен через выход 58 модуля 1 к датчику импульсов времени 46. Элемент 80 И открывается высоким потенциалом триггера 63 модуля 3 в момент начала имитации первого входного сообщения от исполняемых параллельных программ.

Следовательно, счетчик 76 модуля 2 измеряет интервал времени, который система затрачивает на обработку имитируемых входных сообщений путем подсчета импульсов времени, укладывающихся в интервал от момента начала поступления имитируемого входного сообщения на вход системы до получения сигнала об окончании его обработки. С выхода 89 модуля 2 показания счетчика 79 выдаются на выход 24.

Перед началом запуска системы в регистре 78 устанавливается задаваемое значение временного интервала, в течение которого имитируемая входная кодограмма должна быть обработана средствами системы, работа которых также имитируется в реальном масштабе времени.

По синхронизирующему импульсу с входа 87 модуля 2 компаратор 79 сравнивает входные коды, и, если значение измеренного временного периода в счетчике 76 меньше или равно заданному значению регистра 78, то на первом выходе компаратора 79 формируется импульс, который, во-первых, через элемент 81 ИЛИ поступает на установочный вход счетчика 76 и сбрасывает его в исходное состояние.

Во-вторых, этот же импульс проходит через элемент 82 ИЛИ на выход 92 модуля 2 и далее через вход 68 модуля 3 поступает на установочный вход триггера 63, устанавливая его в исходное состояние, возвращаясь в которое триггер 63 высоким потенциалом с инверсного выхода открывает элемент 64 И, разрешая прохождение очередного тактового импульса с входа 67 на счетный вход счетчика 62. Счетчик 62 формирует очередной адрес считывания имитируемой входной кодограммы и дальнейшая работа системы продолжается описанным выше образом.

Если же в результате сравнения входных кодов компаратор 79 зафиксирует факт превышения времени обработки входных сообщений в счетчике 76, то сформированный импульс с его другого выхода поступает на счетный вход счетчика 77, формирующего адрес записи содержания входного сообщения, время обработки которого не уложилась в заданные пределы. Код адреса записи с выхода счетчика 77 выдается на адресный 26 выход. Параллельно с этим, синхронизирующий импульс со второго выхода компаратора 79 задерживается элементом 83 на время формирования адреса записи, и с выхода 91 через выход 28 поступает на вход четвертого канала прерывания сервера базы данных.

По этому сигналу сервер базы данных переходит на подпрограмму записи показаний счетчика 76 модуля 2 с выхода 24 и показаний регистра 61 модуля 3 с выхода 21 по адресу, сформированному на выходе 26 стенда, документируя, тем самым, факт появления сбоя в работе системы.

Описанный процесс продолжается до тех пор, пока компаратор 140 модуля 6 не зафиксирует факт равенства числа записей счетчика 142 числу операций, хранящемуся в регистре 144.

В этот момент времени на выходе 156 компаратора 140 формируется сигнал, свидетельствующий о том, что все записи из входного сообщения от соответствующей программы занесены в соответствующие ячейки памяти, закрепленные за соответствующими операциями программ. Импульс с выхода 156 компаратора 140, во-первых, через выход 152 модуля 6 поступает на вход 112 модуля 4 и далее на установочный вход триггера 98 , устанавливая его в исходное состояние, при котором высокий потенциал с инверсного выхода триггера 98 открывает элемент 104 И, и подготавливает цепь прохождения синхронизирующего импульса с входа 111 через элемент 103 И.

Во-вторых, импульс с выхода 156 компаратора поступает на на счетный вход счетчика 143, подсчитывающего число параллельных программ приславших свои сообщения.

В данном случае, счетчик 143 зафиксирует факт приема сообщения от первой программы. В регистре же 145 постоянно хранится число параллельных программ, которые должны прислать свои сообщения об итогах исполнения.

Кроме того, синхронизирующий импульс с выхода 156 задерживается элементом 148 задержки на время срабатывания счетчика 143, и затем поступает на синхронизирующий вход компаратора 141, который сравнивает показания счетчика 143 и регистра 145.

Учитывая то обстоятельство, что счетчик 143 зафиксировал только одну параллельную программу, приславшую свои результаты, то его показания к этому моменту времени будут меньше общего числа параллельных программ, зафиксированных в регистре 145.

В результате этого на первом выходе компаратора 141 формируется сигнал начала имитации входных данных очередной параллельной программы, который через элемент 139 ИЛИ выдается на выход 151 модуля 6 и далее поступает на вход 87 модуля 2.

Прием имитируемых сообщений от параллельных программ и их обработка описанным выше образом продолжается до тех пор, пока компаратор 141 модуля 6 не зафиксирует факт равенства показаний счетчика 143 и регистра 145, формированием импульса на выходе 153.

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

С этой целью, импульс с выхода 153 модуля 6 поступает на вход 180 модуля 7, где проходит элемент 178 ИЛИ и затем поступает на счетный вход счетчика 175, который фиксирует факт считывания и выдачи итоговых данных. В данном случае счетчик 175 зафиксировал первую единицу и его показания поступают на вход дешифратора 190. В регистр 176 модуля 7 занесено число параллельных программ.

Кроме того, импульс с выхода элемента 178 ИЛИ задерживается элементом 179 на время срабатывания счетчика 175 и поступает на синхронизирующий вход компаратора 177, который по синхронизирующему сигналу сравнивает показания счетчика 175 и регистра 176.

Учитывая то обстоятельство, что счетчик 175 зафиксировал только одну программу, результаты исполнения которой подлежат выдаче, то его показания к этому моменту времени будут меньше общего числа программ, зафиксированных в регистре 176.

В результате этого на выходе компаратора 177 формируется сигнал начала выдачи итоговых данных выполнения первой программы, который поступает на опрос состояния элементов 193-195 И. Состояние указанных элементов определяется дешифратором 190, который расшифровывает входной код и открывает соответствующий элемент 193- 194 И. Допустим, что таким элементом является элемент 195 И.

Синхронизирующий импульс, во-первых, проходит элемент 195 И, и поступает на вход считывания фиксированной ячейки памяти постоянного запоминающего устройства 191, где хранится адрес ячейки памяти в базе данных сервера, закрепленной за первой из параллельных программ, и считывает его на вход регистра 192. Кроме того, тот же импульс задерживается элементом 196 на время считывания содержимого фиксированной ячейки ПЗУ, и поступает на синхронизирующий вход регистра 192, фиксируя в нем адрес ячейки памяти, закрепленной за первой программой. Код с выхода регистра 192 через выход 201 модуля 7 выдается на вход 132 модуля 8 и далее поступает на одни входы элементов 124 И группы.

Параллельно с этим, импульс с выхода элемента 196 задерживается элементом 197 на время занесения адреса ячейки памяти в регистр 192, и далее с выхода 200 через вход 134 модуля 8 выдается на единичный вход триггера 121, устанавливая его в единичное состояние, при котором элементы 124 И группы и элемент 129 И будут открыты, а элементы 122, 123 И групп - закрыты.

Одновременно с этим процессом, синхронизирующий импульс с входа 134 задерживается элементом 127 на время срабатывания триггера 121 и выдачи кода адреса ячейки памяти, закрепленной за первой программой, на адресный выход 25 через элементы 124 И группы и элементы 125 ИЛИ группы, а затем через выход 27 системы выдается на вход третьего канала прерывания сервера (на чертеже не показан).

По этому сигналу сервер переходит на подпрограмму считывания содержания ячейки памяти, закрепленной за первой программой, в которой хранятся итоговые показатели исполнения, и выдачи этих показателей на табло отображения и печать (на чертеже не показано).

Кроме того, этот же импульс выдачи с выхода элемента 127 задерживается элементом 128 на время выполнения программы считывания итоговых данных и выдачи их на табло отображения и печать, и затем с выхода 136 модуля 8 поступает на вход 181 модуля 7, где проходит элемент 178 ИЛИ и затем вновь поступает на счетный вход счетчика 175, увеличивая его показания на единицу. Новые показания счетчика 175 поступают на вход дешифратора 190. В регистре же 176 модуля 7 по-прежнему находится число параллельно исполняемых программ.

Кроме того, импульс с выхода элемента 178 ИЛИ задерживается элементом 175 на время срабатывания счетчика 175 и вновь поступает на синхронизирующий вход компаратора 177, который по синхронизирующему сигналу сравнивает показания счетчика 175 и регистра 176.

Учитывая то обстоятельство, что счетчик 175 зафиксировал теперь уже вторую программу, результаты исполнения которой подлежат выдаче, то его показания к этому моменту времени будут меньше общего числа программ, зафиксированного в регистре 176.

В результате этого на выходе компаратора 177 формируется сигнал начала выдачи итоговых данных исполнения очередной программы, который поступает на опрос состояния элементов 193-195 И. Состояние указанных элементов определяется дешифратором 190, который расшифровывает поступивший код и открывает соответствующий элемент 193-195 И. Допустим, что таким элементом теперь является элемент 193 И.

Синхронизирующий импульс, во-первых, проходит элемент 193 И, и поступает на вход считывания фиксированной ячейки постоянного запоминающего устройства 191, где хранится адрес ячейки памяти в базе данных сервера, закрепленной за очередной программой, и считывает его на вход регистра 192.

Кроме того, тот же импульс задерживается элементом 196 на время считывания содержимого фиксированной ячейки ПЗУ, и поступает на синхронизирующий вход регистра 192, фиксируя в нем адрес ячейки памяти, закрепленной за очередной программой. Код с выхода регистра 192 через выход 201 модуля 7 выдается на вход 132 модуля 8 и далее проступает на одни входы элементов 124 И группы.

Параллельно с этим, импульс с выхода элемента 196 задерживается элементом 197 на время занесения адреса ячейки памяти в регистр 192, и далее с выхода 200 модуля 7 через вход 134 модуля 8 выдается на единичный вход триггера 121, подтверждая его единичное состояние, при котором элементы 124 И группы и элемент 129 И будут открыты, а элементы 122, 123 И групп - закрыты.

Одновременно с этим процессом, синхронизирующий импульс с входа 134 задерживается элементом 127 на время срабатывания триггера 121 и выдачи кода адреса ячейки памяти, закрепленной за очередной программой, на адресный вход 25 системы через элементы 124 И группы и элементы 125 ИЛИ группы, а затем через выход 27 системы вновь поступает на вход четвертого канала прерывания сервера (на чертеже не показан).

По этому сигналу сервер вновь переходит на подпрограмму считывания содержимого ячейки памяти, закрепленной за очередной программой, в которой хранятся итоговые показатели ее исполнения, на табло отображения и печать (на чертеже не показано).

Кроме того, этот же импульс выдачи данных с выхода элемента 127 задерживается элементом 128 на время выполнения программы считывания итоговых данных и выдачи их на табло отображения и печать, и затем с выхода 136 модуля 8 вновь поступает на вход 181 модуля 7.

Этот процесс продолжается до тех пор, пока показания счетчика 175 не станут равными показаниям регистра 176. Этот момент будет зафиксирован компаратором 177 путем выдачи импульса на выход 199, с которого данный синхронизирующий импульс, во-первых, выдается на выход 31 системы в качестве сигнала окончания выдачи итоговых данных, а, во-вторых, он поступает на установочный вход триггера 121 и возвращает его в исходное состояние.

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

Источники информации, принятые во внимание при составлении описания заявки:

1. Патент РФ 2417405, 08.06.2009 г.

2. Патент РФ 2280272, 01.08.2002 г. (прототип).

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



 

Похожие патенты:

Медицинское оборудование для первичной диагностики новообразований молочной железы и назначения последующего обследования и лечения. В некоторых случаях имеет ощутимое преимущества перед более простым, безопасным и дешевым УЗИ, особенно, когда необходимо проверить аксиллярную зону.
Наверх