Литмир - Электронная Библиотека
A
A

Поток воспоминаний (5):

Первые месяцы работы на новом месте были сплошным кошмаром. Еще до ухода в ХАИ Виталий посещал по вечерам ИВЦ, где освоил программирование на языке КОБОЛ для ЭВМ «Минск-32». Он написал и отладил на искусственных массивах данных несколько достаточно сложных программ. Одна из них была программой расчета состава изделий на основании конструкторских спецификаций узлов. Эту базовую программу для расчета потребностей в ресурсах на изделия дискретного производства называли на профессиональном жаргоне программой «разузлования». Программа Виталия не имела практического значения, так как базировалась на условных структурах данных, но содержала все тонкости логики и алгоритма решения данной задачи.

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

В первый день работы после обеденного перерыва Бриль пригласил Давиденко в свой кабинет. Там все еще размещался стол Ковтенко.

– Виталий Семенович, обещал не трогать вас неделю, но чрезвычайные обстоятельства заставили.

– Что собственно произошло?

– Опробовали программу разузлования. Один прибор на пятьсот спецификаций раскрывался восемь часов. В разработке и производстве полторы тысячи приборов и это без испытательной аппаратуры, которую мы тоже должны раскрывать. Катастрофа!

– Кто автор программы?

– Екатерина Петренко.

– Насколько я помню, очень толковая девушка.

– Да, старательная! На седьмом месяце беременности окончила курсы программирования в Москве, успела родить и вышла на работу сразу после декретного отпуска.

– Ее муж консультировал, программист 8-го отделения КБ. Работает на СМ-2. Не понимаю, что он мог посоветовать?! – вставил Ковтенко.

В кабинет плотной группой вошли участники совещания: Есина – начальник бюро разработки в то время, Андреев – еще молодой специалист, Денисова – начальник бюро программирования и Петренко – автор программы.

– Докладывайте!

– Что докладывать! Программа постоянно перематывает ленту на начало. Почему, пока не понимаю! – ответила за всех Петренко.

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

– Каждая спецификация оформлена как отдельный файл, – ответила за всех Петренко.

– Тогда все понятно! Вы знаете средний размер спецификации? Вы снимали такую статистику?

– Нет! А зачем?

– Как можно проектировать процесс и алгоритмы обработки данных, не имея представления о количественных характеристиках этих самых данных! – продолжил Давиденко. – Так вот, спецификация в среднем имеет четыре записи. Есть сто, есть двести, но в среднем четыре детали или узла. Остальное – покупные изделия, которые в разузловании не участвуют. У вас лента содержит на восемьдесят процентов пустоту – метки файлов. Кроме того, стандартная программа открытия файла всегда перематывает ленту на начало или конец.

– У меня свой каталог файлов, где хранится номер физического блока начала файла конкретной спецификации, – не сдавалась Екатерина.

– Это только увеличивает накладные расходы. Кто разрабатывал постановку задачи разузлования? – спросил Давиденко.

– Мое бюро, – ответила Есина. – Но мы определили только структуру записи и общие требования. Физическая структура задана программистами.

– Понятно. Главное вы отдали на откуп программистам. Для окончательного решения мне нужно поработать с Екатериной над конкретным алгоритмом. Поэтому предлагаю совещание закрыть.

– Виталий Семенович, мне нужно решение уже сегодня. У нас сорваны все сроки разработки, – подал голос Бриль.

– Решение будет сегодня. Насколько я знаю, вы работаете над задачей разузлования более полугода. Полдня можно потерпеть.

Бриль поморщился.

– С восьми утра сегодня – это уже ваши проблемы, – добавил Бриль.

Ковтенко растянул губы в язвительной усмешке.

Рабочий стол Виталия временно разместили прямо в машинном зале, пока ремонтировали комнату на втором этаже. Сидеть в кабинете вместе с Брилем Виталий отказался. Будут постоянно отвлекать посетители начальника и звонки.

– Садитесь! – Виталий предложил стул Екатерине.

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

– Приглашайте!

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

– Будет через пятнадцать минут.

– Подождем.

– Понимаете, это моя первая программа. Спросить не у кого. Все ребята у нас из первого выпуска системотехников ХИРЭ. А там и преподаватели не знакомы с обработкой данных. Все они специалисты по автоматике и автоматическому управлению.

– Могли бы почитать литературу. Например, работу Джадда «Работа с файлами». Она переведена на русский язык.

– Нужно еще знать, что прочитать.

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

Появился высокий красивый парень. Екатерина тоже была не дурна собой: высокая, красивое лицо, карие глаза, ровные ноги. Пожалуй, несколько плоская фигура.

Она представила мужа Давиденко:

– Так какие проблемы с алгоритмом вы обнаружили? – самоуверенным тоном спросил Алексей.

– Физическая организация данных выбрана неверно. Записи всех спецификаций должны быть в одном файле, упорядоченном по обозначению спецификации. Кроме того, нужно раскрывать сразу пакет приборов, а не один. Главный принцип эффективной работы с последовательными файлами гласит, что за один просмотр файла нужно выбирать максимальный объем информации. Если изделия имеют до пятнадцати уровней вхождения (в среднем десять), то десять просмотров неизбежны. Идентификатор прибора должен быть в каждой записи выходного файла, тогда соответствующая сортировка позволит распечатать или разрезать выходной файл на части как угодно. Хотя и дальнейшую обработку тоже целесообразно выполнять пакетом. Эффективность еще выше, из-за того что многие спецификации входят в несколько приборов. Наконец, я сомневаюсь в целесообразности построения трехуровневого индекса. Индексы эффективны только при прямом доступе к блокам данных или записям.

– О боже! Это значит, нужно все выбросить и начать заново

– Ничего не нужно переделывать! Каталог эффективен, потому что мы осуществляем поиск по номеру блока, а это быстрее, чем последовательное чтение, – возразил Алексей.

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

– Это элементарно! – отреагировал Алексей.

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

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

– Вы имеете в виду, файл технологических маршрутов.

– Да. Бодрова никак не может сдать программу, а через две недели уходит в декрет.

24
{"b":"89085","o":1}