Каким должен быть язык программирования? Анализ и критика Описание языка Компилятор
Отечественные разработки Cтатьи на компьютерные темы Компьютерный юмор Новости и прочее

Крах операции «Инкогнито»

Время действия — начало 80-х.

            Место действия НПО «Энергия». Конкретно ВЦ его окрестности.

            Техническое оснащение — три БЭСМ-6 и десятков шесть удаленных терминалов Videoton-340 венгерского производства. Это то самое таинственное устройство, которое засветилось в кабинете директора в фильме «Служебный роман» и принимаемое современными зрителями за какую-то экзотическую ЭВМ. Знатоки даже отметят, что в фильме мелькнул терминал первых выпусков с квадратными колпачками лампочек (в следующих моделях они были круглыми). Эти терминалы соединялись с БЭСМ-6 по телефонной линии 1200 бод.

            Программное оснащение —ДОС ДИСПАК, транслятор БЭСМ-Алгол (версии 1976 года), диалоговая программа «Пульт».

            Несмотря на прогресс вычислительной техники, множество расчетов идет по-старинке — колода перфокарт и заказываемое время счета (обычно не более 2 часов). Счет проходит ночью (дежурят девочки-операторы). Утром (с 8:00) закрывается возможность работать с терминалов и начинается так называемая «профилактика» часов до 10. Затем можно работать и с терминалов, но там выделенное время ЦП не более 2 минут. Для редактирования текста — это даже много, за пару часов редактирования и набора текстов за этим самым «Видеотоном» тратится секунд 20 времени ЦП, но вот для расчета — этого мало. Не забывайте, что производительность БЭСМ-6 соизмерима с IBM-PC/XT. И это при наличии одновременно 50-60 страждущих.

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

            Наши расчеты довольно серьёзные и ответственные. Идет разработка «Энергии-Буран» и нужно обоснование количества гарантированных остатков топлива. Поясню в чем тут дело. В конце вывода ракеты на орбиту и при выключении двигателей должно ещё быть немного топлива, чтобы в двигатель не попал газовый пузырь из баков иначе может быть взрыв. Нужно, чтобы топливо гарантированно не закончилось. Но с другой стороны — лишнее топливо на орбите — это только мертвый груз, снижающий пользу. А сценарии полетов — разные. Есть даже такой, где из-за отказа один из боковых блоков выключается и полет идет на центральном блоке и трех оставшихся (из неисправного прямо в полете сливается керосин, чтобы центровка не сильно уходила).

            В общем, сложно все это. И не будешь же 1000 раз ракету пускать, чтобы понять, сколько гарантированно топлива заливать, чтобы ничего не взорвалось. Поэтому что? Правильно, моделирование. У нас модель блока, размноженная четыре раза для всех блоков. На входе — случайный разброс некоторых заданных параметров. На выходе — случайный разброс остатка топлива. По куче прогонов строится «Гауссиана». А далее — не наша забота, далее пусть академики из какого-нибудь ИПУ по «трем сигмам» что-то там определят. Наша задача — график вероятности построить, а дело это не быстрое. После (условно) 100 модельных пусков вместо плавной кривой все ещё только бесформенная кучка точек на графике. Времени нужно много, а БЭСМ — она не резиновая. И тут как назло приходит начальник и говорит, что кровь из носу нужен расчет по уточненной модели, поскольку завтра очередное совещание на эту тему. А у нас всего два часа счета на ночь заказано. Не получится при таком времени полезный график. И перезаказать время на ночь уже поздно, оно все расписано и не поделится никто — каждый считает свой расчет самым важным.

            И тут мне приходит в голову, что можно провернуть операцию, рассчитанную на слабые знания дежурной смены ВЦ. Несмотря на то, что программу я храню на диске (диск аж 7 Мбайт!) а результаты очередного моделирования дописываю на магнитную ленту, я все равно ношу в ВЦ маленькую колоду-«пускач». Состоит эта колода из «паспорта» (стандартных перфокарт) и нескольких команд запуска программы с диска. Внешне все также как и у других программ — вечером даю колоду, утром забираю её с распечаткой. На распечатке — только «посмертная» выдача, ведь программа никогда не заканчивается, её снимают операторы. Как только они её сняли — ОС печатает эту маленькую распечатку и программа завершает работу. Операторам наплевать, чем закончилась работа: вот колода, вот распечатка — прогон выполнен.

            Я докладываю в паспорт карту с директивой «Инкогнито». На этой карте набит значок «ромбик» и слово ИНКО. Эта директива ОС отменяет «посмертную» выдачу. Расчет на то, что вот запустят ночью программу, пройдет два часа — снимут её — и тишина. Никаких следов, что программа вообще запускалась. Девчонки испугаются, что что-то сделали не так, а спросить некого — ночь же! Инструкция по эксплуатации с подробным описанием всех этих директив на странице №25 лежит здесь же, на столе. Но они никогда её не читают и прочитать нужную страницу ни за что не догадаются.

            Поэтому, что они сделают? Правильно — запустят ещё раз. Программа проведет следующие 100 модельных «полетов» и график станет более полным. Прекрасная мысль — одобряют все. Проводи свою операцию.

            Утром как-то даже боязно на ВЦ идти. А вдруг скандал? Говорю своим: да черт с ней с колодой, не пойду туда. Откроют работу с терминалов — посмотрю, сколько отработала.

            Начальник в ответ: нет, нехорошо. Все должно быть официально. Иди, забери колоду. Там же и журнал замечаний ведется. Прихожу. Смена буквально в слезах. Такие добросовестные операторши попались, стыдно даже стало. «А Ваша программа ничего не выдает! Мы уж и так и этак». В общем, гоняли они её всю ночь на трех машинах и мы получили около 25 часов чистого счета и очень чистенькие графики. Хотел для виду повозмущаться: дескать как так? Я записывался на счет, где моя распечатка? Но смотрю, начальница их на работу пришла. Работала такая Кира Федоровна Семенюк. Она бы быстро определила, почему нет распечатки. Поэтому быстренько я колоду схватил, в журнале замечаний ничего не написал (операторши сразу повеселели) и ушел.

            Увы, плавные графики оказались скособоченными. А из смысла формул модели — они должны были быть строго симметричными относительно оси ординат. Быстро провели анализ и нашли ошибку в модели. И хоть потом и утешали себя, что если бы не провели такой длинный расчет, то ошибку никогда бы не заметили, все же следует признать, что блестяще задуманная операция «Инкогнито» закончилась провалом.

