Очерки истории отечественной программной инженерии в 1940 е 80 е годы - Владимир Липаев 6 стр.


1.4. Организация подготовки первых программистов в 1950-е – 60-е годы

В Московском, Ленинградском и Киевском университетах в 1950-е годы началась подготовка специалистов по вычислительной математике, в технических высших учебных заведениях появились курсы по вычислительной технике, и стали открываться кафедры вычислительных машин [1, 4, 11]. Министерство высшего образования и Высшая аттестационная комиссия ввели формальный список таких специальностей. Эти списки в системе образования и научной аттестации играли в СССР важную роль, т. к. служили средством идентификации и формального признания квалификации специалистов. В частности, каждая образовательная специальность получала право иметь самостоятельный учебный план от первого до выпускного года обучения. Учебный план в своей основной части являлся обязательным для каждого вуза и утверждался министерством. Имелось, однако, некоторое количество курсов и семинаров по выбору, которые использовались для более конкретной специализации студентов в рамках данной специальности.

В 1952-м году в нескольких университетах была открыта в дополнение к существовавшей специальности "математика" новая специальность "вычислительная математика", предназначенная для подготовки специалистов, использующих вычислительную технику. Первый учебный курс программирования в СССР был прочитан А.А.Ляпуновым в 1952-м – 53-м учебном году. Структура курса складывалась на глазах у студентов. В перерыве между первым и вторым семестрами у лектора начали складываться основные подходы к "операторному методу". Вся вторая половина курса – это была по существу совместная работа профессора и студентов по созданию и уточнению символики операторов, используемых при составлении схем программ. Курс читался и воспринимался с большим энтузиазмом, и неслучайно почти половина слушателей, математиков-вычислителей, стали после выпуска профессиональными программистами. В 1955-м году в Московском университете при кафедре вычислительной математики работал семинар по смежным вопросам кибернетики и физиологии, который с 1956-го года принял название "семинар по кибернетике".

В 1955-м году чтение курса программирования в МГУ продолжил М.Р. Шура-Бура [1, 4]. Первой книгой об ЭВМ, рассчитанной на массового читателя, была книга А.И. Китова "Электронные цифровые машины", вышедшая в середине 1956-го года. Хорошим качеством книги была убедительная и увлекающая свежего читателя демонстрация новизны, вносимой ЭВМ в практику человеческой деятельности. Ее развитием стал учебник А.И. Китова и Н.А. Криницкого "Электронные цифровые машины и программирование" [5]. Это была первая книга, официально рекомендованная министерством высшего образования в качестве учебного пособия, весьма солидного объема (572 стр.), и изданная большим тиражом (25 тыс. экземпляров). Первым учебником, специально посвященным программированию, была книга киевских авторов Б.В. Гнеденко, А.С. Королюка и Е.Л. Ющенко "Элементы программирования". Они использовали для изложения условную ЭВМ и дидактику курса А.А. Ляпунова. Отдельная глава была посвящена символике адресного программирования. Первой попыткой создать солидный университетский курс программирования, базировавшийся на Алголе-60, была книга Е.А. Жоголева и Н.П.Трифонова "Курс программирования", основанная на опыте чтения лекций по программированию в МГУ.

Потребности в специалистах по программированию и в усилении подготовки по технологии системного программирования, как для общего математического обеспечения, так и для прикладных программ, привели к организации в 1969-м году новой специальности "прикладная математика" (для университетов и политехнических институтов), а также специальности "автоматизированные системы управления" (АСУ) (для отраслевых институтов). В 1975-м году подготовка по этим специальностям осуществлялась на 54 (прикладная математика) и 43 (АСУ) факультетах с общей численностью выпуска порядка 5000 человек в год.

Глава 2. История отечественной вычислительной техники в 1950-е – 70-е годы

2.1. История семейства стационарных универсальных вычислительных машин "Урал" в 1960-е – 70-е годы

В середине 60-х годов и в последующие годы, заводами страны производился серийно ряд оригинальных типов универсальных ЭВМ- БЭСМ-4; Урал-11 – 14; М-220; М-222; Минск-22; Минск-32; Раздан-2; Наири; Мир-1– 3 и другие – (см. рис. 1). Наиболее полно перечень свыше тридцати типов и десяти семейств ЭВМ, разработанных в СССР, представлен в Виртуальном компьютерном музее [10]. Некоторые ЭВМ имели экспериментальный характер или выпускались столь малыми сериями, что практически не отражались на вычислительном потенциале страны и не позволяли широко распространять и применять разрабатываемые на них программы. Поэтому далее в монографии этапы история программной инженерии отражены на ряде примеров технологических программных средств и операционных систем, оказавших наибольшее влияние на вычислительный потенциал страны, так как было нецелесообразно излагать историю программной инженерии для всей совокупности созданных вычислительных машин.

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

