Страница произведения
Войти
Зарегистрироваться
Страница произведения

Цвет сверхдержавы - красный 7 Дотянуться до звёзд. часть 2


Опубликован:
06.05.2018 — 20.01.2022
Читателей:
18
Аннотация:
Альтернативная история СССР 1954-1964. 7-я книга в состоянии допиливания, регулярных прод не будет, возможны дополнения и изменения.

Здесь периодически пишет тролль под ником Илья. Не кормите троллей. Все комменты будут удалены
Предыдущая глава  
↓ Содержание ↓
↑ Свернуть ↑
  Следующая глава
 
 

Подключение периферийных устройств к машине значительно упростили за счёт применения интерфейсов ИРПР (советский аналог параллельного LPT — Centronics ) для подключения АЦПУ и дополнительных накопителей, и СТЫК С-2 (аналог последовательного RS-232) для модемов. (АИ, в реальной БЭСМ-6 подключение новых устройств требовало 'колдовства' с паяльником)

В АЦПУ, подключенных к БЭСМ-6, был большой вращающийся барабан с символами и молоточки. Краска наносилась путём соприкосновения бумаги с печатающими головками через красящую ленту. Когда очередной ряд символов на барабане оказывался напротив молоточков, генерировалось прерывание, и ОС должна была выдать маску молоточков, которым было пора ударять по бумаге. Удар должен был происходить не позднее 200 мкс после прерывания, иначе будет поздно — барабан провернётся и напечатаются другие символы. Интенсивность прерываний от одного АЦПУ была примерно 700 в секунду. Скорость печати достигала 6 строк в секунду. Таких АЦПУ в комплекте было 2, и даже тогда, когда оба печатали, снижение скорости реакции системы было едва заметно.

Принтеры подобной конструкции — IBM 1403 с 1963 г выпускались также в США. В принтере были установлены пять одинаковых наборов из 48 тиснёных металлических символов, как в печатной машинке, соединённые в горизонтальную цепь, которая вращалась со скоростью 5,2 метра в секунду перед поступающим рулоном бумаги и красящей лентой. Печать символов осуществлялась не прижатием символа к красящей ленте с бумагой, как в печатной машинке, а прижатием бумаги к нужному месте быстро движущейся цепи с металлическими символами с помощью маленьких электромагнитных молоточков.

