Устройство для контроля хода программ
Ой ИСАНИЕ
ИЗОБРЕТЕНИЯ
К АВТОРСКОМУ СВИДЕТЕЛЬСТВУ п»983712
Союз Советскнк
Соцналистнческнв
Респубанк (61) Дополнительнов к авт. свид-ву (22) Заявлено 21. 12.79 (21) 2884793/18-24 с присоединением заявки №
Р1)М Nn з
G 06 Р 11/26
Государствеииый комитет
СССР по делам изобретений и открытий (23) Приоритет
) Опубликовано 231282. Бюллетень ¹ 47 (53 УДК 681.3 (088 ° B) Дата опубликования описания 23. 12.82 (72) Авторы изобретения E
Ю.М. Корбашов,. К.В. Семин и В .И, Усков
1 ( (71) Заявитель (54) УСТРОЙСТВО ДЛЯ КОНТРОЛЯ ХОДА ПРОГРАММ
Изобретение относится к вычислительной технике, в частности к организации контроля программ.
Известно устройство для контроля прохождения программ, содержащее зониую память, состоящую из трех основных частей: быстродействующего запоминающего блока для хранения адресов, схем селекции и хранения адресов, схем считывания или визуального вывода зафиксированных адресов tl) .
Однако в устройстве по типу обращения к памяти выделяются определенные контрольные точки, которые фиксируются в запоминающем блоке устройства. По факту прохождения программы через контрольные точки .делается вывод о том, что весь участок программы между контрольными точками выполнен, что не всегда верно. Поэтому устройство не гарантирует контроля программ в части полноты использования команд в программе.
Наиболее близким к изобретению по технической сущности. является, устройство, содержащее главную память, блок команд, блок контроля памяти, .блок канала, блок исполнения и пульт уп. равления, устройство, состоящее из ,регистра верхней границы адресов, регистра границы адресов, регистра нижнего адреса программы, региотра количества адресов используемых в системе, от нижнего адреса программы до верхнего адреса программы, первый,,второй, третий и четвертый блоки сравнения нижней и верхней границ адресов, нижнего адреса программы и верх-.. ней границы адресов, верхнего адреса программы и нижней границы адресов, нижнего и верхнего адресов программы, логическую схему, вырабатывающую сигнал записи программных событий, распределитель импульсов, причем выход
15 регистра нижней границы адресов соединен с первым входом блока сравнения и с вторьм входом третьего блока сравнения, выход регистра верхней границы. адресов соединен с вторым входом первого блока сравнения и с вторым входом второго блока сравнения, выход регистра нижнего адреса программы соединен с первыми входами второго, третьего и четвертого бло25 ков сравнения, выход регистра количества адресов соединен с третьим входом третьего блока сравнения и с вторым входом четвертого блока сравнения, выходы блока сравнения соеди30 нены с входом логической схемы (2) 983712 с
Недостаток устройства заключается в том, что оно не обеспечивает про.верку полноты использования команд программами. При контроле выполняемой программы в устройстве проверяет- ся, входят ли адреса выполняемых команд в разрешенный диапазон адресов, ля чего производится сравнение нижего и верхнего адресов команд каждой программы с нижней и верхней границами допустимых адресов, но адреса 10 использованных программами команд не фиксируются, таким образом, команды, которые ни разу не были использованы программами, но адреса которых лежат в диапазоне разрешенны с адресов, не 15 обнаруживаются.
Целью изобретения является увеличение.контролирующей возможности.
Поставленная цель достигается тем, что в устройство для контроля хода программ, содержащее первый и второй блоки сравнения, первый и второй регистры нижней границы участка програм« мы, первый и второй регистры верхней границы участка программы и блок памяти, введены входной регистр адреса команд, регистр адреса текущих команд, первый и второй блоки коммутации, первая, вторая, третья, четвертая, пятая, шестая, седьмая группы элементов И, первый и второй элементы ИЛИ и блок управления, причем информационный и первый управляющий входы первого блока коммутации являются соответственно адресным и управляющим входами устройства, первый выход первого блока
Ф коммутации соединен с информационным входом регистра адреса текущих команд, управляющий вход которого соединей с первым выходом блока управления, второй выход блока управления 40 соединен с первыми входами элементов
И первой и второй группы, выходы которых соединены с входами первой схемы сравнения, выход регистра адреса текущих команд соединен с входом пер-45 вого элемента ИЛИ, с вторыми входами элементов И первой группы, с первыми входами элементов И третьей группы, выходы которых соединены с первыми информационными входами входного ре- gp гистра адреса команд и счетчика адреса текущих команд, второй выход первого блока коммутации соединен с вто.рыми информационными входами счетчика адреса текущих команд H входного pe y гистра адреса команд, выход которого соединен с первыми входами элементов
И четвертой группы и через второй элемент ИЛИ вЂ” с вторым управляющим входом первого блока коммутации, информационный выход счетчика соединен с вторыми входами элементов И второй группы и первыми входами элементов И пятой группы, выходы элементов И чет-. вертой и пятой групп соединены с информационными входами первых регистров соответственно нижней и верхней границ участка программы, информационные выходы которых соединены соответственно с первым и вторbM информационными,входами второго блока коммутации, первый,-второй, третий и четвертый информационные выходы второго блока коммутации соединены соответственно с первым и вторым входом второго блока сравнения, с входами вто,рых регистров нижней и верхней границ участка программы, выходы вторых ре-. гистров нижней и.верхней границ участка программы соединены с.первыми входами элементов И шестой и седьмой групп соответственно, кроме того, каждый выход регистра нижней и верхней границ участка программы соединен соответственно с третьим и четвертым информационнычи входами второго блока коммутации, выходы элементов И шестой и седьмой групп соединены с первой и второй группами входов блока памяти, первый выход блока сравнения соединен с управляющим входом вычитания счетчика ðåñà текущик команд и первым входом блока управления, выход первого элемента ИЛИ вЂ” с вторым входом блока управления и с управляющим входом сложения счетчика адреса текущих команд, второй выход первой схемы сравнения и выход второй схемы сравнения — соответственно с третьим и четвертьм входами блока управления, третий и четвертый выходы блока управления соединены соответственно с вторыми входами элементов И третьей группы и с управляющим входом второго блока коммутации, пятый выход блока управления соединен с вторыми входами элементов И четвертой и пятой групп, а шестой выход — с вторыми входами элементов И шестой и седьмой групп.
Кроме того, блок управления содержит блок постоянной памяти, дешифратор адреса, регистр адреса микрокоманд, модификатор адреса микрокоманд, причем первый, второй, третий, четвертый, пятый и шестой выходы блока постоянной памяти являются соответственно первым, вторьм, третьим, чет-, вертым, пятым и шестым выходами блока управления, а седьмой выход блока управления соединен с входом модификатора адреса микрокоманд, второй, третий, четвертый и пятый входы модификатора адреса команд являются соответственно первым, вторьач, третьим. и четвертым входами блока управления, выход модификатора адреса соединен с входом регистра адреса микрокоманд, выход которого соединен с входом дешифратора адреса, выход дешифратора адреса соединен с входом блока постоянной памяти.
Новая совокупность существенных признаков обеспечивает достижение
983712 поставленной цели в силу того, что в. памяти устройства фиксируются нижний и верхний адреса каждого непрерывного набора команд с последовательными адресами (границы каждого набора), то есть адреса команд, использованных 5 в программах, будут зафиксированы.
Таким образом, устройство обеспечивает проверку полноты использования.команд программы.
На фиг. 1 приведена функциональная )Q схема устройства для контроля хода программу на фиг. 2 — функциональная схема первого блока коммутации; на фиг. 3 — функциональная схема второго блока коммутации; на фиг. 4 - ,структурная схема блока управления.
Устройство состоит иэ первого блока 1. коммутации, счетчика 2 адреса текущих команд, регистра 3 адреса текущих команд, входного регистра 4 2О адреса команд, первого регистра 5.1 нижней границы участка програююы, первого регистра 5.2 верхней границы участка программы, второго регистра
6. 1 нижней границы участка программы, второго регистра 6.2 верхней гра ницы участка программы, первого и второго блоков 7 и 8 сравнения, блока 9 коммутации, блока 10 управления, блока 11 памяти, первого и второго элементов ИЛИ 12 и 13, первой, второй, третьей, четвертой, пятой, шестой и седьмой групп 14.1, 14.2, 15, 16.1, 16.2, 17.1 элементов И, входов
18 для адресов команд.
Блок 1 состоит из входа 19 для си- З5 гнала установки в исходное состояние, триггера 20,, групп 21 и 22, элементов
И. Блок 9 состоит из групп 23, 23, 24, 241, 251, 25 элементов И (цепи установки узлов устройства в исход-" 40 ное состояние не показаны) .
Блок 10 состоит из блока 26 постоянной памяти, дешифратора 27 адреса микрокоманд, регистра 28 адреса микрокоманд, модификатора 29 адреса мик- 45 рокоманд, входа 30 начальной установки °
Блок 10 работает в соответствии с микропрограммой, записанной в блоке
26, а анализ внешних сигналов и вет- 5Е вление микропрограмм производится модификатором 29.
Выработка сигналов микрооперации про изводитс я в соотв етств ни с мик ропрограммой работы блока 10, с учетом 55 сигнала с других узлов устройства, передаваемых на входы блока 10, т.е. с учетом сигналов внешних для блока
10 условий. Обработка внешних сигналов условий, как известно, производит.ся модификатором микропрограммного устройства управления.
Принцип работы устройства заключается в следующем.
На вход устройства со счетчика команд подаются адреса выполняемых команд и сигнал сопровождения> который вырабатывается при изменении содержимого счетчика команд. При анализе последовательности адресов выполнен-. ных команд выделяются на начальный (нижний) и конечный (верхний) адреса набора выполняемых команд с последовательными адресами, эта пара адресов фиксируется, затем определяются границы следующего набора команд с последовательными адресами. После этого границы каждого последующего набо- ра сравниваются с границами предыдущего набора. Сравнение границ производится для экономии памяти. Когда, например, границы последукщего набора команд полностью включают в себя границы предыдущего набора, то нет необходимости записывать в память границы обоих наборов команд, а достаточно записать границы только после-. дующего набора. При сравнении границ
Двух наборов могут иметь место следующие случаиг границы последующего набора шире границ предыдущего набора и полностью его перекрывают, в этом случае стираются границы последующего набора; границы последующего набора шире границ предыдущего набора и полностью его перекрывают, в этом случае стираются границы предыдущего набора) наборы предыдущий и последующий перекрываются лишь частично, т.е. часть команд из одного набора входит в другой, в этом случае производится расширение нижней или верхней границы; границы последующего набора не перекрываются с.границами предыдущего, в этом случае границы предыдущего набора фиксируются в памяти, а границы последующего набора в дальнейшем сравниваются с границами следующего за ним набора.
Рассмотрим подробно работу устройства.
В исходном состоянии все регистры, счетчик и блок памяти не содержат никакой информации, а блок управления находится в состоянии ожидания сигнала с выхода элемента ИЛИ 12 ° Тригrep 20 блока 1 находится в состоянии 0, в которое он устанавливается по входу 19 сигналом установки в исходное состояние.
Адрес начальной команды (нижняя граница набора) и сигнал изменения адреса команды поступают на входы группы 21 и с ее выхода адрес команды через группу 22., записывается в счетчик 2 и в регистр 4. После того, как в регистр 4 записан адрес, на входе элемента ИЛИ 13 вырабатывается сигнал, который сигнализирует о не нулевом состоянии регистра и который устанавливает триггер 20 блока 1 в состояние 1, в результате чего группа 22 блокируется, а группа 22 разблокируется.
983712
Это состояние триггера 20 сохра. няется до тех riop,. пока устройство не будет установлено в исходное состояние. После этого устройство находится в режиме ожидания изменения адреса выполняемой в ЭВМ команды. Ад- З рес последующей команды, к выполнению котдрой приступила ЭВМ, по сигналу изменения команды через группы 21 и
22е записывается в регистр 3. В результате этой записи сигнал с выхода lO элемента 12 увеличивает на единицу содержимое счетчика 2 и поступает на вход блока 10, который в ответ на него подает управляющий сигнал на входы групп 14.1 и 14.2 элементов И, 15 подключая тем самым к входам блока
7 регистр З.и счетчик 2. Блок 7 производит сравнение их содержимого, т.е. сравнение адреса новой команды с увеличением на единицу с адресом предыдущей команды, В зависимости от результата сравнения реализуются два режима работы этого устройства. Если содержимое регистра 3 равно содержимому счетчика 2 (адреса предыдущей и последующих команд отличаются на единицу, т.е. в ЭВМ выполняются ко-. манды с последовательными адресами), блок 10 (по сигналу с соответствующего выхода блока 7) производит изменение регистра 3, и устройство переходит в режим ожидания изменения выполняемой s ЭВМ команды, блок 10 ожидает сигнал с элемента 12 При поступлении на регистр 3 адреса новой команды производится, как описано выше, З5 добавление единицы в счетчик 2 и сравнение содержимых регистра 3 и счетчика 2. Если они равны, вновь производится гашение регистра 3 и пере.ход к ожиданию изменения команды в 49
ЭВМ. Работа устройства в этом случае соответствует выполнению в ЭВМ непрерывной цепочки команд с последовательными адресами. При этом содержимое регистра 4 определяет. первую команду 45 (нижний адрес) набора выполненных команд, а на счетчике 2 происходит расширение верхней границы адресов выполненных команд.
В том случае, когда содержимое р счетчика 2 и регистра 3 не равны (т.е. адрес последующей команды отличается от адреса предыдущей команды на число, отличное от единицы, например, при условном или безусловном пе- реходе в программе), работа устройства соответствует переходу в rrporpaMме от одного набора команд с последовательными адресами к другому, т.е. передача управления в программе. В этом случае" сигналом с соответствующего выхода блока 7 содержимое счетчика 2 уменьшается на единицу (происходит возврат к адресу команды, от которой производится передача управления) и, кроме того, по этому сигна-
\ лу с выхода блока 10 на группы 16.1 и 16.2 элементов И подается управляющий сигнал записи содержимого регистра 4 и счетчика 2 в регистры 5.1 и
5;2, а затем управляквий сигнал — на. группу 15 элементов И.
В результате этого в регистрах
5.1 и 5.2 записываются границы первого набора команд с последовательными адресами, а в регистр 4 и счетчик 2— содержимое регистра 3 — нижняя граница участка программы (нового набора команд) .
С целью экономии памяти произво,дится дальнейшая обработка полученных данных. С блока 10 в блок 9 подается управляющий сигнал, -по которому к блоку 8 подключаются пары регистров из числа регистров 5.1, 5.2, 6.1 и
6.2. Это проверка совместимости границ предыдущего набора (записанных в регистрах 6.1 и 6.2) с границами последукщего (регистры 5.1 и 5.2).
Сначала к блоку 8 через группы
24т и 25> подключаются регистры 5.1 и
6.2 (нижняя граница нового набора и верхняя граница предыдущего набора) .
Если содержимое регистра 5.1 больше содержимого регистра 6.2, т.е. наборы команд не пересекаются (ни одна коЬаанда одного набора команд не входит(. в другой набор команд), то сигналом с блока 10 на группы 17.1 и 17.2 элементов И производится запись содержимого регистров 6..1 и 6.2 в блок 11, а затем содержимое регистров 5.1 и
5.2 через группы 23„ и 23т блока 9 переписывается в регистры 6.1 и 6.2.
В результате в блоке 11 запнсаны границы (нижний и верхний) адреса предыдущего набора команд, в регистрах
6.1 и 6.2 — границы последующего набора °
Если содержимое регистра 5;1 не превышает содержимого регистра 6.2, по сигналам с блока 10 к блоку 8 через группы 24 и 25„ подключаются регистры 5.2 и 6 ° 1 (верхняя граница нового набора команд и нижняя — предыдущего набора) .
Если содержимое регистра 5.2 меньше содержимого регистра 6.1 (т.е. иепересекакициеся наборы команд) устройство работает аналогично описанному.
Если содержимое регистра 5.2 не меньше содержимого регистра 6.1, по сигналам с блока 10 к блоку 8 через группы 24 и 25 подключаются регистры 5.1 и 6.1,(нижняя граница последующего и предыдущего наборов).
Если содержимое регистра 5.1 меньше содержимого регистра 6.1, т.е. последующий набор включает в себя часть адресов команд предыдущего набора, по.сигналу с блока 10 через группу
23.т производится перезапись содержимого регистра 5.1 в регистр 6.1 (рас9 983712
10 тому необходимо сравнить список иэ10 вестных команд со списком команд, использованных в работе ЭВМ. В том слу- .
f5 распечатке содержимого блока 11, не" обходимо.или провести проверку этой команды, или в тех случаях, когда это возможно, путем имитации внешних. воздействиЯ на ЭВМ добиться того,.чтобы эта команда была выполнена.
Создать. такие внешние условия, например, для управляющей ЭВМ, не удается, необходимо произвести цро-; верку этой команды.
Таким образом, после проверки всех программ, выполненных на ЭВМ, иэ списка команд должны быть удалены все команды, адреса которых ни разу не, встречались в. работе ЭВМ,. и реакция
ЭВМ на которые не известна (илн неже-. лательны, или не должны иметь место)
Таким образом, по сразнению с известным устройством, предлагаемое позволяет более полно контролировать правильность прохождения программ, выполняемых на ЭВМ, так как позволя-. ,ет зафиксировать каждую выполняемую команду и таким образом выявить все команды, которые, будучи задействова4© ны при составлении программы, ни ра зу не выполнялись прн их прохождении.
Формула изобретения
45 ширение нижней границы набора адресов использованных команд) .
Если содержимое регистра 5.1 не меньше содержимого регистра 6.1, к блоку 8 по сигналу управления с блока 10 через группы 24 и 25> подключаются регистры 5.2 и 6.2 и произво-, дится сравнение верхних границ двух наборов адресов команд. При этом; если содержимое регистра 5.2 больше содержимого регистра 6.2 (верхняя граница последую@(его набора выше вер° хней границы предыдущего набора),,производится расширение верхней границы набора адресов использованных команд, записанной в регистре 6 ° 2, для чего bio сигналу.с блока 10 через группу 23 блока 9 содержимое регистра 5.2 переписывается в регистр 6.2..
Если же содержимое регистра 5.2 не превышает содержимого регистра 6 ° 2, по управляющему сигналу с блока 10 производится гашение регистра 3 и устройство переходит к ожиданию адреса следу ацей выполняемой в ЭВМ команды.
Таким образом, в том случае, когда в
ЭВМ происходит переход от.одного набора команд с последовательными адресами к другому набору команд с последовательными адресами при сравнении границ наборов адресов команд, записанных в регистрах 6.1, 6.2.и 5.1, 5.2, возможны следующие случаи.
Если наборы адресов не пересекаются, границы предыдущего набора {содержимое регистров 6.1 и 6.2) переписываются в ячейку блока 11, а содержимое регистров -5.1 и 5.2 переписывается в регистры 6.1 и 6.2.
Если наборы адресов перекрываются
:частично, происходит расширение нижней (или верхней) границы путем передачи содержимого регистра 5.1 (или
5.2) в регистр 6.,1 (или 6.2) .
Если последующий набор адресов входит в предыдущий набор как составная часть, содержимые регистров 6.1 и 6.2 не изменяются.
Если последующий набор включает в себя как составную часть предыдущий набор, в регистры 6.1 и 6.2 записываются границы Нового набора адресов (содержнмое регистров 5.1 и 5.2) .
Таким образом, если на вход 18 устройства подавать со счетчика команд адреса выполняемых в ЭВМ команд, после окончания контролируемой программы ЭВМ в блоке 11 зафиксируются адреса команд, выполняемых в ЗВМ, причем для экономии памяти в ее ячейках записываются адреса не каждой выполненной команды, а граничные адреса использованных наборов команд с по. следовательными адресами или -отдельные команды.
Контроль программ, выполняемых на
ЭВМ, с помощью предлагаемого устройства производится следующим образом.
М
$5
Устройство подключается к счетчику команд ЭВМ и устанавливается в исходное состояние. После этого производится поочередное включение всех программ, выполняемых на ЭВМ. По окончании работы программ соде1якимое блока ll памяти известньм способом выводится на печать. Команды, задействованные в программах, известны, поэ.чае, когда какая-либо команда, имеющаяся в списке, задействованных в программах, ни разу йе использовалась при работе ЭВМ, т.е. отсутствует в
1. Устройство для контроля хода программ, содержащее первый и второй блоки сравнения, первый и второй регистры нижней границы участка програм" мы, первый и:второй регистры верхней границы участка программы и блок па- мяти, о т л н ч а ю щ е е с я тем, что, с целью повышения, точности конт роля, в него введены входной регистр адреса команд, регистр адреса. текущих команд, счетчик адреса текущих команд, первый и второй блоки коммутации, первая, вторая, третья,:четвертая, пятая, шестая и седьмая группы элементов И, первый и второй элементы ИЛИ и блок управления, причем ин формационный и первый управляющий входы первого блока коммутации являются соответственно адресами и управляющим входами устройства, первый выход первого блока коммутации соеди983712
12 нен с информационным входом регистра адреса текущих команд, управляющий вход которого соединен с первьм выходом блока управления, второй выход блока управления — с первыми входами элементов И первой к второй групп, выходы которых соединены с, входами первой схемы сравнения, выход регистра адреса текущих команд соединен с входом первого элемента ИЛИ,.с вторыми входами элементов И первой груп- >0 пы, с первьми входами элементов И третьей группы, выходы которых соединены с первьми информационными входами входного регистра адреса команд и счетчика адреса текущих команд, вто- 35 рой выход первого блока коммутации соединен с вторыми информационными входами счетчика адреса текущих команд и входного регистра адреса команд, выход которого соединен с пер- 2О вьми входами элементов И четвертой группы и через второй элемент ИЛИ— с вторым управляющим входом первого бЛока коммутации,. информационный выход счетчика соединен с вторыми вхо- 25 дами элементов И второй группы и пер виаи входами элементов И пятой группы, выходы элементов И четвертой и пятой групп соединены с информационными входами первых регистров соответственно нижней и верхней границ участка программы, информационные вы ходы которых. соединены соответственно с первьм и вторым информацконньМи входами блока коммутации, первый, вто рой, третий и четвертый информационные выходы второго блока коммутации соединены соответственно с первьм и вторым входом второго. блока сравне ния, с входамк1вторых регистров нижней и верхней границ участка програм- 4О мы, выходы, вторых регистров нижней и верхней границ участка программы сое.динены с первыми входами элементов И . .„шестой и седьмой групп соответственно, :кроме того, каждый выход регистра ниж 45 ней и верхней границ участка программ
t .,:мы соединен соответственно с третьим
;к четвертым информационными входа ми второго блока коммутации, выходы элементов И шестой и седьмой групп соединены соответственно с первой к второй группами входов блока памяти, первый выход, блока сравнения соединен с управляющим входом вычитания счетчика адреса текущих команд и первьм входом блока управления, выход первого элемента ИЛИ вЂ” с вторьм входом блока управленкя к с управляющим входом сложения счетчика адреса текущих команд, второй выход первой схемы сравнения к выход второй схемы сравнения — соответственно с третьим и четвертьм входамк блока управления, третий и четвертый выходы блока управления соединены соответственно с вторыми входами элементов И третьей группы,к с управляющим входом второго блока коммутации, пятый выход блока .управления соединен с вторыми входами элементов И четвертой и пятой групп, а шестой выход — с вторыми входами элементов И.шестой и седьмой групп.
2с Устройство по и. 1, о т л ич а ю щ е е с я тем, что блок управления содержит блок постоянной памяти, дешифратор адреса, регистр адреса микрокоманд, модификатор адреса микрокоманд, причем первый, второй, третий, четвертый, пятый и шестой выходы блока постоянной памяти являются соответственно первьм, вторьм, третьим, четвертьм, GRTfiM и шестьм выходами блока управления, а седьмой выход блока управления соединен с входом модификатора адреса микрокоманд, второй, третий, четвертый и пятый входы модификатора адреса команд являются соответственно первьм, вторым, третьим и четвертьм входами блока управления, выход модификатора адреса, соединен с входом .регистра адреса микрокоманд, выход которого соединен с входом дешифратора адреса, выход дешкфратора адреса соединен с входом блока постоянной памяти.
Источники информации, принятые во внимание при экспертиэе
1. Патент Ct8A Р 3935563, кл. 340-172.5, опублик. 1976..
2. Патент CQ% 9 3931611, кл. 340-172. 5, опублик. 1976.
983712
At tl ФР
Ar 7 к Р Ж
Закаэ 9927/59 Тираж 731 Подписное
ВНИИПИ Государственного комитета СССР по делам изобретений и открытий
113035, Москва, Ж-35, Раушская наб., д.4/5
Филиал ППП Патент, r.Óærîðîä, ул. Проектная, 4
Составитель И. Сигалов
Редактор A. Шишкина Техред Ж.Кастелевич КорректорО. Билак