Автор: Д.Ю.Караваев. 02.02.2017

Опубликовано: 2018.08.26, последняя правка: 2019.01.28    20:49

ОценитеОценки посетителей
   ██████████████████████████████████████████ 3 (100%)
   ▌ 0
   ▌ 0
   ▌ 0

Добавить свой отзыв

Написать автору можно на электронную почту
mail(аt)compiler.su

Авторизация

Регистрация

Выслать пароль

Карта сайта


Содержание

Каким должен быть язык программирования?

Анализ и критика

Описание языка

Компилятор

Отечественные разработки

Cтатьи на компьютерные темы

●  О превращении кибернетики в шаманство

●  Про лебедей, раков и щук

●  О русском ассемблере

●  Арифметика синтаксиса-3

●  Концепция владения в Rust на примерах

●●  Концепция владения в Rust на примерах, часть 2

●●  Концепция владения в Rust на примерах, часть 3

●  Суть побочных эффектов в чисто функциональных языках

●  О неулучшаемой архитектуре процессоров

●  Двадцать тысяч строк кода, которые потрясут мир?

●  Почему владение/заимствование в Rust такое сложное?

●  Масштабируемые архитектуры программ

●  О создании языков

●●  Джоэл Спольски о функциональном программировании

●  Почему Хаскелл так мало используется в отрасли?

●  Программирование исчезнет. Будет дрессировка нейронных сетей

●  О глупости «программирования на естественном языке»

●  Десятка худших фич C#

●  Бесплатный софт в мышеловке

●  Исповедь правового нигилиста

●  ЕС ЭВМ — это измена, трусость и обман?

●  Русской операционной системой должна стать ReactOS

●  Почему обречён язык Форт

●  Программирование без программистов — это медицина без врачей

●  Электроника без электронщиков

●  Программисты-профессионалы и программирующие инженеры

●  Статьи Дмитрия Караваева

●●  Идеальный транслятор

●●  В защиту PL/1

●●  К вопросу о совершенствовании языка программирования

●●  Опыт самостоятельного развития средства программирования в РКК «Энергия»

●●  О реализации метода оптимизации при компиляции

●●  О реализации метода распределения регистров при компиляции

●●  О распределении памяти при выполнении теста Кнута

●●  Опыты со стеком или «чемпионат по выполнению теста Кнута»

●●  О размещении переменных в стеке

●●  Сколько проходов должно быть у транслятора?

●●  Чтение лексем

●●  Экстракоды при синтезе программ

●●  Об исключенных командах или за что «списали» инструкцию INTO?

●●  Типы в инженерных задачах

●●  Непрерывное компилирование

●●  Об одной реализации специализированных операторов ввода-вывода

●●  Особенности реализации структурной обработки исключений в Win64

●●  О русском языке в программировании

●●  Формула расчета точности для умножения

●●  Права доступа к переменным

●●  Заметки о выходе из функции без значения и зеркальности get и put

●●  Модификация исполняемого кода как способ реализации массивов с изменяемыми границами

●●  Ошибка при отсутствии выполняемых действий

●●  О PL/1 и почему в нём не зарезервированы ключевые слова

●●  Не поминайте всуе PL/1

●●  Скорость в попугаях

●●  Крах операции «Инкогнито»

●●  Предопределённый результат

●●  Поддержка профилирования кода программы на низком уровне

●●  К вопросу о парадигмах

●  Следующие 7000 языков программирования

●●  Что нового с 1966 года?

●●  Наблюдаемая эволюция языка программирования

●●  Ряд важных языков в 2017 году

●●  Слоны в комнате

●●  Следующие 7000 языков программирования: заключение

Компьютерный юмор

Новости и прочее




Последние отзывы

2024/04/23 15:57 ••• Ivan
Энтузиасты-разработчики компиляторов и их проекты

2024/04/23 00:00 ••• alextretyak
Признаки устаревшего языка

2024/04/21 00:00 ••• alextretyak
Постфиксные инкремент и декремент

2024/04/20 21:28 ••• Бурановский дедушка
Русский язык и программирование

2024/04/07 15:33 ••• MihalNik
Все языки эквивалентны. Но некоторые из них эквивалентнее других

2024/04/01 23:39 ••• Бурановский дедушка
Новости и прочее

2024/04/01 23:32 ••• Бурановский дедушка
Русской операционной системой должна стать ReactOS

2024/03/22 20:41 ••• void
Раскрутка компилятора

2024/03/20 19:54 ••• kt
О многократном резервировании функций

2024/03/20 13:13 ••• Неслучайный читатель
Надёжные программы из ненадёжных компонентов

2024/03/07 14:16 ••• Неслучайный читатель
«Двухмерный» синтаксис Python

2024/03/03 16:49 ••• Автор сайта
О неправомерном доступе к памяти через указатели

2024/02/28 18:59 ••• Вежливый Лис
Про лебедей, раков и щук