Пензенская научная школа в области вычислительной техники, созданная Баширом Искандеровичем Рамеевым получила широкую известность и признание благодаря его таланту и колоссальному труду, вложенному в разработку и выпуск целого ряда вычислительных машин [11]. Первый, ламповый "Урал -1", был выпущен в 1957 году. Он стал "рабочей лошадью" во многих вычислительных центрах страны. Для серийного производства машины "Урал-1" был выбран завод в Пензе. Вместе с группой молодых специалистов, работавших с ним в Москве в СКБ-245, Б.И. Рамеев в 1955 – м году переехал в этот город. Коллектив разработчиков, который составил Пензенскую школу, начал складываться в 1952 – 54 годах еще в Москве в СКБ-245. Часть сотрудников училась в МИФИ, а после окончания института были направлены в СКБ-245.

В Пензе Б.И. Рамеев становится главным инженером и заместителем директора по научной работе НИИ математических машин (потом НИИ управляющих машин) и главным конструктором вычислительных машин "Урал". Машина "Урал-1" стала родоначальницей целого семейства. Простота машины, удачная конструкция, невысокая стоимость обусловили ее широкое применение. После "Урал-1" на той же элементной базе (на электронных лампах) были созданы еще две машины: в 1959 году – "Урал-2", а в 1961 – м году – "Урал-4". По сравнению с первым "Уралом" их быстродействие увеличилось в 50 раз, оперативная память была реализована на ферритовых сердечниках и значительно увеличен объем внешней памяти.

В 1960-м году были начаты работы по созданию семейства полупроводниковых "Уралов". Основные черты нового поколения машин были сформулированы еще в 1959-м году. В соответствии с ними определили состав семейства машин, их структуру, архитектуру, интерфейсы, установили принципы унификации, утвердили технические задания на устройства, ограничения на используемые комплектующие изделия и некоторые другие документы. В процессе проектирования обсуждались с разработчиками основные решения и ход работы. В ноябре 1962-го года была закончена разработка унифицированного комплекса компонентов "Урал-10", рассчитанного на автоматизированное производство. Хотя компоненты разрабатывались для использования в серии ЭВМ "Урал-11" – "Урал-16", они нашли широкое применение и в других средствах вычислительной техники и автоматике. Для этих целей было выпущено несколько миллионов штук компонентов.

В семейство полупроводниковых "Уралов" входили три модели: "Урал-11", "Урал-14" и "Урал-16". Первые две модели стали выпускаться серийно с 1964 года, а последняя – с 1969 года. Выпуск моделей этого семейства ознаменовал новую веху в творческом наследии главного конструктора Б.И. Рамеева. Это первое в нашей стране семейство машин с унифицированной системой организации связи с периферийными устройствами (унифицированный интерфейс), унифицированной оперативной и внешней памятью. В моделях этого семейства нашли свое воплощение многие идеи, которые затем широко использовались в машинах третьего поколения (развитая система прерываний, эффективная система защиты памяти, развитое программное обеспечение).

Это семейство являлось выдающимся примером создания массовых, программно совместимых универсальных ЭВМ разной мощности в 70-е голы, на единой конструктивной, технологической и схемной базе. Основные особенности поколения машин, воплощенные Б.И. Рамеевым в серии "Урал", сводились к следующему:

• машины представляли собой конструктивно, схемно– и программно совместимый ряд ЭВМ различной производительности, с гибкой блочной структурой;

• с широкой номенклатурой устройств, со стандартизованным способом подключения, позволяющим подобрать комплект машины, наиболее подходящий для данного конкретного применения, и поддержать в процессе эксплуатации параметры машины на уровне изменяющихся потребностей заказчика и новых разработок устройств;

• конструктивные и схемные возможности позволяли комплектовать системы обработки информации, состоящие из нескольких одинаковых или разных машин, обеспечивая плавное изменение количественных характеристик и существенно расширяя ряд в сторону увеличения производительности, круга решаемых задач и областей применения;

• наличие датчика времени, аппаратуры сопряжения с каналами связи и пультов операторов для связи с машиной давали возможность строить различные системы обработки данных коллективного пользования, работающие в режиме разделения времени;

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

В семействе ЭВМ были предусмотрены:

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

• – возможность резервирования отдельных устройств машин, позволяющая создавать системы повышенной надежности: системы схемной защиты данных, независимость программ от их места в памяти, система относительных адресов, развитая система прерываний и соответствующая система команд;

• возможность работать в режимах: с плавающей и фиксированной запятой, в двоичной и десятичной системах счисления, выполнение операций со словами фиксированной и переменной длины, что позволяло эффективно решать, как планово-экономические, информационные, так и научно-технические задачи;

• система аппаратного контроля устройств хранения, адресации, передачи, ввода и обработки информации;

