Устройство для контроля хода программ

Иллюстрации

Показать все

Реферат

 

Ой ИСАНИЕ

ИЗОБРЕТЕНИЯ

К АВТОРСКОМУ СВИДЕТЕЛЬСТВУ п»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. Шишкина Техред Ж.Кастелевич КорректорО. Билак