Время действия – начало 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 часов чистого счета и очень чистенькие графики. Хотел для виду повозмущаться: дескать как так? Я записывался на счет, где моя распечатка? Но смотрю, начальница их на работу пришла. Работала такая Кира Федоровна Семенюк. Она бы быстро определила, почему нет распечатки. Поэтому быстренько я колоду схватил, в журнале замечаний ничего не написал (операторши сразу повеселели) и ушел.
Увы, плавные графики оказались скособоченными. А из смысла формул модели – они должны были быть строго симметричными относительно оси ординат. Быстро провели анализ и нашли ошибку в модели. И хоть потом и утешали себя, что если бы не провели такой длинный расчет, то ошибку никогда бы не заметили, все же следует признать, что блестяще задуманная операция «Инкогнито» закончилась провалом.
В ФТИ им.Иоффе было проще. Берешь выпивку и закуску и к девочкам. Они спать, а ты за пульт (там ЕС-1055М была и VM/SP, так что на виртуальной машине можно было прямо "не отходя от кассы" работать, изредка переключаясь на системную консоль и прибавляя себе приоритет к утру поближе). Зато приобрел неоценимый опыт выдергивания блоков головок из дисководов при сбоях питания. Пока они не остановились и не легли на блины. Если сами не выдернулись, что бывало при неудачном раскладе (когда питание пропадало в момент движения головок к оси пакета).
Здравствуйте, Андрей Ушаков, Вы писали:
АУ>В ФТИ им.Иоффе было проще. Берешь выпивку и закуску и к девочкам. Они спать, а ты за пульт (там ЕС-1055М....
Я в 80-е годы работал на ЕС-1022 в одном институте АН СССР. ОС ЕС ЭВМ. В ней штатно снятия задачи по времени не было, но наш сисадмин то ли раздобыл, то ли сам написал какой-то модуль, который это ограничение ставил. Что-то вроде TIME = x
И обнаружил я в его программе баг. А именно, если поставить TIME = 0, то ограничение снималось вообще.
Использовать не стал — на этой машине нас было человек 10, все друг друга хорошо знали, непорядочно.
Со временем сказал админу.
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>И обнаружил я в его программе баг. А именно, если поставить TIME = 0, то ограничение снималось вообще.
Возможно так и задумано было. Довольно таки распространенный прием.
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Я в 80-е годы работал на ЕС-1022 в одном институте АН СССР. ОС ЕС ЭВМ. В ней штатно снятия задачи по времени не было, но наш сисадмин то ли раздобыл, то ли сам написал какой-то модуль, который это ограничение ставил. Что-то вроде TIME = x
А разве нельзя было использовать параметр TIME в JOB или EXEC? ЕМНИП, значение 1440 снимало ограничение по времени в ОС ЕС. По умолчанию, опять же ЕМНИП, было 30 минут. По истечении отведенного времени задание (или шаг) снималось с ABEND 522 (ЕМНИП).
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Админ это значение заблокировал, максимум был вроде как 1 час.
Не сталкивался.
Более того, был у меня случай в самом начале моей карьеры. Я работал в отделе эксплуатации ЭВМ.
В новой версии одного пакета программ появилось новое задание. Никто не знал, сколько оно будет выполняться, поэтому выделили мне час на ЕС 1033.
Пришел я в назначенное время в зал, скормил пакет перфокарт ридеру, смотрю, заработало. Сижу, жду.
Обращения к дискам нет. На печать ничего не выводится. На операторской консоли все чисто. Ни вопросов, ни сообщений. Но видно, что оно чего-то делает. Лампочки на передней панели помигивают.
Проходит час. Забегает в зал следующий на очереди и пытается меня заставить снять задание и уступить ему машину. Я, разумеется, уперся. Подумаешь, начальник соседнего отдела. Да кто он мне такой вообще!
Пошел он к системщикам. Кричит, проверьте, оно висит. Те пришли, посмотрели. Нет, говорят, оно работает. Отстояли меня они. Да еще мой начальник отдела пришел. В общем, жду дальше.
Прошло еще часа два, пока на печать вывелись несколько страниц.
И никто ничего не снимал.
P.S. Эту штуку потом соптимизировали так, что она стала выполняться несколько секунд. Потом выяснилось, что написана она была на ассемблере.