• большая емкость оперативной памяти с непосредственной выборкой слов переменной длины, эффективные аппаратные средства контроля и защиты программ друг от друга, ступенчатая адресация, развитая система прерываний и приостановок;

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

Основные черты этого поколения машин были изложены еще в 1963-м году в проекте на семейство ЭВМ. Он появился на полтора года раньше публикаций об американском семействе машин IBM-360. Таким образом, идея создания семейства программно и конструктивно совместимых ЭВМ была опубликована Б.И. Рамеевым независимо от американских ученых и реализована практически одновременно. В отличие от первых моделей семейства IBM-360, семейство "Урал" обеспечивало возможность создания систем обработки информации, состоящих из нескольких одинаковых или разных машин, было рассчитано на работу в сетях и, наконец, было открытым для дальнейшего наращивания технических средств для конкретных систем. Семейство этих ЭВМ производилось серийно с 1964-го года и более десятка лет широко применялось на промышленных предприятиях в стране.

2.2. История стационарных универсальных, высокопроизводительных ЭВМ в 1960-е – 70-е годы

Наибольшее влияние на программирование в 70-е годы оказало появление машины БЭСМ-6 [2]. Ее автором был академик Сергей Алексеевич Лебедев – глава выдающейся отечественной научной школы в области вычислительной техники и программирования. В архитектуре этой машины было сделано много для аппаратной поддержки операционных систем: аппаратная поддержка виртуальной памяти; защита памяти; развитая структура двухуровневой системы прерываний; защищенный супервизорный режим и т. п. Все эти характеристики являлись неотъемлемым признаком современных процессоров, но во времена создания БЭСМ-6 это было необычным и новым. БЭСМ-6, разработанная в ИТМ и ВТ совместно с Московским заводом счетно-аналитических машин (САМ), начала выпускаться с 1968 года, а в 70-х годах была среди универсальных ЭВМ самой высокопроизводительной в мире.

Основная цель [2, 7], которую преследовали авторы проекта БЭСМ-6 – создать быстродействующую серийную машину, сравнительно дешевую, удовлетворяющую наиболее важным современным требованиям с точки зрения автоматизации программирования и развития операционных систем, оснащенную имевшимися в то время в отечественном серийном производстве внешними запоминающими устройствами и устройствами ввода-вывода. Машина БЭСМ-6 предназначалась для решения крупных научно-технических задач, что, естественно, отразилось как на ее архитектуре, так и на выборе системы элементов и конструкции. Она не являлась копией какой-либо отечественной или зарубежной установки ни по системе команд, ни по внутренней структурной организации. При ее создании и проектировании был изучен и проанализирован опыт создания ЭВМ высокой производительности, накопленный к тому времени. В БЭСМ-6 были реализованы новые архитектурные и схемотехнические решения, многие из которых отразились в появившихся потом машинах третьего поколения.

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

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

По уровню производительности и степени согласования аппаратных средств с архитектурой, а также архитектуры – с алгоритмами научно-технических задач, БЭСМ-6 может быть отнесена к классу суперЭВМ. БЭСМ-6 за счет многочисленных нововведений архитектурного и структурного плана при основной тактовой частоте 10 МГц выполняла в среднем один миллион операций в секунду над 48-разрядными операндами. В начале 60-х годов отечественной промышленностью были созданы высокочастотные транзисторы и диоды, на основе которых была разработана элементная база машины (в машине было использовано около 60 тыс. транзисторов и 180 тыс. диодов).

Назначение машины, ее архитектурные и структурные особенности, отвечающие современным идеям, потребовали создания соответствующей операционной системы и системы программирования, удовлетворяющих требованиям пользователей. БЭСМ-6 стала первой отечественной ЭВМ, которая была принята государственной комиссией и поставлялась как система аппаратных средств совместно с ее системным программным обеспечением (см. главу 3). Работы по исследованию и разработке операционных систем, стратегий распределения ресурсов и планирования вычислений в нашей стране начались широким фронтом с появлением БЭСМ-6 [7, 11].

В 1968-м году на Московском заводе счетно-аналитических машин (САМ) началось производство ЭВМ БЭСМ-6. Полностью новый компьютер на основе транзисторов и интегральных схем был разработан под руководством С.А. Лебедева, В.А. Мельникова и Л.Н. Королева. При его разработке была поставлена серьезная задача – достичь производительности порядка 1000000 операций в секунду (один мегафлоп). БЭСМ-6 сильно опередила свое время, став началом второго поколения ЭВМ. Она вобрала в себя много оригинальных идей. Систем подобного класса в мире не было. Одно из основных отличий и главных новшеств – "лебедевская водопроводная структура" процессора, позволяющая совмещать обработку различных команд на разных стадиях их выполнения.

Назад Дальше