В IBM 1403 Model 3 первоначальную металлическую цепь с символами заменили на отдельные элементы в дорожках, которые приводились в движение отдельными шестерёнками. За счёт этого скорость печати удалось увеличить до рекордного показателя 55 миллисекунд на строчку, что соответствует 1100 строчкам в минуту. А если ограничить печать только определённым подмножеством символов, то скорость возрастала и вовсе до 1400 строк. Такое количество строк (1100 в минуту) примерно соответствует 47 машинописным страницам по 29-31 строк. То есть древний офисный принтер 1963 года печатал 47 страниц текста в минуту. (https://habr.com/en/post/403041/)

Размер принтера IBM 1403 был немаленький — величиной с тумбу для постельного белья или комод. Разные версии могли размещаться прямо на полу или на ножках. (см. фото по ссылке выше). АЦПУ для БЭСМ-6 имели сходную конструкцию, хотя и с несколько меньшей скоростью печати.

Версию операционной системы ITMiVT-Unix для новой ЭВМ разрабатывали Л.Н. Королев, В.П. Иванников и А.Н.Томилин.

Она обеспечивала:

— мультипрограммное решение задач;

— управление одновременной работой всех каналов связи с внешними запоминающими устройствами и всех устройств ввода-вывода информации;

— совмещение вычислений во всех задачах с параллельной работой внешних запоминающих устройств и устройств ввода-вывода;

— организацию совместного динамического распределения ресурсов двухуровневой памяти (оперативной и внешней), базирующуюся на замещении страниц в оперативной памяти;

— распределение устройств между задачами;

— буферизацию ввода-вывода;

— развитую связь с оператором по управлению прохождением задач и работой устройств;

— возможность многотерминальной работы в диалоговом режиме.

Кроме этих основных функций ОС обеспечивала вызов трансляторов с языков программирования и автокодов. Понятно, что никакого графического интерфейса в системе не было. Общение с оператором происходило в текстовом режиме, дополняемом световой индикацией на панели состояния регистров. По ней можно было определить, например, что ЭВМ зависла, и прочитать содержимое регистров. Анализируя регистры, можно было догадаться, что пошло не так при выполнение программы.

При разработке новой ЭВМ Сергей Алексеевич поставил себе и коллективу разработчиков задачу обеспечить на ней компиляцию исходных текстов присланных программ на языке C. Поскольку С является достаточно низкоуровневым языком, 'привязанным' к архитектуре компьютера и допускающим обращения к 'железу', его прямая реализация на БЭСМ-6 была затруднительна. Выход был найден в использовании промежуточного языка Алмо.

Язык системного программирования (машинно-ориентированный язык) Алмо, задумывался как язык-посредник при трансляции с различных языков. Для каждой аппаратной платформы достаточно было написать транслятор Алмо — и появлялась возможность работать с множеством языков программирования, которые имели трансляцию в Алмо. Были созданы реализации языка для основных отечественных машин того времени (М-20, БЭСМ-6, Минск 2, Урал 11) и трансляторы с Алгола-60 и ФОРТРАНа в Алмо, причем все трансляторы на всех этих машинах также были написаны на Алмо. Язык Алмо имел в своей основе некоторую абстрактную машину, отражавшую особенность существовавшего тогда класса машин, и в этом отношении Алмо-подход предвосхищал появившиеся позже Р-код, М-код и прочие подобные подходы. Машинная ориентированность явно прослеживалась в языке — регистровые объекты, постфиксная запись выражений, оперирование с битами машинных слов. (цитируется по https://habr.com/ru/company/ua-hosting/blog/273665/)

В 1962 году был построен опытный образец БЭСМ-6 и начаты пробные прогоны расчётных задач, подтвердившие правильность выбранных решений. (в реальной истории — в 1965 году, этап разработки в АИ сокращён за счёт уже известных технических решений)

Одновременно с разработкой БЭСМ-6 в Новосибирском отделении Академии наук СССР шла разработка программы-транслятора с языка АЛГОЛ-60 в машинный код. АЛГОЛ был одним из ранних высокоуровневых языков программирования, и использовался для решения научных задач. Он разрабатывался как 'естественный математический' язык, без внимания к получению эффективных программ. Это давало повод некоторым отечественным программистам говорить на программистских форумах, что АЛГОЛ 60 — это западная провокация, предназначенная для того, чтобы завлечь нас в тупик: 'Они-то будут писать на Фортране или мнемокодах, а мы, поддавшись влиянию Запада будем создавать неэффективные программы?' (http://www.computer-museum.ru/books/n_mozaika/alfa.htm)

Разработкой АЛГОЛ занималась международная группа. В 1958 году она опубликовала начальную версию нового языка программирования, основной идеей которого было дать как можно более естественную форму для выражения алгоритмов, прежде всего, вычислительной математики. (Подробнее см. https://ru.wikipedia.org/wiki/Алгол)

Опираясь на эту версию, Андрей Петрович Ершов вместе с Геннадием Кожухиным и Вадимом Янковым решили разработать свой язык, внеся в него средства, удобные вычислителям, в частности, возможность оперировать с векторами, матрицами и многомерными объектами. Когда их версия АЛГОЛ была готова, появилась окончательная версия международного языка АЛГОЛ 60. Часть решений в АЛГОЛе 60 совпадали с принятыми группой Ершова, но многие из существенных конструкций, разработанных в 'сибирском' языке отсутствовали в АЛГОЛе 60. Было принято решение удалить все несущественные различия из 'сибирского' языка, но существенные — оставить, сделав из него правильное расширение АЛГОЛа 60. Вадим Янков к этому времени ушёл из института, и работу по созданию окончательной версии языка выполнила группа в составе Ершова, Кожухина и Юлия Михайловича Волошина.

Этот язык сначала именовался 'входной' (в английском Input Language ), затем обиходное неофициальное название 'сибирский' и, наконец, получил уже установившееся и официальное имя — язык АЛЬФА.

Значение Алгола, его расширения АЛЬФА и транслятора с языка АЛЬФА в машинные коды можно оценить, если понимать трудоёмкость программирования древних ЭВМ. В то время годовым планом программиста предусматривалось решение 10 научных задач, т. е. написание 10 программ в машинных кодах или на ассемблере, обсчитывающих тот или иной научный расчёт. Многие расчёты были очень громоздкими. В мемуарной литературе описан пример составления программы для обращения матрицы 436 порядка. На эту программу были потрачены многомесячные усилия целой группы программистов.

В декабре 1960 г. Геннадий Исаакович Кожухин выступил на рабочей конференции по АЛГОЛу с предварительным сообщением о проекте 'программирующей программы', т. е. транслятора с АЛГОЛа в машинные коды. Разработчики проявили в своём докладе неопытность и неоправданный оптимизм, утверждая, что вся система будет насчитывать не более 15 000 команд и будет закончена к концу 1962 г. Всё оказалось много сложнее.

К началу 1961 г. отдел программирования полностью перебрался в Новосибирск. Перед началом массовой работы был составлен подробный проблемный план, который позволил распределить задания между разработчиками. В течение 1961 г. были получены основные научные результаты: Игорь Васильевич Поттосин разработал алгоритмы качественного программирования циклов и нашел оригинальный метод усовершенствованной экономии команд; Раиса Давидовна Мишкович и Людмила Кузьминична Трохан разработали алгоритмы глобальной экономии памяти; Бернард Анатольевич Загацкий создал методику эффективного программирования процедур на основе их предварительного анализа; Г. И. Кожухиным был найден изящный способ динамического распределения памяти; Юлий Михайлович Волошин ввел в язык 'АЛЬФА' комплексные числа и разработал методику операций над многомерными величинами.

Теперь эти разрозненные результаты следовало совместить в единую систему. Для этого в конце 1961 года был предпринят 'мозговой штурм' из серии почти непрерывных заседаний, длившихся два месяца. На них в жарких спорах выкристаллизовался комплекс алгоритмов программирования. Все согласованные решения записывались в сберегаемую как величайшее сокровище амбарную книгу, получившую название 'Талмуд'. Длинное и неуклюжее название 'программирующая программа Института математики СО АН СССР' было изменено на более короткое и выразительное 'АЛЬФА-транслятор'.

С начале 1962 г. коллектив программистов под общим руководством Андрея Петровича Ершова приступил к составлению схем блоков и программирования АЛЬФА-транслятора. Объём работы резко вырос, пришлось набирать новых сотрудников. Майя Михайловна Бежанова разработала блоки чистки циклов и обработки индексов. Людмила Леонидовна Змиевская построила алгоритмы экономии констант и заключительной компоновки окончательной продукции транслятора — рабочей программы. Около четверти всех команд АЛЬФА-транслятора написала Светлана Константиновна Кожухина. Методику построения транслятором машинных команд и программирование блока первичной обработки описаний разработал Геннадий Иванович Бабецкий.

В течение 1962 года длина транслятора достигла более 30 тысяч команд, и конца работе ещё не предвиделось. Первоначально планировалось запустить транслятор к официальному открытию Новосибирского Академгородка в ноябре 1962 г, но к декабрю ещё даже не удалось начать комплексную отладку. Она началась лишь в мае 1963 года.

К этому времени транслятор состоял из более чем 40 тысяч машинных команд, записанных на магнитной ленте. ЭВМ с загруженным в неё транслятором вела себя, как одушевленное кибернетическое устройство, обладающее злобным характером, несомненно, мечтающее 'убить всех человеков' и захватить власть над миром. Более двух месяцев продолжалось ожесточенное сражение с машиной, умело перепутывающей свои собственные неисправности с ошибками в трансляторе. Были исправлены сотни ошибок в коде транслятора, изведены километры магнитной ленты, высказаны тысячи ругательств в адрес периодически ломавшейся машины — электроника тех лет надёжностью не отличалась. Во время вынужденных перерывов на ремонт программисты писали унылые стихи и детективные рассказы.

Этап отладки завершился уходом в двухмесячный коллективный отпуск, так как неиспользованные отпуска накопились у всего коллектива. Отладку со свежими силами завершили в сентябре 1963 года. Первая запрограммированная с помощью АЛЬФА-транслятора задача была простейшей — 2 х 2. Её решение показало, что транслятор начал работать. С 9 декабря 1963 г. Владимир Павлович Минаев был назначен старшим оператором АЛЬФА-транслятора, и возглавил образованную в институте АЛЬФА-группу в которую вошли также Мария Ильинична Легостаева и Лилия Алексеевна Корнева. Всего в группу входили 6 программистов. В декабре 1963 года были прочитаны первые публичные лекции об АЛЬФА-трансляторе и его входном языке, с 10 января 1964 г. началась опытная эксплуатация системы и прием задач на программирование от посторонних организаций.

Сотрудник Вычислительного центра Владислав Леонидович Катков в течение 1964 г. решил с помощью транслятора около 30 задач, выполнив трёхгодовую норму для ручного программирования. Другой программист устроил соревнование между собой и АЛЬФА-транслятором. Он написал условие задачи на АЛГОЛе и 'скормил' его АЛЬФА-транслятору, а сам стал программировать вручную. Ручную программу он составлял и отлаживал три недели, на ЭВМ она считалась 7 с половиной минут. Транслированная программа была получена через два дня и отрабатывала при прогонах за 5 минут 40 секунд.

Полученные вручную и с помощью транслятора тексты в машинном коде прошли тщательное сравнение качества ручного и автоматического программирования на 20 разнообразных задачах. Исследование показало, что полученные результаты не являются случайными — транслятор стабильно выдавал более качественный код.

АЛЬФА-транслятор в дальнейшем стал одним из обязательных инструментов, применявшихся в научных расчётах на ЭВМ БЭСМ-6. В отличии от любой тогдашней ЭВМ с последовательным исполнением команд, работа БЭСМ-6 была НЕ интуитивно-понятной. Расчеты происходили параллельно, а о готовности результата свидетельствовало прерывание и установленный вспомогательным процессором набор флагов. Причем идеальным вариантом было не просто отреагировать на готовность расчета, а ещё до его окончания УЖЕ дать команду ПДП-блоку сопроцессора начать грузить новые данные для расчета. С точки зрения программы центрального процессора — это была чистая магия — он, ничего не считая, просто получал готовый результат, проведя некий подготовительный ритуал. 'Демоническое' программирование, особенно поначалу, ужасно напрягало программистов, привыкших составлять программы в стиле 'запустить расчет и подождать пока результат будет готов, крутя цикл ожидания'. Но по мере того как была осознана сила многопоточности и внесены срочные изменения в систему команд сопроцессоров, благо их можно было относительно несложно заменить — код и система команд сопроцессора были абсолютно независимы от кода и системы команд основного процессора, хотя и компилировались в одном месте, направленные на бОльшую автономность сопроцессоров в части исполнения своего кода, система 'взлетела'. Теперь программисты БЭСМ, особенно самых мощных ее модификаций, презрительно называли однопоточные машины 'телегами', сравнивая БЭСМ-6 с реактивным многодвигательным лайнером. И этот подход неожиданно обрел еще одно независимое направление.

123 ... 111112113114115 ... 132133134
Предыдущая глава  
↓ Содержание ↓
↑ Свернуть ↑
  Следующая глава



Иные расы и виды существ 11 списков
Ангелы (Произведений: 91)
Оборотни (Произведений: 181)
Орки, гоблины, гномы, назгулы, тролли (Произведений: 41)
Эльфы, эльфы-полукровки, дроу (Произведений: 230)
Привидения, призраки, полтергейсты, духи (Произведений: 74)
Боги, полубоги, божественные сущности (Произведений: 165)
Вампиры (Произведений: 241)
Демоны (Произведений: 265)
Драконы (Произведений: 164)
Особенная раса, вид (созданные автором) (Произведений: 122)
Редкие расы (но не авторские) (Произведений: 107)
Профессии, занятия, стили жизни 8 списков
Внутренний мир человека. Мысли и жизнь 4 списка
Миры фэнтези и фантастики: каноны, апокрифы, смешение жанров 7 списков
О взаимоотношениях 7 списков
Герои 13 списков
Земля 6 списков
Альтернативная история (Произведений: 213)
Аномальные зоны (Произведений: 73)
Городские истории (Произведений: 306)
Исторические фантазии (Произведений: 98)
Постапокалиптика (Произведений: 104)
Стилизации и этнические мотивы (Произведений: 130)
Попадалово 5 списков
Противостояние 9 списков
О чувствах 3 списка
Следующее поколение 4 списка
Детское фэнтези (Произведений: 39)
Для самых маленьких (Произведений: 34)
О животных (Произведений: 48)
Поучительные сказки, притчи (Произведений: 82)
Закрыть
Закрыть
Закрыть
↑ Вверх