На главную Тексты книг БК Аудиокниги БК Полит-инфо Советские учебники За страницами учебника Фото-Питер Техническая книга Радиоспектакли Детская библиотека

Беседы о поколениях ЭВМ. Бусленко, Бусленко. — 1977 г

Николай Пантелеймонович Бусленко
Владимир Николаевич Бусленко

Беседы о поколениях ЭВМ

*** 1977 ***


DjVu


От нас: 500 радиоспектаклей (и учебники)
на SD‑карте 64(128)GB —
 ГДЕ?..

Baшa помощь проекту:
занести копеечку —
 КУДА?..



      Полный текст книги

 


      НИКОЛАЯ ПАНТЕЛЕЙМОНОВИЧ БУСЛЕНКО
      ВЛАДИМИР НИКОЛАЕВИЧ БУСЛЕНКО
      Имя члена-корреспондента АН СССР Н. Бусленко известно в нашей стране и за рубежом. Крупный советский математик, автор свбпие ста статей и монографий, переведенных во многих странах, Н. Бусленко заведовал кафедрой прикладной математики и вычислительной техники, был главным редактором журнала «Программирование» и членом редакционных советов других журналов АН СССР.
      Человек огромной работоспособности преданный науке, он находил время для популяризации математики среди молодежи. Недаром на вопрбс «В чем состоит ваше хобби!» он ответил: «Люблю открывать способных молодых ребят и привлекать их в науку».
      Его сын В. Бусленко — кандидат технических наук, старший научный сотрудник Института электронных управляющих машин. Первую статью он опубликовал, будучи студентом IV курса МЭСИ. Сейчас для студентов IV курса этого института он читает лекции по математическому моделированию на ЭВМ. Этой же проблеме посвящены основные его работы и книга «Автоматизация имитационного моделирования сложных систем».
      Книга «Беседы о поколениях ЭВМ», написанная специально для молодежи, посвящена общему делу жизни обоих авторов — вычислительным машинам и их применению.


СОДЕРЖАНИЕ

Утробное развитие ЭВМ 4
Рождение компьютера 25
ЭВМ первого поколения 46
ЭВМ второго поколения 62
ЭВМ третьего поколения 89
Коллективное использование ЭВМ третьего поколений 114
Хранение и поиск информации в ЭВМ третьего поколения 133
ЭВМ третьего поколения в АСУ 162
Неарифметические применения ЭВМ 182
ЭВМ четвертого поколения Перспективы 202



      УТРОБНОЕ РАЗВИТИЕ ЭВМ
      — Слова — ЭВМ третьего поколения — все чаще встречаются в газетах, журналах, звучат по радио, телевидению. К этим словам мы начинаем уже привыкать, хотя смысл их для нас не до конца ясен.
      — В них нет ничего загадочного, вполне понятно, что прогресс техники вызывает к жизни новые, более совершенные машины, и ЭВМ третьего поколения — не исключение, они по производильности и сферам применения значительно превосходят машины старых марок, работать на них проще и удобнее.
      — Но почему переход на новые машины нужно называть сменой поколений? Это что же, отцы и дети?
      — Можно согласиться, что термин «поколения ЭВМ», появившийся в 50-е годы в профессиональном жаргоне разработчиков и пользователей вычислительных машин, не без претензий. Однако, оказавшись удобным для общения специалистов, он хорошо прижился и вошел в повседневный обиход.
      Под поколением электронных вычислительных машин понимают все типы и модели ЭВМ, разработанные различными конструкторскими коллективами, выпускаемые в разных странах многими предприятиями и фирмами, но построенные на одних и тех же научных и технических принципах. К первому поколению — 40-е и начало 50-х годов — обычно относят ЭВМ на электронных лампах; ко второму поколению — 50-е и начало 60-х годов — машины на полупроводниковых приборах; к третьему — конец 60-х и начало 70-х годов — на интегральных схемах; наконец, к четвертому — 70-е годы — на больших интегральных схемах, сокращенно БИСах, или схемах большой интеграции.
      Однако так же, как одно поколение людей отличается от другого не только временем рождения, то есть возрастом, но и вкусами, идеями, взглядами, возможностью совершенно по-новому посмотреть на одни и те же проблемы, поколения ЭВМ не только различаются временем появления, то есть уровнем техники, определяющим конструкцию машины, но и совершенно особым подходом к решению традиционных задач. ЭВМ, или компьютеры (латинское computo — означает считаю, вычисляю), от поколения к поколению становятся понятливее, ближе к человеку. В конце концов оказываются справедливыми даже слова об отцах и детях в том смысле, что машины сами рождают себе подобных. Уже
      сейчас разработаны системы проектирования, в которых ЭВМ выполняют все основные операции, начиная от создания рабочего проекта ЭВМ новой конструкции и кончая управлением станками-автоматами, изготавливающими для нее детали и узлы.
      Переход на новую техническую базу: от электронных ламп — к полупроводниковым приборам, от полупроводников — к интегральным схемам и т. д., приводит к коренным изменениям технологии производства ЭВМ (например, от проводного монтажа — к печатным схе-
      мам), к изменениям их функциональных особенностей (состава блоков и устройств, способов взаимодействия между ними, набора выполняемых операций и др.), а также к изменениям их математического обеспечения (алгоритмического и программного хозяйства). В конечном итоге коренным образом изменяются возможности машин (быстродействие, объем памяти, способность перерабатывать разнообразную информацию и решать более сложные задачи), а также их экономические и эксплуатационные характеристики (стоимость потребляемая энергия, надежность и устойчивость в работе и т. д.).
      Таким образом, упомянутый отличительный признак поколений ЭВМ (техническая база) обладает, по-видимому, единственным преимуществом — краткостью и является весьма условным. Он не только не претендует на полноту отражения свойств ЭВМ различных поколений, но, к сожалению, в ряде случаев приводит к весьма спорным выводам. Сейчас уже ясно, что можно построить ЭВМ с организацией вычислительного процесса, характерной для третьего поколения, на технической базе второго поколения. Такие машины по своим возможностям ближе к моделям третьего поколения.
      Выяснение тенденций, проявляющихся при переходе от одного поколения к другому, — не просто дань истории. Это поможет правильно понять эволюционные процессы, происходящие в вычислительной технике вообще, и получить представление о путях дальнейшего развития ЭВМ и методов их применения. Насколько это важно, можно судить хотя бы по таким данным: сегодня на службе интеллектуальных устремлений человечества находится более 150 тысяч быстродействующих электронных вычислительных машин. Только за одну секунду они в общей сложности производят приблизительно 20 миллиардов арифметических операций. Следовательно, за сутки они выполняют около 2 1015= =20 000 000 000 000 000 действий.
      Такой колоссальный объем вычислений вручную выполнить невозможно, даже если все жители нашей планеты будут с утра до ночи не разгибаясь сидеть над расчетами. Естественно, что столь острая потребность в счетных работах характерна лишь для последних десятилетий нашего века. Лавинообразный рост объема вычислений — одна из наиболее ярких тенденций современности! Но человечество пришло к этому не сразу.
      На заре цивилизации наш предок — первобытный человек — мало нуждался в расчетах. Житель каменного века, пожалуй, вполне обходился несколькими простейшими вычислениями в неделю.
      Первое заметное расширение потребностей древнего человека в вычислениях связано с ростом торговли. Купец для подсчета барышей или убытков уже нуждался в десятках и сотнях арифметических операций. Развитие мореплавания требовало решения задач ориентирования по звездам, прокладки курса корабля.
      Потребности астрономии, усовершенствование календаря и счета времени стимулировали модернизацию методов вычислений. Были созданы плоская и сферическая тригонометрия, а также приемы вычислений с высокой точностью. Здесь речь шла о тысячах и десятках тысяч операций.
      К началу эпохи Возрождения астрономические расчеты обретают вполне современный вид. Они играли основную роль в выдающихся работах Тихо Браге, Н. Коперника, И. Кеплера и других ученых, заложивших основы наших знаний о строении вселенной.
      Появившиеся разнообразные таблицы тригонометрических функций и логарифмов облегчили и ускорили счет: они позволяли рассчитывать орбиты небесных тел и с высокой точностью предсказывать важнейшие космические события на много лет вперед. К этому моменту сколько-нибудь серьезные расчеты требовали уже весьма значительного объема вычислений. Например, известный французский астроном У. Леверье, предсказавший существование планеты Нептун по расчетам, как говорится, открывший ее «на кончике пера», занимался вычислениями параметров орбиты практически всю жизнь. И действительно, опытный вычислитель способен произвести не более 600 операций в день. То есть за 50 лет один человек смог бы проделать всего 10 миллионов операций. «Всего» потому, что современной ЭВМ средней мощности на ту же работу хватает несколько секунд.
      Наступил XVII век. В это плодотворное время создается математика переменных величин — анализ бесконечно малых; закладываются научные основы современной физики, механики, химии. В технику проникают сложные механизмы и точные приборы. После открытий И. Ньютона и Р. Гука вычисления вторгаются в строительную механику и машиностроение.
      Появляются методы расчета мостовых ферм и опор на прочность и устойчивость. Со временем- расчеты сооружений становятся задачей повседневной жизни. И хотя для решения каждой из них требуется не так уж много — порядка сотен тысяч (105 — 106) операций, — из-за значительного числа их общий объем вычислений вырастает в сотни раз.
      Нельзя не подчеркнуть, что именно к этому времени относится и широкое распространение коммерческих расчетов. Объем вычислений здесь даже превышает потребности техники и астрономии. Именно коммерческие расчеты стали основным полем применения арифмометров, разработка которых, кстати, началась также в XVII веке. Вплоть до середины нашего столетия арифмометр чаще можно было видеть на столе у бухгалтера и счетовода, чем у инженера, конструктора или проектировщика.
      Однако научные и инженерные расчеты недолго плелись в хвосте. В 40-е и 50-е годы нашего века всплеск потребностей в вычислениях произошел в связи с аэродинамическими и баллистическими расчетами скоростных самолетов и ракет, расчетом орбит искусственных спутников Земли и межпланетных кораблей. Важное место заняли также расчеты ядерных реакторов и решение задач проникновения частиц через вещество, проектирования энергетических комплексов и гидротехнических сооружений. Каждая из упомянутых задач требует в среднем десятков миллиардов (109 — 1011) арифметических операций, но и она легко может быть решена за несколько часов на ЭВМ среднего класса.
      В сфере науки и техники (гидродинамика, фильтрация нефти и газа, оптимальное управление, системный анализ и др.) в настоящее время встречаются и задачи-уникумы, на решение которых требуется в 100 — 200 раз больше арифметических операций (1012 — 1014). Эти колоссальные вычисления могут быть проведены в приемлемое время лишь на новых сверхбыстродействующих компьютерах, имеющих скорости счета порядка сотен миллионов операций в секунду.
      В последние годы коммерческие расчеты, отставшие было от научных, близки к тому, чтобы взять реванш. Управление экономикой страны: сбор информации о производстве, учет выпуска и движения изделий, составление годовых и пятилетних планов развития народного хозяйства, согласование межотраслевых балансов в промышленности и т. д. — требует, по данным академика В. Глушкова, порядка 1016 арифметических операций в год. Для выполнения этого огромного объема вычислений потребуется круглосуточная работа в течение года около тысячи современных ЭВМ, с быстродействием каждой более миллиона операций в секунду.
      — Ясно, что сложные задачи без ЭВМ решать практически невозможно! И удивительно, как человечество справлялось со своими потребностями раньше, когда компьютеров не было и в помине..
      — Действительно, компьютеров не было, но были их механические предки. Ведь проблема «механизации» счета так же стара, как и сам счет. Простейший же из всех известных «счетных приборов» человек всегда имеет под рукой — это его 10 пальцев!
      Природа снабдила нас великолепным естественным компьютером. Он обладает немаловажными достоинствами, которыми современные инженеры стремятся наделить разрабатываемые счетные устройства. Это простота и надежность, компактность, удобство «хранения и транспортировки», это и то, что он всегда «под рукой». Работает он в привычной системе счисления — десятичной, а что до техники вычислений, так еще в VIII веке монах Беда Достопочтенный составил описание правил счета, согласно которому различные загибы
      пальцев позволяют изображать единицы, десятки, сотни и тысячи, а определенные жесты рук — считать до миллиона. Есть, однако, у пальцевого счета и недостатки. Самый существенный из них — неудобство хранения результатов даже в течение короткого времени. Здесь качество быть всегда под рукой оборачивается своей теневой стороной.
      Одним из первых в словаре русского языка стоит слово «абак» или «абака». Переводится оно как «счетная доска». Слово это греческое и означает буквально «пыль». При чем здесь пыль? Очень просто: на специальной доске в определенном порядке раскладывались камешки, а чтобы они не скатывались, доска покрывалась слоем песка или пыли.
      Абак считается первым и долгое время оставался основным счетным прибором древних народов. Наши счеты с костяшками тоже абак, только модернизированный, вместо пыли — проволочные спицы. Еще знаменитый древнегреческий математик Пифагор стремился ввести вопросы счета на абаке в качестве обязательного раздела в курс математики. В Европе наиболее известным сочинением на эту тему является работа французского монаха X века Герберта «Правила счета на абаке». Его современников так поражала способность монаха выполнять умножение и деление очень больших чисел, что они, по душевной простоте, обвинили его в сделке с дьяволом.
      Издавна использовали абак и на Руси. В рукописной книге XV века «Счетная мудрость» так описывается «счет костьми» (вишневыми или сливовыми косточками). «Указ, како костьми считати. Возьми перед себя стол или доску, на чем тебе пригодитца великий счет считати. И прочерти черту мелом к себе концом, да поперек 6 или 7, или боле, каков счет хочеши считати и снизу от себя отчерти три черты простых, а на четвертой черте на споях накресть перечерти для памяти и будити ведомо первой крест туто кладутца 1000, а на другом кресту кладутца 1 000 000...»
      Особенного развития достигли вычисления на абаке в Древнем Китае. Операции на счетной доске в древнекитайской математике не являлись лишь вспомогательными: абак и действия на нем составляли сущность самой математики. Математическая задача считалась решенной только в одном случае — если ответ можно было воспроизвести на счетной доске. А китайцы могли производить на абаке деление и действия с дробями, извлечение квадратных и кубических корней. На счетной доске вычислялись даже корни системы линейных уравнений!
      Здесь стоит отметить, что приведение математической задачи к виду, допускающему решение на абаке, имеет огромное методологическое значение. Правила
      решения задачи на счетной доске должны представлять собой совокупность четких предписаний, показывающих, как свести данную задачу к конечной последовательности простейших ариф!метических действий. В процессе дальнейшего развития системы правил и предписаний, выражающих решение задачи через простейшие операции, получили названия алгоритмов, а приведение задач к такому виду — алгоритмизации задач.
      Это замечательное открытие и породило взгляд на вычисления как на рутинный процесс, состоящий в выполнении простейших арифметических действий по заранее составленной схеме. Но известно, что человеческий разум всегда стремился переложить рутинную работу на механизмы. Так были изобретены ткацкий станок, швейная машина и другие механические помощники человека. Разумеется, человечество не могло долго мириться с ручным выполнением рутинной работы в области вычислении.
      Первые идеи механизировать рутинную часть вычислительного процесса появились еще в XVII веке. В 1623 году профессор математики и астрономии Тюбингенского университета В. Шикард в письме к И. Кеплеру описывает устройство и принцип действий первой из известных в мире счетных машин. Суммирующее устройство его машины является соединением зубчатых передач. Оно имело несколько осей с десятизубыми шестернями и вспомогательными однозубыми колесами (пальцами) для передачи десятка в следующий разряд. Шестеренка следующего разряда делала Ую поворота при полном повороте шестерни данного разряда. Это же устройство служило для вычитания, но шестеренки нужно было вращать в обратную сторону, а также для деления, которое заменялось повторным вычитанием делителя из делимого.
      Множительное устройство имело шесть барабанов с навернутыми на них таблицами умножения, используемыми для умножения разрядов. Общее произведение получалось как сумма произведений по разрядам. Запоминающее устройство представляло собой набор цилиндров с нанесенными на них цифрами. Поворотом можно было установить нужную цифру в любом разряде.
      Как это ни удивительно, но изобретение В. Шикарда не получило практически никакой известности. По-види-
      мому, лишь узкий круг лиц был осведомлен о создании этой машины. Упоминание о ней не встречается ни в одной из известных работ современников. Может быть, именно поэтому долгое время считалось, что первый арифмометр (от греческого arithmos — число и metreo — меряю) изобрел в 1641 году знаменитый французский ученый Б. Паскаль.
      Если счетная машина Шикарда осталась неизвестной современникам, то популярность машины Паскаля превзошла все возможные границы. Толпы людей стекались в Люксембургский дворец в Париже, где она была выставлена на всеобщее обозрение. Машина производила на современников неизгладимое впечатление, о ней слагались легенды, ей посвящались поэмы.
      В полученной Б. Паскалем в 1649 году за изобретение машины королевской привилегии говорится: «Главное изобретение и существенное достижение состоит в том, что каждое колесо или стержень некоторого разряда, совершая движение на десять арифметических цифр, заставляет двигаться следующую только на одну цифру».
      Хотя арифмометр Б. Паскаля представлял собой
      суммирующую машину, построенную по тем же принципам, что и забытая машина В. Шикарда, труды Б. Паскаля оказали заметное влияние на весь дальнейший ход развития вычислительной техники. Не избежал этого влияния и великий Г. Лейбниц — создатель (вместе с И. Ньютоном) одного из основных разделов современной высшей математики — дифференциального исчисления.
      Счетная машина Г. Лейбница (1673 г.) была заметной вехой на пути совершенствования арифмометров. На ней можно было не только складывать и вычитать, но также умножать и делить многоразрядные числа. В письме к Т. Бернету Г. Лейбниц писал: «Мне посчастливилось построить такую машину, которая бесконечно отличается от машины Паскаля, так как дает возможность совершать умножение и деление над огромными числами мгновенно, притом не прибегая к последовательному сложению и вычитанию».
      В основе множительного устройства этой машины лежит, как теперь его называют, ступенчатый валик Лейбница, надолго определивший принципы построения счетных машин. Он представляет собой цилиндр с зубцами разной длины, которые взаимодействуют со счетным колесом. Передвигая колесо вдоль валика, его вводят в зацепление с необходимым числом зубцов и обеспечивают установку определенной цифры.
      Интересно, что один из экземпляров своей машины Г. Лейбниц собирался подарить русскому царю Петру I, находившемуся в то время за границей. Однако в последний момент в машине обнаружились неполадки, ее отдали в починку, ремонт затянулся, и русский царь уехал без машины.
      Вплоть до конца XIX века идея Г. Лейбница совершенствовалась и развивалась различными изобретателями, проекты появлялись, как грибы после дождя.
      Среди многих вычислительных устройств XIX века нельзя не отметить наиболее оригинальную конструкцию арифмометра, построенного великим русским математиком Пафнутием Львовичем Чебышевым. В ее основу был положен изобретенный П. Чебышевым принцип «непрерывной передачи десятков». Современник В. Фон-Боль писал: «Русский математик и академик П. Л. Чебышев изобрел арифмометр оригинального типа... Прибор этот имеет выдающиеся достоинства и во многих отношениях стоит выше всех существующих приборов этого рода».
      Принцип непрерывной передачи десятков состоит в том, что шестеренка единиц, делая полный оборот, поворачивает шестеренку десятков на 1/10 оборота, а шестеренку сотен на 1/100 и т. д., чем обеспечивается плавное изменение угла поворота всех вступающих во взаимодействие колес.
      Этот принцип получил настоящее признание гораздо позже, лишь с применением электропривода. При дискретной (прерывистой) передаче десятков неизбежно появлялись толчки, приводящие к разбалансированию всего механизма. При непрерывной передаче ход машины плавный, что позволяет без опасения поломок значительно увеличить скорость работы механических вычислительных устройств.
      Впервые «серийное производство» счетных машин наладил эльзасский уроженец К- Томас. Сконструированный им в 1818 году арифмометр выпускался с различными усовершенствованиями в течение 100 лет по 300 — 400 экземпляров в год, что по тогдашним масштабам вполне считалось массовым производством.
      Совершенство и простота конструкции арифмометра К. Томаса завоевали ему всеобщее признание. Казалось, нельзя создать более совершенный прибор, однако в 1890 году Вильгорд Теофилович Однер, петербургский изобретатель, записал в своем дневнике: «После 15 лет труда и постоянных улучшений мне удалось устроить аппарат, превосходящий значительно изобретенные моими предшественниками».
      Арифмометр В. Однер а был построен на новых принципах. Главным его элементом является колесо Одне-ра — зубчатка с переменным числом зубцов. Оно оказалось настолько совершенным, что не претерпело принципиальных изменений до наших дней. Колесо Однера имеет девять выдвижных спиц. Число выдвинутых спиц определяется углом поворота установочного рычажка до соответствующей цифры на шкале.
      В последний год XIX века В. Однеру удалось организовать большое предприятие.
      В Петербурге на Васильевском острове в Таракань-евском переулке, где был расположен завод В. Однера по производству арифмометров, зародилась новая в России отрасль промышленности — производство вычислительных машин. С тех пор вычислительная техника является одной из важнейших отраслей отечественного приборостроения.
      — Известно, что появление электричества произвело подлинную революцию во многих отраслях техники. Область счетных машин также не осталась в стороне.
      — Действительно, распространение электричества, в особенности развитие техники слабых токов, породило плодотворную идею использовать электрическую энергию в счетных машинах. Однако первые «достижения» в этой области не выходили за рамки замены мускульной силы человека, вращающего ручку счетного механизма.
      Сам механизм, поначалу остававшийся неизменным, стал также постепенно модернизироваться. Например, с увеличением скорости работы произошел поголовный переход на клавишный принцип набора цифр, так как использовавшийся рычажный набор на больших скоростях приводил к значительному проценту ошибок. Появились машины, записывающие результат на бумажной ленте, а также другие комбинации счетных и пишущих машинок.
      Однако мир с нетерпением ожидал и сугубо электрических нововведений в счетной технике. И они не заставили себя ждать.
      В 1890 году в США при обработке результатов очередной переписи населения был впервые использован новый счетный аппарат — табулятор, изобретенный сотрудником Бюро цензов Г. Голлеритом. Название свое машина Голлерита получила от латинского слова «табу-ла», что означает «доска». Не зная конструкции табулятора, трудно догадаться, какое отношение может иметь
      доска к электрической счетной машине. Впрочем, одна счетная доска нам уже знакома — это древний абак. Другая знаменитая доска — коммутационная — - с успехом применена Г. Голлеритом для управления вычислительным процессом.
      Примитивная программа, которую могла воспринять машина Голлерита, задавалась путем коммутации, то есть соединения между собой электрических контактов на коммутационной доске. Тот, кто видел работу телефонистки на ручном коммутаторе, может приблизительно представить себе процесс задания программы для табулятора Голлерита.
      Принцип, заложенный в счетной машине Г. Голлерита, был подсказан самой методикой проведения переписи. В то время на каждого человека, охватываемого переписью, заводилась специальная карточка, разбитая на несколько колонок, соответствующих числу вопросов. Положительный ответ отмечался галочкой в нужной колонке. Обработка результатов переписи сводилась поэтому к чисто механическому подсчету числа галочек в одноименных колонках группы карт. Г. Голлерит использовал те же самые карты, лишь заменив галочку пробиваемым в карте отверстием.
      Пробивка отверстий производилась на специальном устройстве — перфораторе. За час на нем можно было подготовить примерно 80 карточек, то есть столько же, сколько и выписать вручную. Однако ради дальнейшей экономии времени на это приходилось идти. Перфокарты после пробивки укладывались на специальный воспринимающий пресс над чашечками с ртутью. По мере прохождения их под контактами пресса все отверстия в картах замыкали электрическую цепь через ртуть, и на счетчике, соответствующем данному вопросу, происходил отсчет единицы. Работа табулятора, таким образом, сводилась к суммированию числа положительных ответов на различные вопросы переписи. Меняя коммутацию, можно было обрабатывать также различные комбинации признаков.
      Один человек на табуляторе Голлерита пропускал за час примерно 1000 карточек, при этом можно было получать данные по девяти различным таблицам. Отработанные карточки автоматически раскладывались по соответствующим ячейкам сортировального ящика для последующих пропусков.
      Источником энергии для машины служили электрические батареи. При конструировании своего табулятора Г. Голлерит использовал успехи в технике слабых токов. Хотя счетчики в ней были механические, управление осуществлялось уже электрическими импульсами, возникающими при замыкании контактов через отверстия перфокарт. Слабые токи, таким образом, впервые использовались для ввода чисел и для управления работой машины.
      Со временем различные усовершенствования превратили табулятор в современный счетно-пишущий автомат, воспринимающий колоду сгруппированных перфокарт и производящий разнообразные подсчеты с записью результатов на постепенно разворачивающемся рулоне.
      В России машина Голлерита впервые использовалась на переписи населения в 1897 году. В 30-х годах в СССР было налажено отечественное производство современных табуляторов и перфорационных машин.
      Перфорационные машины обычно работают в составе специальных комплексов. В каждый, кроме табуляторов, входят другие вычислительные (обычно суммирующие) машины, а также устройства для набивки перфокарт, контрольники для проверки правильности нанесения информации, устройства вывода информации на перфокарты, печатающие устройства и т. д.
      К сожалению, из-за механического принципа действия перфорационные машины не обладают высокими скоростями счета. Они сокращали время обработки информации по сравнению с клавишными автоматами всего в несколько раз. Однако перфорационная вычислительная техника завоевала себе весьма широкую популярность. Табуляторами, сортировками и перфорационными машинами были оснащены многие счетные фабрики, предназначенные для обработки экономической и демографической информации. В Советском Союзе комплекты перфорационных счетных машин многие годы состояли на вооружении машиносчетных станций системы Центрального статистического управления, покрывающих практически всю территорию страны.
      XX столетие поставило перед вычислительной техникой ряд сверхсложных задач аэродинамики, гидротехники, космической баллистики, ядерной энергетики, математической экономики и т. д. Предпринимаемые попытки организовать решение этих задач на клавишных автоматах не давали сколь-нибудь существенных результатов. Созданные вычислительные бюро и счетные фабрики, насчитывающие в своем составе сотни вычислителей, столкнулись с непреодолимыми трудностями организации.
      — Как же получилось, что совершенные счетно-перфорационные машины и клавишные автоматы, выпускаемые в достаточном количестве, не смогли удовлетворить запросы практики в области автоматизаций вычислений?
      — Все дело в том, что они автоматизировали только отдельные вычислительные операции, новые же задачи требовали автоматизации всего хода вычислений!
      Процесс решения задачи, или, как говорят, вычислительный процесс, при коллективной работе расчленялся на большое число подзадач, поручаемых отдельным вычислителям. По мере решения этих подзадач должен был продвигаться вперед и «сводный расчет», который использует результаты решения подзадач для решения общей исходной проблемы. Однако оказалось, что сложность организации и стыковки расчетов с ростом сложности задач растет так быстро, что в конце концов выходит за рамки возможностей человека.
      Здесь надо отступить от хронологического принципа и вернуться к началу XIX века на берега туманного Альбиона.
      В то время внимание ученых привлекли оригинальные работы профессора Кембриджского университета Чарльза Бэбиджа — крупного математика и замечательного человека своего времени. Это ему принадлежит идея «полностью» автоматической вычислительной машины с программным управлением. Изобретение это настолько опередило свое время, что не было реализовано при жизни его автора. Полное осуществление идеи Бэбиджа получили только в XX веке при создании ЭВМ.
      Круг интересов Ч. Бэбиджа был чрезвычайно широк. Он работает над словарем и составляет грамматику «мирового универсального языка». Его перу принадлежит «Таблица констант класса млекопитающих», содержащая данные о частоте пульса и дыхательного цикла животных, с которыми ему приходилось сталкиваться во время своих путешествий. Однажды он выпустил статью «Об искусстве открывания всех замков».
      Вместе с тем Ч. Бэбидж был крупным математиком своего времени. В 1828 году он избирается на одну из самых почетных должностей — профессора Люкасов-ской кафедры Кембриджского университета. Перед ним эту должность занимали И. Барроу, И. Ньютон, а позднее П. Дирак — соратник А. Эйнштейна и один из известнейших специалистов по теоретической физике. Однако при всей широте интересов основной деятельностью Ч. Бэбиджа оставалась разработка проекта вычислительной машины нового типа.
      Любопытно вспомнить, что вычислительное бюро и «счетные фабрики» века электричества (середины XX столетия), которые создавались чуть ли не в каждом институте и конструкторском бюро, имели своего предшественника, существовавшего еще в «век пара».
      В конце XVIII столетия французское правительство в связи с переходом на метрическую систему мер решило ввести принцип десятичности и в измерение углов: делить окружность не на 360 градусов, а на 400 частей. В результате потребовалось пересчитать огромное число таблиц, в первую очередь тригонометрических.
      Эта работа была выполнена в удивительно короткий срок. Секрет скорости состоял в организации в Париже специальных «вычислительных мастерских». Весь персонал вычислительной мастерской разбивался на три группы. В первую, весьма немногочисленную, входили математики, которые выводили формулы и составляли уравнения для соответствующих расчетов. Вторая группа занималась преобразованием формул к виду, удобному для вычислений при помощи простейших арифметических действий. Наконец, третья — наиболее многочисленная, приблизительно 100 человек, — выполняла все необходимые вычисления, используя только простейшие арифметические операции.
      Важно подчеркнуть, что сотрудники третьей группы не знали математики, за исключением начал арифме-
      тики, и обычно не имели представления о сущности решаемых задач. Они действовали совершенно машинально, точно выполняя составленные для них предписания (программы расчетов). Считается, что именно это обстоятельство способствовало уменьшению числа ошибок в упомянутых элементарных расчетах.
      Знакомство Ч. Бэбиджа с особенностью разделения труда в «вычислительных мастерских» Парижа, по-видимому, и породило идею создать устройство, обеспечивающее автоматическое выполнение заданной программы вычислений. Таким образом, машина Бэбиджа должна была заменить механическую работу самой многочисленной — третьей — группы вычислителей.
      Машина Бэбиджа по проекту включала следующие основные части. Первая — блок хранения исходных данных и промежуточных результатов. Он состоял из набора колес, где каждая цифра обозначалась, как и в арифмометрах, углом поворота колеса. Колеса собирались в регистры для хранения многоразрядных десятичных чисел. Ч. Бэбидж называл это устройство «складом»; в современных вычислительных машинах устройство такого типа называется «памятью» или запоминающим устройством.
      Вторая часть — блок, в котором осуществлялись необходимые операции над числами, взятыми из «склада».
      Ч. Бэбидж называл его «фабрикой», а сейчас подобное устройство называют «арифметическим».
      И третья — блок, управляющий последовательностью операций, выполняемых над числами. Ч. Бэбидж назвал его «конторой»; сейчас это — «устройство управления».
      В машине предусматривались различные способы выдачи результатов: печатание на пишущей машинке, пробивка отверстий на перфокартах или металлических пластинках и т. д. Для создания памяти, где хранилась информация, Ч. Бэбидж использовал не только колесные регистры, но и большие металлические диски с отверстиями. В памяти на дисках хранились таблицы значений специальных функций, которые использовались в процессе вычислений.
      Главное и поразительное отличие машины Бэбиджа от всех изобретенных до него заключается в принципе «программного управления» вычислительным процессом. Сущность этого принципа состоит в следующем.
      Пусть нам требуется вычислить величину у из элементарного уравнения ах+ву — с при известных коэффициентах уравнения а, б, с для заданных значений х. Программу, или алгоритм, наших действий можно записать в виде совокупности следующих предписаний:
      1. Взять очередное значение х.
      2. Умножить величину х на коэффициент а.
      3. Вычесть результат ах из значения с (что соответствует переносу ах в правую часть, то есть ву=с — ах).
      4. Разделить результат с — ах на коэффициент в
      5. Выдать результат у.
      6. Перейти к вычислению следующего значения у при новом х.
      Если вычислительная машина обладает памятью, в которую можно записать программу вычислений (совокупность предписаний 1 — 6), значения коэффициентов а, в, с и набор значений х, для которых требуется вычислить величину у, и если при этом машина способна выполнять предписания в заданном порядке без вмешательства человека, то мы получим автоматический вычислительный процесс.
      Ч. Бэбиджу также принадлежит идея использовать для управления работой вычислительной машины перфорированные карты.
      В 1804 году французский механик Ж. Жакар демонстрировал ткацкий станок, управление которым осуществлялось с помощью специальных картонных карточек с пробитыми (перфорированными) отверстиями диаметром 1 — 2 миллиметра. Использование большого числа перфокарт, идущих одна за другой, позволяло ткать любой сложнейший узор. Так, для изготовления ковра, на котором изображалось развевающееся знамя, требовалось без малого 14 тысяч таких карточек.
      После изобретения Ж. Жакара перфорированные карты получили широкое распространение в наборных типографских машинах, музыкальных аппаратах, словом, везде, где необходимо было согласовать разнородные действия нескольких взаимодействующих механизмов.
      «Карты только указывают сущность вычислительных операций, которые должны быть совершены, и адреса
      переменных, на которые эти действия направлены. Машина ткет алгебраический узор, как ткацкий станок Жакара — цветы и листья...». Такой поэтической фразой описывала работу машины Ч. Бэбиджа графиня Лавлейс — дочь великого английского поэта Дж. Байрона. Долгое время она была верным соратником Ч. Бэбиджа в его работах над счетной машиной, ей же принадлежит опубликованная в 1840 году одна из первых программ для вычислительной машины — это расчет таблицы чисел, известных в математике как числа Бернулли.
      В своих комментариях к переводу статьи о машине Бэбиджа Лавлейс коснулась ряда важных вопросов, относящихся к структуре машины и к порядку работы на ней. Эту публикацию, по-видимому, следует считать первой в истории науки работой по программированию для вычислительной машины.
      Наряду с принципом программного управления вычислительным процессом, не менее выдающимся достижением Ч. Бэбиджа является введение команды (операции) условного перехода. Благодаря ей машина получила способность выбирать в каждый момент времени путь вычислений в зависимости от значения признака, полученного в результате предыдущих расчетов. В качестве дальнейшего пути вычислений могло быть предусмотрено продолжение выполнения программы, переход к какой-нибудь другой ее части, пропуск определенного числа инструкций и другие возможности.
      Введение команды условного перехода ознаменовало собой начало автоматического выполнения не только арифметических, но и некоторых логических операций, что, безусловно, поднимало интеллект вычислительных машин на качественно новую ступень.
      Все части машины были задуманы Ч. Бэбиджем как чисто механические с применением последних достижений того времени в области счетной техники.
      В 1835 году Ч. Бэбидж писал президенту Брюссельской академии наук: «Я сам удивляюсь могуществу составляемой мной машины; за год перед сим я не поверил бы в возможность такого результата. Эта машина может производить действия над ста переменными числами, которые могут изменяться, каждое число может состоять из 25 цифр...»
      Ч. Бэбидж следующим образом оценивал быстродействие своей машины. Сложение и вычитание — одна
      операция в секунду. Умножение 50-разрядных чисел — одна операция в минуту. Деление 100-разрядного числа на 50-разрядное — одна операция в минуту.
      Объем памяти машины Ч. Бэбиджа составлял 100 чисел длиной в 50 десятичных разрядов.
      Разработка и построение счетной машины в то время были делом очень сложным. Ч. Бэбиджу приходилось изобретать не только отдельные узлы и детали машины, но механизмы и приспособления, необходимые для изготовления этих узлов и деталей. В процессе работы он выполнил свыше 200 подробных чертежей, в общей сложности спроектировал около 50 тысяч деталей. Нехватка квалифицированных механиков и денег, бесконечные поправки и улучшения привели к тому, что работы по созданию машины продвигались крайне медленно. В начале 1833 года часть машины была построена и работала с запланированной скоростью. Несмотря на это, дальнейшую работу пришлось прекратить. Незаконченная машина вместе с чертежами была сдана на хранение в музей королевского колледжа в Лондоне.
      Идеи Ч. Бэбиджа, относящиеся к структуре полностью автоматизированной счетной машины и принципов ее работы, удалось реализовать лишь в середине XX столетия в современных компьютерах. Простое перечисление проблем, которые поставил и попытался решить Ч. Бэбидж, создает впечатляющую картину. Многие идеи поражают своей глубиной и силой предвосхищения современных путей развития вычислительной техники. Однако, прежде чем они были реализованы, прошло еще много лет.
     
      РОЖДЕНИЕ КОМПЬЮТЕРА
      Свои идеи Ч. Бэбидж разработал так основательно, что непонятно, почему их удалось реализовать лишь в XX веке!
      — Основным тормозом был механический принцип счета, господствовавший -в счетной технике более 300 лет. Самые оригинальные инженерные решения не в состоянии были изменить физические законы, преодолеть инерционность движения механических тел!
      С увеличением скоростей работы счетных механизмов число поломок и, самое неприятное, трудно выявляемых ошибок росло как снежный ком. Едва ли не одной из самых дефицитных технических специальностей того времени считалась — наладчик счетной техники, а наиболее вероятным состоянием электромеханических
      и перфорационных счетных машин было состояние ремонта.
      Естественно, что такое положение долго существовать не могло, тем более что успехи электротехники и электроники позволяли надеяться на создание высокоскоростных счетных элементов. Однако с переходом на электрические схемы счета появился новый грозный фактор — недостаточная устойчивость десятипозиционных счетных элементов. Если зубчатое колесо нужно было «абсолютно надежно» фиксировать в каждом из его десяти рабочих положений, то и в электрических элементах потребовалась стабилизация десяти отдельных, обычно весьма близких друг другу значений тока или напряжения в цепи. Это было не простой проблемой. Из-за случайных колебаний напряжения различить их не всегда удавалось. Как же все-таки добиться устойчивости рабочих состояний?
      Оказалось, что если уменьшать число самих состояний, то возрастает устойчивость каждого из них. Так, девять состояний устойчивее десяти, восемь — устойчивее девяти, семь — восьми и так далее. Идеальным в таком случае является одно состояние — оно «абсолютно устойчиво». Однако «абсолютная устойчивость» уже ни на что не годится: сосчитать такой элемент ничего не может. Немного менее устойчивым элементом, с помощью которого еще можно вести счет, был, таким образом, элемент с двумя рабочими состояниями — двухпозиционное устройство.
      Одним из наиболее распространенных двухпозиционных элементов является обыкновенное электромагнитное реле. Работает оно, как известно, следующим образом. Когда по катушке, намотанной вокруг сердечника, течет ток — железная пластина, называемая якорем, прижимается к сердечнику и замыкает один из контактов — это первое рабочее состояние. Когда тока в цепи нет, якорь замыкает другой контакт — это второе рабочее состояние. Каждый последующий импульс переводит реле то в одно, то в другое рабочее состояние.
      С помощью этого реле можно зарегистрировать минимум информации. Поскольку оно может быть в одном из двух рабочих состояний, то это означает лишь «да» или «нет», «истинно» или «ложно», «ноль» или «единица». Такая минимальная первичная порция информации принята за единицу измерения и называется «бит» (от английского binary digit — двоичная цифра).
      В технике наряду с такими устоявшимися единицами, как грамм, секунда, метр, бит занимает почетное место. Над битами совершают операции современные ЭВМ; они фигурируют в радиосвязи, телеграфии и других средствах передачи информации. Хорошо известен бит в теории информации, теории кодирования и даже в эстетике.
      После изобретения электромагнитного реле вопрос п тпм. кяк записать с его помощью всевозможные цифры нашей десятичной системы счисления и как осуществлять простейшие арифметические операции, не был большой проблемой. Достаточно было заглянуть на несколько веков назад и вспомнить, что еще в 1658 году Б. Паскаль доказал, что любое положительное число может быть основанием системы счисления, а знаменитый Г. Лейбниц в 1703 году описал арифметические действия в двоичной системе.
      Наша обиходная система счисления, как известно, является десятичной, поскольку в основании ее лежит число 10. Почему выбрано именно это число? Ведь с формальной точки зрения оно не хуже и не лучше любого другого. Если сказать, что выбор обусловлен соображе ниями анатомии, то это вызовет, вероятно, удивление. И все же это так: ведь будь у нас на каждой руке, например, по четыре пальца, счет наш, очевидно, был бы восьмеричным. Таким образом, десятичность используемой системы счисления связана со строением нашего организма. Примерно так же связана с «физиологией» электронных элементов и двоичная система счисления, в основании которой лежит число 2. Двоичная, восьмеричная, десятичная — все это позиционные системы счисления, у которых значение цифры зависит от ее положения (позиции). Число 1977 в десятичной системе счисления буквально означает следующее: (...)
      Арифметические действия в двоичной системе производятся так же, как и в десятичной, только там, где в десятичной мы говорим «два» и спокойно считаем дальше, здесь приходится переносить единицу в следующий разряд. Вот как выглядит таблица сложения в двоичной системе:
      0 + 0=0 0+ 1 = 1 1+0=1 1 + 1 = 10
      Все помнят, наверное, то место в комедии Фонвизина «Недоросль», где Митрофанушку просят показать свое искусство в арифметике. «Нуль да нуль — будет нуль», — говорит Митрофан. Верно, эта операция тривиальна. «Один да один», — говорит Митрофанушка и надолго задумывается. Действительно, 1 + 1 в десятичной системе будет 2, но в двоичной два — это уже единица старшего разряда и значит 10. Есть над чем подумать Митрофанушке.
      Вычитание в двоичной арифметике тоже дело «сложное», особенно для Митрофанушки, который так и не освоил сложения. Для тех же, кто разобрался, все будет понятно из приведенной таблицы:
      0 — 0=0 1 — 0=1 10 — 1 = 1
      Рассмотрим заодно и таблицы умножения и деления: (...)
      С помощью всех этих таблиц легко производить любые арифметические действия над многоразрядными двоичными числами. Пусть надо сложить, например, число 1011 (это десятичное одиннадцать) с числом 110 (это шестерка). Запишем в столбик, так будет нагляднее:
      Начинают сложение, как всегда, с младшего разряда, здесь 1+0=1. Следующий разряд: 1 + 1 = 10, здесь записывается только ноль, а единица запоминается, и когда придет время складывать цифры следующего разряда, то к результату прибавляется и эта единица. Итак, цифры следующего разряда: 0+1 = 1 дает единицу, к ней прибавляется запомненная в уме единица: 1 -f-1 = 1 о, здесь опять записывается ноль и запоминается 1. Наконец, к единице в последнем разряде прибавляется запомненная единица: 1 + 1 = 10 и полученное 10 просто записывается, так как больше разрядов нет. Итак, полученная сумма равна 10001. Теперь стоит проверить, как это делалось выше, равно ли это число 17? (...)
      Получилось семнадцать! Значит, все правильно.
      Умножение выполняется так: 5-3=15. В двоичной системе 5 это 101, а 3 — 11. (...)
      Из рассмотренных выше примеров практически уже следует способ «машинной» реализации простейших
      арифметических операций над многоразрядными двоичными числами. Для сложения, например, нужно соединить последовательно несколько реле так, чтобы происходил постоянный перенос единицы в старший разряд. Схема, предназначенная для сложения многоразрядных двоичных чисел, называется многоразрядным двоичным сумматором.
      Такой сумматор состоит из одноразрядных сумматоров, каждый из которых складывает два одноразрядных слагаемых, прибавляет к ним значение переноса из младшего разряда и при необходимости формирует единицу переноса в старший разряд.
      Многоразрядный двоичный сумматор довольно универсальная штука, особенно .если уметь с ним правильно обращаться. Можно, например, с помощью сумматора вычитать. Для этого нужно уменьшаемое сложить со специально преобразованным вычитаемым, так называемым «дополнительным кодом числа».
      Дополнительный код можно легко получить: каждую единицу числа вычитаемого заменяют на ноль, а каждый ноль на единицу. В конце, кроме этого, нужно добавить в младший разряд еще единицу. Тот факт, что результат в этом случае будет как раз равен разности, легко проверить на приведенном примере: (...)
      Оказывается, что не только вычитание, но даже умножение можно реализовать с помощью сумматора. Сомножители, как известно, содержат только две цифры 0 и 1, при умножении на единицу мы будем иметь точное воспроизведение множимого, а при умножении на ноль будем получать ноли. Для сложения таких частных произведений их следует подписывать друг под другом, сдвигая каждое новое на один разряд, при этом нулевые частные произведения можно вообще отбросить.
      Наверное, читатель уже догадался, что и деление возможно выполнить с помощью сумматора: вычитая из делимого делитель и все время сдвигая влево остаток, мы получим искомое частное.
      Чрезвычайная простота арифметических действий в двоичной системе позволяет из однотипных реле набирать схемы, пригодные практически для любых манипуляций над двоичными числами. Это и послужило причиной того, что первые компьютеры были созданы с использованием именно таких элементов.
      — Теперь ясно. Проект Ч. Бэбиджа пролежал более ста лет без движения только потому, что не было хороших электрических элементов.
      — Это верно, но не совсем. Действительно, первые универсальные вычислительные машины с программным управлением были построены на базе электромагнитных реле, но, увидев их, Ч. Бэбидж вряд ли узнал бы свое детище: слишком далеко вперед шагнула техника, наука да и сами принципы машинных вычислений!
      В 1941 году немецкий инженер К. Цузе закончил работу над третьим вариантом своей универсальной машины Ц-3 на электромагнитных реле. Она выполняла восемь команд, в том числе 4 арифметических действия и извлечение квадратного корня. Все действия производились в двоичной системе счисления. Регистр для хранения числа имел 22 разряда. Машина состояла из 2600 реле, на которых было построено арифметическое устройство и память на 64 двоичных числа. Программа для работы машины задавалась с помощью двухдорожечной перфорированной ленты.
      В 1944 году в США завершились работы по проекту Г. Айкена, в результате чего была создана машина «Марк-1», выполненная из стандартных деталей перфорационных устройств, выпускавшихся фирмой ИБМ. Переданная затем заказчику — Гарвардскому университету, машина с успехом эксплуатировалась в течение 15 лет. Компьютер «Марк-1», кроме четырех арифметических действий, способен был выполнять дополнительные операции, например, поиск в таблице требуемых величин.
      Сложение и вычитание в машине «Марк-1» осуществлялись в специально сконструированном накапливающем сумматоре. Были также созданы различные множительно-делительные устройства, функциональные счетчики для вычисления логарифмических и тригонометрических функций и т. д.
      Создателям машины пришлось преодолеть массу технических трудностей. Одно дело разработка алгоритмов двоичных арифметических операций, и совсем другое дело — создание надежных и быстродействующих схем для реализации этих операций.
      Машина «Марк-1» управлялась специальной программой, задаваемой на 24-дорожечной управляющей перфоленте, движущейся со скоростью 200 тактов в ми-
      нуту. За один такт выполнялась одна операция типа сложения, на что затрачивалось 0,3 секунды. Умножение и деление производились за несколько шагов, что требовало 5 — 7 секунд на умножение и 15 секунд на деление.
      С точки зрения преодоления разнообразных инженерных трудностей и применения целого ряда прогрессивных принципов (программное управление, двоичная система счисления, операции условного перехода и т. д.), такие машины, как Ц-3 и «Марк-1», были выдающимися достижениями своего времени. Однако компьютеры с таким быстродействием не могли стать основой для революционных изменений в области автоматизации вычислительных работ, они все-таки считали чрезвычайно медленно. Медленно потому, что были медленными их элементы. Хотя время срабатывания реле и составляет 0,1 секунды, однако в двоичной системе каждое действие требует во много раз больше тактов работы, чем в десятичной.
      Качественный скачок быстродействия произошел лишь в связи с переходом на электронные безынерционные элементы, работающие на скоростях, близких к скорости света! Работы, которые привели к созданию совершенно новой области техники — электроники, были начаты еще в конце XIX века.
      В 1884 году Т. Эдисон описал открытое им явление термоэлектронной эмиссии. В 1897 году немецкий физик с английской фамилией Браун изобрел электроннолучевую трубку. Триод — одна из наиболее популярных электронных ламп — был создан в 1906 году американцем Ли де Форстером. В 1913 году немецкий физик А. Мейснер запатентовал ламповый генератор незатухающих колебаний. В том же году наш соотечественник М. Бонч-Бруевич изобрел ламповый триггер, сыгравший впоследствии огромную роль в развитии вычислительной техники.
      К началу 40-х годов, то есть ко времени появления первых автоматических вычислительных машин, электронные устройства получили уже значительное развитие и распространение. Они широко применялись во многих областях техники, прежде всего радиотехники. Зарождалось телевидение и радиолокация, развивалась электронная контрольно-измерительная техника. Сознавали ли К- Цузе, Г. Айкен и другие конструкторы первых автоматических компьютеров преимущества электронных схем? Почему они пытались решить новую проблему старыми средствами? Ответ на эти вопросы дал известный американский ученый Н. Винер — «отец кибернетики», хорошо знакомый с обстоятельствами развития вычислительной техники в США. «Меня очень удивило, — писал он, — что Айкен в качестве основных элементов своей машины выбрал сравнительно медленно действующие механические реле, не придав особого значения громадному увеличению скорости вычислений, которого можно было бы достигнуть, используя электронное реле. Порочность этой точки зрения в настоящее время очевидна, в частности, благодаря самому Айкену, ставшему одним из наиболее энергичных и оригинальных изобретателей и конструкторов электронных вычислительных машин, Но тогда у него была какая-то странная причуда, заставлявшая его считать работу с механическими реле нравственной и разумной, а использование электронных реле — делом никому не нужным и морально нечистоплотным. В этой связи мне хочется напомнить об одном чрезвычайно опасном свойстве, которым часто отличаются наиболее талантливые и целеустремленные изобретатели. Люди такого склада обычно стремятся навеки законсервировать технические приемы своей области на том уровне, которого они сами достигли, и проявляют чудеса моральной и интеллектуальной изворотливости, сопротивляясь, а иной раз даже воздвигая непреодолимые препятствия на пути новых работ, основанных на новых оригинальных принципах».
      С переходом на безынерционные электронные элементы в вычислительной технике наступил существенный прогресс. Можно было надеяться на создание элементов со временем срабатывания, измеряемым миллионными долями секунды.
      Стоит еще раз вспомнить знакомую всем электронную лампу. Когда нить катода накалена, а к паре анод — катод приложено высокое напряжение, через лампу течет ток. Поток электронов срывается с раскаленной нити катода и лавиной устремляется к положительному аноду. Этому способствует почти полный вакуум внутри лампы.
      На пути потока электронов — сетка. Если на сетке напряжение положительное, электроны легко проскакивают на анод, и через лампу течет ток — лампа открыта. Когда же на сетку подается отрицательное напряжение — поток электронов через лампу уменьшается. При достаточно большом отрицательном напряжении на сетке движение электронов к аноду полностью прекращается, тока нет — лампа заперта.
      Это свойство вакуумного триода сыграло значительную роль в радиотехнике и электронике. Оно было использовано с не меньшим успехом в вычислительной технике.
      Сконструированный в 1913 году М. Бонч-Бруевичем автомат с двумя устойчивыми состояниями, названный триггером, представляет собой двухламповый симметричный усилитель с так называемой положительной обратной связью. В триггере обе лампы соединены так,
      что если левая открыта, то правая обязательно закрыта, и наоборот. Это обеспечивается подачей напряжения с анода одной лампы на сетку другой. Например, если правая лампа открыта (через нее течет ток, и происходит падение напряжения на аноде), то ее низкое анодное напряжение подается на сетку левой лампы и держит последнюю закрытой. Это одно устойчивое состояние триггера. Если теперь подать на сетку правой лампы отрицательный импульс, то лампа закроется и напряжение на ее аноде возрастет. Это высокое анодное напряжение правой лампы будет подано на сетку левой лампы, откроет последнюю, и триггер перейдет во второе устойчивое состояние. Каждый новый импульс, попадающий на сетку одной из ламп, способен перевести триггер из одного устойчивого состояния в другое.
      Из-за этих свойств триггер по праву носит название «электронного реле», его применение в счетных устройствах сулило немалые выгоды.
      Вычислительные машины, построенные на электронных триггерных схемах, использующих вакуумные триоды, открыли новое направление в вычислительной технике, их стали называть электронными вычислительными машинами — ЭВМ.
      Проект первой в мире электронной вычислительной машины был предложен в 1942 году американцем Дж.
      Маучли. Работая в Электротехнической школе при Пенсильванском университете и придя к выводу о необходимости использования в вычислительных устройствах электронных ламп, он в 1942 году представил проект электронного компьютера, названного им «Эниак».
      Надо сказать, что проект «Эниака» лежал без движения больше года, пока им не заинтересовались сотрудники баллистической лаборатории армии США. Для составления баллистических таблиц различных видов оружия требовались колоссальные расчеты, и технические характеристики ЭВМ «Эниак» как нельзя лучше соответствовали потребностям лаборатории. Были развернуты значительные по масштабам работы, которым в условиях войны придавалось первостепенное значение. Более 200 особо засекреченных специалистов трудились над реализацией проекта Дж. Маучли. И вот в феврале 1946 года впервые состоялась публичная демонстрация ЭВМ.
      Это и была, по существу, первая работающая машина, в которой все действия: арифметические и логические операции, запоминание и хранение информации — были реализованы на электронных схемах. Неудивительно, что применение новой электровакуумной техники позволило достичь скоростей, о которых нельзя было и мечтать при использовании электромеханических эле-, ментов. Компьютер «Эниак» благодаря переходу на безынерционные элементы — электронные реле — производил вычисления в тысячу раз быстрее всех своих предшественников. Триггерные ячейки в машине использовались практически во всех устройствах и агрегатах. Они служили основным строительным материалом и в дальнейшем в вычислительных машинах более поздних моделей.
      По мере развития электроники и вычислительной техники триггерные ячейки подвергались многократным усовершенствованиям. Модернизация их как элементной базы 3BMi преследовала три главные цели: повышение надежности, снижение потребляемой электрической энергии и уменьшение размеров (миниатюризация).
      Для повышения надежности принимались меры по качеству межламповых соединений (проводного монтажа) и уменьшению числа штекеров и разъемов, необходимых для включения данной триггерной ячейки в общую схему устройств ЭВМ. Важную роль играло также повышение безотказности ламп, сопротивлений, конденсаторов, трансформаторов, дросселей и других деталей электронных схем. В конце 40-х и начале 50-х годов начался серийный выпуск деталей повышенной надежности. Это позволило резко снизить габариты вычислительных машин. Особенно существенно повлиял на характеристики ЭВМ выпуск специальных миниатюрных, так называемых «пальчиковых», электронных ламп, работающих при низком анодном напряжении.
      — Ясно, что ламповый триггер предпочтительнее электромеханического реле — он работает гораздо быстрее, но везде ли его применение технически оправдано? Ведь стоимость электронного реле во много раз больше!
      — Это так, но стоимость изобретения не всегда определяет целесообразность его внедрения, а вот техническая необходимость — это существенный критерий.
      — Но именно с этой точки зрения применение триггера, например, в запоминающем устройстве нецелесообразно. Чтобы создать более или менее емкую память на триггерах, придется использовать огромное количество постоянно работающих электронных ламп, так как для хранения всего лишь одного двоичного разряда требуется два триода!
      — Действительно, с технической точки зрения запоминающее устройство на триггерах было неэкономичным, громоздким, ненадежным и очень дорогим. Неудивительно, что вскоре появились многочисленные и оригинальные проекты более дешевых устройств.
      Уже в 1944 году один из конструкторов «Эниака»Дж. Эккерт предложил новый тип запоминающего элемента — линия задержки. Принцип действия его состоит в том, что информация, подаваемая на один конец линии, распространяется в среде линии в виде волн и через некоторое время появляется на другом конце. Оттуда она снова может быть подана к началу; и таким образом создается замкнутая цепь циркулирующей информации. Так как при распространении любых волн неизбежны затухания, то перед каждой повторной подачей информации сигналы пропускаются через усилитель.
      Запоминающее устройство на линиях задержки может быть выполнено с использованием ртути. Ртутная линия задержки представляет собой металлическую трубку диаметром 1 — 2 сантиметра и длиной до 1 метра, наполненную ртутью и закрытую с концов кристаллами кварца. Ртуть используется потому, что колебания в ней распространяются сравнительно медленно, а кварц, как известно, обладает мощными пьезоэлектрическими свойствами, то есть может преобразовывать ударную волну на конце трубки в электрическую, и наоборот. В такой длинной трубке может одновременно храниться до 1000 импульсов. Известно, что скорость распространения звуковых волн существенно зависит от температуры среды, поэтому требуется весьма точная регулировка температуры ртути для обеспечения синхронной работы линии задержки с другими устройствами машины.
      Впервые память на ртутных линиях задержки была применена в машине «Эниак», разработанной в математической лаборатории Кембриджского университета (Англия) в 1949 году. Запоминающее устройство машины «Эниак» состояло из 32 ртутных трубок емкостью 256 двоичных единиц каждая. С целью поддержания
      постоянной температуры устройство было помещено в термостат.
      В дальнейшем получили распространение и другие типы линий задержки — электромагнитные и акустические, однако их создателям не удалось преодолеть основной конструктивный недостаток: периодичность выбора информации. Ведь импульсы могут быть считаны из такой памяти только в моменты выхода их из трубки и прохождения через усилитель. Время поиска нужного импульса, таким образом, может оказаться равным полному времени прохождения волны вдоль трубки. Для ртутной линии задержки длиной 1 метр это время составляет приблизительно 1 миллисекунду, то есть тысячную долю секунды. Очевидно, что по сравнению с временем срабатывания электронного реле (опрокидывание триггера), которое составляет 6 микросекунд (1 микросекунда — 1 миллионная доля секунды),
      это уж очень медленно.
      Заметим, что конструктивные особенности памяти на линиях задержки во многом определили и саму конструкцию машины. Выдающийся советский конструктор ЭВМ академик С. Лебедев отметил, что «...при данном виде памяти основное время в работе машин уходило
      на выборку чисел из запоминающего устройства. Поэтому не было никакого смысла увеличивать скорость выполнения арифметических действий, так как скорость машины от этого существенно не повысилась бы. Примером машин такого класса может служить английская машина «Эдсак»... имеющая скорость порядка 1 — 2 тысячи операций в секунду».
      Вскоре после ввода в эксплуатацию машины «Эдсак» была завершена работа над проектом электронной ЭВМ для Манчестерского университета, разработанным под руководством Ф. Вильямса. В этом проекте впервые использована новая конструкция запоминающего устройства. Основным запоминающим элементом являлась электронно-лучевая трубка — модификация стандартной трубки кинескопа, применяемой в телевидении.
      Применение электронно-лучевой трубки в запоминающем устройстве существенно повышало производительность ЭВМ, поскольку создавалась возможность параллельной передачи и обработки информации в машине. По принципу действия трубки Вильямса действительно похожи на обыкновенные трубки, используемые в телевизоре. Но в отличие от телевизора на экране запоминающей трубки «рисуется» не картинка, а лишь знаки двоичных символов; единица изображается точкой, а ноль кружком. Эти запоминающие элементы работают с высокой скоростью — меньше 5 микросекунд на запись и считывание одного разряда.
      Работа трубки состоит в том, что поток электронов, падающий на диэлектрический экран, выбивает в месте попадания так называемые вторичные электроны. Известно, что в диэлектрике образовавшийся заряд растекается медленно и может быть сохранен длительное время. Направляя электрический луч при помощи отклоняющих пластин на различные участки экрана, можно записать на нем большое число двоичных цифр. Считывание информации также осуществляется путем направления луча в заданное место экрана и фиксации реакции диэлектрика. Так как накопленные заряды постепенно стекают, их надо периодически восстанавливать. Для этого существуют специальные обслуживающие схемы, обеспечивающие периодическое считывание и одновременную запись всех данных, хранящихся в
      памяти.
      В ЭВМ «Эдсак» трубки Вильямса были применены для построения оперативной памяти емкостью 128 чисел по 40 двоичных разрядов каждое. Поскольку емкость оперативной памяти была мала, в машине использовалось также новое, оригинальное запоминающее устройство на магнитном барабане емкостью 1024 = 210 числа. Таким образом, была впервые реализована идея иерархической структуры памяти — использовалось несколько запоминающих устройств, отличающихся поем-кости и быстродействию. Дело в том, что уровень даже современной техники не позволяет создать память на одном типе носителя информации, в котором большая емкость сочеталась бы с высокой скоростью записи и считывания.
      Запись на магнитном носителе является наиболее перспективной для создания запоминающих устройств колоссальной емкости. Этот принцип уже в то время достаточно широко применялся в звукозаписи, и накопленный в этой области опыт был использован при создании надежных запоминающих устройств вычислительных машин.
      Идея магнитной записи чрезвычайно проста и состоит в том, что на поверхности магнитного материала, движущегося под магнитной головкой, создаются отдельные намагниченные участки, так называемые «магнитные диполи».
      Так как магнитный материал обладает свойством остаточного магнетизма, то магнитные диполи могут сохраняться длительное время после прекращения действия записывающих импульсов. Пр и движении магнитной ленты магнитные диполи, располагаясь друг за другом, образуют магнитные дорожки. При чтении информации магнитная лента перемещается относительно считывающих головок (они аналогичны по конструкции головке записи, а часто это одна и та же головка), и те преобразуют магнитные диполи в электрические импульсы. Значение двоичной цифры определяется полярностью напряжения, индуцированного проходящим магнитным диполем в соответствующей головке.
      Как тут не вспомнить с благодарностью двоичную систему счисления, ведь различать 10 отдельных значений магнитного потока было бы гораздо сложнее!
      В запоминающих устройствах наряду с магнитными лентами используются и магнитные барабаны, принцип действия которых практически такой же. Магнитные барабаны вращаются обычно с огромной скоростью — до 6 тысяч оборотов в минуту.
      Поверхностная плотность диполей на ленте или барабане зависит от конструкции головки и доходит до 30 диполей на 1 миллиметр дорожки. Ширина дорожки от 1 до 3 — 4 миллиметров. Таким образом, на одной ленте может располагаться несколько дорожек. Этим и объясняется тот факт, что емкость запоминающих устройств на магнитных барабанах и лентах исключительно велика.
      Достоинствами магнитных запоминающих устройств, помимо основного — практически неограниченной емкости, — являются также простота принципа действия, отсутствие повреждений записи при считывании, возможность длительного хранения даже вне машины при отключенном источнике питания. А основные недостатки связаны с наличием в конструкциях механических частей, движущихся с большой скоростью. Возникающие при этом колоссальные ускорения требуют специальных инженерных мер для обеспечения прочности. К числу недостатков следует отнести также тот факт, что невозможно произвольно выбирать информацию с носителя; нужно ожидать либо полного поворота барабана (около 10 микросекунд), либо перемотки всей ленты, что составляет несколько минут. Все эти обстоятельства обусловили специфику работы ЭВМ с данным типом памяти.
      Проекты первых электронных ЭВМ, различные принципы организации структуры, состава и типов используемых элементов отразили инженерные подходы, которые возникали в связи с разработкой тех или других частей конструкций. Эти подходы вызывали ожесточенные споры, продолжавшиеся десятки лет.
      — Споры по научно-техническим проблемам в таком большом деле неизбежны. Главное состоит в том, что в конце концов этот разброд удалось преодолеть.
      — Этим мы обязаны в основном двум обстоятельствам: колоссальным успехам электроники и переходу на индустриальные методы производства ЭВМ.
      В течение 40-х годов то вспыхивал, то погасал, но неуклонно продолжался спор между сторонниками счетных устройств, создаваемых на электромагнитных реле и на электронных схемах, содержащих вакуумные лампы (диоды и триоды),
      Развитие радиотехники, телевидения, радиолокации привело к тому, что техническая база электроники достигла высокой степени совершенства. Специальные заводы огромными сериями выпускали прекрасные лампы и приборы на ламповых схемах. Осваивались новые диапазоны частот. Радиоаппаратура надежно и устойчиво работала на коротких и ультракоротких волнах. Но чем короче волна, тем выше частота колебаний! А это уже непосредственно связано со скоростью переброса электронных реле — триггерных ячеек — и тем самым с быстродействием собранных на них счетных устройств. Электромагнитные реле стали безнадежно отставать от электронных по скорости работы и надежности. Механические части их перемещались медленно, они не могли угнаться за электронами, часто ломались и становились тормозом в развитии ЭВМ. Выдающиеся достижения электроники надежно обеспечивали это развитие и в конце концов привели к бесповоротной победе вычислительных машин на электронных лампах.
      Однако споры на этом не только не прекратились, но развернулись с новой силой. На смену пришла дискуссия о преимуществах и недостатках цифровых вычислительных майин (дискретного действия), с одной стороны, и аналоговых (непрерывного действия), с другой.
      Аналоговые вычислительные машины — их также часто называют моделирующими машинами — работают по принципу математического моделирования. Заключается он в том, что для ряда физических явлений и процессов подбираются модели, имеющие другое физическое содержание, но описываемые одними и теми же математическими соотношениями. Например, колебание шарика, подвешенного на нити, описывается с большой точностью теми же уравнениями, что и перемещения пружинного маятника, и изменения тока в цепях электрического колебательного контура. Поэтому для решения задач, возникающих при исследовании механических колебательных систем, например при расчете напряжений в мостовых фермах и опорах, можно пользоваться информацией, получаемой на электрической модели. Существует немало подобных аналогий: гравитационные поля моделируются электростатическими, гидродинамические и аэродинамические потоки — соответствующими явлениями теплопередачи и т. д.
      Однако из-за сравнительно узкой сферы применения и недостаточной точности моделирующие машины не стали средством, способным удовлетворить возможные потребности в вычислениях. Главной слабостью их оказалось то обстоятельство, что они не являются универсальными. Для каждого класса математических задач требуется, вообще говоря, отдельная специальная вычислительная машина. И все же, хотя наиболее перспективными (с точки зрения охвата более широкого класса задач и более высокой точности) оказались цифровые машины, аналоговые вычислители (моделирующие установки) находят применение и в настоящее время для решения некоторых классов задач, особенно задач, связанных с интегрированием дифференциальных уравнений.
      Четкое разграничение сфер влияния произошло и в соревновании между специализированными ЭВМ и ЭВМ универсального назначения. Специализированные машины прочно вошли в обиход как бортовые управляющие машины самолетов, ракет и космических кораблей, как ЭВМ, встроенные в станки-автоматы, и другие автоматизированные технологические агрегаты. Научные же расчеты, экономические задачи, проектирование, переработка информации, справочная служба — это область безраздельного господства универсальных ЭВМ.
      К началу 50-х годов окончательно сложились взгляды на быстродействующие вычислительные машины как на устройства электронные, цифровые, универсального назначения. Ведущее место принадлежит здесь машинам, работающим в двоичной системе счисления.
      Двоичная система, как известно, обходится цифровыми символами 1 и 0. Из них составляются двоичные числа любой величины. Таким образом все вычисления в конце концов можно свести к элементарным операциям над этими символами. Кроме того, 1 и 0 могут быть истолкованы и как логические категории: «истина» и «ложь». Это позволяет единообразно выполнять как арифметические, так и логические действия в ЭВМ. Сложение и вычитание, умножение и деление, сдвиг и сравнение, логические дизъюнкции и конъюнкции и т. д. приводятся к манипуляциям с нолями и единицами. Для реализации их служат счетчики и сумматоры, регистры сдвига и схемы сопряжения, инверторы (заменяющие единицы на ноли и обратно) и др.
      Оказалось, что все эти схемы можно собирать из однотипных первичных ячеек — электронных реле или триггеров. Унификация триггерных ячеек как первичных «кирпичей», из которых сооружается грандиозное здание ЭВМ (для построения ЭВМ требуются тысячи и десятки тысяч ячеек), а также способов соединения их в соответствующие устройства послужила предпосылкой для разработки индустриальной технологии и серийного выпуска ЭВМ.
      Из уникальных установок, сооружаемых в лабораторных условиях при помощи ручного труда сотен людей, ЭВМ превратились в изделия промышленного производства, выпускаемые партиями на крупных заводах, оснащенных станками-автоматами и автоматическими технологическими линиями. ЭВМ стали намного дешевле и надежнее в работе. Без труда решалась проблема запасных частей. Унификация и стандартизация — великая сила современного индустриального производства!
      Конечно, споры и дискуссии продолжаются до сих пор, однако основные разногласия по фундаментальным принципам построения ЭВМ стали достоянием истории. Наконец-то инженерная мысль собрала все достижения науки и вычислительной техники вместе и создала единую концепцию, которая легла в основу так называемого первого поколения ЭВМ.
     
      ЭВМ ПЕРВОГО ПОКОЛЕНИЯ
      — Что же такое ЭВМ первого поколения?
      — Если попытаться ответить кратко, то это вычислительная машина на электронных лампах.
      — И из каких же частей состоит эта машина? Каковы функции ее частей?
      Любая ЭВМ — это сложнейший электронный организм, способный производить разнообразнейшие действия. Как всякий организм, машина имеет своеобразный мозг — устройство управления. Команды мозга послушно выполняют мышцы — арифметическое устройство и другие устройства ЭВМ. Много полезных сведений хранит память — запоминающее устройство. Наконец, для общения с окружающим миром есть у нее своеобразные глаза, язык и уши — устройства ввода
      и вывода информации. На всем этом стоит остановиться несколько подробнее.
      Арифметическое устройство. Само название подсказывает, что оно выполняет разнообразные арифметические действия: сложение, вычитание, умножение, деление, извлечение корня и т. д., а также логические операции, например, сравнение чисел, формирование признаков для выбора одной из ветвей вычислений и другие. Набор операций, производимых
      арифметическим устройством над двоичными числами, в принципе различен для разных ЭВМ и определяется в основном особенностями конструкции, а также предполагаемыми сферами использования конкретной машины.
      Запоминающее устройство. Оно запоминает и выдает по первому требованию всю информацию, необходимую для решения задачи. К запоминающему устройству обычно предъявляют два требования: оно должно обладать высокой скоростью поиска и выдачи чисел и большой емкостью. Нетрудно заметить, что требования эти весьма противоречивы. Ведь чем больше размеры хранилища, тем труднее отыскать в нем данный конкретный адрес. Поэтому конструкторы пошли по пути создания двух типов запоминающих устройств: внутреннего и внешнего.
      Внутреннее запоминающее устройство — так называемая оперативная память ЭВМ — имеет сравнительно небольшую емкость и потому высокую скорость работы. Она хорошо согласуется со скоростью всех «быстрых» устройств ЭВМ, в первую очередь арифметического. Оперативная память состоит из отдельных ячеек, за каждой закреплен определенный номер: на-
      пример, ячейка памяти под № 869. Каждая ячейка хранит только одно число, а все запоминающее устройство представляет собой как бы соты, куда трудолюбивые электрические импульсы собирают информацию. Здесь хранятся исходные данные для решения задач, непосредственно используемые арифметическим устройством, программа, которая выполняется в данный момент, промежуточные результаты расчетов и т. д.
      Внешнее запоминающее устройство имеет значительно меньшую скорость работы, но практически неограниченную емкость. Как правило, это хранилище строится на магнитофонном способе записи и считывании информации: здесь используются магнитные ленты, магнитные барабаны и пр. Во внешней памяти хранятся большие массивы исходных данных, различная справочная информация и вообще все, что только может понадобиться машине в ее работе. Информация из внешней памяти может быть переписана в оперативную, из оперативной — во внешнюю.
      Идея использования нескольких уровней памяти не нова, она применяется повсеместно, например, в работе студента: воспринимая на лекции услышанное, он записывает сведения в конспекте (внешняя память), а затем перед экзаменом повторяет, пытаясь набить свою оперативную память всеми сведениями из внешней. Однако объема оперативной памяти, как всегда, конечно, не хватает, и последствия этого для студента хорошо известны.
      Устройство управления. Оно руководит последовательным выполнением программы вычислений, которая записана в памяти ЭВМ, а также управляет выполнением всех элементарных операций.
      Устройство ввода воспринимает информацию, нанесенную на перфокарты, и преобразует ее в электрические потенциалы разного уровня, соответствующие машинным символам 0 и 1. Эти сигналы затем передаются в запоминающее устройство.
      Устройство вывода выполняет обратную процедуру: преобразует числа, выводимые из машины в виде электрических импульсов, в совокупность пробивок на перфокартах или сочетания цифр и букв.
      Все рассмотренные нами устройства связаны между собой системой электрических магистралей и образуют собственно электронную вычислительную машину. Однако в состав ЭВМ входят еще и так называемые внешние устройства, которые хотя и не имеют прямой (электрической) связи с машиной, однако выполняют, пожалуй, наиболее важную функцию, обеспечивая общение человека и ЭВМ.
      Внешние устройства служат для подготовки исходных данных, для задания машине программы расчета, а также для оформления результата работы машины в понятном для человека виде. Все внешние устройства, поскольку они ориентированы на работу непосредственно с человеком, функционируют значительно медленнее, чем сама ЭВМ. Поэтому, чтобы насытить ЭВМ информацией, обычно параллельно работают несколько типовых комплектов внешних устройств. В такой комплект входят перфоратор, контрольник и печатающее устройство.
      Перфоратор переводит информацию с языка человека на язык, который в состоянии воспринять машина. Числа, набираемые на пульте перфоратора, кодируются в виде комбинаций пробивок на перфокартах. При нажатии на определенную клавишу, обозначающую десятичную цифру, индуцируются сигналы в обмотках соответствующих электромагнитов. Электромагниты срабатывают и воздействуют на специальные пуансоны, которые, заходя в гнезда, перфорируют (пробивают) отверстия в перфокартах. Каждая клавиша связана с обмотками определенного набора электромагнитов так, что перфоратор производит автоматический перевод чисел в двоичную систему.
      Контрольник. Легко представить, какую путаницу может внести в работу «идеально послушной» ЭВМ даже одно неверно пробитое отверстие. Контрольник призван по возможности исключить подобные ситуации. По своей конструкции он подобен перфоратору: та же клавиатура, на которой заново набирается вся информация, только вместо чистых перфокарт в него закладываются отперфорированные. Перфокарта, отверстия которой в точности соответствуют набранной на клавиатуре информации, проходит беспрепятственно в специальный карман; при несовпадении зажигается красная лампочка, и сброс в карман такой перфокарты блокируется.
      Печатающее устройство. Оно призвано перевести информацию, выводимую из ЭВМ, на язык, понятный человеку. По пробитым на перфокартах отверстиям печатается на узкой бумажной ленте колонка цифр. Числа, выводимые из машины в двоичном виде, при этом переводятся в десятичные.
      — Ну и сложная же это конструкция — ЭВМ! Пожалуй, сравнение с живым организмом не преувеличение...
      — Да и места занимает этот организм немало: несколько сотен квадратных метров!
      — Сколько же этой махине нужно электроэнергии?
      — Более ста киловатт!
      — Тогда это не простой организм, а целый электронный мамонт! И как хрупкий человек держит его в повиновении?
      — Самое смешное, что такой проблемы просто не
      существует. ЭВМ первого поколения послушна как дитя. Более того, она совершенно беспомощна и без программы, заданной человеком, не сможет ступить ни шагу. Ее в буквальном смысле нужно вести за руку, говоря: ступи сюда, здесь будь осторожна, не споткнись, а теперь сюда...
      Вообще ЭВМ может производить лишь небольшое число элементарных операций, поэтому любая задача должна быть сведена к последовательному выполнению
      только этих элементарных действий.
      Каждая операция выполняется ЭВМ под воздействием управляющего сигнала, так называемой команды. Команда — не что иное, как информация об операции, представленная в специальной форме. Она определяет действия машины в течение некоторого интервала времени.
      Команда состоит из кода операций (указания о том,
      что должна сделать машина) и адресов, указывающих, откуда машина должна взять и куда положить числа для выполнения операции. Адреса — это и есть номера ячеек запоминающего устройства.
      Рассмотрим пример сложения двух чисел: 7246 + 810.
      Команда для выполнения этой операции выглядит так: (...)
      По этой команде управляющее устройство ЭВМ выбирает из оперативной памяти содержимое ячейки под номером 100 (там хранится число 7246) и передает его в арифметическое устройство; затем из оперативной памяти выбирается содержимое ячейки под номером 200 (число 810) и также передается в арифметическое устройство; после чего туда передается и код операции «сложение» (01).
      Следующим шагом является выполнение операции, поименованной кодом, — в данном случае сложение чисел. Результат (сумма) передается в оперативную память и помещается в ячейку с номером 102.
      Следующий шаг — переход к команде с номером на 1 большим, чем данная. Она может приказать ЭВМ, например, разделить результат предыдущей операции (8056) пополам или сложить с новым числом и т. д.
      Последовательность команд и образует программу действий машины на некоторый интервал времени.
      Программа расписывает работу ЭВМ по элементарным типовым шагам. Для каждой задачи программа составляется заранее и вводится в память вместе с исходными данными и другими необходимыми для ее решения сведениями. После этого все требуемые расчеты выполняются машиной автоматически, без вмешательства извне.
      Процесс программирования — создания программы — можно рассматривать как перевод математической задачи с языка формул и уравнений на язык машины — язык элементарных типовых операций. Само программирование — сложный многошаговый процесс, включающий определение порядка вычислений; решение вопроса о том, где и как разместить в машине материал, необходимый для решения задачи; исходные, промежуточные и окончательные данные, а также саму программу вычислений; составление и запись программы в условных обозначениях, принятых на данной ЭВМ.
      Вот как обычно осуществляется программирование. Пусть требуется составить программу вычисления среднего арифметического Z двух чисел хну:
      Z = у- (х -f у).
      Порядок вычислений, очевидно, для данной задачи тривиален и задается самой формулой, а вот вопрос о расположении исходных и других данных следует, несомненно, решить. Пусть для простоты во всех примерах программа располагается в памяти машины в ячейках № 101, 102, 103... и т. д.; исходные данные для ее решения — - в ячейках № 201, 202, 203...; все промежуточные результаты — в ячейках № 301, 302, 303..., а ответ (результаты расчета) — в ячейках № 401, 402, 403...
      В рассматриваемом случае исходными данными будут: число х, хранящееся в ячейке № 201, число у, хранящееся в ячейках № 202, и число 2, которое можно поместить в ячейку № 200. Промежуточные результаты пусть помещаются в ячейке № 301, а окончатель-
      ный результат (z) — в ячейке № 401.
      Проведя так называемое «распределение памяти», приступают к третьему этапу программирования — записи самой программы вычислений.
      Первая команда. Содержимое ячейки № 201
      (х) сложить с содержимым ячейки № 202 (у), сумму записать в ячейку № 301.
      Вторая команда. Разделить полученную сумму (содержимое ячейки № 301) на 2 (содержимое ячейки № 200) и результат поместить в ячейку №401.
      Третья команда. Перевести число, хранящееся в ячейке № 401, на перфокарты.
      Четвертая команда. Остановить работу машины (так называемый ОСТАНОВ).
      Чтобы приблизить эту программу к реальным условиям, надо ввести еще одну команду, которую следует поместить в самом начале программы.
      Команда ввода. Числа, набитые на перфокартах (2, x, у), ввести в ЭВМ и расположить в ячейках памяти начиная с № 200.
      В условных числовых обозначениях такая программа внешне может выглядеть, например, следующим образом:
      101
      102
      103
      104
      105
      Итак, составленная программа для вычисления среднего арифметического двух чисел содержит 5 команд.
      Естественно возникают вопросы: не легче ли просто сложить и разделить эти числа ну хотя бы на бумаге?
      Каковы преимущества в использовании ЭВМ для решения этой задачи?
      Может быть, этот учебный пример и не должен демонстрировать никакого преимущества. Однако определенные преимущества есть; они заключаются в том, что нигде в программе не сказано, с какими же конкретно числами производятся вычисления: в ней лишь требуется, чтобы после ввода они располагались в определенных ячейках. Таким образом, создана в некотором смысле универсальная программа для получения среднего арифметического любых двух наперед неизвестных чисел. А это уже что-то! Попробуем повысить универсальность программы.
      Пусть требуется получить среднее арифметическое трех чисел:
      Думается, что читатель легко сам сможет написать такую программу; она будет всего на одну команду длиннее предыдущей. Так же, как и программа для среднего четырех, пяти, шести и т. д. чисел будет состоять из 7, 8, 9 и т. д. команд соответственно. Таким образом, программа для получения среднего арифметического, например, ста чисел будет состоять из ста трех команд. По-видимому, читатель уже стал сомневаться, а стоит ли так бездумно увеличивать число команд? Нельзя ли придумать что-нибудь пооригинальнее?
      Оказывается, можно! Вот программа получения среднего арифметического ста чисел, которая ненамного длиннее исходной программы для двух чисел. При ее составлении будут использованы логические возможности ЭВМ. Итак...
      Первая команда. Ввод ста чисел с перфокарт.
      Вторая команда. Сложить ячейку № 201 (разумеется, ее содержимое) с ячейкой № 202 и поместить сумму в ячейку № 301.
      Третья команда. Сложить содержимое ячейки суммы № 301 с содержимым следующей ячейки № 203 и результат опять поместить в ячейку № 301. В условных цифровых обозначениях эта команда выглядит так:
      Номер ячейки, где расположена команда Сумма Хз Сумма Код «сложение»
      103 301 203 301 01
      Вот эту команду с изменением второго адреса и следует повторить девяносто семь раз (сто минус три), чтобы получить требуемую сумму. Второй адрес (третья колонка) при этом пробегает значения от № 203 через № 204, 205 и т. д. до № 300.
      Чтобы эта команда все время принимала тот вид, который требуется, ее нужно как-то модифицировать, то есть соответствующим образом изменять. Для этого неплохо вспомнить, что команда — это тоже число, расположенное в определенной ячейке, например, в нашем случае в ячейке 103. Если сложить это число (эту команду) со специальной константой, содержащей единицу во втором адресе (000 001 000 00), то оно изменяется как раз так, как нужно. Действительно (...)
      Таким образом, следующая команда (№ 104) будет иметь такой вид: сложить число (команду), стоящее в ячейке № 103, с константой, находящейся в ячейке № 501, и результат записать снова в ячейку № 103.
      Теперь нужно обеспечить повторение этой процедуры необходимое число раз (в нашем случае девяносто семь), то есть определить, когда следует возвращаться на суммирование, а когда перейти к делению.
      Такое разветвление в программе можно реализовать с помощью двух команд: команды подготовительной
      и команды условного перехода.
      Первая должна вырабатывать признак, при значении которого, равном 1, будет осуществляться переход к новой ветви программы, а при 0 — продолжение старой. Чтобы реализовать это разветвление, потребуется подсчитывать число повторений цикла в данный момент и сравнивать его с заданным числом повторений. При несовпадении формировать признак, равный 0, при совпадении — 1.
      Разветвление счета, реализуемое при помощи команды условного перехода, широко применяется на практике для решения различных логических задач. В рассматриваемом же случае для организации циклического счета обычно с успехом применяется так называемая команда цикла, которая позволяет повторять команды программы, начиная с указанного номера, заданное число раз.
      Таким образом, описанная выше программа с использованием команды цикла станет еще короче. Другими словами, программа определения среднего арифметического ста чисел окажется ненамного длиннее программы усреднения двух чисел. В этом и заключается изюминка программного управления. Человек задает ЭВМ лишь принцип, а она сама реализует этот принцип на любой (конечной) последовательности данных.
      Стоит заметить, что в данном конкретном примере число 100 никак не фигурирует в самой программе, это число повторений цикла находится в определенной ячейке и может быть заменено любым другим — тысячей, миллионом и т. д. Программа от этого не изменится, увеличится лишь время ее реализации на ЭВМ. В программировании получается, таким образом, как в известной сказке: пойди туда, не знаю куда (будет указано в исходных данных), принеси то, не знаю что (указан лишь номер ячейки, и неизвестно, что за число там окажется).
      В результате всех проведенных действий создана универсальная программа для нахождения среднего арифметического последовательности чисел произвольной длины. Это поистине замечательный результат! Отныне любую задачу нахождения среднего арифметического можно решать по нашей программе с помощью ЭВМ.
      Программы подобного типа, предназначенные для решения стандартных, часто встречающихся задач, называют стандартными подпрограммами. Нет никакого смысла каждый раз писать их заново, гораздо разумнее размножить такие программы и разослать их во все вычислительные центры. Там их поместят в библиотеку стандартных подпрограмм и будут использовать при первой необходимости.
      Кроме рассмотренных здесь, существует много других полезных вспомогательных команд; все они призваны помочь довести смысл задачи до «разума» машины и свести при этом по возможности к минимуму число команд и объем используемой памяти.
      Само же программирование, как это видно, процесс довольно кропотливый, требующий внимания, сосредоточенности и терпения. Его можно было бы сравнить, пожалуй, с вышиванием — настолько это тонкая и художественная работа. Наверное, поэтому женщины, начиная от первой программистки — соратницы Ч. Бэ-биджа леди Лавлейс и до наших дней, отлично справляются с программированием.
      — Мы все время говорим о какой-то абстрактной ЭВМ и совсем забыли ЭВМ первого поколения.
      — Совершенно верно! Здесь сказано о том, что же такое вообще ЭВМ. Конструкция, структура и суть происходящих в машине процессов в общем-то не меняются при переходе от поколения к поколению.
      — Интересно узнать бы о реальных машинах первого поколения!
      Рассказ о машинах первого поколения можно начать со знакомства с первыми советскими серийными машинами: БЭСМ, «Стрела» и «Урал». Они не только сыграли определенную роль в развитии вычислительной техники, но и практически оказались основным сред-
      ством выполнения вычислительных работ своего времени.
      Однако справедливость требует не забывать и о зарубежных первенцах математического машиностроения эпохи электронных ламп. Среди них наибольшую известность имели американские машины ИБМ-704 и УНИВАК (фирмы «Спарри Рэнд»), английская «Эдсак» (Кембриджский университет), французская «Гамма-40» (Ф ирмы Булль) и другие.
      В советской вычислительной технике особое место занимает МЭСМ (малая электронная счетная машина), разработанная в 1950 году под руководством академика С. Лебедева. Она являлась прямой предшественницей БЭСМ (большой электронной счетной машины). МЭСМ не выпускалась серийно, более того, она скорее представляла собой лабораторный макет, чем действующую ЭВМ. Ее технические характеристики (быстродействие — 50 операций в секунду, объем оперативной памяти — 31 число и 63 команды) даже для того времени были весьма скромными. Тем не менее МЭСМ позволила опробовать ряд конструктивных и технологических принципов, используемых в вычислительной технике и до сих пор!
      Наиболее же существенным результатом эксплуатации МЭСМ являлась подготовка первых в стране программистов и решение ряда принципиальных вопросов методики программирования. Пока большие машины типа БЭСМ и «Стрела» находились в разработке и производство их только осваивалось, новое направление — автоматизация программирования — уже строило свои методы, оттачивало инструмент, и не на бумаге, а на реальной машине, хотя еще и недостаточно зрелой.
      Настоящий и весьма совершенный компьютер — вычислительная машина с поэтическим названием «Стрела», которое, по-видимому, должно было подчеркнуть ее быстродействие, была разработана в 1953 году под руководством Героя Социалистического Труда Ю. Базилевского. Эта машина имела 8 тысяч электронных ламп и около 2 тысяч полупроводниковых диодов, потребляемая мощность около 150 киловатт. Ее быстродействие доходило до 2 тысяч операций в секунду. Машина могла выполнять 15 арифметических и логических операций. В ее системе команд существовали и оригинальные средства выполнения этих операций над целыми массивами чисел.
      Оперативное запоминающее устройство «Стрелы» было создано на электронно-лучевых трубках (43 трубки) и имело емкость 2048 чисел по 43 двоичных разряда каждое.
      Внешняя память машины была реализована на магнитных лентах. К «Стреле» подключались две ленто-протяжки; каждая лента была способна хранить до миллиона чисел. Кроме этих двух традиционных, если можно так выразиться, типов запоминающих устройств, «Стрела» имела дополнительно постоянное запоминающее устройство высокого быстродействия, способное хранить 512 команд и чисел, что позволяло постоянно хранить в машине 16 стандартных наиболее нужных программ и 256 часто встречающихся констант.
      Заслуживают внимания и устройства вывода информации. Кроме обычных для того времени устройств выдачи на перфокарты и магнитную ленту, машина «Стрела» имела также широкоформатное печатающее устройство, позволяющее получать результаты расчета в виде документа на широкой бумажной ленте привычного канцелярского формата. Результаты на ней выглядели привычно и легко читались.
      Собственно машина «Стрела» занимала до 200 квадратных метров площади; с учетом же внешних устройств, принудительного кондиционирования воздуха и электропитания — свыше 400 квадратных метров.
      На «Стреле» были решены важные научные и технические задачи весьма большой сложности, например, аэродинамические расчеты первого советского пассажирского реактивного самолета Ту-104 объемом порядка I08 операций потребовали всего 17 часов непрерывной работы машины; на подобную работу раньше ушли бы месяцы. Было проведено решение также и многих «логических» задач. При этом выяснились не только возможности «Стрелы», но и вообще принципы постановки на ЭВМ невычислительных, или, как тогда говорили, неарифметических, задач. Машину «учили» играть в различные игры — «Ним», «крестики и нолики», она даже разыгрывала «шахматный эндшпиль». Так компьютеры постепенно подбирались к решению серьезных неарифметических задач.
      Машина «Стрела» имела также совершенную и достаточно гибкую систему программирования, весьма полную библиотеку стандартных программ, что способствовало раскрытию ее вычислительных и логических возможностей.
      Первенец отечественного серийного электронного машиностроения БЭСМ была разработана в 1952 году Институтом точной механики и вычислительной техники в Москве, носящим ныне имя академика С. Лебедева. Эта машина имела 4 тысячи электронных вакуумных ламп и около 5 тысяч полупроводниковых диодов, потребляемая ею мощность — 80 киловатт. БЭСМ обеспечивала быстродействие порядка 10 тысяч операций в секунду, имела оперативную память, как и у «Стрелы», на электронно-лучевых трубках, объемом 2048 чисел. В более поздних конструкциях оперативную память строили на феррнтовых сердечниках. Внешняя память машины состояла из двух частей. Первая часть — 4 магнитные ленты общим объемом 120 тысяч 39 разрядных чисел, а вторая — 2 магнитных барабана объемом 5120 чисел в каждом.
      Устройство ввода с перфоленты обеспечивало скорость ввода до 1200 чисел в минуту. Устройства вывода данных, кроме электромеханического печатающего устройства, имели быстродействующие фотопечатающие установки для вывода больших массивов информации, записанной на магнитную ленту.
      Существенными особенностями БЭСМ были автономное управление подпрограммами и долговременное запоминающее устройство. По своим характеристикам — быстродействию и объему запоминающих устройств, а также конструктивному оформлению и гибкости математического обеспечения — БЭСМ была на уровне лучших мировых образцов ЭВМ.
      Вычислительные машины «Стрела» и БЭСМ относились к большим ЭВМ первого поколения. Их габариты, занимаемая площадь и стоимость были весьма высокими. Это обстоятельство существенно ограничивало круг возможных потребителей. Нужна была ЭВМ более дешевая и простая, быть может, с меньшими быстродействием и объемом памяти, но рассчитанная на действительно широкий круг пользователей.
      Такой в нашей стране стала машина «Урал», созданная в 1954 году под руководством конструктора Б. Рамеева. Эта ЭВМ имела всего 800 вакуумных электронных ламп и около 3 тысяч полупроводниковых диодов и работала со скоростью 100 операций в секунду. Потребляемая мощность составляла 7,5 киловатта. Ее оперативная память на магнитном барабане емкостью 1024 числа обеспечивала невысокую скорость считывания, что и определило низкое ее быстродействие.
      Внешняя память содержала всего одну лентопротяж-ку с объемом ленты в 40 тысяч 36 разрядных чисел. Ввод информации осуществлялся с перфоленты, а также при помощи клавишного устройства.
      Машина «Урал» предназначалась для инженерно-технических и планово-экономических расчетов. Несмотря на малую потребляемую мощность, она все еще требовала принудительного охлаждения воздуха в машинном зале площадью в 60 квадратных метров.
      ЭВМ «Урал» не могла быть использована для решения уникально сложных задач. Однако для задач небольших, возникающих в повседневной работе научно-исследовательских и проектно-конструкторских учреждений, она была вполне удовлетворительной. Этим и объяснялась большая ее популярность и широкое распространение. У вычислительных машин такого класса потребитель оказался массовым.
     
      ЭВМ ВТОРОГО ПОКОЛЕНИЯ
      — Оправдал ли электронный компьютер доверие человечества, окупил ли затраченные усилия, принес ли ожидаемый эффект?
      — Безусловно! Ведь ту колоссальную роль, которую сыграли вычислительные машины в жизни человека, даже невозможно выразить экономическим эффектом! Так же как паровая машина произвела революцию в технике, положив начало механизации физического труда, ЭВМ открыла пути для вторжения средств автоматизации в сферу, традиционно относящуюся к интеллектуальной деятельности людей.
      Счетные машины со временем становятся не только слепым исполнителем замыслов человека, но и его помощником, его острейшим оружием в борьбе за раскрытие тайн природы.
      К сожалению, эти справедливые слова долгое время оставались всего лишь словами. В изобилии публиковались прогнозы развития ЭВМ и расширения сферы их применения, подчеркивалось исключительное значение этого достижения человеческого ума, а на практике ЭВМ на электронных лампах обладали весьма существенными недостатками.
      Число электронных ламп в большой ЭВМ того времени было огромным и достигало нескольких тысяч штук. Аппаратура так называемого процессора, включавшего арифметическое устройство, оперативную память и устройство управления, монтировалась в виде отдельных стоек (шкафов) по 2 — 3 тысячи ламп в каждой. Для размещения этих стоек требовался довольно большой зал площадью в 150, 200, а иногда и 300 квадратных метров.
      Кроме процессора, в основное оборудование ЭВМ входят еще, как известно, устройства ввода и вывода информации, внешняя память на магнитных лентах, устройства для набивки перфокарт, печатающие устройства и т. д. С учетом этого общая площадь, требуемая для размещения ЭВМ, увеличивалась в полтора-два раза. Уже упоминалось, что советская ЭВМ «Стрела» 1953 года выпуска занимала 400 квадратных метров, а рекордсменом по занимаемой площади, по-видимому, можно считать американскую машину БИЗМАК 1955 года выпуска, для размещения которой с учетом внешней памяти потребовалось 1600 квадратных метров (это площадь 50-квартирного жилого дома)!
      Кроме того, ламповые ЭВМ имели громоздкое вспомогательное оборудование. Нижние и цокольные этажи зданий вычислительных центров были до отказа набиты разнообразными агрегатами внушительных размеров. Главную часть этого вспомогательного оборудования
      составляли средства энергопитания и кондиционирования воздуха.
      Дело в том, что любая электронная лампа работает лишь тогда, когда в ней течет эмиссионный ток. А эмиссия возможна лишь при достаточно высокой температуре катода. ЭВМ же первого поколения имели тысячи таких ламп, и только для их питания требовалась немалая электрическая энергия. Значительную долю ее потребляли также всевозможные электромеханические устройства, как-то: реле, двигатели, специальные сервомоторы, входящие в печатающие установки и перфораторы, механизмы перемотки магнитных лент и конт-рольники. В общей сложности ЭВМ первого поколения потребляла от 80 до 150 киловатт электроэнергии.
      Дело усложнялось еще тем, что различные устройства ЭВМ питались токами различных частот и напряжений. Поэтому энергоблок, или стойка питания ЭВМ, содержал многочисленные преобразователи, умформеры, трансформаторы, выпрямители и другие агрегаты. Для размещения энергоблока требовались еще десятки, а иногда и сотни квадратных метров площади. Заметим, что механические умформеры (преобразователи частоты переменного тока) устанавливались на специальных фундаментах и противовибрационных платформах, увеличивающих громоздкость этого оборудования.
      Потребляемая электроэнергия не только приводила в действие все эти технические средства ЭВМ, но и сильно нагревала машинные залы и залы основного и вспомогательного оборудования. Это создавало трудные условия как для весьма чувствительной аппаратуры ЭВМ, так и для обслуживающего персонала. Естественная вентиляция помещений не обеспечивала нормальных температурных режимов и, кроме того, пагубно сказывалась на работе магнитных лент, перфорационных и печатающих устройств и других чрезвычайно капризных технических средств, засоряя воздух в помещениях.
      Поэтому приходилось монтировать кондиционеры для машинных залов с мощными вентиляционными, фильтровальными и холодильными агрегатами, сеть воздуховодов большого диаметра (порядка метра и более), наружные градирни для испарения и охлаждения циркулирующей в системе воды и другое сложное и громоздкое оборудование.
      Заслуживает упоминания и внешний вид ЭВМ. Ничего похожего на изящные арифмометры и даже на счетно-перфорационные машины не было и в помине! И вообще ЭВМ не вызывала ассоциаций с понятием «счетный прибор», она скорее напоминала небольшой завод с электроподстанцией, градирней и цехами-залами: машинным, устройств подготовки данных, внешней памяти, электропитания, кондиционирования воздуха и т. д. «Цехи» соединялись между собой весьма внушительными трубопроводами, силовыми электрокабелями и линиями передачи информации.
      Нельзя не отметить и тот печальный факт, что надежность ламповых элементов, работающих все время под током и к тому же в нагретом состоянии, оставляла желать лучшего. Узлы и блоки ЭВМ постоянно выходили из строя. Это не только приводило к срыву вычислительного процесса, что существенно снижало и так невысокую производительность ЭВМ, но и создавало неудобства в эксплуатации самих технических средств.
      В соседних с машинным залом помещениях размещались ремонтные мастерские, еле успевающие восстанавливать узлы ЭВМ и поставлять их для замены выходящих из строя.
      ЭВМ первого поколения, как правило, работали круглосуточно. Выключение машины производилось только в случае аварии или профилактического ремонта. Ввод ЭВМ в действие после выключения был мучительной процедурой и требовал длительной работы многочисленных наладчиков.
      Сходство с промышленным предприятием еще более усиливалось, когда речь заходила о составе обслуживающего персонала. Помимо математиков-программистов, занимающихся подготовкой задач, и специалистов по электронной вычислительной технике, работающих непосредственно в машинных залах, в состав персонала включалось немалое число электриков, механиков, специалистов по вентиляционной и холодильной технике, операторов-наладчиков, перфораторщиц, диспетчеров и т. д. Общая численность персонала на одну ЭВМ обычно составляла несколько сотен человек — поистине настоящая счетная фабрика.
      Легко себе представить затраты на эксплуатацию ЭВМ. Стоимость электроэнергии и воды для охлаждения, содержания персонала, ремонта аппаратуры и оборудования, оснащения приборами и инструментом, строительства или аренды помещений представляла сумму, вполне соперничающую с затратами на производственные нужды небольшого завода.
      Ну а что за продукция у этого «завода»? Продукцией вычислительного центра было так называемое «машинное время», составлявшее для ЭВМ первого поколения всего 12 — 14 часов в сутки. Оплата за вычислительные работы обычно производилась из расчета нескольких тысяч рублей за один час предоставляемого времени. Однако даже этот дорогой час, учитывая низкое быстродействие (порядка нескольких тысяч операций в секунду), был не слишком производительным.
      Эффективность ЭВМ первого поколения ограничивалась также малым объемом оперативного запоминающего устройства. Обычно он не превышал 3 — 4 тысяч чисел и не позволял организовать эффективное решение сложных задач большой размерности.
      Но жизнь не стоит на месте. Практические нужды науки и техники настоятельно требовали значительного повышения быстродействия и объема памяти ЭВМ. Необходимо было вести расчеты потоков нейтронов в ядер-ных реакторах, решать задачи сверхзвуковой аэродинамики, вычислять орбиты космических кораблей и автоматических межпланетных станций, запускаемых на Луну, Венеру, Марс, получать межотраслевые балансы народнохозяйственных планов!
      В конце 50-х годов ценою исключительно больших затрат и выжиманием предельных возможностей из аппаратуры удалось создать ламповые ЭВМ с более современными характеристиками. Эти машины были способны выполнять десятки и даже сотни тысяч операций в секунду. Объем оперативной памяти достигал 30 — 60 тысяч чисел. Но стоимость машинного времени при этом оказалась столь высокой, что такие ЭВМ становились практически нерентабельными. Кроме того, постоянные сбои и частые аварии затрудняли надежное выполнение мало-мальски сложных расчетов. Пессимисты уже затеяли разговоры о тупике, в который зашла электронная вычислительная техника. И не без оснований.
      И вот именно тогда, в тяжелое для ЭВМ время, в 50-е годы XX века, в научных, а затем и в научно-популярных журналах публикуются сведения о полупроводниковых приборах. Их появление на арене электроники сопровождалось поистине фантастическими прогнозами: размеры устройств уменьшаются в десятки раз, потребляемая энергия в сотни. Мальчишки бредили тогда карманными радиоустройствами. Конечно, и компьютеры не остались в стороне, пусть не карманные, но принципиально новые ЭВМ второго поколения родились и смело ринулись в гущу жизни... А происходило это так.
      В электротехнике до недавнего времени все вещества было принято делить лишь на проводники и изоляторы. Хорошими проводниками считались серебро, медь, алюминий и другие металлы. Прекрасными изоляторами — фарфор, стекло, парафин, многие пластмассы, смолы. Но правил не бывает без исключений. В экспериментах были обнаружены удивительные материалы, проводимость которых зависела от направления течения тока. Если включить в электрическую цепь стержень
      из специально обработанного кристалла германия, то сопротивление его в одном направлении окажется равным всего нескольким омам, а в противоположном — десяткам тысяч ом...
      Аналогичным свойством проводить электрический ток только в одном направлении обладают и некоторые другие вещества: кристаллы селена, асенида, галлия, карбида кремния. Эти вещества и получили название полупроводников.
      Полупроводники?! Но ведь похожими свойствами обладают электронные лампы. В них, когда нагрет катод, появляется электронная эмиссия и поток электронов течет только в одном направлении — от катода к положительно заряженному аноду. В обратном же направлении тока практически нет. Возникла идея — нельзя ли вместо вакуумных ламп в электронных схемах использовать полупроводниковые приборы? Тогда можно рассчитывать на значительную экономию электроэнергии и повышение надежности аппаратуры. В самом деле, то, что происходит в электронной лампе при подаче высокого напряжения, в полупроводнике является просто свойством материала и не требует практически никакого приложения энергии!
      Однако прежде, чем эти свойства полупроводников стали послушно служить людям, были проведены огромные теоретические и экспериментальные работы, начавшиеся еще в 20-х и 30-х годах. Ученые многих стран: О. Лосев, А. Иоффе, В. Давыдов, В. Лашеров — в СССР; У. Шокли, У. Брайттейн, Дж. Бардин — в США; Ю. Лилиенфельд, Р. Хилын, Р. Поль — в Германии стоят у истоков той подлинной революции в электронике, которую совершил полупроводниковый элемент.
      Самым простым полупроводниковым прибором является диод (ди — по-латыни означает два). Диод — это двухполюсник, действие которого основано на электрических свойствах контакта между металлом и полупроводником.
      В электронике полупроводниковые диоды находят исключительно широкое применение. Они используются для детектирования в радиосхемах, в устройствах преобразования электрических колебаний в телевидении и электронном приборостроении, для выпрямления переменного тока в силовых электроустановках, устройствах для стабилизации напряжения и т. д.
      Полупроводниковые диоды не обижают и вычислительную технику. На диодах создаются логические схемы дешифраторов, пассивных запоминающих устройств, устройств ввода и отображения информации.
      Хотя принципиально нагрузочные элементы — конденсаторы, сопротивления, индуктивности — могли бы остаться без изменений, на практике, при переходе от вакуумных диодов к полупроводниковым, потребовалось привести их в соответствие с полупроводниковыми диодами по габаритам, мощности и частотным характеристикам. Так появились специальные полупроводниковые диодные схемы, включающие диоды и миниатюрные нагрузочные элементы.
      Полупроводниковые диодные схемы широко использовались наряду с ламповыми триодами еще в ЭВМ первого поколения. (Вспомним, что ЭВМ «Стрела» имела, кроме 8 тысяч вакуумных ламп, около 2 тысяч полупроводниковых диодов, а вычислительная машина БЭСМ 5 тысяч полупроводниковых диодов и только 4 тысячи вакуумных ламп — триодов.)
      — Так, значит, эти ЭВМ были уже наполовину машинами второго поколения?
      — Увы, нет! Несмотря на столь заметный удельный вес полупроводниковых схем, «Стрела», так же как и БЭСМ, является все-таки ламповой машиной, она бесспорно относится к первому поколению.
      — Почему?
      — Объясняется это ведущей ролью в ЭВМ триггерных схем. К сожалению, диоды составляют основу устройств, охватывающих сравнительно узкий класс логических функций. Только триодные схемы обладают практически универсальными логическими возможностями. Именно поэтому настоящую революцию в царстве ЭВМ произвели полупроводниковые триоды, а также новые магнитные материалы — ферриты!
      Полупроводниковый триод, или, как его стали называть, транзистор, миниатюрен, как горошина. Это трехполюсный прибор, его полупроводниковый кристалл разделен на три зоны с различной проводимостью. Работает транзистор в электронных схемах как обычная трехэлектродная лампа — вакуумный триод. Электродами его являются так называемые эмиттер, база и коллектор. Эмиттер связан с источником носителей заряда и выполняет роль катода. База являет-
      ся управляющим полюсом и аналогична сетке. А коллектор, собирающий заряды, проходящие через транзистор, подобен, таким образом, аноду вакуумного триода.
      Транзисторы используются в триодных электронных схемах, предназначенных для усиления, генерирования и преобразования электрических сигналов (колебаний) весьма обширного диапазона. Широко известны бытовые транзисторные радиоприемники, которые в обиходе также называют просто «транзисторами».
      В вычислительной технике транзисторы являются основой главной (триодной) схемы — триггерной ячейки, а полупроводниковые диоды входят в транзисторные схемы как вспомогательные элементы.
      В дальнейшем такие усовершенствованные схемы получили название диодно-транзисторных. Они оказываются наиболее многочисленными в любой ЭВМ второго поколения. Наряду с ними важную роль в развитии электронных компьютеров сыграли так называемые фер-риттранзисторные полупроводниковые схемы.
      Одним из основных усовершенствований, появившихся в ЭВМ второго поколения, было новое запоминающее устройство — оперативная память на ферри-товых кольцах.
      Ферриты также представляют собой полупроводниковые материалы, обладающие особыми магнитными свойствами. Изготовляются они из довольно редкого минерала — магнитного железняка (ferrum, как известно, по-латыни — железо) с добавлением различных окислов металлов: магния, марганца, никеля и др. Основное достоинство ферритов состоит в том, что сделанные из него элементы могут быстро перемагни-чиваться и сохранять так называемый остаточный магнетизм, то есть свое магнитное состояние, неограниченно долго. Кроме того, в связи с высоким электрическим сопротивлением ферритов потери на образование так называемых токов Фуко при перемагничивании оказываются незначительными, что обеспечивает минимальное потребление электроэнергии.
      Ферриты относятся к веществам, обладающим ярко выраженной (прямоугольной) петлей гистерезиса. Петля гистерезиса — это график, известный из школьного курса физики. Он показывает зависимость величины остаточного намагничивания материала от значений намагничивающего тока. Материалы с прямоугольной петлей гистерезиса обладают способностью находиться в двух устойчивых состояниях, которые и можно соответственно обозначить 0 или 1.
      Из ферритов вырабатываются колечки (сердечники) диаметром от нескольких миллиметров до нескольких долей миллиметра. Эти колечки в машине располагаются правильными рядами, образуя плоскую или пространственную прямоугольную матрицу. Каждое колечко (сердечник) в плоской матрице имеет две обмотки, служащие для записи данных, и одну обмотку, служащую для считывания.
      Были построены запоминающие устройства размером со стопку ученических тетрадей (каждая матрица — одна тетрадь) на 100 тысячах и более магнитных сердечниках. Прелесть таких запоминающих устройств состоит в возможности произвольной выборки чисел. Время записи и считывания здесь составляет не более 10 микросекунд. Кольцевые сердечники — ферриты могут и не иметь специальных обмоток, а быть просто пронизаны тремя проводниками. Один — в вертикальном направлении, другой — в горизонтальном, а третий проводник проходит сквозь все кольца данной матрицы — это «обмотка» считывания. Пусть для считывания нужен ток в Г ампер. Если на обмотку считывания подать ток в 0,5 ампера и указать с помощью другой обмотки соответствующую строку или столбец (туда подать ток также в 0,5 ампера), то произойдет считывание двоичных разрядов данного столбца или строки.
      Основными достоинствами запоминающих устройств на магнитных сердечниках являются простота конструкции, высокая надежность, высокая скорость записи и считывания, большая емкость, достигаемая простыми средствами (матрица из ферритовых колечек — это все-таки не электронно-лучевая трубка).. Кроме того, записанную информацию можно хранить в такой памяти без всякой затраты энергии неограниченно долго.
      Ферритовые сердечники используются не только для создания запоминающих устройств; в ЭВМ второго поколения они нашли применение также и в логических схемах, входящих в арифметические устройства, устройства управления и т. п.
      Освоение в 60-х годах серийного производства полупроводниковых диодов, транзисторов, а также ферритовых сердечников и миниатюрных нагрузочных элементов электронных схем позволило создать серийные ЭВМ на полупроводниковых приборах — ЭВМ второго поколения.
      В чем же отличие ЭВМ второго поколения от ламповых предков? Имеет ли место и здесь своя «акселерация»?
      Оказывается, имеет. Налицо несомненный прогресс по всем показателям, и прежде всего по габаритам и потребляемой мощности. Однако представлять смену поколений лишь только как количественные изменения характеристик было бы глубоким заблуждением! Переход на полупроводниковые приборы ознаменовал собой коренной переворот в вычислительной технике, новые элементы преобразили как бы само лицо ЭВМ!
      Как только в ЭВМ транзисторы заменили лампы, сразу же значительно возросла производительность! Если ламповые вычислительные машины имели быстродействие несколько тысяч операций в секунду, то ЭВМ на полупроводниковых приборах — десятки и сотни тысяч. Так потомок БЭСМ, машины первого поколения, вычислительная машина БЭСМ-4 давала порядка 20 тысяч операций в секунду, «Урал-11» — 50 тысяч, «Минск-32» — 65 тысяч, «Урал-16» — 100 тысяч, а наиболее мощная советская ЭВМ второго поколения — БЭСМ-6 (выпуска 1966 года) — до одного миллиона операций в секунду.
      Однако фактическая производительность ЭВМ, или, как говорят, «эффективное быстродействие», определяется не только скоростью выполнения арифметических операций. Здесь большую роль играет объем ее оперативной памяти. Дело в том, что сложные задачи аэродинамики, ядерной физики, экономики, имеющие большое количество исходных данных и промежуточных результатов расчета, трудно было даже разместить в памяти ЭВМ первого поколения, ведь объем оперативного запоминающего устройства этих машин не превышал 2 — 4 тысяч чисел. Приходилось делить задачу на части и придумывать специальную организацию вычислительного процесса, при которой обеспечивалось бы эффективное решение исходной задачи по частям. При этом, как правило, требовалось немало операций ЭВМ на стыковку частей, а также на дополнительные расчеты, связанные с решением частей задачи так, чтобы эта стыковка вообще была возможна. В то время обычно говорили, что недостающая часть оперативной памяти «покупается» дополнительным расходом числа операций ЭВМ, требуемых для решения задачи. Другими словами, недостаточный объем оперативной памяти приводил к снижению среднего или эффективного быстродействия ЭВМ.
      В ЭВМ второго поколения оказалось возможным увеличить объем оперативной памяти в сотни раз, что еще больше повышало их эффективную производительность. Так, машина «Урал-14» имела уже оперативную память на 65‘ тысяч чисел, БЭСМ-6 — 32 тысячи, американская «Стреч» — 260 тысяч, наша «Урал-16» — до 500 тысяч и т. д.
      Значительное увеличение производительности ЭВМ приводило к росту их рентабельности и экономической эффективности. Хотя общие затраты на разработку и серийное производство машин второго поколения выросли в несколько раз, зато в несколько раз снизилась и стоимость одной единицы машинного времени. Число эффективных операций ЭВМ на один рубль затрат увеличилось в тысячи раз.
      Миниатюрные электронные элементы и схемы позволили существенно уменьшить и габариты машины
      второго поколения по сравнению с ламповыми в несколько раз. Если ЭВМ первого поколения «Стрела» размещалась (без вспомогательного оборудования) на площади около 200 квадратных метров, то полупроводниковая того же класса «Минск-2» могла быть установлена на площади 35 — 40 квадратных метров. Заметим, что «Стрела» имела быстродействие порядка 2 тысяч операций в секунду, а у «Минска-2» оно достигало 5 — 6 тысяч.
      Процесс миниатюризации ЭВМ можно также характеризовать следующими данными. Плотность монтажа, измеряемая числом элементов в одном кубическом метре объема, возросла от нескольких сотен для # ламповых ЭВМ до десятков тысяч для ЭВМ на полупроводниковых и ферритовых элементах.
      Появились так называемые «малые» ЭВМ: в Ереване «Наири», в Киеве «Мир» — с быстродействием несколько тысяч операций в секунду, объемом оперативной памяти несколько тысяч чисел и размером с обычный письменный стол.
      Особенно уменьшилась потребляемая электроэнергия. Ламповой машине типа «Стрела» требовалось порядка 120 киловатт, полупроводниковая «Минск-2» потребляла всего 4 киловатта, а специализированная цифровая управляющая машина «Днепр» (10 — 50 тысяч операций в секунду) — 1,2 киловатта.
      Очевидно, что вместе со снижением потребляемой мощности уменьшилось выделение тепла, снизились требования к средствам кондиционирования воздуха в машинных залах и помещениях для вспомогательного оборудования. Вычислительные центры с полупроводниковыми ЭВМ могли обходиться без холодильных установок, градирен и другой мощной холодильной и вентиляционной техники. Кондиционирование воздуха, создающее комфортабельные условия для людей и аппаратуры, обеспечивалось обычными бытовыми кондиционерами.
      Помимо упомянутых достоинств, полупроводниковые приборы обладали большой надежностью; они реже выходили из строя, почти никогда не «перегорали», так как, собственно говоря, и гореть-то было нечему. Благодаря этому увеличилось время безотказной работы ЭВМ, появилась возможность решения сложных задач, требующих значительного машинного времени.
      Способность полупроводниковых приборов работать при комнатной температуре и их более высокая надежность создавали чрезвычайно удобные и выгодные условия эксплуатации ЭВМ. В самом деле, полупроводниковую машину можно было просто выключать и включать, как телевизор или радиоприемник, только тогда, когда она нужна для работы. Отпадала необходимость в больших ремонтных бригадах, специальных наладчиках и частом профилактическом ремонте. Снижалось потребное число персонала для эксплуатации машины и поддержания ее в работоспособном состоянии. ЭВМ стала более походить на прибор, чем на завод или фабрику.
      Машины второго поколения стали более технологичными, открылись новые возможности для механизации и автоматизации ручного труда при их производстве. Этому способствовало применение печатного монтажа, заблаговременное серийное изготовление типовых полупроводниковых схем (ячеек), возможность унификации размеров и внешней формы как транзисторов и диодов, так и нагрузочных элементов. Все перечисленное приводило к немаловажной особенности — снижению стоимости производства ЭВМ, стоимости ее эксплуатации, ибо уменьшалась численность персонала, занимаемая площадь и потребляемая электроэнергия.
      Среди советских ЭВМ второго поколения наиболее массовой, по-видимому, можно считать вычислительную машину «Минск-22». Она могла выполнять 5 тысяч операций в секунду и имела оперативное запоминающее устройство на ферритах емкостью 8 тысяч чисел. Внешняя память на магнитных лентах — один миллион 600 тысяч чисел. Ввод информации в машину осуществлялся с перфолент и перфокарт, а также с рулонного телетайпа. Устройства вывода информации, кроме выдачи на перфокарты и перфоленты, могли также выдавать данные на телетайп и на алфавитно-цифровое печатающее устройство.
      Более поздняя модель этой серии — «Минск-32» — имела быстродействие 250 тысяч операций в секунду, емкость оперативного запоминающего устройства — 65 тысяч чисел.
      ЭВМ серии «Минск» являются типичными машинами для инженерных и планово-экономических расчетов. Автоматизированные системы управления (АСУ) на предприятиях и в отраслях промышленности часто в качестве основных машин содержат именно «Минск-32».
      Нельзя не остановиться на самой быстродействующей из советских ЭВМ второго поколения — БЭСМ-6 (выпуск 1966 года). Как уже упоминалось, ее скорость достигает одного миллиона операций в секунду. Оперативное запоминающее устройство — 32 тысячи чисел (допустимо расширение до 128 тысяч). Внешняя память — 16 магнитных барабанов по 32 тысячи и 32 лен-топротяжки с емкостью каждой ленты до одного миллиона чисел. Ввод данных осуществляется со скоростью 700 перфокарт в минуту: быстродействующее печатающее устройство дает 400 строк (по 128 знаков) в минуту.
      Машина БЭСМ-6 содержит до 60 тысяч транзисторов и до 200 тысяч диодов. Она является основной ЭВМ для научно-технических расчетов, в том числе уникальных.
      Необходимо отметить, что по методам программирования, организации вычислительного процесса и обмену информацией с внешними источниками машины «Минск-32» и БЭСМ-6 обладают многими качествами машин уже следующего, третьего, поколения и по справедливости могут быть отнесены к промежуточным ЭВМ, несмотря на то, что их элементная база и технология производства остаются характерными для второго поколения.
      Малая ЭВМ «Мир», разработанная Институтом кибернетики Академии наук УССР в 1965 году, имела быстродействие до 8 тысяч операций в секунду, а емкость оперативного запоминающего устройства — 4096 символов. Предназначена она для решения инженерно-конструкторских и математических задач.
      Новая модель «Мир-2» (выпуска 1969 года) обладает эффективным быстродействием уже до 12 тысяч операций в секунду; ее оперативное запоминающее устройство на ферритовых сердечниках емкостью 8192 символа, а ряд ее свойств дает основание считать ее машиной третьего поколения.
      В общем, вычислительные машины на диодно-транзисторных схемах с оперативной памятью на ферритовых сердечниках завоевывали всеобщее признание. Хорошая надежность, обеспечивающая десятки часов безотказной работы, высокая скорость, измеряемая сотнями тысяч операций в секунду, оперативная память в сотни тысяч чисел вызывали симпатии и доверие пользователей.
      Машинное время стало дешевле. Вместе с тем и ЭВМ стали производительнее: за один час вычислений теперь можно произвести в десятки раз больше операций. Машины стали более рентабельными, и к использованию ЭВМ потянулись представители многих новых областей техники и народного хозяйства.
      Специалисты поняли, что громоздкость вычислений теперь уже не является непреодолимым препятствием на пути решения возникающих проблем. Не обязательно упрощать задачу ради простоты вычислений, исключая из нее не только второстепенные факторы, но иногда, как говорится, выплескивая из ванны вместе с водой и ребенка... Теперь можно учесть больше параметров, поставить задачу полнее, глубже проникнуть в суть проблемы и обнаружить новые, неизвестные ранее свойства, открыть затаившиеся особенности изучаемых процессов и явлений. А ведь это и есть не что иное, как прогресс науки и техники! Интенсификация производства в промышленности и сельском хозяйстве!
      — Вот это перспективы! Просто дух захватывает. Теперь можно как следует развернуться!
      — Увы! На пути массового потребителя к ЭВМ встали трудности с программированием! Посудите сами: если раньше программы имели сотни команд, редко когда дело доходило до тысячи, то теперь на каждом шагу их тысячи и десятки тысяч.
      — Так ведь раньше за сложную задачу и браться было опасно, если на выполнение программы нужно сто часов, а машина каждые 2 — 3 часа выходит из строя. Теперь же, с переходом на ЭВМ второго поколения, подобные вопросы просто отпали: давай любую программу и получишь решение!
      — Надо лишь знать где взять эту программу.
      — Разумеется, у программиста!
      — А где взять программиста?
      Вот что писал по данному поводу американский журнал «Тайм» в конце 50-х годов: «Поскольку элек-
      тронные вычислительные машины требуют специального, очень тонкого обращения, возникает новая группа специалистов, осуществляющих контакт с электронным племенем. Они молоды, блестяще образованны, хорошо оплачиваемы, их всегда не хватает. Титулы их необыч-
      ны и звучны, а ответственность велика. Они образовали касту священнослужителей при машинах, намеренно отдаленную от людей обычного уровня. В белых рубашках, спокойные и торжественные, проходят они между рядами бесшумно работающих машин. Любители распутывать всякого рода проблемы, они за завтраком играют в шахматы, во время коктейля решают алгебраические уравнения, а язык, на котором они говорят друг с другом, есть, по мнению многих, не что иное, как средство мистификации окружающих. Глубоко заинте-
      ресованные проблемами логики и чувствительные к ее нарушению в обыденной жизни, они часто раздражают своих друзей, заставляя их перефразировать свои вопросы более логично. Эти люди не удовлетворены успехами машин на Земле и в космосе, они постоянно стремятся расширить их возможности».
      Да, программист весьма дефицитная специальность. Дело это новое, нужного числа программистов не успели подготовить, и не только потому, что упустили этот вопрос из виду, а скорее из-за новизны проблемы: не хватает преподавателей, нет учебных пособий и вообще мало желающих — дело-то неизведанное! Имеющиеся же программисты — люди исключительно капризные.
      Если ты внес мелкое изменение в задачу, они заявляют, что на исправление уйдут недели, что почти готовую программу придется переделывать, писать заново.
      Кроме того, они и страшно медлительные. Посудите сами, опытные программисты способны «сделать» в среднем всего несколько команд за рабочий день. Если программа состоит, например, из 700 команд, а это, вообще говоря, программа не очень сложной задачи, то один программист будет ее разрабатывать три месяца! А что, если привлечь пятнадцать программистов? Можно ли запрограммировать эту задачу за неделю? Оказывается, нет. И вот в чем хитрость.
      Пусть для сооружения здания требуется две тысячи человеко-дней, смогут ли две тысячи человек построить это здание за один день? Конечно, нет! В работе над одной задачей участвуют обычно два, редко три-четыре программиста. При большем их числе организовать четкую совместную работу практически невозможно: стыковать в единое целое куски программ, написанных разными людьми, — большая проблема. Как же тогда быть с задачами, для которых программа содержит 2 — 3 тысячи и более команд? Программировать годы? Число задач растет быстро, лавинообразно. Если сколько-нибудь полно учесть запросы науки и промышленности, армия программистов должна была бы состоять из миллионов людей. А тут еще темпы роста потребностей! Если они сохраняются, то через несколько лет нужно ппевратить в программистов все работоспособное население страны!
      Вот тогда-то и началась борьба за сокращение сроков программирования задач, тяжелая борьба за повышение производительности труда программистов, за облегчение трудоемкого процесса «ручного» программирования!
      Начало этого сражения уходит далеко в глубь истории эры компьютера, нам уже известны первые победы — это создание библиотек стандартных подпрограмм.
      Зачем каждый раз заново программировать вычисление среднего арифметического, степеней, корней, логарифмов, тригонометрических функций, так часто встречающихся в расчетных формулах? Их стали программировать один раз, один раз вводили в память ЭВМ и в дальнейшем пользовались этими стандартными подпрограммами по мере надобности. Это был первый шаг на пути облегчения программирования.
      Принцип стандартных подпрограмм оказался одновременно и плодотворным и перспективным. Первое из этих свойств проявилось немедленно — библиотеки стандартных подпрограмм стали возникать повсеместно и быстро пополняться и расширяться. В разряд стандартных начали относить не только программы вычисления элементарных функций. Попали сюда и многие другие часто встречающиеся процедуры: типовые фрагменты распространенных программ обработки экономической, научной информации и вообще все то, что могло так или иначе пригодиться при программировании новых задач.
      Как известно, в состав арифметических операций ЭВМ, помимо специальных служебных операций, входят только «четыре правила арифметики»: сложение, вычитание, умножение и деление. Эти операции осуществляются специальными электронными схемами, сумматорами, множительными устройствами, инверторами, регистрами сдвига и т. д. И было бы великолепно, если бы все остальные математические действия удалось свести к этим простейшим операциям. Оказалось, что осуществить это вполне возможно.
      Возведение числа в степень сводится, например, к многократному умножению. Для этого используется очень простое правило, известное каждому школьнику: взять число и умножить его на себя столько раз, сколько имеется единиц в показателе степени. Более сложное правило, по сути — совокупность правил, требуется для извлечения, например, квадратного корня из числа.
      Правила или совокупности правил, в соответствии с которыми при помощи конечного числа шагов мы приходим к результату решения задачи, называют алгоритмами. Правила возведения в степень и извлечения квадратного корня представляют собой простейшие алгоритмы. Другими алгоритмами, известными из школьного курса математики, являются правила определения наибольшего общего делителя двух чисел (алгоритм Эвклида), правила определения наименьшего кратного двух чисел и т. д.
      Построение алгоритма решения задачи — запись последовательности действий над числами, данными в условии задачи, которые приводят к решению задачи, — было известно еще в Древнем Китае. Оно оказывается удобным приемом, облегчающим программирование. Если задача представлена в виде алгоритма, остается каждое действие (правило) алгоритма выразить через операции ЭВМ — и программа готова. Это заведомо проще, чем пытаться сразу записать в виде программы для ЭВМ соотношения или уравнения, входящие в задачу в ее первоначальном виде.
      Понятие алгоритма сыграло решающую роль в теории и практике программирования, под действиями (операциями) алгоритма понимаются любые операции и процедуры, выполняемые по ходу решения задачи, а также их любые группы и последовательности. Представление задач в виде алгоритмов получило даже специальное название — алгоритмизация задач.
      Постепенно выкристаллизовался подход, определивший в дальнейшем развитие методов программирования по многим направлениям. Сущность его заключалась в том, что исходный алгоритм решения задачи старались расчленить на такие части, для которых можно надеяться найти стандартные программы в библиотеке. Программирование в таком случае велось в три этапа: 1) расчленение задачи на части; 2) извлечение программ для частей из библиотеки или программирование частей заново, если в библиотеке они не предусмотрены, и 3) стыковка частей в единую программу.
      Метод деления задачи на стандартные части находил все большее распространение и в конце концов получил самостоятельное значение, стал независимым от библиотеки стандартных подпрограмм. В практике программирования начали играть важную роль типовые части алгоритмов, которые позже получили специальные названия блоков и операторов. Первый и третий этапы программирования — расчленение задачи и стыковка частей в единую программу — все более отдалялись от второго и объединялись между собой. В результате программирование превратилось в двухуровневый процесс. На первом, высшем, уровне производилось расчленение алгоритма на части и составление схемы взаимодействия (стыковка) этих частей. На втором уровне — расшифровка блоков или операторов и решение вопросов о распределении памяти, кодировании команд и наилучшей организации самой программы.
      В это время, пока обсуждаемые идеи, как говорится, носились в воздухе, выдающемуся советскому математику Алексею Андреевичу Ляпунову (1911 — 1973 гг.) удалось усмотреть глубокие аналогии между структурой программ и весьма тонкими понятиями функционального анализа — одного из современных направлений высшей математики. Результаты его работ привели к созданию так называемого операторного метода программирования. На базе этого метода появилась возможность полностью автоматизировать процесс программирования, то есть привлечь к составлению программ саму ЭВМ.
      — Это уже что-то новое! Наконец-то машина пошла навстречу человеку!
      — Да, это первый серьезный пример практического использования неарифметических возможностей ЭВМ. Составление операторной схемы, как более творческий процесс, оставалось за человеком, расшифровка же операторов поручалась ЭВМ.
      — Получается, что человек описывает свою задачу на одном языке, удобном ему, а машина сама переводит эту запись на свой «язык».
      — Совершенно верно! Принцип операторных схем алгоритмов был предвестником создания для ЭВМ второго поколения так называемых алгоритмических языков, или языков программирования. Здесь, пожалуй, и раскрылось подлинное «лицо» ЭВМ второго поколения.
      Можно сказать, что ЭВМ в каком-то смысле стала гораздо понятливее. Ее уже не нужно вести за руку, нет необходимости следить за каждым ее шагом. Напротив, можно предоставить ей некоторую свободу действий. Ведь теперь достаточно лишь указать цель, а как дойти до цели кратчайшим путем — машина разберется сама.
      Если раньше для получения среднего арифметического обязательно составлялась специальная программа, то теперь если в процессе вычислений понадобится выполнить усреднение, то в идеальном варианте достаточно просто написать: «усреднить двести пятьдесят тысяч чисел из массива В». По этой команде ЭВМ сама найдет во внешней памяти нашу стандартную программу усреднения, подставит туда нужные числа, сама запишет эту программу вместе с исходными данными в свободную часть оперативной памяти, выполнит ее и доложит об исполнении.
      В данном случае слово «сама» не означает ничего мистического. Конечно же, человек заранее должен наполнить память ЭВМ и соответствующими программами, и научить ее делать эти разнообразнейшие «сама», то есть опять же составить и задать ей программу перевода операторов нашего языка в команды машины. Вся прелесть в том, что сделать это достаточно всего один раз!
      Если научить ЭВМ понимать соответствующий язык, то дальше любой, владеющий этим языком человек сможет свободно «общаться» с машиной. Запись алгоритма решения задачи на языке программирования, безусловно, должна содержать все сведения, необходимые для ее решения на ЭВМ, но эта запись более компактна, наглядна и, кроме того, не перегружена деталями. Она становится похожей на простой человеческий язык. Вот пример!
      Начало
      Для 1: = 1 шагом 1 до 250 000 сделать сумма: = сумма + В (I); ответ: = сумма/250 000;
      Конец
      Впервые увидевшему эту запись, наверное, трудно догадаться, что это программа усреднения «250 тысяч чисел из массива В». Записана она по правилам, принятым в языке АЛГОЛ (ALGOL — расшифровывается как ALGOritmic Language, что в переводе с английского означает просто — алгоритмический язык).
      АЛГОЛ, пожалуй, наиболее известный из машинных языков. Потребовалось немало усилий, чтобы наконец в 1960 году в Париже на специальном международном форуме принять АЛГОЛ-60 как Международный универсальный алгоритмический язык. На АЛГОЛе можно описывать практически любые вычислительные задачи; в этом смысле он является универсальным. Называя его алгоритмическим, создатели хотели подчеркнуть, что, помимо утилитарных целей составления и реализации конкретных машинных программ, АЛГОЛ служит удобным средством описания алгоритмов вообще (не только для целей программирования), средством накопления, обмена алгоритмами. Его иногда называют Алгоритмическим языком публикаций. Он по праву считается международным языком общения, так как служит своеобразным эсперанто программистов всех стран.
      В 1968 году была опубликована новая версия АЛГОЛа — АЛГОЛ-68, который является, пожалуй, даже слишком универсальным. На нем можно описывать любые алгоритмы, даже не связанные с ЭВМ, например, «Алгоритм получения серной кислоты». Но эта универсальность пока не привлекла широкого потребителя.
      Наиболее распространенным в области конкретных инженерных расчетов является язык ФОРТРАН (это английское сокращение можно расшифровать приблизительно как ФОРмульный ТРАНслятор). Из известных языков программирования он, пожалуй, первый. Его разработали еще в 1965 году в США сотрудники фирмы IBM. Наглядность, простота изучения, удобство компоновки общей программы из частей, а также близость «словаря» ФОРТРАНа к языку формул — традиционному языку инженеров и технических работников — завоевали ему заслуженную популярность. По имеющимся зарубежным данным, более 80 процентов инженерных расчетов ведется сейчас на ФОРТРАНе. За двадцать лет применения ФОРТРАНа накопилось огромное число разнообразнейших программ. Этот фонд
      является солидным «капиталом», приобщиться к которому стоит любому программисту.
      Среди распространеннейших языков программирования находится и язык КОБОЛ (COBOL — COmputer Bisnes Oriented Language) — машинный язык, ориентированный на решение деловых экономических задач. Предназначен он для описания процедур обработки данных, операций над большими массивами информации и т. п. КОБОЛ является основным языком обработки экономической информации, автоматизации управления в народном хозяйстве и других деловых расчетов.
      Наряду с АЛГОЛом, ФОРТРАНОМ и КОБОЛом существуют и другие языки универсального назначения: СИМУЛа, ПЛ-1, а также множество специализированных языков, ориентированных на описание более узких классов задач.
      Для перевода алгоритма решения задачи с языка программирования на язык машины (преобразование алгоритма, записанного на алгоритмическом языке, в эквивалентный алгоритм, представленный в виде последовательности команд ЭВМ) служит специальная программа — транслятор (переводчик). Транслятор, или, как его еще называют, программирующая программа, совмещает в себе функции распознавания операторов исходного языка, идентификации (установления идентичности) их соответствующим последовательностям команд ЭВМ, записи и «редактирования» программы на языке ЭВМ.
      Транслятор читает текст, записанный, например, на АЛГОЛе. Не раз и не два он «проходит» его насквозь, выполняя одну за другой разнообразные смысловые операции. Например, сначала анализируется структура текста, затем определяются отношения между входящими в него символами и так далее.
      Транслятор работает так, словно играет в известную игру, в которой требуется превратить слово «муха» в слово «слон», последовательно меняя в слове всего по одной букве. Каждый блок транслятора производит с текстом задачи лишь одну определенную группу преобразований. Следующий блок должен получить в наследство полностью «причесанный» текст. В результате многократной утюжки на месте «мухи» — программы на АЛГОЛе — появляется «слон» — та же задача, но представленная в виде машинных команд.
      Трансляторы бывают двух типов: компилирующий и интерпретирующий.
      Транслятор компилирующего типа дает возможность получить всю программу заранее, до того как с ее помощью будет решаться задача. Эта операция внешне напоминает машинный перевод с одного языка на другой.
      Интерпретирующий транслятор осуществляет перевод в процессе решения задачи пооператорно. Такое преобразование носит характер интерпретации, то есть непосредственного «толкования» операторов алгоритмического языка на языке команд ЭВМ! Это можно пояснить на таком примере. Допустим, два человека получили письменные приказы на иностранном языке. Один, более терпеливый (компилятор), перевел весь приказ целиком и только потом начал его выполнять. Другой — нетерпеливый (интерпретатор) — переводит маленькими понятными кусочками и тут же выполняет переведенные инструкции. Конечно, нетерпеливый выполнит некоторые части приказа раньше, зато у терпеливого сам перевод будет лучше, может быть, им смогут воспользоваться и другие.
      Так происходит и в машине. Компилирующие трансляторы дают более качественные программы для последующего использования; интерпретирующие системы предназначены в основном для решения одноразовых задач.
      Транслятор, как это можно заметить, весьма хитрая программа, — средний транслятор содержит порядка 20 — 25 тысяч команд. Но это, как говорится, не предел. Ведь он не просто должен уметь переводить с АЛГОЛа, он обязан делать это не хуже, чем средний программист. Первые программы, созданные машинами, были в три-пять раз длиннее программ, составленных человеком. Это значит, что выполнение их должно занять примерно во столько же раз больше времени. Иными словами, вместо одной машины потребовалось бы соответственно три или пять таких же машин.
      Один из первых в нашей стране трансляторов с АЛГОЛа создан в Вычислительном центре Сибирского отделения АН СССР. Это знаменитая система АЛЬФА. Ее создатели не без гордости показывают посетителям отчет о деятельности Вычислительного центра. В нем есть такие слова: «Применение системы АЛЬФА по сравнению с другими системами автоматического программирования, по крайней мере, вдвое сберегает машинное время на решение того же количества задач». Из пятидесяти тысяч команд, а именно столько их в АЛЬФЕ, сорок тысяч служат улучшению программы, то есть сокращению числа операций. Опытный программист, соревнуясь с АЛЬФОЙ, может добиться с помощью своего богатого опыта и интуиции, такого же результата, лишь потратив на получение программы значительно больше времени.
      Существуют и более сложные трансляторы, которые сами способны исправить неверную программу, то есть выполнить функции так называемой автоматической отладки программ. Они способны «заметить» в тексте программы, записанной на алгоритмическом языке, ошибки, помарки, описки и сообщить об этом программисту. Разумеется, речь идет только об ошибках относительно так называемого синтаксиса языка, то есть совокупности правил записи операторов, обеспечивающих однозначность их понимания. Если в программе написано: «дабавить ложку дегтя», машина заметит ошибку и заменит А на О, но, к сожалению, не заменит слово «деготь» на «мед».
      Принцип трансляции позволяет реализовать на разных ЭВМ один и тот же алгоритм, записанный на конкретном алгоритмическом языке. Для этого, конечно, нужно иметь на всех «разных» ЭВМ трансляторы с данного конкретного языка. Поэтому, чтобы прочно стать на ноги, каждая машина должна обзавестись трансляторами по крайней мере с наиболее распространенных алгоритмических языков. Кроме того, приобретая новую ЭВМ, неплохо иметь к ней и один-два специализированных языка со своими трансляторами.
      Чтобы представить, во что выливается подобная проблема, перечислим только названия наиболее часто встречающихся языков достаточно универсального назначения. Это известные нам АЛГОЛ, ФОРТРАН, КОБОЛ, а также АЛГЭК, АЛГАМС, МАД, ДЖОВИАЛ,
      СИМСКРИПТ, СИМУЛА, слэнг, пл, нэдис, GPSS, ОМЕГА и т. д. и т. п. Как видно, в области алгоритмических языков также ощущаются последствия Вавилонского столпотворения. Но, кроме того, каждый тип ЭВМ, имеющий свою систему команд, нуждается еще и в своем трансляторе с одного и того же языка.
      Более того, даже ЭВМ одного, так сказать, семейства: БЭСМ, БЭСМ-4, БЭСМ-6 или «Минск-1», «Минск-2», «Минск-22», «Минск-32» — нуждаются каждая в своем трансляторе. Вот и получается, что даже для этого неполного перечня (15 языков и 7 машин) понадобится ни много ни мало, а 95 трансляторов. Есть о чем задуматься! Особенно тем, кто должен обеспечивать машины трансляторами, — программистам.
      Программисты действительно задумались и, решив вышибить клин клином, придумали такую хитрость, как промежуточный язык! Зачем же еще один язык? Их и так много.
      Но стоит лишь сделать небольшой подсчет, и все станет ясно. Для приведенного выше примера понадобится 15 трансляторов с 15 алгоритмических языков на промежуточный плюс 7 трансляторов с промежуточного языка на 7 типов ЭВМ, итого лишь 22 транслятора — экономия больше чем в 4 раза!
     
      ЭВМ ТРЕТЬЕГО ПОКОЛЕНИЯ
      — Как, еще одно поколение?! Ведь машины второго поколения только-только успели войти в жизнь. Еще не решены многие и многие связанные с ними проблемы — и уже в тираж!
      — Так уж устроена жизнь. Однажды получив толчок, какая-либо идея дальше развивается самостоятельно, по своим законам, не оглядываясь назад. Так, родившись еще в недрах второго поколения, идея применения полупроводниковых приборов породила так называемые интегральные схемы.
      — При чем здесь интеграл?
      — Интеграл, конечно, ни при чем, просто интегральный — значит цельный, единый. Интегральная схема по размерам не превосходит обыкновенный транзистор, но в ней и триоды, и диоды, и сопротивления, и вообще все необходимые элементы содержатся в одном кристалле!
      — Значит, ЭВМ третьего поколения — это вычислительная машина на интегральных схемах?
      — Если совсем кратко, то да!
      Оказалось, что все элементы электронной схемы: и диоды с транзисторами, и конденсаторы, и резисторы можно изготовить из одних и тех же материалов (кристаллов полупроводника, металлов, диэлектриков), при помощи одних и тех же технологических операций, на одном и том же производственном оборудовании. Как известно, рабочей областью полупроводникового прибора является пограничная поверхность между кристаллическим полупроводником и металлом. Для создания такой поверхности стала применяться технология напыления металла в вакууме (термического или с помощью ионной бомбардировки).
      Если говорить о массовом производстве полупроводниковых приборов, то вряд ли возможно осуществить эти сложнейшие технологические процессы вручную. Неизбежно это привело бы к слишком большому «разбросу» характеристик выпускаемых элементов и высокой стоимости производства. Поэтому в электронной промышленности были созданы и внедрены специальные автоматизированные технологические линии, станки-автоматы и агрегаты с автоматическим управлени- . ем. Только благодаря автоматизации производства и удалось обеспечить достаточную однородность характеристик полупроводниковых приборов в ЭВМ второго поколения.
      Конечно, желаемое качество изделий было достигнуто не сразу. По мере накопления опыта и тщательной организации подготовки кадров удалось в конце концов наладить серийное производство в высшей степени миниатюрных и высококачественных полупроводниковых элементов. Размеры их исчислялись буквально миллиметрами; были созданы также миниатюрные конденсаторы, резисторы и другие нагрузочные элементы. С освоением столь миниатюрных полупроводниковых приборов появилась надежда значительно увеличить плотность монтажа электронной аппаратуры. Этому способствовало то обстоятельство, что на смену монтажу с использованием навесных проводов с соединениями при помощи пайки пришел так называемый печатный монтаж, при котором соединения создаются путем контактной печати из специального состава.
      Печатный монтаж коренным образом изменил ситуацию в области миниатюрной электронной аппаратуры. Совершенно другой вид приобрела технология изготовления электронных схем: вместо кропотливого и утомительного труда сотен монтажников, с паяльником в
      руках собирающих сложные схемы ЭВМ первого поколения, оказалось возможным использовать работу точных, неутомимых и высокопроизводительных станков-автоматов.
      Следует заметить, что автоматизация монтажа электронных схем, особенно при индустриальной постановке дела (унификация и типизация, предварительная заготовка деталей и печатных плат, выпуск больших партий и т. д.), позволила также заметно снизить стоимость изделий, отчего и ЭВМ стали намного дешевле.
      Однако на пути дальнейшей миниатюризации электронных схем, построенных даже из микроскопических элементов, серьезной преградой оказалось устарелое их конструктивное оформление. Проектировщики обратили внимание, что существенную долю объема схемы занимали «нерабочие» части: корпус, входные-выходные контакты отдельных элементов, монтажные соединения, межэлементные промежутки и т. п. Все это препятствовало повышению «плотности» даже в случае печатного монтажа и технологии напыления. Вот тут и возникла мысль: а нельзя ли «напылить» все элементы, необходимые для построения заданной электронной схемы, на поверхности одного и того же полупроводникового кристалла вместе со всеми необходимыми соединениями?
      Но легко сказать — возникла мысль. А сколько потребовалось усилий и времени, чтобы эта плодотворная идея материализовалась в виде нового электронного прибора — интегральной схемы.
      В интегральной схеме все компоненты и соединения изготовлены на общей «подложке», так называемом монокристалле; для ее изготовления используется единый технологический цикл, а полученный элемент герметизируется в одном корпусе, как раньше отдельный транзистор.
      Процесс изготовления интегральной схемы поистине микроскопичен. Сводится он к созданию в теле миниатюрного кристалла зон (участков) с различной концентрацией проводящих материалов. Комбинации их в соответствующих сочетаниях составляют транзисторы, диоды, резисторы, конденсаторы, сопротивления и другие элементы, образующие в совокупности схемы заданного функционального назначения, скажем, триггерную ячейку. Зоны имеют выход на поверхность кристалла, где при помощи пленочных металлизированных дорожек и соединяются между собой отдельные участки. На поверхности напыляются также и некоторые пассивные, нагрузочные элементы электронной схемы. Степень, так сказать, интеграции схемы характеризуется числом первичных элементов — диодов, транзисторов, конденсаторов и т. д., — «напыляемых» на одном кристалле. Для логических схем она достигает десятков, а для регистров, счетчиков и сумматоров — сотен элементов на кристалл.
      Очевидно, что отсутствие межэлементных контактов и открытых монтажных соединений является гарантией высокой надежности интегральных схем. Поэтому ЭВМ третьего поколения работают десятки и сотни тысяч часов безотказно. При этом быстродействие интегральных схем достигает миллионов операций в секунду, а потребляемая мощность — всего несколько тысячных долей ватта.
      При изготовлении вычислительных машин на интегральных схемах технология производства играет, как это видно, еще большую роль, чем в ЭВМ на полупроводниковой технике. Для получения высоконадежных и дешевых интегральных схем принимаются специальные меры: вся технология должна быть автоматизированной и групповой. Это означает, что данная технологическая операция выполняется не над одним кристаллом или схемой, а над целым массивом однотипных микроэлектронных элементов для десятков и сотен интегральных схем.
      Массовое производство интегральных схем осуществляется крупными сериями, предназначенными для создания тех или других видов аппаратуры: для вычислительной техники, для радио- и телевизионных приемников.
      Согласованные между собой по электрическим параметрам типы интегральных схем монтируются на печатных платах стандартных размеров и составляют так называемую «систему первичных элементов» для построения того или другого вида средств электронной техники. Эти первичные элементы часто называются типовыми элементами замены — ТЭЗами. Дело в том, что ремонтировать электронные устройства на интегральных схемах в обычном смысле этого слова — бесплодная затея. Ремонт здесь сводится к простой замене вышедшего из строя типового элемента новым. И это понятно, ведь «исправить» вышедший из строя интегральный элемент гораздо сложнее, а главное — дороже, чем изготовить новый.
      — Скажите, сколько достоинств принесли вычислительной технике интегральные схемы!
      — Да. Во-первых, миниатюризацию: ЭВМ третьего поколения стала не больше письменного стола. А все вспомогательное оборудование умещается на 15 — 20 квадратных метрах.
      — Стало быть, машина обретает вполне «человеческий вид» и из многоквартирного дома, который занимал электронный монстр первого поколения, перебралась в комнату!
      — Совершенно верно. Во-вторых, для ее питания теперь достаточно всего несколько киловатт.
      — Смотрите, и электричества нужно как на одного человека!
      — Если продолжить сравнения, то ЭВМ третьего поколения стала «человечнее» и внутренне: ее электронный мозг перерабатывает теперь не только числа, но и слова, фразы, тексты, то есть, как говорят, оперирует алфавитно-цифровой информацией.
      По надежности ЭВМ третьего поколения также оказались вполне на уровне других видов современной электронной аппаратуры: телевизоров, радиоприемников, магнитофонов, и теперь уже без всяких натяжек на них можно смотреть как на электронные приборы.
      То, что габариты, потребляемая энергия и вес ЭВМ третьего поколения резко уменьшились, позволило использовать их в бортовых системах управления и навигации. ЭВМ третьего поколения нередко можно увидеть на кораблях и подводных лодках, а наиболее миниатюрные из них — на самолетах, космических кораблях и искусственных спутниках Земли!
      При создании ЭВМ на интегральных схемах не ставилась задача побить рекорд быстродействия. Скорость выполнения операций выбиралась исходя из назначения машины данного типа. Тем не менее существуют образцы ЭВМ третьего поколения с быстродействием до двух и более миллионов операций в секунду. В состав операций, выполняемых ЭВМ третьего поколения, входят не только арифметические операции над числами и логические операции, производимые ЭВМ первого и второго поколений, но и более крупные преобразования массивов информации. Сущность их нельзя постичь, не уяснив изменения самого понятия «элемент информации», происшедшие в машинах третьего поколения.
      Как уже говорилось, двоичной единицей информации является бит. Во многих ЭВМ третьего поколения используется группа из шести-восьми бит, которую ЭВМ воспринимает как неделимую при передаче, хранении и многих других операциях. Она получила название байт (английское byte — слог).
      Использование байтов чрезвычайно упрощает согласование отдельных процессов обработки информации в ЭВМ. Байты удобны не только для представления десятичных цифр (обычно по две цифры в байте), но также и букв разных алфавитов или других специальных знаков. Каждый символ (знак, буква) занимает один байт, его восемь двоичных разрядов как раз и позволяют изобразить двоичными кодами достаточное количество разнообразных символов.
      Совокупность некоторого числа байтов (обычно 4 — 8) представляет собой так называемое машинное слово, которое все еще может восприниматься ЭВМ как единое целое.
      Уже не просто числа, а машинные слова хранятся в оперативном запоминающем устройстве, перерабатываются в арифметическом устройстве и устройстве управления. Примерами машинных слов служат команды, из которых состоит программа для ЭВМ, числа, а также буквенно-цифровая информация — слова документов, над которыми выполняются машинные операции.
      Машины третьего поколения имеют специальные команды, соответствующие операции над машинными словами: формирование текстов из отдельных слов, операции редактирования, поиска, компоновки и другой переработки текстов. Это делает их хорошо приспособленными к переработке обычных человеческих документов, с их помощью можно автоматизировать документооборот, обрабатывать большие массивы технологической, статистической и экономической информации.
      Особенность циркулирующей в ЭВМ информации обусловила специфику построения памяти машин третьего поколения. Внутренняя память содержит электронное сверхбыстродействующее запоминающее устройство небольшого объема (всего несколько сотен байтов), а также оперативное запоминающее устройство на миниатюрных ферритовых сердечниках, емкость которого достигает нескольких сотен тысяч и миллионов байт. Но даже этих миллионов не хватает для хранения той кипы документов, которую приходится обрабатывать теперь машинами. Поэтому в третьем поколении ЭВМ чрезвычайно велика роль внешней памяти.
      Внешняя же память современных компьютеров поистине неисчерпаема! Помимо известных нам накопителей на магнитных лентах, которые теперь достигли объема до 20 миллионов байт на одну «лентопротяжку», имеются еще и накопители на магнитных дисках, о которых стоит сказать несколько слов.
      Магнитные диски, как видно даже из их названия, совмещают в себе известный принцип магнитной записи и считывания информации и новую структуру организации памяти — структуру дискотеки. Если попытаться проанализировать, что удобнее — магнитофон или электропроигрыватель, то можно заметить, что главное достоинство проигрывателя в том, что любая запись на пластинке (диске) легкодоступна, в то время как на магнитофоне, прежде чем отыщется нужная запись, придется порядком помотать ленту. Накопитель на магнитном диске представляет собой набор нескольких дисков, нанизанных на один стержень на некотором расстоянии друг от друга. Между дисками ходят головки для записи и считывания информации. Таким образом, накопитель — это целая дискотека доступных для одновременного считывания дисков. Емкость даже одного диска огромна — до сотен миллионов байт.
      По надежности и скорости обмена дисковая внешняя память не имеет себе равных и не уступает даже скоростной памяти на магнитных барабанах.
      В заключение нужно отметить еще одну интересную особенность: ЭВМ третьего поколения выпускаются теперь целыми «семействами». Этот вполне официальный термин означает совокупность так называемых программно-совместимых моделей различного назначения, обладающих разными возможностями, но выполненных на одной и той же элементной и конструктивно-технологической базе. В настоящее время наиболее известны два семейства ЭВМ третьего поколения: ИБМ-360 и ЕС ЭВМ.
      Специалистами стран — участниц СЭВ: Болгарии, Венгрии, ГДР, Польши, СССР и Чехословакии — создана Единая система (ЕС) ЭВМ третьего поколения. ЕС ЭВМ представляет собой семейство программно-совместимых электронных цифровых машин, в которое входят
      ЭВМ ЕС-1010, ЕС-1020, ЕС-1030, ЕС-1040, ЕС-1060 и т. д.
      Быстродействие процессоров ЕС ЭВМ охватывает диапазон от нескольких тысяч до миллионов операций в секунду. Программная совместимость всех ЭВМ семейства характеризуется тем, что программы, составленные для ЭВМ с меньшим быстродействием, могут быть реализованы на ЭВМ с большим быстродействием. Это достигается единством структуры ЭВМ, в частности, состава команд и системы кодирования данных.
      Модель ЕС-1010 представляет собой мини-машину, имеющую быстродействие 10 тысяч операций в секунду, разработанную и производимую в Венгерской Народной Республике. Эта машина успешно применяется для управления быстротекущими процессами, а также как самостоятельное средство для инженерных и экономических расчетов.
      Модель ЕС-1020 относится к промежуточному типу между малыми машинами и машинами среднего класса. Ее быстродействие — 20 тысяч операций в секунду. Оперативная память имеет объем 64 тысячи бит, или, иначе, 16 тысяч 32-разрядных «машинных слов». Внешняя память создана с использованием магнитных лент и дисков. К этой машине может быть подключено до 112 каналов для связи с абонентами. Она разработана советскими специалистами. Используются ЕС-1020 в АСУ производством и технологией небольшого масштаба.
      Модель ЕС-1030 является ЭВМ уже средней производительности. Она имеет среднее быстродействие порядка 100 тысяч операций в секунду. Объем оперативной памяти до 512 тысяч байт. ЭВМ ЕС-1030 разработана специалистами Советского Союза и Польской Народной Республики.
      Модель ЕС-1040 имеет быстродействие 300 тысяч операций в секунду. Объем оперативной памяти — от 256 тысяч до одного миллиона 24 тысяч байт. Она разработана специалистами Германской Демократической Республики. Машины типа ЕС-1030 и ЕС-1040 применяются для обработки экономической информации, а также в АСУ широкого назначения.
      Модель ЕС-1060 относится к высокопроизводительным ЭВМ. Быстродействие до полутора миллионов операций в секунду. Объем оперативной памяти от одного миллиона 24 тысяч до 8 миллионов 192 тысяч байт. Эта ЭВМ разработана специалистами Советского Союза. Модель приспособлена для работы с многими внешними устройствами в системах автоматизированного управления и коллективного пользования. Эти машины могут быть соединены между собой в многомашинные вычислительные комплексы. ЭВМ ЕС-1060 может иметь свыше 400 каналов, к которым подключаются устройства внешней памяти на магнитных лентах, магнитных дисках или различные внешние устройства.
      — 400 каналов! Зачем же столько, наверное, про запас?
      — Отнюдь! Столько разнообразных устройств ввода и вывода информации может быть подключено к ЭВМ!
      — Но к чему же такая уйма устройств, ведь всего-то нужно ввести одну колоду перфокарт!
      — Ну что вы! Информация теперь поступает в
      ЭВМ по каналам телефонной, телеграфной и даже радиосвязи! Это важнейшая особенность третьего поколения!
      Современные компьютеры находятся в центре паутины оплетающих их линий связи. Они способны к широкому обмену данными с абонентом, удаленным на сотни километров, и даже к «диалогу».
      Сейчас смешно вспоминать то время, когда ввод программ и исходных данных в ЭВМ осуществлялся лишь с перфоносителей (перфокарт и перфолент). Хотя скорость ввода была сравнительно высокой — от десятков строк в минуту для механических устройств до сотен строк в секунду для фотоэлектрических и других бесконтактных устройств, — узким местом оказывалась подготовка перфоносителей. Существовавшие в то время механические перфораторы позволяли наносить информацию со скоростью всего нескольких знаков в секунду.
      Такая система ввода данных абсолютно не соответствует назначению и условиям применения ЭВМ третьего поколения. Правда, причина здесь не только в самой скорости ввода, хотя это и очень важно, а в том, что ЭВМ третьего поколения, чтобы удовлетворять своему назначению, должны иметь средства ввода самых различных типов.
      Перед инженерами вставали очевидные вопросы: стоит ли для ввода оперативной информации в ЭВМ (команд, инструкций) пользоваться перфокартами? Зачем между клавиатурой перфоратора и памятью машины нагромождены такие преграды: перфокарта набивается, затем ее несут на машину, вставляют в считывающее устройство, включают его, и только тогда информация вводится в оперативную память? Не удобнее ли будет вводить информацию с клавиатуры сразу в ЭВМ?
      Так в машинный зал пришли телетайпы. Вообще-то телетайп — это телеграфный аппарат. Он похож на пишущую машинку, имеет клавиатуру — 31 буква русского алфавита плюс 26 букв латинского алфавита, 10 цифр, знаки препинания, служебные знаки и т. д. — и позволяет любой из этих знаков не только напечатать на бумаге, но и передать в виде специальной комбинации электрических сигналов в линию связи. Подразумевается при этом, что на другом конце линии стоит такой же телетайп, выполняющий обратную операцию: по электрическим сигналам печатает в виде букв, цифр и знаков на бумажном рулоне весь передаваемый текст. Если подключить телетайп к одному из каналов ЭВМ, оборудовав его при этом кодирующим устройством, то текст будет «печататься» не на бумаге, а прямо в памяти машины.
      Таким образом, телетайпы теперь стали фактически пультами ЭВМ. Они могут стоять в соседних комнатах, соседних зданиях, в других городах, в других странах за сотни и тысячи километров. Для работы с ними ЭВМ третьего поколения и снабжены так называемыми устройствами ввода данных с каналов связи. Они преобразовывают приходящие электрические сигналы в форму, пригодную для ввода в ЭВМ.
      Телетайп, очевидно, служит и отличным устройством вывода информации. Для этого нужно только перекодировать информацию, предназначенную для вывода, в форму, которую может принять соответствующий канал связи. Далее по каналу она поступит в приемную часть телетайпа, удаленного, может быть, на много километров, и там, возбудив печатающее устройство, появится в виде привычного текста перед глазами совсем не удивляющегося этому чуду человека.
      Не правда ли, отличная штука — телетайп? Будучи одновременно и устройством ввода и устройством вывода, он служит как бы промежуточным звеном — средством «диалога» — между ЭВМ и человеком. Благодаря телетайпам впервые удалось обеспечить работу на ЭВМ абонентам, удаленным от ЭВМ на многие километры. Из-за этого чрезвычайно расширилась сфера применения ЭВМ, и расширилась она не только в прямом смысле, то есть на эти самые сотни километров, но и принципиально. В изобилии стали появляться разнообразнейшие информационные системы: справочные, библиотечные, системы управления предприятиями, отраслями и т. п.
      Телетайпы, или, как их стали называть, выносные пульты ЭВМ, постепенно обрастали и другими устройствами и со временем превратились в терминалы, или автоматизированные рабочие места абонентов.
      Терминал — это, если говорить формально, комплекс средств взаимодействия человека с ЭВМ. В этот комплекс входят и телетайп, и устройство ввода данных с перфокарт и магнитных лент (ведь не очень-то удобно каждый раз перепечатывать на телетайпе какой-нибудь большой архив), и различные табло, и экраны, и, наконец, устройства отображения на электронно-лучевых трубках. Такой терминал может быть оборудован даже собственной небольшой ЭВМ, этакой мини-машиной, в задачу которой входит, как сейчас принято говорить, «интеллектуализация» этого внешнего устройства. С такой машиной терминал становится умнее, интеллектуальнее. Он может запоминать и преобразовывать уже введенную информацию, взяв на себя часть рутинной вычислительной работы большой ЭВМ, может помогать человеку формировать нужную информацию, а также растолковывать ему суть выводимых сведений.
      Рассказывая об устройствах ввода, нельзя не остановиться на удивительном изобретении — световом карандаше! Только внешне это электронно-оптическое устройство напоминает карандаш, однако как и простым карандашом на бумаге, так и световым карандашом на экране электронно-лучевой трубки можно писать, рисовать, чертить. Вдобавок электронный карандаш позволяет стирать написанное, передвигать, уменьшать и увеличивать в размерах рисунок, сжимать, вытягивать чертеж — в общем, вытворять с ним любые
      манипуляции. Однако суть «электронного пера» не в этом.
      Сила его заключается в том поразительном факте, что все эти манипуляции происходят в памяти машины, то есть вводятся непосредственно в ЭВМ: информация возникает, исчезает, меняется, перекомпоновывается. Говорят, что в такой графической системе между карандашом и экраном находится сама ЭВМ: если человек провел линию небрежно, машина проведет ее на экране точно, типовые элементы — круги, прямоугольники, специальные символы и т. п. — она распознает и вычертит идеально правильно. Она даже в состоянии не реагировать на линии, так сказать, не имеющие смысла в ходе ведущейся работы, и заставить ее без специального сигнала «исчеркать» только что выполненный аккуратный чертеж не удастся.
      Возможности использования световСго карандаша поистине безграничны. Нарисовал химик на экране терминала структуру белковой молекулы — машина сейчас же подсчитала и выдала молекулярный вес, физические и химические свойства. Добавил несколько радикалов — машина мгновенно произвела перерасчет. Нарисовал дизайнер на экране контуры нового автомобиля и компоновку его узлов — ЭВМ рассчитала сопротивление воздуха, нашла центр тяжести, проверила переворачиваемость и все эти цифры высветила на экране. При желании можно даже изобразить в виде последовательных картинок (с любым заданным шагом) процесс разрушения данного автомобиля в результате удара о каменную стену. А вот последние примеры из этой серии: японские модельеры проектируют с помощью цветных графических систем индивидуальные (по нарисованной фигуре) наряды, а австрийские художники создают оригинальные мультипликационные фильмы.
      С помощью светового карандаша эффективность диалога человека с ЭВМ возрастает исключительно. Это уже не старые приемы: ввел, подождал, разобрался с результатом, исправил; ввел, подождал... и т. д. Пользователь «спорит» с машиной, вмешивается в решение задачи. по ходу дела, корректирует задание, направляя процесс решения в ту или иную сторону.
      Объединение светового карандаша, экрана и телетайпа обычно называют дисплей (от английского display — показ). Дисплей и составляет главную часть современного терминала.
      Кроме перечисленных выше устройств, являющихся обязательными устройствами универсального назначения, можно отметить и ряд новых перспективных средств ввода данных в ЭВМ. Это прежде всего читающие автоматы.
      Читающий автомат также относится к разряду электронно-оптических устройств и способен воспринять информацию с печатного и даже рукописного текста и перекодировать ее в требуемую для записи в оперативную память форму. Принцип действия автомата основан на методах теории распознавания образов.
      Каждая буква текста есть не что иное, как сочетание вертикальных, горизонтальных и наклонных темных линий на светлом фоне. Каждое индивидуально неповторимое сочетание линий, свойственное определенной букве, хранится в памяти автомата. Сопоставляя эти сочетания со строением распознаваемого знака, автомат «узнает» букву и вырабатывает соответствующий сигнал для ввода данных в машину.
      Наиболее близкое нам применение читающих автоматов связано с переработкой почты. Сравнительно недавно на всех конвертах появились специальные метки для почтовых индексов. Указание индекса позволяет использовать для чрезвычайно утомительной работы — сортирования почты — специальный автомат.
      Читающие автоматы позволяют вводить информацию в ЭВМ со скоростью сотен знаков в секунду. Но надо отметить, что еще недостаточно широкое использование читающих автоматов связано, по-видимому, с невысокой надежностью распознавания, особенно для нестандартных шрифтов.
      В последние годы проводятся успешные эксперименты по вводу и выводу информаций в ЭВМ «с голоса». Разработаны устройства распознавания речевых сигналов и их кодирования. Этот вид обмена данными не нашел широкого применения в ЭВМ третьего поколения скорее всего из-за отсутствия серьезных потребностей в нем, а не по каким-либо техническим причинам. Однако его использование представляет несомненный интерес.
      Говоря об ЭВМ третьего поколения, нельзя обойти молчанием и механические средства графического представления информации для выдачи ее из ЭВМ. Речь идет о так называемых графопостроителях. С их помощью обеспечивается вычерчивание графиков, иллюстрирующих результаты расчета на ЭВМ, изготовляются технические чертежи, рисунки и другие графические материалы, которые относятся непосредственно к решению той или иной задачи. Например, современный графопостроитель сравнительно быстро и аккуратно создаст чертеж, который можно сразу выдать в производство, изобразит сложную объемную фигуру или нарисует географическую карту.
      Количество разнообразнейших устройств вывода и ввода информации в ЭВМ третьего поколения настолько велико, что отразить их все вряд ли удалось бы и в специальной книге. Ведь компьютер третьего поколения — это поистине электронный полиглот — так много разного рода «языков» способен он понимать; так многим техническим и биологическим «собратьям по разуму» способен он говорить на их «родном языке».
      — Наверное, получится страшная неразбериха, если все эти устройства по всем 400 каналам начнут одновременно передавать информацию в ЭВМ.
      — Так бы оно и случилось, если бы речь шла о первом и даже втором поколениях ЭВМ. И здесь мы с вами приступаем к самому главному, к тому, без чего самый совершенный компьютер не может считаться машиной третьего поколения! И этим новым фактором является особая роль математического обеспечения, или, как его называют, программного хозяйства, ЭВМ.
      Математическое обеспечение ЭВМ — это и специальная организация вычислительного процесса (операционная система), и разнообразные языки программирования с трансляторами, и вообще любые средства, предназначенные для использования всех возможностей аппаратуры ЭВМ в целях наилучшего и наискорейшего решения задач.
      Элементы математического обеспечения зародились еще в недрах машин первого и второго поколений — это стандартные программы и алгоритмические языки. Однако при переходе к третьему поколению затраты на разработку математического обеспечения колоссально возросли. Если в 50-е годы расходы на программное
      хозяйство составляли каких-нибудь 5 — 10 процентов от общих затрат на разработку новой ЭВМ, то к 1970 году эта доля составляла уже 70 — 80 процентов. Как же произошли эти перемены?
      Вытекают они из возросшей производительности ЭВМ. Действительно, высокое быстродействие электронных устройств на полупроводниковых и интегральных схемах позволило сравнительно легко достичь большой скорости работы проектируемых ЭВМ. Более того, появились даже некоторые «резервы» быстродействия. Это привело к несколько неожиданному эффекту: стало мод-
      ным перекладывать на арифметическое устройство, точнее говоря, на процессор ЭВМ, такие функции, для которых машины младших поколений имели специальную аппаратуру. Стоит ли, например, создавать дополнительную аппаратуру для перевода чисел в другую систему счисления, когда это преобразование по соответствующей программе может выполнить процессор ЭВМ? Или зачем строить специальные схемы формирования информации для выдачи из ЭВМ в каналы связи, если для этого достаточно составить несколько новых программ?
      Число таких примеров стало расти. И это понятно: ведь чем больше скорость работы машины, тем больше, без ущерба для решаемых задач, можно поручить ЭВМ дополнительных функций. Кроме того, стремление к более полной загрузке оборудования и более полному использованию возможностей электронных схем потребовало специальной организации вычислительного процесса.
      Все это привело к очень тесному переплетению в ЭВМ третьего поколения функций так называемой «аппаратурной логики» (схемных решений) и «программированной логики» (программного хозяйства).
      Данное обстоятельство коренным образом изменило соотношение сил между специалистами по электронной технике и математиками в коллективах, занимающихся созданием новых ЭВМ. А в вычислительных центрах стали говорить не только о «технической эксплуатации», но также и о «математической эксплуатации ЭВМ», о математическом обеспечении ее работоспособности!
      Математическое обеспечение — это, так сказать, подводная часть айсберга ЭВМ. Видимая глазом аппаратура составляет приблизительно десятую часть сути современного компьютера. Девять десятых, то есть все программное хозяйство, хранящееся в памяти машины на лентах и дисках, скрыто от глаз внешнего наблюдателя. По мере перехода от поколения к поколению ледяная гора аппаратуры как бы таяла, постепенно «погружаясь» в математическое обеспечение.
      В США разработчики ЭВМ даже придумали специальные юмористические термины. На своем профессиональном жаргоне они говорят «хард вэр» (так в нефтяной промышленности обозначают тяжелые продукты перегонки — мазут, битум и т. п.), и все понимают, что имеются в виду технические средства ЭВМ; «софт вэр» (так называют легкие нефтепродукты: бензин, керосин, солярка) — и ясно, что речь пойдет о математическом обеспечении.
      Сейчас в США для последних моделей ЭВМ третьего поколения соотношение «хард вэр» к «софт вэр» составляет по стоимости разработки примерно 1/10.
      Математическое обеспечение обычно подразделяется на внутреннее и внешнее. Внутреннее представляет собой, если можно так выразиться, программное продолжение аппаратуры ЭВМ. Это собственная неотъемлемая часть данной машины — программы, — относящаяся к организации вычислительного процесса вообще, независимо от того, какие конкретные задачи будут решаться на данной ЭВМ. Ко внутреннему математическому обеспечению в первую очередь следует отнести библиотеки стандартных подпрограмм (они ведь были еще в ЭВМ первого поколения), перевод чисел из одной системы счисления в другую, синусы, косинусы, решения систем уравнений и т. п. Кроме того, для каждого из устройств ввода и вывода нужно иметь соответствующую программу обработки информации. Ведь один и тот же результат можно выдать из ЭВМ по-разному. Так, чтобы сделать лишь качественные выводы по решаемой задаче, нам достаточно бросить взгляд на грубый график полученной зависимости, и мы скорее всего потребуем выдать этот график на экран дисплея. Тогда вступит в строй программа кодирования и формирования информации для отображения на экране. Если же нам нужны подробные и точные данные о полученной зависимости, мы потребуем выдать результаты в виде таблицы на печатающее устройство. В этом случае начнет работать программа кодирования и формирования информации для выдачи на алфавитно-цифровое печатающее устройство (АЦПУ). Наконец, можно потребовать дать точный график полученной зависимости. Тогда придется использовать программу кодирования и формирования информации для выдачи на графопостроитель и т. п.
      Особенно сложные и важные подпрограммы управляют работой устройств внешней памяти, так как быстро и безошибочно найти нужный байт среди сотни миллионов других — это отнюдь не простая задача. Однако все это покажется мелочью, если попытаться представить себе, хотя бы приближенно, суть процессов, которыми надлежит управлять при производстве самих расчетов в современной ЭВМ.
      Электронная вычислительная машина похожа на гигантский завод, находящийся на пересечении железнодорожных и автомобильных линий. Сотни поездов ежедневно доставляют на него полуфабрикаты и сырье, узлы и отдельные детали. Все это надо принять, рассортировать, переправить для хранения туда, где это понадобится. Одновременно на заводе производится масса разнообразнейших изделий. Сплошным потоком отправляются от ворот тяжелые грузовики, доставляющие продукцию во все концы страны. Сотни погрузочно-разгру-
      зочных средств день и ночь обеспечивают бесперебойный обмен полуфабрикатами, готовыми и требующими обработки изделиями.
      На заводе одновременно работают десятки цехов: холодных и горячих, сборочных и обрабатывающих. Каждое производство ведется в своем ритме, режиме, требует своего особого контроля. Нужно знать, где, по каким чертежам и под чьим руководством осуществляется сейчас и будет осуществляться в следующий момент производство той или иной детали или узла.
      Кроме того, вся техническая документация составлена на разных иностранных языках. Нужно отыскать переводчиков, обеспечить перевод и проверку содержания заданий. Следует все время контролировать исправность отдельных станков, линий, цехов и всего предприятия в целом. Поскольку производство не должно останавливаться ни на минуту, приходится постоянно держать в запасе дополнительное рабочее оборудование, своевременно заменять и ремонтировать вышедшее из строя.
      Чтобы несколько приблизить картину к реальной действительности, следует сказать, что все это должно происходить с колоссальной скоростью (миллион операций в секунду) и абсолютно безошибочно.
      Можно сделать вывод, что ЭВМ, бывшая раньше «счетной фабрикой» чисто внешне, теперь по сложности организации вычислительного процесса походит на фабрику по своей внутренней сути. Управлять такой «фабрикой» под силу только современной автоматизированной системе управления (АСУ), которая, в свою очередь, немыслима без быстродействующей ЭВМ третьего поколения. Вот и получается, что для управления ЭВМ нужно иметь как бы еще одну ЭВМ! Естественно напрашивается вопрос, а нельзя ли для управления вычислительным процессом в ЭВМ использовать ее же саму, предусмотрев соответствующий комплекс управляющих программ.
      Учитывая колоссальное быстродействие ЭВМ третьего поколения, на этот вопрос можно ответить утвердительно!
      Совокупность управляющих, вспомогательных и служебных программ, необходимых для управления вычислительным процессом ЭВМ, реализуемая на той же самой ЭВМ, получила название операционной системы.
      Первая операционная система была создана в 1953 — 1955 годах для машины ИБМ-704. Современные операционные системы содержат десятки программ и сотни тысяч и миллионы команд ЭВМ. Они практически полностью автоматизируют вычислительный процесс, синхронизируя работу всех внешних и внутренних устройств.
      В функции операционной системы, этой АСУ «счетной фабрики», входит: управление вычислительным процессом, управление потоком задач, поступающих в ЭВМ, управление самим процессом решения задачи и управление обменом данными между всеми внешними устройствами. Важной частью операционной системы являются так называемые сервисные программы: сортировка, объединение, редактирование данных.
      В ЭВМ третьего поколения также введены особые режимы работы, при которых любые устройства (как внутренние, так и внешние) могут работать одновременно и независимо друг от друга под воздействием команд управления, участвуя во многих, идущих параллельно процессах передачи и переработки информации.
      Например, ЭВМ третьего поколения допускают так называемый мультипрограммный режим работы, при котором в процессоре машины одновременно решается несколько задач. Машина поочередно переходит к выполнению частей программы, относящихся к различным задачам, в заранее предусмотренном порядке. При этом по мере надобности вступают в действие необходимые внутренние и внешние устройства ЭВМ. В данный момент времени по одной или нескольким программам арифметическое устройство проводит вычисления, а по другим программам обеспечивается печатание результатов расчета, поиск информации по внешней памяти или выдача ее в каналы связи.
      Операционной системе принадлежит огромная роль в работе ЭВМ третьего поколения, говорят, что без нее ЭВМ превращается в мертвый набор отдельных устройств, не способных к совместной работе. Употребляют даже более сильные выражения: без внутреннего математического обеспечения ЭВМ третьего поколения превращается в груду лома.
      — Что же такое математическое обеспечение?
      — Это как бы живая душа машины, которую ее творец — человек — вложил в электронный организм!
      — Нельзя ли провести сравнение с эволюцией в мире живого?
      — Пожалуй, можно. На низшей ступени эволюции ЭВМ были подобны примитивным гигантским ящерам, способным лишь слепо подчиняться простейшим инстинктам. Затем они уменьшились в размерах и приобрели некоторые черты интеллекта, поднявшись по уровню, пожалуй, до млекопитающих. И наконец, в третьем поколении их интеллектуальная мощь возросла настолько, что человек счел возможным передать им часть своих знаний и опыта, научив их, так сказать, элементарной культуре работы.
      — Значит, внутреннее математическое обеспечение — это знания, необходимые электронному организму для работы вообще, так сказать, начальная школа ЭВМ.
      — Верно!
      — Тогда что представляет собой внешнее математическое обеспечение?
      — О нем машина могла бы сказать — «мои университеты»!
      Внешнее математическое обеспечение — это как бы специализация машины в определенной области науки, техники, культуры. Как и в любом университете, обучение ЭВМ начинается с общеобразовательных предметов, которыми в данном случае являются универсальные алгоритмические языки. Ведь программирование задач «в лоб» (в цифровых кодах машины) чрезвычайно утомительно, поэтому трансляторы с таких универсальных языков программирования, как ФОРТРАН, АЛГОЛ, PL-1, имеются на любой современной ЭВМ.
      В отличие от универсальных языков, предназначенных в принципе для описания очень широкого круга задач, существуют еще два типа языков, функции которых несколько уже. Эти языки ориентированы на специфические классы звдач.
      Различают проблемно-ориентированные и машинно-ориентированные языки. Первые ориентированы на круг проблем, вторые — на тип машины. К проблемно-ориентированным языкам моххет быть отнесен достаточно универсальный язык КО.РОЛ (планово-экономические задачи), язык моделирования СИМСКРИПТ и ЛИСП — язык для описания сложных логических задач (доказательство теорем, игра в шахматы).
      Нужно отметить, что программы, полученные в результате трансляции с универсальных и проблемно-ориентированных языков, или, как их иногда называют, языков высокого уровня, обычно получаются неэкономичными, Дело в том, что сложная, ориентированная на человека структура такого языка требует громоздких трансляторов и получаемые программы почти не поддаются оптимизации. — они оказываются не всегда экономными в расходовании памяти и времени счета.
      Машинно-ориентированные языки как раз и призваны заменить языки высокого уровня в тех случаях, когда речь идет о программировании часто повторяющихся задач. Эти языки по своей структуре приближены к командам конкретной машины — их называют еще языками символического кодирования или автокодами.
      Транслятор с автокода на конкретную ЭВМ позволя ет, как правило, проводить частичную оптимизацию, что дает возможность использовать автокод везде, где требуется получать компактные и оптимальные программы. Автокод практически вытеснил программирование в численных адресах (вспомним программу для среднего арифметического), популярное в начале эры ЭВМ.
      Говоря о проблемной ориентации, нельзя обойти молчанием и сравнительно новую идею — создание пакетов прикладных программ. Этот росток появился на ниве стандартных подпрограмм и представляет собой совокупность программ, предназначенных для решения определенного класса задач. Известны пакеты прочностного расчета мостовых ферм и балок. Есть пакеты программ, по которым ЭВМ обрабатывали учетно-плановую информацию. Есть пакеты для статистической обработки данных, для моделирования аэродинамических расчетов и многие другие. Естественно, что все эти пакеты создаются для задач с большой повторяемостью, Первоначально пакет рассматривался просто как несколько программ, выполняемых одна за другой в определенной последовательности. В последнее время на них смотрят как на весьма перспективное средство общения широкого потребителя с ЭВМ. Много внимания уделяется вопросам внутренней структуры и организации пакета, в том числе и автоматическому управлению соответствующим внутрипакетным вычислительным процессом. Но суть пакетов программ — в максимальном упрощении процедуры общения с ЭВМ.
      На VI Международной конференции по проблеме организации и структуры пакетов прикладных программ академик А. Дородницын сказал: «Мы не можем требовать от пользователей пакетов знаний программирования и даже методов решения задач. Запрос на решение задачи должен задаваться на языке, близком к человеческому, хотя и строго формализованном».
      Математическое обеспечение, например, ЕС ЭВМ содержит наряду с несколькими операционными системами, в которые входят трансляторы с языков программирования, также пакеты прикладных программ.
      Основными языками программирования для ЕС ЭВМ являются ФОРТРАН, PL-1, АЛГОЛ-60, КОБОЛ. Сравнительно новый язык PL-1 предназначен для программирования задач, имеющих сложную организацию, он в наибольшей степени ориентирован на современные операционные системы.
      Язык символического кодирования — АССЕМБЛЕР ЕС — машинно-ориентированный язык, учитывающий особенности структуры и системы команд машин ЕС ЭВМ. На АССЕМБЛЕРе ЕС можно получать программы, хорошо реализуемые на ЭВМ этого семейства.
      В математическом обеспечении ЕС ЭВМ имеются трансляторы со всех языков, перечисленных выше. Более того, для некоторых языков имеется несколько вариантов или версий транслятора. Для языка ФОРТРАН, например, простейшая из этих версий пригодна для реализации на низших моделях ЕС ЭВМ, но качество программ получается невысокое. Наиболее сложный, оптимизирующий транслятор позволяет получить программы высокого качества, близкого к тому, что дает язык АССЕМБЛЕР ЕС. Но этот транслятор может быть реализован только на высших моделях ЕС ЭВМ, так как он требует для своей работы большой оперативной памяти.
      В состав математического обеспечения ЕС ЭВМ включено много вспомогательных и служебных программ, составляющих автоматизированный программный сервис, который чрезвычайно полезен при использовании ЭВМ и периферийных устройств в самых различных областях применения.
      Для ЕС ЭВМ в нашей стране также создается большое число пакетов прикладных программ для решения наиболее распространенных задач науки, техники и народного хозяйства.
      Из сказанного видно, как непросты машины третьего поколения. Не только описание аппаратурной части, но даже и рассказ об операционной системе не раскрывает еще сути этих машин. Внешнее же математическое обеспечение представляется просто необозримым, ведь машина теперь «пошла по университетам», а учиться можно практически всю жизнь.
      ЭВМ первого и второго поколений были все-таки быстрыми арифмометрами. На них решались в основном инженерные задачи и арифметические применения пожирали все машинное время.
      ЭВМ третьего поколения совершили качественный скачок вперед к вершинам интеллекта. Теперь ЭВМ помогают человеку практически во всех областях его деятельности: кто-то насчитал уже около двух тысяч спе-диальностей, которыми овладели компьютеры.
      Чтобы до конца раскрыть суть современной ЭВМ, нужно рассказать о тех, хотя бы основных, сферах, где ЭВМ активно помогают человеку.
     
      КОЛЛЕКТИВНОЕ ИСПОЛЬЗОВАНИЕ ЭВМ ТРЕТЬЕГО ПОКОЛЕНИЯ
      — Что-то ЭВМ третьего поколения не блещут быстродействием. Подобные скорости счета встречались и во втором поколении, вспомните хотя бы БЭСМ-6! Напрашивается вывод, что электроника исчерпала свои возможности.
      — Действительно, среди ЭВМ третьего поколения мы не видим рекордсменов. Развивались они не в направлении быстродействия, а в направлении удобства ввода, вывода и обработки больших массивов информации, а также программного сервиса.
      — Сервис, это отлично! Но как же быть с уникальными задачами? Ведь именно они определяют уровень технического развития!
      — Появляются и сверхбыстродействующие ЭВМ. Но уникальные задачи возникают не каждый день, а загрузить сверхмощный компьютер обыкновенными задачами под силу не каждому учреждению! И большие ЭВМ рискуют стать нерентабельными!
      Естественно, что соображения рентабельности не должны быть тормозом прогресса вычислительной техники. ЭВМ с колоссальным быстродействием в десятки и сотни миллионов операций в секунду разрабатываются и постепенно внедряются в обиход. Эти машины способны решать практически любые по сложности задачи, в том числе и уникальные, требующие, помимо высокого быстродействия, еще и большого объема памяти.
      К сверхсложным задачам сегодняшнего дня относятся расчеты по ядерной энергетике, сверхзвуковой аэродинамике, космической баллистике, математической экономике, моделированию технологии и организации производства, автоматизации проектирования и др.
      Сколько-нибудь серьезная работа в перечисленных областях без мощнейших ЭВМ просто невозможна!
      Но весьма актуальной проблемой сейчас является загрузка сверхмощных ЭВМ и рядовыми задачами. Разрешить ее можно лишь на путях коллективного использования больших ЭВМ. С этой целью создаются вычислительные центры коллективного пользования (ВЦКП), оснащенные мощными ЭВМ или многомашинными вычислительными системами.
      Вычислительные центры коллективного пользования комплектуются высококвалифицированными инженерами, способными обеспечить эксплуатацию сложной и дорогостоящей техники на высоком уровне. В состав обслуживающего персонала входят квалифицированные математики: программисты, алгоритмисты, системщики, способные консультировать и оказывать помощь пользователям в постановке, разработке методов решения и программировании задач любой сложности. В этих центрах сосредоточены и лучшие средства математического обеспечения: трансляторы с наиболее распространенных алгоритмических языков, отладочные системы, библиотеки стандартных программ и процедур, разнообразные обслуживающие программы и операционные системы, позволяющие повысить эффективность ЭВМ и облегчить решение сложных задач. Именно здесь создаются очаги передовой культуры в области вычислительной техники и машинной математики.
      Есть и еще ряд достоинств и преимуществ ВЦКП. Стоит отметить хотя бы следующее обстоятельотцд. Учреждения, которые не могут или не хотят пользоваться машинным временем ВЦКП, приобретают собственные ЭВМ, естественно, более доступные, но более низкого класса и чаще всего небольшие. Как показывает накопленная статистика, эти учреждения сталкиваются с двумя существенно отрицательными моментами.
      Первый состоит в том, что пользование индивидуальными ЭВМ оказывается дороже, чем машинами коллективного пользования; это объясняется тем, что на предприятиях с индивидуальными ЭВМ, как правило, не удается организовать квалифицированное обслуживание машин — не хватает кадров, а гарантийные учреждения неохотно работают с мелкими клиентами. Кроме того, хорошему специалисту неинтересно работать в коллективе, эксплуатирующем индивидуальную ЭВМ; у него там нет перспективы для научного и служебного роста, что особенно необходимо молодым специалистам-математикам.
      Второй момент — учреждение, располагающее индивидуальной ЭВМ, почти всегда испытывает необходимость эпизодически выходить на более мощную машину с задачами, которые просто не могут быть решены на малых ЭВМ.
      Вот почему наличие даже большого числа индивидуальных компьютеров не снимает с повестки дня вопроса о важности создания вычислительных центров коллективного пользования.
      Среди клиентов вычислительного центра коллективного пользования есть такие, кто редко обращается к ЭВМ, но есть загружающие ее регулярно, выходящие на машину по нескольку раз в день. Чтобы быть в постоянном контакте с ВЦКП, они арендуют специальные телефонные и телеграфные линии связи. На их концах стоят современные терминалы, содержащие выносные пульты (клавиатуру) для общения с ЭВМ, или телетайпы, а также экраны для отображения промежуточных и окончательных результатов счета (дисплей). Более того, основные клиенты имеют на ЭВ.Ч ВЦКП свои средства хранения информации — зоны оперативной и внешней памяти, где находят принадлежащие им наборы программ, необходимые для решения наиболее часто встречающихся задач и соответствующие массивы исходных данных.
      Если клиент захочет воспользоваться услугами машины ВЦКП со своего терминала, ему достаточно ввести специальный шифр и получить сигналы о готовности ЭВМ к работе. Затем он называет коды необходимых программ и массивов информации, вводит дополнительные данные, дает сигнал «решение» и ждет результатов расчета.
      Как будто бы все просто! Но только на первый взгляд может показаться, что работа ВЦКП дело нехитрое. В действительности же сотрудникам центра часто приходится сталкиваться с крайне напряженными ситуациями. Они вызываются обычно тем, что на ЭВМ непрерывно поступают задачи различного объема и различных классов срочности. Этот поток образует сложные очереди, поскольку моменты обращения клиентов ничем не ограничены и в часы «пик» почти одновременно может обратиться большое число пользователей с различными приоритетами и различными потребностями в машинном времени.
      Чтобы эта лавина запросов и задач не привела к неразберихе, чтобы были соблюдены интересы клиентов и обеспечена эффективность использования ЭВМ, работу центра необходимо четко организовать, то есть выработать правила, в соответствии с которыми устанавливалась бы очередность передачи задач на решение и упорядочивалась бы технология подготовки программ и исходных данных для ввода в ЭВМ.
      Проблема организации массовых вычислений не нова. Она возникла еще в эпоху ЭВМ первого поколения и серьезно обострилась с переходом на более производительные компьютеры второго поколения. Наибольшей популярностью пользовался, да и в наше время еще не сдан в архив, так называемый режим пакетной обработки информации.
      Суть его состоит в том, что поступающие задачи пропускаются через ЭВМ не поодиночке, а целыми группами (пакетами). При формировании пакетов учитывается не только очередность поступления задач, но и их срочность и приоритет клиентов. Кроме того, предпринимается попытка обеспечить наиболее эффективное использование ЭВМ и по возможности удобство работы персонала.
      Как известно, ЭВМ первого и второго поколений имели жесткую структуру вычислительного процесса, при которой все обслуживающие процедуры: ввод данных, передача информации из внешней памяти в оперативную и наоборот, выдача результатов выполнялись только с участием процессора. И когда осуществлялся, например, ввод данных в ЭВМ, процессор не мог выполнять свою прямую функцию — вести счет. Во время же решения задачи работал только процессор, а устройства ввода и вывода не могли быть использованы. В среднем доля производительного рабочего времени оборудования ЭВМ (в течение которого процессор вел счет) едва достигла 50 процентов.
      Можно ли было в таких условиях что-нибудь сделать для лучшего использования оборудования ЭВМ путем разумного формирования пакетов?
      Очень мало. В лучшем случае, подбирая в один и тот же пакет наряду с задачами, требующими длительного ввода-вывода и кратковременного счета, также задачи с длительным счетом и малым вводом-выводом, удавалось достичь более или менее равномерной загрузки устройств ЭВМ. Это, конечно, не могло повысить доли производительной работы ЭВМ, но создавало некоторые удобства для персонала.
      В корне иная ситуация имеет место в случае ЭВМ третьего поколения. Как известно, различные устройства этих машин могут работать одновременно и независимо друг от друга. Время включения и порядок действия устройств определяет мудрейшая совокупность программ внутреннего математического обеспечения — операционная система. И делает это она не по какому-нибудь жесткому регламенту, а в зависимости от потребностей, возникающих по ходу решения той или другой задачи. Как же не упустить открывающиеся
      возможности?
      Для этого необходимо использовать ЭВМ так, чтобы она совмещала, хотя бы частично, работу всех своих устройств. Допустим, в ЭВМ вводится некая задача. Сразу же после накопления минимально необходимой порции исходных данных машина начинает . счет по программе, продолжая при этом ввод информации. И ничего, если иногда счет будет прерываться из-за недостатка исходных данных; он возобновится по мере их поступления. Вывод результатов расчета, будет производиться по мере их готовности параллельно счету и даже вводу информации.
      1 Благодаря наличию развитых операционных систем ЭВМ третьего поколения вполне допускают такую организацию вычислительного процесса. Это позволяет повысить долю производительной работы оборудования ЭВМ даже при решении каждой отдельно взятой задачи. Правда, степень повышения производительности машины зависит от характера задачи. Так, задачи с примерно одинаковым удельным весом счета, ввода-вывода и обмена данными с внешней памятью допускают высокий уровень совмещения операций. Если же требуется очень большой счет или очень большой вводвывод, то эффект от совмещения может быть близким к нулю.
      В режиме частичного совмещения удается организовать процесс решения задачи так, что оборудование ЭВМ в среднем работает довольно производительно и загружается на 65 — 70 процентов. Это уже успех! Особенно когда речь идет о дорогостоящих ЭВМ высокой производительности.
      Еще более существенный эффект от частичного совмещения наблюдается при пакетном режиме обработки информации. Здесь уже можно совмещать фрагменты вычислительных процессов (ввода, счета, вывода и т. д.), относящиеся к разным задачам, последовательно расположенным в пакете. Например, закончив ввод исходных данных по одной задаче, ЭВМ, переходя к ее решению, может одновременно приступить ко вводу информации, необходимой для следующей задачи пакета, и т. д.
      Идея частичного совмещения процедур, осуществляемых ЭВМ при решении задач, оказалась исключительно плодотворной. Эффект от совмещения получался тем большим, чем полнее удавалось согласовать структуру реализуемого вычислительного процесса с особенностями конкретной ЭВМ и ее операционной системы. Однако пакетный режим с этой точки зрения представляет весьма ограниченное поле деятельности.
      Совмещаемые фрагменты различных задач данного пакета оказываются слишком крупными, они подчас крупнее, чем фрагменты, которые можно было бы совместить в пределах одной задачи.
      Принцип частичного совмещения получает новое качество в том случае, когда удается составить единую программу совместного решения нескольких задач. Рост эффективности использования оборудования ЭВМ здесь является следствием того, что для совмещения могут быть взяты небольшие фрагменты различных задач, в том числе и отдельные операторы программ. Возможность проникновения и вмешательства во внутреннюю структуру программ позволяет точнее подогнать реализуемый совместный вычислительный процесс под осо-
      бенности оборудования ЭВМ и ее операционной системы. Говорят, что в этом случае операционная система осуществляет мультипрограммный режим работы.
      При мультипрограммном режиме удается более полно совместить с вычислениями не только ввод и вывод информации, но и пересылку данных из внешней памяти в оперативную и наоборот. Нередко оказывается выгодным использовать несколько устройств ввода-вывода.
      По-видимому, при мультипрограммном режиме с совмещением загрузка оборудования достигает возможного предела, свойственного современным ЭВМ.
      — Итак, оборудование загрузить нам удалось. Но все это подходит лишь для постоянных клиентов, которые имеют «хороший» приоритет.
      — Разумеется, ведь только для них можно создать условия устойчивого выполнения заказов!
      — А как же быть клиенту, который внезапно обратился на ВЦКП со срочной для него и не очень большой задачей? Если в этот момент ЭВМ занята многочасовым расчетом, то из-за долгого ожидания результат может вообще оказаться бесполезным.
      — Этот недостаток удается ликвидировать, введя новый, тоже мультипрограммный режим работы ЭВМ — режим разделения времени!
      Пусть на выполнение программы каждого пользователя ЭВМ выделяет лишь небольшой отрезок времени, так называемый квант, — например, 0,01 секунды, после чего переходит к выполнению программы другого пользовдтщя в течение следующего кванта времени, затем — третьего и т. д. Если рассматривать современную мощную ЭВМ (или многомашинную вычислительную систему) с быстродействием несколько миллионов операций в секунду, то за упомянутый квант времени ЭВМ выполнит несколько десятков тысяч операций. Это позволит решить хотя и небольшую, но вполне ощутимую часть задач. Если ЭВМ не успела выполнить нужные пользователю расчеты за первый квант времени, то промежуточные результаты выводятся в специальную зону памяти, как правило, внешней, где они ожидают очередного обращения ЭВМ к данному пользователю.
      Пусть одновременно к вычислительной системе обратилось 100 человек. Тогда ЭВМ, выделяя квант с примерно одинаковым удельным весом счета, ввода-вывода и обмена данными с внешней памятью допускают высокий уровень совмещения операций. Если же требуется очень большой счет или очень большой ввод-вывод, то эффект от совмещения может быть близким к нулю.
      В режиме частичного совмещения удается организовать процесс решения задачи так, что оборудование ЭВМ в среднем работает довольно производительно и загружается на 65 — 70 процентов. Это уже успех! Особенно когда речь идет о дорогостоящих ЭВМ высокой производительности.
      Еще более существенный эффект от частичного совмещения наблюдается при пакетном режиме обработки информации. Здесь уже можно совмещать фрагменты вычислительных процессов (ввода, счета, вывода и т. д.), относящиеся к разным задачам, последовательно расположенным в пакете. Например, закончив ввод исходных данных по одной задаче, ЭВМ, переходя к ее решению, может одновременно приступить ко вводу информации, необходимой для следующей задачи пакета, и т. д.
      Идея частичного совмещения процедур, осуществляемых ЭВМ при решении задач, оказалась исключительно плодотворной. Эффект от совмещения получался тем большим, чем полнее удавалось согласовать структуру реализуемого вычислительного процесса с особенностями конкретной ЭВМ и ее операционной системы. Однако пакетный режим с этой точки зрения представляет весьма ограниченное поле деятельности. Совмещаемые фрагменты различных задач данного пакета оказываются слишком крупными, они подчас крупнее, чем фрагменты, которые можно было бы совместить в пределах одной задачи.
      Принцип частичного совмещения получает новое качество в том случае, когда удается составить единую программу совместного решения нескольких задач. Рост эффективности использования оборудования ЭВМ здесь является следствием того, что для совмещения могут быть взяты небольшие фрагменты различных задач, в том числе и отдельные операторы программ. Возможность проникновения и вмешательства во внутреннюю структуру программ позволяет точнее подогнать реализуемый совместный вычислительный процесс под осо-
      бенности оборудования ЭВМ и ее операционной системы. Говорят, что в этом случае операционная система осуществляет мультипрограммный режим работы.
      При мультипрограммном режиме удается более полно совместить с вычислениями не только ввод и вывод информации, но и пересылку данных из внешней памяти в оперативную и наоборот. Нередко оказывается выгодным использовать несколько устройств ввода-вывода.
      По-видимому, при мультипрограммном режиме с совмещением загрузка оборудования достигает возможного предела, свойственного современным ЭВМ.
      — Итак, оборудование загрузить нам удалось. Но все это подходит лишь для постоянных клиентов, которые имеют «хороший» приоритет.
      — Разумеется, ведь только для них можно создать условия устойчивого выполнения заказов!
      — А как же быть клиенту, который внезапно обратился на ВЦКП со срочной для него и не очень большой задачей? Если в этот момент ЭВМ занята многочасовым расчетом, то из-за долгого ожидания результат может вообще оказаться бесполезным.
      — Этот недостаток удается ликвидировать, введя новый, тоже мультипрограммный режим работы ЭВМ — режим разделения времени!
      Пусть на выполнение программы каждого пользователя ЭВМ выделяет лишь небольшой отрезок времени, так называемый квант, — например, 0,01 секунды, после чего переходит к выполнению программы другого пользоватя в течение следующего кванта времени, затем — третьего и т. д. Если рассматривать современную мощную ЭВМ (или многомашинную вычислительную систему) с быстродействием несколько миллионов операций в секунду, то за упомянутый квант времени ЭВМ выполнит несколько десятков тысяч операций. Это позволит решить хотя и небольшую, но вполне ощутимую часть задач. Если ЭВМ не успела выполнить нужные пользователю расчеты за первый квант времени, то промежуточные результаты выводятся в специальную зону памяти, как правило, внешней, где они ожидают очередного обращения ЭВМ к данному пользователю.
      Пусть одновременно к вычислительной системе обратилось 100 человек. Тогда ЭВМ, выделяя квант 0,01 секунды, будет вступать в контакт с каждым из них с интервалом в одну секунду. Если выдача результатов расчетов будет производиться по мере готовности, то у пользователя создастся полная иллюзия, будто только он непрерывно работает с ЭВМ. Он просто не будет замечать других клиентов, разве что быстродействие ЭВМ покажется ему несколько меньшим.
      Чем меньше пользователей одновременно обратится к вычислительной системе, тем чаще она будет обращаться к задачам каждого из них. Если же к системе обратится только один, то ЭВМ будет работать с ним как самая обыкновенная машина и степень загрузки оборудования будет зависеть от характера его задачи.
      Вычислительные системы с разделением времени работают, очевидно, с большей эффективностью, чем обычные ЭВМ. Правда, этого нельзя сказать про решение задач, требующих очень большого ввода данных либо решение которых связано с чрезвычайно большим объемом вычислений. Если предприятия или учреждения нуждаются в повседневной помощи ЭВМ и их задачи не относятся к упомянутым выше, то им выгоднее стать клиентами вычислительной системы коллективного пользования (с разделением времени), нежели приобретать собственную ЭВМ. Особенно это относится к учреждениям нетехнического профиля.
      Чрезвычайно существенное значение имеет режим разделения времени для обработки так называемой динамической информации, когда сведения о состояниях объектов быстро меняются и принимаемые решения способны устаревать. В ситуациях такого рода обычный метод обслуживания «по очереди» оказывается совершенно непригодным.
      Преимущества режима разделения времени проявляются и в том случае, когда поток задач, поступающих на ЭВМ, очень неравномерен или когда задачи поступают неожиданно, в непредвиденное время. Сходные трудности возникают и в случае многообразия решаемых задач, не однородных с точки зрения сложности, типа, размеров требуемой памяти, используемых языков и т. д. Обсуждаемые факторы практически оказываются несущественными, когда идет речь о системе, работающей в режиме разделения времени.
      Нередко при использовании ЭВМ возникает ситуация, когда необходимо получить результат решения только части задачи, чтобы потом задать следующую ее часть, правильнее сформулировав ее. Такой «диалог» между пользователем и ЭВМ может быть обеспечен только при условии, что машина будет давать ответы без задержки. Потребность в диалоге возникает также и в других случаях- в связи с уточнением введенных данных для решения задачи, при отладке программ, при исправлении в них ошибок, а также при совместной работе с ЭВМ по выработке решений на основе только что полученной в результате счета информации. Такой диалог при большом числе пользователей возможен лишь при наличии режима разделения времени.
      В вычислительной системе с разделением времени отдельные устройства ЭВМ и выносные пульты могут работать параллельно и независимо друг от друга под управлением общей операционной системы. Различные виды работ можно вести на ЭВМ независимо, используя устройства во всевозможных комбинациях. Например, один пользователь вводит информацию на языке АЛГОЛ, другой в это же время вызывает нужную ему программу из хранилища в оперативную память, третий ведет диалог с ЭВМ при помощи дисплея, четвер-
      тый принимает результаты автоматической отладки программы, записанной на языке ФОРТРАН, и т. д.
      Любой пользователь, являющийся клиентом системы с разделёнием времени, может обратиться к ней в любой момент, и его обслуживание начнется без задержки, немедленно, независимо от загрузки ЭВМ другими задачами. При желании два или более клиентов системы могут обмениваться информацией друг с другом, а также вести совместное решение задач в режиме диалога. Потребность в этом может возникнуть, например, при согласовании межотраслевого баланса, при планировании поставок по кооперации, а также в случае автоматизации проектирования сложных объектов.
      Появление вычислительных систем с разделением времени оказалось исключительно полезным для программирования и отладки очень сложных задач. Открылась возможность выполнять программу, ведя непрерывно диалог с ЭВМ, корректируя, редактируя, модифицируя ее во время выполнения. Это обстоятельство упростило использование абонентами ВЦКП совместного хранилища программ, а также повысило частоту использования программ, разработанных другими абонентами. Возник так называемый коллективный программный капитал.
      Чтобы справиться со всеми этими функциями, система с разделением времени должна обладать весьма развитым математическим обеспечением и программным сервисом. Одно перечисление обязанностей лишь операционной системы представляет собой впечатляющую картину.
      Операционная система координирует работу различных устройств, распределяет машинное время и аппаратуру между пользователями и управляет доступом пользователей к ЭВМ. Кроме того, она планирует реакции машины на запросы абонентов, передает управление от одного абонента к другому, пересылает прерванные программы из внешнего запоминающего устройства в оперативное и обратно, а также организует частные архивы.
      Машинное время, отводимое для выполнения каждой программы, должно быть строго регламентированным. Если выполнение какой-либо программы часто прерывается и эта программа многократно пересылается из внешней памяти В оперативную и обратно — это приводит к большим потерям машинного времени. С другой стороны, если какия-либо программа будет выполняться, не прерываясь, слишком долго (большой квант времени), другим абонентам придется долго ждать. Чтобы избежать подобных еитуаций, обычно принимается схема распределения времени, основанная на приоритетах задач, а приоритеты, в свою очередь, определяются объемом информации, передаваемой в оперативное запоминающее устройство. Тут подход такой: чем меньше объем информации, тем более высокий начальный приоритет присваивается данной задаче. Квант времени, выделяемый задаче высшего уровня, удваивается по сравнению с задачей из более низких уровней приоритета.
      Если задача не заканчивается за отведенное ей время, то ее решение прерывается и программа вместе с используемыми данными пересылается во внешнее запоминающее устройство, чтобы освободить место в оперативкой памяти для следующей задачи, ожидающей доступа к ЭВМ. После этого ее приоритет понижается и соответственно удваивается отводимый ей квант времени. Решение ее затем снова продолжается, когда приходит ее очередь.
      Разделение времени очень скоро вышло за рамки только вычислительных центров коллективного пользования, просто предоставляющих машинное время различным организациям. В стране стали создаваться сотни специализированных систем: информационных, справочных, библиографических, фактографических, работающих на схожих принципах.
      Информационно-справочные системы (ИСС) имеют огромные хранилища информации и совокупности программ, обеспечивающих поиск требуемой информации и формирование справок по запросам пользователей или по заранее установленному специальному регламенту. Режим разделения времени придает ИСС гибкость, доступность и эффективность, благодаря чему в настоящее время они широко применяются в научных исследованиях, в библиотечном деле, в медицине, в управлении производством и других областях.
      Типичными вычислительными системами коллективного пользования являются автоматизированные системы управления (АСУ) и системы автоматизации проектирования (САП). Как те, так и другие не могут обойтись без использования крупных массивов информации, хотя поиск информации для них не самоцель. Сформированные крупные порции информации, которые в информационно-справочной системе могли бы составить содержание тех или иных справок, здесь оказываются лишь исходными данными для расчета на ЭВМ наилучших команд управления или наилучших вариантов конструкции проектируемого изделия.
      В отличие от ВЦКП, производящих только вычислительные процессы, и информационно-справочных систем, реализующих информационные операции, в АСУ и САП осуществляются информационно-расчетные процессы, сочетающие в себе как поиск информации, так и решение различных задач, возникающих по ходу управления или проектирования.
      Большое распространение системы коллективного пользования получили также в учебных заведениях. Там они помогают учащимся рассчитывать курсовые работы и дипломные проекты, а заодно предоставляют реальную возможность освоить работу на ЭВМ сотням и тысячам студентов в процессе обучения, помогают приобрести необходимые навыки общения с компьютерами.
      — Вот бы посмотреть такую систему с разделением времени в работе!
      — Неплохая мысль. В настоящее время такие системы имеются во многих ведущих вузах в нашей стране и за рубежом.
      По-видимому, первой вычислительной системой с разделением времени, созданной специально для учебного заведения, была система Массачусетского технологического института на машине ИБМ-709. Предлагались проёкты таких систем и на основе ЭВМ других типов, которые полностью или частично реализованы В различных вузах ряда стран. Стоит рассмотреть, например, систему Московского института нефтехимической и газовой промышленности имени И. Губкина, созданную на базе машины «Наири-3-2».
      Машина «Наири-3-2» размещена в студенческом вычислительном зале, который находится в главном здании института. Вычислительный зал имеет свои филиалы в общежитиях студентов. Кроме упомянутой машины, зал располагает десятью ЭВМ индивидуального пользования типа «Наири-К» (для инженерных расчетов) и машиной третьего поколения ЕС-1020 (среднего класса). Эти ЭВМ обеспечивали студенческие расчеты до ввода в строй машины «Наири-3-2».
      Часть выносных абонентских пультов системы коллективного пользования находится в самом вычислительном зале и в смежных помещениях (телетайпных классах). Эти пульты поступают в распоряжение студентов и аспирантов, приходящих на ЭВМ для выполнения расчетов. Другая часть пультов размещается в учебных аудиториях, где проходят занятия по расписанию, и в лабораториях общетехнических и специальных кафедр.
      Одна машина «Наири-3-2» способна качественно обслуживать с почти мгновенным ответом на запрос 32 выносных пульта. Система на двух машинах этого типа позволяет довести число выносных пультов до 64 с почти мгновенным ответом. Если же допустить время ожидания 1 — 2 минуты, то их можно подключать 128 и даже 256.
      Системы коллективного пользования успешно применяются в учебном процессе вузов. Так, с программи-
      рованием и работой на ЭВМ студенты знакомятся на первом курсе института. На втором и третьем, изучая общенаучные и общетехнические дисциплины, они получают такие домашние задания, которые можно решать на ЭВМ студенческого вычислительного зала. На старших курсах они выполняют курсовые работы ы проекты по специальностям. В этот период они узнают, как применяются ЭВМ в соответствующих областях техники, и закрепляют знания практической работой в вычислительном зале. Наконец, при выполнении дипломного проекта студенты особенно интенсивно используют вычислительную технику, решая задачи своей специальности и приобретая знания и навыки пользования компьютерами.
      Вряд ли можно обеспечить столь большой объем вычислительных работ, располагая только ЭВМ индивидуального пользования.
      Важной особенностью систем коллективного пользования является наличие богатого и разветвленного программного хозяйства общего назначения, доступного любому абоненту. В памяти хранится операционная система (программа-диспетчер и ряд вспомогательных управляющих программ), трансляторы с различных языков программирования, библиотека стандартных программ, многочисленные сервисные программы, обеспечивающие ввод и вывод информации на различные средства, поиск ее во внешней памяти, формирование справок и т. д. В памяти хранятся также наборы прикладных программ решения широкого круга задач, характерных для специальностей данного вуза. Любую из этих программ, число которых может достигать нескольких сотен, абонент может использовать, вызвав ее в оперативную память ЭВМ по специальной команде, подаваемой с выносного пульта.
      Во внешней памяти ЭВМ системы коллективного пользования располагаются массивы данных, которые наиболее часто требуются для решения задач абонентов: справочники, нормы, таблицы физических величии,1 сведения о наиболее важных конструктивных и технологических особенностях, оборудования и приборов и т. д. Имеются также сведения о наборе команд и о других характеристиках ЭВМ системы, с учетом исправлений и дополнений, появившихся в процессе эксплуатации.
      Кроме этой «общественной» информации, система хранит и другие материалы. В частности, она предоставляет место для индивидуальных наборов программ и архивов информации отдельных абонентов.
      Абонент, получивший в свое распоряжение выносной пульт, набирает на клавиатуре условное обозначение темы, над которой он собирается работать, и свое имя. Машина отвечает на запрос, печатая время суток (часы и минуты). После этого абонент должен передать свой пароль. Это важное требование необходимо для того, чтобы сохранить неприкосновенность каждого личного архива и защитить его информацию и программы от случайного или преднамеренного изменения. Печатающее устройство во время передачи пароля с телетайпа отключается, так что на печатном бланке пароль не фиксируется.
      Если переданный абонентом пароль не соответствует его имени и номеру задачи, если абонент уже использовал отводимое ему ежемесячное машинное время, если машина уже полностью загружена, то есть максимальное число людей, которые могут пользоваться вычислительной машиной одновременно, уже приступило к работе, машина печатает сообщение, что доступ к ней запрещен. Если же доступ возможен, абоненту посылается разрешение на передачу команд.
      Перед началом работы абонент может запросить любые интересующие его данные: сколько времени он уже израсходовал, какую часть емкости запоминающего устройства из отведенных ему лимитов уже занял.
      Решив эти организационные вопросы, абонент приступает к работе над интересующей его задачей. Если программа для ее решения уже составлена, он может, вводя ее в машину, внести в нее изменения или провести другие манипуляции над ее текстом.
      После этого программа транслируется с алгоритмического языка на машинный и проверяется ее работоспособность на пробном примере. Затем абонент подает команду, по которой машина должна записать данную программу во внешнее запоминающее устройство нэ новый участок, который становится еще одним частным архивом абонента. С этого момента скорректированная программа постоянно хранится во внешнем запоминающем устройстве системы и ею всегда можно воспользоваться для решения подходящей задачи.
      По своему желанию абонент в любой момент может дать указание системе отпечатать перечень программ, находящихся в его архивах. Он может также уполномочить систему открыть доступ к одному из своих архивов другим названным им абонентам и, наоборот, может получить доступ к другим частным или общественным архивам, которьши ему разрешат пользоваться. (Абоненту, которому предоставлен доступ к чужому архиву, обычно запрещается изменять его содержимое, однако он может скопировать его и, создав отдельный архив под своим собственным именем, видоизменять исходные данные или программу по своему усмотрению.)
      Еще одним удобным свойством системы с разделением времени является возможность обмена сообщениями между абонентами с помощью вычислительной машины. Обращаясь к машине, абонент может узнать от нее, какая новая информация поступила в его «почтовый ящик» (специальную часть архива), после чего по специальной команде получить ее в отпечатанном виде.
      Ценным качеством системы является то, что она может сообщить абонентам сведения о своем собственном наборе инструкций и команд. Во внешней памяти системы хранится ее техническое описание, снабженное оглавлением, в котором перечисляются различные служебные функции и разделы; причем располагаются они в порядке, обратном хронологическому, то есть самые последние добавления к системе приводятся первыми. Таким образом, абонент может в любое время проверить, соответствует его экземпляр технического описания последним данным или нет, а затем может получить печатные материалы, касающиеся любых новых или измененных разделов.
      Выше, при объяснении принципов работы системы, в основном рассматривался диалог между абонентом и вычислительной машиной, который осуществляется с помощью печатных команд и ответов. Но в систему могут входить также специальные индикационные устройства (дисплеи), позволяющие «вычерчивать» световым пером на экране электронно-лучевой трубки требуемые данные для продолжения решения задачи или выводить промежуточные результаты из ЭВМ для рассмотрения их абонентом.
      Абоненту не обязательно оставаться связанным с системой во время выполнения его программы. Он может написать программу, с помощью машины проверить ее и, удостоверившись в правильности, дать команду выполнить эту программу и сохранить результаты в архиве, из которого он может выбрать их позже, когда ему будет удобно. Такой режим рассчитан специально на программы с длительными вычислениями, которые не требуют вмешательства человека.
      Опыт работы на различных системах с разделением времени показывает, что взаимодействие ее с абонентами развивалось подобно растущему организму. Самым поразительным оказывается возможность взаимного использования программ, выполненных другими абонентами. Больше половины всех программ обычно создается самими пользователями, а не специалистами, разрабатывающими данную систему. Пользователи, как правило, с удовольствием обращаются к архивам друг друга. Если в обычных вычислительных центрах клиенты редко пользуются программами, разработанными коллегами, из-за трудности внесения изменений в чужие программы и в исходные данные, то в системах коллективного пользования эти программы составляют с учетом возможного их использования другими людьми. Составители программ работают, по существу, так, как если бы они готовили материалы для опубликования в технических журналах.
      И действительно, такую аналогию нельзя считать надуманной: все программы, которые предполагается ввести в систему, и вся информация, предназначенная для хранения в общественных архивах, могут быть подвергнуты суду «редакционной коллегии», представляющей собой всю совокупность абонентов данной системы.
      В общем, внешние запоминающие устройства таких систем приобретают все большее сходство с публичными библиотеками. Но если абоненты библиотек уже начинают жаловаться на трудности, связанные с выяснением содержимого библиотечных фондов и с размещением материалов, представляющих для них интерес, то система дает пользователям такие возможности, которые на самом деле далеко выходят за рамки обычных библиотечных услуг. Уже имеются средства, поз-
      воляющие одному пользователю обмениваться информацией с другим через программу, которую оба они используют одновременно. Были случаи, когда преподаватель, сидя у своего индивидуального телетайпа, работал со студентом, находящимся у выносного пульта системы в другой аудитории института.
      Все типы специализированных систем коллективного пользования, особенно информационно-справочные системы и АСУ, играют важнейшую роль в жизни человека, поэтому стоит рассмотреть их более подробно.
     
      ХРАНЕНИЕ И ПОИСК ИНФОРМАЦИИ В ЭВМ ТРЕТЬЕГО ПОКОЛЕНИЯ
      — Тысячелетия постоянной заботой человечества было не столько хранение, сколько накопление новой информации. Средства хранения всегда оказывались под рукой: от каменных плит с ассирийской клинописью и средневековых рукописных фолиантов до современных библиотек, плотно набитых книгами и журналами. Почему же сейчас слово «информация» приобретает какой-то угрожающий оттенок?
      — Проблема информации — детище научно-технического прогресса. Информация настолько решительно вторгается в нашу жизнь, а ее количество растет так быстро, что в последнее время говорят об «информационном буме» и даже об «информационном взрыве».
      За последние 25 лет вышло в свет столько же книг, сколько их было издано до этого с момента изобретения книгопечатания. За двести лет, с 1750 до 1950 года, население нашей планеты увеличилось в три раза, а число научных журналов — в десять тысяч раз. В 1975 году в мире опубликовано более трех миллионов журнальных статей по естественным наукам и технике, 250 тысяч книг, 500 тысяч описаний к патентам и авторским свидетельствам на изобретения. Число зарегистрированных патентов к этому времени достигло 15 миллионов. Ежегодный объем публикаций составляет сейчас 10 миллиардов печатных страниц; этот объем удваивается примерно
      каждые 10 лет.
      Представьте себе человека, который задался целью просмотреть годовой выпуск литературы по какой-нибудь отрасли техники, например машиностроению. Если на просмотр каждого источника он будет тратить всего три минуты, то, работая по 40 часов в неделю, он должен будет заниматься этим делом более 5 лет! Из-за физической невозможности быть в курсе необходимых публикаций нередко заново открывают давно открытое, изобретают уже изобретенное. Следствием такого положения является неоправданное дублирование исследований, расчетов и проектов.
      По американским данным, потери от этого достигают
      не менее 40 процентов рабочего времени ученых и инженеров. Так, компания «Дженерал электрик» в течение двух лет исследовала возможность вызывать дождь с помощью йодистого серебра и сухого льда. В конце работы оказалось, что 20 лет назад результаты такого же исследования были опубликованы в Голландии. Одна из американских лабораторий в течение 5 лет проводила исследования по электронному переводу и затратила на это миллион долларов. Позже были найдены публикации работ, выполненных в Советском Союзе, где содержались ответы на большинство поставленных вопросов. Препарат Для дисперсии серы, который разрабатывала некая крупная скандинавская фирма, уже был выпущен в широкую продажу английским концерном «Импириэл кэмикл индастриз».
      Руководитель одной фирмы признался, что считает более выгодным провести новые исследования, нежели тратить время на поиск готового решения, если сумма, выделяемая на решение проблемы, не превышает 50 тысяч долларов. Органами регистрации изобретений отвергаются более 25 процентов заявок из-за отсутствия новизны.
      По образному замечанию академика С. Вавилова, «...современный читатель находится перед Гималаями библиотек в положении золотоискателя, которому нужно отыскать крупинку золота в массе песка». Эта ситуация характерна в настоящее время для многих сфер человеческой деятельности.
      Машиностроительный завод средней мощности изготовляет около 20 тысяч деталей и комплектующих узлов
      Чтобы заказать их, направить в нужный цех сырье и инструменты, оценить трудоемкость производства, обеспечить рабочей силой и финансированием в соответствии с действующими трудовыми и материальными нормативами, требуется составить немало документов, содержащих многочисленные учетно-плановые показатели. Поэтому в рамках одного только завода ежегодно приходится «переваривать» примерно 150 миллионов показателей, совершая при этом 300 — 350 миллионов вычислительных операций. Каков же тогда объем учетно-плановой информации по всей отрасли промышленности или по всему народному хозяйству в условиях развитой внутриотраслевой и межотраслевой кооперации?
      По данным всесоюзной переписи населения 1969 года, в сфере информационной, плановой, учетной и управленческой деятельности в нашей стране было занято около 10 миллионов работников умственного труда.
      Для бесперебойного функционирования народного хозяйства существенное значение имеет четкая работа службы материально-технического снабжения. В этой сфере находятся десятки миллионов наименований изделий, полуфабрикатов, запасных частей, аппаратуры и оборудования. Для их хранения служба имеет сотни и тысячи складов, баз, хранилищ, расположенных на огромной территории. Качественное снабжение может быть организовано лишь в том случае, если «кто-нибудь» будет знать потребность всех без исключения предприятий и помнить, где, на каких складах и в каком количестве находятся соответствующие предметы снабжения.
      Любопытно вспомнить такой эпизод. Заместитель начальника главка одного из министерств принимал посетителей. Главный инженер подчиненного завода жаловался, что из-за некоторых электронных ламп, «уже изрядно севших», плохо работает контрольно-измерительная аппаратура и завод выпускает продукцию с повышенным процентом брака. Если в ближайшие дни ламп достать не удастся, придется остановить главный конвейер. Получить эти лампы в обычном порядке, через снабженческие органы, не удалось, так как руководители завода не могли предвидеть их выход из строя и не сделали своевременно заявки. Заместитель начальника главка обзвонил ряд складов, смежных заводов, но «достать» нужных ламп не смог. Звонил он и директору завода — изготовителя этих ламп и с трудом, благодаря личному
      знакомству, уговорил его срочно выдать из сверхплановой продукции десяток ламп для предотвращения чрезвычайного происшествия.
      Вместе с тем следующим посетителем оказался представитель одного небольшого склада, который докладывал, что у него уже два года хранится партия тех самых ламп. Срок годности их истекает, а их никто не берет и не заказывает, так как профиль склада в основном относится к металлопродукции и вряд ли кто-нибудь догадывается о наличии таких ламп на этом складе.
      Современные крупные библиотеки располагают миллионами книг и журналов. Государственная библиотека имени В. И. Ленина в Москве хранит свыше десяти миллионов томов. Как найти книгу по нужному вопросу? Могут ли библиотекари помнить, какие у них есть книги и что написано в каждой из них? Правда, существуют каталоги. Но в каталогах миллионы карточек. Сколько нужно времени, чтобы просмотреть каталог по нужной проблеме? Как угадать за скупыми аннотациями истинное содержание книги? Как узнать, содержатся ли в той или иной книге требуемые сведения?
      Представьте себе адресное бюро большого города, имеющего несколько миллионов жителей. На каждого жителя заводится карточка, содержащая его фамилию, имя и отчество, возраст, местожительство и другие данные. Сколько нужно времени, чтобы найти в такой картотеке адрес требуемого жителя?
      Число аналогичных примеров может быть без труда значительно увеличено, и все они подтверждают одну мысль — хранение и поиск информации превращаются в наши дни в актуальнейшую народнохозяйственную проблему. Ни одно современное государство не может остаться в стороне от информационного бума!
      В нашей стране в 1952 году создан Всесоюзный институт научной и технической информации Государственного комитета по науке и технике Академии наук СССР (ВИНИТИ). В его обязанности входит составление кратких рефератов всей мировой литературы по естествознанию и технике и публикация их в реферативных журналах по отраслям (173 выпуска по 6 раз в год), он готовит обзорно-библиографическую и справочную литературу, выпускает экспресс-информационные издания по наиболее актуальным вопросам. Институт имеет машиносчетные станции и издательский комбинат.
      Потребности практики стимулируют появление новых наук — информатики, теории информации, теории кодирования. Все они так или иначе порождены проблемой информации. Так, информатика изучает вопросы возникновения, хранения и поиска информации, отображение ее в виде документов и правила использования. Открываются даже своеобразные законы, вроде закона Бредфорда: «Если научные журналы располагать в порядке уменьшения числа статей по данному вопросу, то их можно разделить на основную зону (журналы, посвященные данному вопросу) и на несколько зон, содержащих то же число статей, что и основная зона. Тогда число журналов в основной зоне и последующих зонах будет относиться как 1 : К : К2 : К3: К4 и т. д. ...»
      Много научных работ выполнено в области компактного кодирования и экономного запоминания информации. Существуют специальные коды, способные «замечать» и исправлять ошибки и т. д.
      — Разумеется, без электронных помощников человек не сможет выбраться из информационных джунглей. Но сомнительно, что эти Гималаи информации удастся втиснуть в ЭВМ размером с письменный стол!
      — Если иметь в виду только внутреннюю память ЭВМ, то ваши сомнения вполне оправданны. Однако известно, что современные компьютеры допускают подключение практически неограниченного числа внешних запоминающих устройств, в них можно хранить миллиарды бит.
      Как уже говорилось раньше, память ЭВМ делится на внутреннюю (оперативную) и внешнюю. Оперативная память непосредственно участвует в решении задач и является неотъемлемой частью процессора ЭВМ. Без нее машина вообще ничего не способна сосчитать, даже
      2X2-
      Оперативная память работает со скоростью арифметического устройства ЭВМ и поэтому является очень дорогостоящей. Большие же массивы информации, которые используются не постоянно, а время от времени, располагаются во внешней памяти, более дешевой и более емкой, но, увы, работающей уже не так быстро.
      Внешние запоминающие устройства, как известно, магнитофонного типа: магнитные барабаны, магнитные ленты и магнитные диски.
      Отечественные серийные магнитные барабаны имеют емкость порядка 6 — 10 миллионов бит. Скорость обращения (поиска нужной зоны) к барабану — 30 миллисекунд. Самый большой из известных барабанов (ЭВМ УНИВАК) имеет емкость 450 — 900 миллионов бит. Время одного обращения 92 миллисекунды.
      Магнитные барабаны имеют емкость в 50 — 100 раз большую, чем оперативные запоминающие устройства ЭВМ. Они, конечно, не решают проблемы «большой памяти», но благодаря сравнительно быстрому считыванию информации являются очень полезными для ЭВМ. Обыч-
      но они служат «промежуточной» памятью, хранящей информацию, наиболее часто используемую при решении задач. На барабаны переписывают с магнитных лент данные, которые предполагается использовать при предстоящем решении задачи.
      Емкость магнитной ленты уже больше — 200 — 400 миллионов бит. Основной ее недостаток — малая скорость считывания информации, достигающая нескольких минут. Не всегда ленты обладают и хорошей надежностью: их механизмы требуют точной регулировки. Сами ленты рвутся из-за резких стартов и остановок.
      Современные машины могут работать с большим числом лентопротяжек. Обычно их имеется от 4 до 16, хотя известны ЭВМ, у которых их 64 и более.
      Таким образом, внешняя память ЭВМ на магнитных лентах — это уже миллиарды бит.
      Емкость магнитных дисков достигает сотен миллионов бит. Плотность записи порядка 100 — 150 бит на миллиметр дорожки. Внешняя память на магнитных дисках способна хранить громадный объем сведений — 10 — 15 миллиардов бит. Основное достоинство дисков наряду с большим объемом — это высокая скорость считывания. Запоминающие устройства на магнитных дисках уже полностью решают проблему большой памяти. Здесь речь идет не только о возможности хранения больших массивов информации, но и о ее обработке на ЭВМ с небольшими потерями на поиск и считывание информации.
      Чтобы наглядно представить себе объемы памяти на лентах и на дисках, подсчитаем, сколько бит требуется для хранения текста всех 40 томов нового издания Большой Советской Энциклопедии.
      Формат страницы БСЭ рассчитан не более чем на 2500 знаков. Если каждый знак занимает целый байт, то для записи одной страницы потребуется 2500-8 = = 20 000 бит. В каждом томе БСЭ не более 1000 страниц.
      Поэтому во всех сорока томах
      20 000-1000 40 = 800 000 000 бит.
      Это всего-навсего 4 — 5 дисков, или 2 — 4 ленты, то есть примерно Vю часть внешней памяти обычной серийной
      ЭВМ третьего поколения.
      Ежегодные публикации по естествознанию и технике составляют 3 миллиона статей. Если считать в среднем статью из 10 страниц по 1500 знаков, то одна статья содержит 10-1500- 10=150 000 бит, а все три миллиона статей 150 000-3 000 000 = 450 000 000 000 бит.
      Но 450 миллиардов бит разместились бы свободно в 40 накопителях на магнитных дисках.
      Современные наука и техника имеют не более сотни крупных областей. Поэтому всемирные публикации по одной области знания не заняли бы даже одного накопителя на магнитных дисках.
      Специалисты считают, что в одном-двух накопителях на магнитных дисках с современными характеристиками могут разместиться все основные сведения по любой узкой области естествознания или техники, например, по ядерной физике, самолетостроению или обувной промышленности, особенно если не гнаться за хранением всех сведений — скажем, устарелых.
      Располагая такими хранилищами информации, можно совершенно преобразить труд инженеров-конструкторов, проектировщиков, технологов, экономистов на предприятиях, в конструкторских бюро и проектных или исследовательских институтах. Вместо того чтобы рыться в книгах, журналах, справочниках, сборниках нормативов и стандартов, инженер может обратиться к ЭВМ и получить мгновенно любую необходимую ему справку.
      Заманчивые перспективы возникают в области общесправочных учреждений широкого назначения. Любой житель любого населенного пункта, имея доступ к машинной памяти, мог бы получить информацию по любому интересующему его поводу — от наличия тех или других товаров в торговой сети и репертуара зрелищных учреждений до тонких вопросов искусствоведения, науки, техники и народного хозяйства. Даже самая богатая фантазия не в состоянии предсказать, как в связи с этим изменится облик образования, самообразования и вообще быт людей.
      Поиск информации в большой памяти ЭВМ является одной из наиболее актуальных задач машинной математики. Каждая ЭВМ способна найти информацию лишь в том случае, если искомый элемент информации снабжен признаком, по которому его можно отличить от других элементов.
      Пусть известно, что во внешней памяти ЭВМ имеется миллиард элементов информации с соответствующими признаками. Относительно порядка расположения их ничего не известно. Оператор задает машине признак и просит по этому признаку найти нужные сведения. ЭВМ обратится к первому диску накопителя и, начиная с пер-рой его зоны, «посмотрит», нет ли этого признака у элементов информации, расположенных в первой ячейке этой зоны.
      Если он есть, то есть обследованный признак совпал с заданным, поиск окончен: нужные сведения найдены, остается переписать их в оперативную память и использовать для решения задачи или выдать пользователю.
      Если же признак не совпал с заданным, ЭВМ перейдет ко второй ячейке первой зоны первого диска. Если совпадения и здесь не получается, ЭВМ переходит к третьей ячейке и т. д. Закончив обследование первой зоны и не получив совпадения признаков, ЭВМ перейдет к первой ячейке второй зоны и т. д. Обследовав все зоны первого диска, ЭВМ обратится ко второму диску, к третьему и т. д. Когда же можно рассчитывать на окончание поиска требуемого элемента информации?
      Очевидно, что при такой организации поиска при большом числе выборок потребуется число сравнений признаков, в среднем равное половине числа имеющихся элементов, то есть в нашем примере — 500 миллионов сравнений. Как же быть? Ведь если тратить на сравнение признака, например, одну десятитысячную секунды, то на поиск нужного элемента потребуется 50 тысяч секунд, то есть более тринадцати часов!
      Конечно, это очень много. Но, оказывается, можно организовать поиск так, что это время сократится в сотни раз! Для этого необходимо расположить информацию в специальном порядке и организовать соответствующим образом процедуры поиска. Суть дела удобно пояснить на примере адресного бюро.
      Каталог адресного бюро построен по алфавиту. Если потребуется найти сведения, например, о Нестеровой Елене Сергеевне, то, очевидно, просматривать зоны с фамилиями, начинающимися с букв А, Б и т. д. до М включительно, не имеет никакого смысла. Нужно сразу обращаться к зонам, где фамилии начинаются с буквы Н. Для этого в памяти ЭВМ достаточно иметь адресную табличку, в которой были бы указаны адреса начала зоны информации, содержащие фамилии, начинающиеся с каждой буквы алфавита. Просмотр таблички с 30 буквами (считая, что с некоторых букв фамилии не начинаются) потребует в среднем всего 15 сравнений, но зато область поиска сократится значительно!
      Обратившись в зону буквы Н, ЭВМ теперь должна следить за второй, третьей и т. д. буквами фамилий. Если в зоне буквы Н фамилий очень много, можно построить еще одну адресную табличку с адресами вторых букв фамилий. Тогда машина пропустит фамилии со второй буквой, отличной от «е», и перейдет сразу к группе ячеек «Не» и т. д. Теперь видно, как поиск существенно сокращается, но для этого нужно иметь заранее заготовленные таблички с адресами букв и программы для обращения к ним. Если нужно получить выигрыш в скорости поиска, приходится идти на дополнительные затраты, связанные с повышением степени организации данных и развитием интеллекта ЭВМ.
      Все это очень хорошо, но, к сожалению, не всякую информацию возможно (или целесообразно) располагать по алфавиту. Например, в системах материально-технического снабжения или управления производством описание признаков было бы слишком длинным. Даже в простейшем случае, когда речь идет о поиске технологической документации на изделие, оно могло бы выглядеть следующим образом: «Болт стальной, закаленный, марка стали «инструментальная», твердости 80 по Бринелю, с сопротивлением разрыву 75 кг на квадратный миллиметр, длина болта 80 миллиметров, диаметр — 25 миллиметров, резьба треугольная с постоянным шагом 3, начинается на расстоянии 15 миллиметров от головки, головка имеет чистоту по второму классу точности, форма головки в виде усеченного конуса с диаметром основания 20 миллиметров».
      — Сомневаюсь, что по столь сложному признаку можно осуществить автоматический поиск информации.
      — Это в принципе возможно, однако объяснить, как это делается, непросто. Если ответить кратко, то для таких целей создаются специальные искусственные информационно-поисковые языки.
      Очевидно, что в основу любого упорядоченного поиска должен быть положен какой-либо принцип классификации. Так, в адресном бюро фамилии, начинающиеся на букву А, составляют один класс, на букву Б — другой и т. д. Различным первым буквам фамилий сопоставляются различные классы первого уровня. Внутри каждого класса первого уровня выделяются классы второго уровня по вторым буквам фамилий. Внутри этих классов — более мелкие — третьего уровня, и т. д., до тех пор, пока не будут получены самые мелкие классы, в пределах которых поиск путем полного перебора не составляет труда. Если классы, в которые попадают жители с одной п той же фамилией, велики, го дальнейшее деление производится по буквам имен, отчеств, цифрам даты рождения и т. д.
      Части памяти ЭВМ, где расположены сведения о жителях с одинаковыми первыми буквами фамилий, назы-. ваются зонами первого уровня. Каждая из них содержит все фамилии одного из классов первого уровня и имеет свой адрес. Внутри каждой зоны первого уровня выделяются зоны второго уровня, где хранятся сведения о жителях с одинаковыми первыми и вторыми буквами фамилий (классы второго уровня), а внутри зон второго уровня — зоны третьего уровня — по одинаковым третьим буквам фамилий и т. д.
      Классы первого уровня кодируются адресами начал зон первого уровня; классы второго уровня — адресами начал зон второго уровня и т. д.
      Вот, например, фамилия «Петров». По первой букве
      эта фамилия принадлежит классу первого уровня «П%.* Поэтому вместо первой буквы можно записать адрес на-, чала соответствующей зоны первого уровня (ну, скажем, 126). По второй букве она принадлежит классу второго уровня «Е», вместо второй буквы записывается адрес начала зоны второго уровня (пусть это будет 424), внутренней для рассматриваемой зоны первого уровня, и т. д.
      В итоге фамилия «Петров» трансформируется в готовое «поисковое предписание» — совокупность адресов внутри всех зон памяти.
      ПЕТРОВ
      126 424 768 142 811 201 lS (служебный знак, обозначающий конец фамилии).
      В упомянутом выше примере материально-технического снабжения («болт стальной, закаленный, марка стали «инструментальная»...») также можно провести классификацию информации. Для этого разлагают сложный признак на простые.
      В самом деле, вполне возможно выделить классы болтов, гаек, шайб, шпонок, тракторов, автомобилей, электродвигателей, комбайнов, прицепов и других предметов снабжения. В каждом из этих классов (первого уровня) привлечение дополнительного признака порождает классы второго уровня: болт — стальной, латунный, алюминиевый, автомобиль — легковой, грузовой, специальный. В классах второго уровня можно выделить классы третьего уровня. В классе «болт стальной» — по маркам стали,1 в классе «автомобиль специальный» — по назначению: цистерна, самосвал, с подъемником, с краном-стрелой ит. д.
      Таким образом, классификация по понятиям получается ничуть не хуже, чем по алфавиту. Обобщающие понятия, такие, как «болт», «автомобиль» и др., указывают как бы род объекта, а прилагательные (дополнительные признаки), например, «стальной», «грузовой», — его вид. Отношение род — вид здесь имеет место на любом уровне сочетания простых признаков. Например, «болт» — род, тогда «стальной» — вид, если род — «болт стальной», то вид будет уже — «закаленный», и т. д.
      На основе приведенной классификации может быть построен специальный информационно-поисковый язык. Понятия, выделяющие классы всех уровней, можно интерпретировать как словарный фонд языка, а отношения между понятиями — как грамматические правила.
      Для рассматриваемого нами языка можно составить «словарь», обеспечивающий автоматический перевод текстов, запросов на язык ЭВМ. Таким словарем служит совокупность адресных таблиц, указывающих расположение информации в зонах всех уровней.
      Конечно, современные информационно-поисковые
      языки устроены во много раз сложнее. Кроме слов, отражающих классификацию, они включают запас специальных служебных слов, подчеркивающих особенности того или другого понятия или специфику связи между ними. Кроме того, наряду с отношением род — вид используется весьма разветвленная совокупность отношений, среди которых основными являются: часть — целое (например, стол — мебель), причина — следствие (посев — урожай), функциональное сходство (лопата — экскаватор) и др. Поэтому, несмотря на, казалось бы, слишком формальную структуру, по богатству отображаемых сложных понятий информационно-поисковые языки приближаются к естественным.
      Конечно, поиск по длинному признаку дело громоздкое. Но это, как говорится, только четверть проблемы информационно-поискового языка. Три четверти, увы, не в этом. Дело в том, что признак здесь должен задаваться по строго определенной форме. Так, в адресном бюро сначала стоит фамилия, потом имя, затем отчество, возраст т. д. Если же после фамилии задать отчество, а потом имя, машина скорее всего просто не сможет отыскать подобного жителя. Но так задавать признак в адресном бюро никому не придет в голову. Ведь там имеется стандартная анкета (бланк), которая не позво-* лит нарушить порядок записи. А как быть с болтами?
      Здесь так же необходимо строго соблюдать порядок задания признака, помнить, что раньше задавать — материал или размеры, длину или диаметр, характеристики резьбы или марку стали! Чтобы выучить форму длинного признака наизусть для большого числа номенклатур деталей и запчастей, нужно посвятить этому немалую часть жизни. Если же для всех типов номенклатур заготовить стандартные бланки, то их будет так много, что потребуется солидный справочник-путеводитель по, сборнику бланков. А если пользователь ошибется и задаст, не греша против формы бланка, сопротивление разрыву в килограммах на квадратный миллиметр, а не сантиметр? И кто должен помнить, что твердость задается по Брй-нелю, а не по Роквеллу? Как же быть?
      Решить эту и другие, более сложные задачи помогают языки так называемого дескрипторного типа (от слова «дескриптор», что значит — описатель). Построе-
      ние такого искусственного языка начинается с выяснения необходимого словарного фонда — лексики языка.
      В любом информационном запросе можно выделить так называемые ключевые слова, отражающие его основную суть. Например, в запросе «Где хранятся карбюраторы автомобиля ГАЗ-51 и сколько их имеется?» ключевыми будут: «карбюратор», «автомобиль», «ГАЗ-51», «где хранятся», «сколько имеется». Такого рода устойчивые словосочетания, соответствующим образом формализованные, и называются дескрипторами. Они составляют основной словарный фонд рассматриваемого искусственного языка. Формализация ключевых словосочетаний — дескрипторов — состоит в приведении их к стандартным грамматическим формам (именительный падеж единственного числа существительных и прилагательных; первое лицо единственного числа и настоящее время глаголов и т. д.); освобождении от синонимов и омонимов и других упрощениях и огрублениях.
      Все дескрипторы языка сведены в специальные словари-справочники, содержащие отношения между дескрипторами и называемые тезаурусами. Таким образом, «словарный фонд» рассматриваемого языка — это всевозможные дескрипторы, находящиеся в тезаурусе, а его семантика — смысловые связи дескрипторов в том же тезаурусе. Некоторые из этих смысловых связей уже рассматривались выше. Это вид — род, часть — целое и т. д. Используются и другие, более сложные отношения.
      Принципиальной особенностью дескрипторных языков является тот факт, что структура запроса на поиск информации здесь не является раз навсегда жестко определенной, задаваемой стандартной формой анкеты или бланка. Запрос может строиться с использованием разнообразных логических функций.
      Логические функции, или функции формальной логики, известны всем — это И, ИЛИ, НЕ, СЛЕДУЕТ, ВЛЕЧЕТ и тому подобное. Они хорошо «вписываются» в формальную структуру «мышления» компьютеров и получили поэтому широкое распространение. Например, фраза: «где хранится и сколько имеется» — представляет собой логическую функцию вида И от дескрипторов «где хранится» и «сколько имеется». Запрос на «карбюраторе автомобиля ГАЗ-51» — та же функция от дескрипторов «карбюратор», «автомобиль», «ГАЗ-51».
      Используя логические функции, можно реализовать сложнейшие комбинаций запросов.
      Таким образом, в информационно-поисковом языке дескрипторного типа запрос на поиск информации представляет собой сложную логическую функцию от дескрипторов, а поскольку после перевода дескрипторы соответствующим образом закодированы (например, адресами зон памяти), то поисковое предписание имеет вид некоторой логической функции машинных кодов. В этом случае поиск информации можно представить как процесс последовательных формальных логических операций над кодами, характеризующими классы и подклассы все более низких уровней элементов информации.
      Сведение процесса поиска информации к совокупности формальных, рутинных операций открывает пути для его дальнейшей автоматизации при помощи ЭВМ, а это, в свою очередь, способствует его проникновению во все области человеческой деятельности.
      Следует, однако, заметить, что овладение информационно-поисковым языком дело непростое: нужны словари, учебники, учителя. На его изучение потребовалось бы затратить немало времени.
      Однако все эти проблемы покажутся не столь сложными при соответствующем развитии «интеллекта» ЭВМ. Оказывается, что запросы на поиск можно задавать и на обычном языке, машина же сама переведет этот запрос на информационно-поисковый язык, а затем найдет и выдаст запрашиваемую информацию.
      Для выяснения сути проблемы стоит остановиться на следующем вопросе: а нельзя ли в качестве информационно-поискового языка использовать обычный естественный, например русский, язык? Тогда сама собой отпадет проблема перевода!
      Строго говоря, современное состояние наших знаний о языке и уровень развития машинной математики еще не позволяют ответить на этот вопрос положительно. Дело в том, что тезаурус (словарь) такого языка должен был бы содержать, во-первых, довольно много дескрипторов — столько же, сколько слов и словосочетаний (!), могущих выражать отдельные понятия естественного языка; во-вторых, огромное число связей между ними. Грамматика же естественного языка пока не может быть приведена к набору формальных правил, выражающихся через логические функции. Это объясняется известной неопределенностью в правилах большим числом исключений, особенностей и т. п.
      Поэтому, когда специалисты говорят, что в качестве информационно-поискового языка используется естественный язык, то под этим они зачастую понимают лишь тот факт, что за основу для дескрипторов тезауруса принимается лексика (словарный фонд) естественного языка. Однако и при этом всегда нужно иметь в виду, что число дескрипторов весьма ограниченно и, разумеется, намного меньше числа слов естественного языка. Кроме того, в словах, отбираемых в качестве дескрипторов,, приходится устранять неоднозначность — синонимы, омонимы и т. д. Поэтому лексика информационно-поискового языка, основанного на некотором естественном, в значительной степени огрублена и формализована.
      Еще в большей мере это относится к грамматике, она сводится к небольшому числу правил, которые удается выразить через простейшие логические функции. Лишь тогда она может быть формализована и доступна для реализации на ЭВМ.
      Все сказанное проливает свет на проблему перевода с любого естественного языка на информационный. Задача здесь ставится следующим образом.
      Пусть задан некоторый информационный запрос на естественном языке — требуется построить вполне формальное поисковое предписание.
      Первый шаг состоит в том, чтобы провести так называемый морфологический анализ текста запроса с целью выделения в нем ключевых слов и словосочетаний, отображающих основной смысл. Для этого, воспользовавшись словарями, имеющимися в памяти ЭВМ, определяют «допустимость» слов текста и их грамматические формы. Эта операция внешне напоминает тот этап перевода с иностранного языка, когда по словарю ищутся отдельные слова, пока не увязанные в единое предложение. Поскольку даже весьма полные тезаурусы не содержат всех даже формализованных слов естественного языка, возникает проблема оценки близости понятий, выражаемых различными словами.
      В целях практического решения этой проблемы тезаурус снабжается таблицами слов, выражающих близкие понятия, расположенные в порядке близости. Вполне естественно, что таких понятий может быть несколько; в этом случае окончательное решение о выборе соответ-
      етвующего дескриптора принимается позднее, с привлечением грамматических таблиц, характеризующих внутриязыковые связи между дескрипторами или даже на основе синтаксического анализа, учитывающего внеязыковые
      связи и т. п.
      Если все-таки отождествления отдельных слов добиться не удается, ЭВМ может выдать на печать просьбу сформулировать информационный запрос по-другому или уточнить некоторые слова запроса. После введения новой информации продолжается отождествление слов.
      Таким образом, ЭВМ, выполняющая перевод, должна работать с пользователем в режиме диалога. Обеспечение его достигается, как известно, созданием специальных, достаточно сложных программ, являющихся дополнением к операционной системе ЭВМ. Одно только это обстоятельство подчеркивает тот факт, что информационные задачи — это поле деятельности ЭВМ третьего поколения. Машины, не имевшие операционной системы или располагавшие лишь зачатками таковой, никогда не смогли бы решить подобную задачу.
      Правда, и в эпоху ЭВМ второго поколения создавались программные комплексы для решения похожих задач. Однако это вполне можно рассматривать как «доработку» ЭВМ второго поколения до ЭВМ третьего поколения, по крайней мере в отношении операционной системы. В заключение надо отметить, что рассмотренными программными средствами снабжается не каждая рядовая машина даже третьего поколения. Соответствующий комплекс программ целесообразно иметь лишь на тех ЭВМ, которые связаны с действительно большими, массивами информации и составляют основу так называемых «информационно-поисковых систем» или «банков данных».
      «Банки данных» играют исключительную роль в народном хозяйстве, особенно в автоматизированных системах управления (АСУ) и в различного рода справочных службах.
      — «Банк данных»? Это что-то новое в нашей теме об информации.
      — Как известно, новое — это хорошо забытое старое. Помните, у Ч. Бебиджа хранилище информации называлось «складом». Позднее стали употреблять термин «архив». Этим подчеркивалось, что данные хранятся не кое-как, не навалом, а соответствующим образом организованы и взяты на строгий учет. Когда говорят «банк данных», то этим желают особо оттенить еще и динамизм информационного обеспечения, его документальную точность. Клиент, как и в обычном, финансовом банке, по первому требованию получает то, что ему нужно, строго по регламенту, и только в пределах разрешенного доступа.
      Современные «банки данных» располагают совершенными техническими средствами. Среди них одна или несколько ЭВМ достаточно высокого быстродействия, полный комплект внешних устройств, характерных для ЭВМ третьего поколения. Их емкая память организуется на магнитных дисках или лентах. Объем ее — сотни миллионов и миллиарды байт. Внешние устройства для ввода массивов информации, поступающей на хранение, для информационных запросов, а также для выдачи сведений, организуются в виде выносных пультов и рабочих мест пользователей. Они содержат разнообразные средства — от устройств ввода-вывода на перфокартах и перфолентах и читающих автоматов до быстродействующих алфавитно-цифровых печатающих устройств и средств обмена данными с каналами связи. Многие «бан-
      ки данных» оборудованы также дисплеями и другими средствами наглядного отображения информации.
      Рабочие места пользователей «банка данных» могут быть вынесены на расстояния в сотни и тысячи километров, более того, в случае необходимости различные «банки данных» имеют возможность на огромном расстоянии обмениваться информацией между собой.
      «Банк данных» обычно строится как система коллективного пользования, допускающая одновременное обращение к ней многих клиентов. Поиск информации и формирование справок для разных пользователей осуществляются в режиме разделения времени. Клиентам присваиваются приоритеты, в соответствии с которыми организуется очередность обслуживания.
      Важнейшим свойством «банка данных» является возможность работы с клиентами в режиме диалога, при котором машина может потребовать уточнения информационного запроса, а клиент — задать дополнительные или уточняющие вопросы. Словом, с «банком данных» можно вполне «поговорить по душам».
      Математическое обеспечение «банков данных» представляет собой сложнейшее программное хозяйство. В него входят крупные комплексы программ, общим объемом от нескольких сотен тысяч до миллионов команд. Естественно, что среди них домеются операционные системы и библиотеки стандартных программ. Кроме того, обычно требуется так называемая общесистемная операционная система, регламентирующая взаимодействие между всеми ЭВМ и внешними устройствами, в том числе и удаленными на большие расстояния.
      Другим комплексом программ являются программы, обеспечивающие работу «банка данных» как системы коллективного пользования в режиме разделения времени: прерывание операций при обращении клиентов с высшими приоритетами, планирование процесса обслуживания клиентов и равномерной загрузки технических средств, защиту памяти, а также общение с клиентами в режиме диалога.
      Но наиболее сложными являются комплексы программ, относящиеся, собственно, к сфере информационного поиска и обновления информации. Здесь обычно различают: программы грамматического анализа информационного запроса и его , формализации; программы перевода запроса на искусственный язык, приспособленный к процессу поиска данных в большой памяти; программы поиска информации; программы формирования справок для выдачи их клиенту. Каждый из этих комплексов состоит из нескольких десятков совместно работающих программ, содержащих тысячи команд.
      Рассмотренные выше комплексы программ способны организовать составление так называемых простых справок, для формирования которых главное — это найти нужную информацию.
      Однако, кроме простых справок, «банк данных» должен выдавать сложные ответы, для подготовки которых необходимо не только найти информацию, нередко в различных хранилищах и по разным признакам, но и провести достаточно сложные вычисления с многократным обращением к данным по ходу расчета. Для этой цели служат дополнительные комплексы программ решения информационно-расчетных задач. Комплексы эти являются обычно проблемно-ориентированными. Наличие их — неотъемлемое свойство и вернейший отличительный признак информационно-поисковых систем узкого направления или отраслевой профилизации.
      Приведенное здесь описание «банков данных» дает, естественно, сильно упрощенную картину их организации. На практике это выглядит значительно сложнее. Тем не менее аналогия между обычными банками и «банками данных» теперь проглядывается полнее.
      Решая практические вопросы построения того или другого конкретного «банка данных», пользуются не только общими методами. В зависимости от назначения «банка данных», отраслевой принадлежности хранимой информации, специфики взаимоотношений с клиентами непрерывно вносятся усовершенствования, упрощающие работу ЭВМ и общение ее с пользователями. В частности, важное значение имеет использование так называемых стандартных запросов.
      Стандартными запросами называются требования на поиск и выдачу заранее предусмотренного перечня сведений. Они применяются либо в тех случаях, когда специальным регламентом определена периодическая выдача некоторой совокупности сведений, либо в случаях часто встречающихся обращений к «банку данных». Стандартные запросы могут быть занумерованы, поэтому для их выдачи в памяти ЭВМ достаточно иметь дополнительную табличку с адресами документов, выдаваемых по каждому стандартному запросу. Тогда формирование справки будет происходить фактически без дополнительного поиска.
      Для удобства клиентов создаются специальные справочники, в которых можно найти стандартный запрос, достаточно полно соответствующий потребностям клиента. Стандартные запросы не должны быть полностью фиксированы, они могут содержать и переменную часть. Например, при сборе итоговых данных о выпуске продукции в фиксированную часть стандартного запроса удобно отнести перечень сведений, а к переменной — наименование предприятий, от которых необходимо получить информацию, а также и период (сутки, месяц, квартал, год). Легко видеть, что стандартные запросы сокращают число операций ЭВМ не только на поиск документов, но и на перевод запроса с естественного языка на информационный.
      Аналогично для стандартных запросов, а также для некоторых запросов, не включенных в перечень стандартных, могут быть заранее подготовлены формы и бланки выдачи информации и соответствующие им программы формирования фрагментов справок. Это также сокращает число операций ЭВМ при обслуживании каждого клиента.
      В процессе эксплуатации любого «банка данных» возникает необходимость в обновлении информационных массивов. Появляются новые данные, которые целесообразно поместить для хранения в банк, некоторые сведения могут оказаться устаревшими, и их полезно изъять из хранилищ. Обновление информации, к сожалению, не сводится к простому стиранию или записи того или другого документа или дескриптора. При появлении в информационном массиве нового элемента информации необходимо создать соответствующие связи, устанавливающие его классификационные (лингвистические) и грамматические отношения с другими элементами информации. Аналогично при стирании элемента информации необходимо позаботиться о восстановлении такого рода связей, если они нарушены в результате изъятия одного из элементов.
      Представленный краткий обзор структуры и принципов действия «банков данных» убеждает, что ЭВМ, работающие, в информационно-поисковых системах, решают сложнейшую неарифметическую задачу при помощи программ, содержащих колоссальное число команд. Разветвленность и взаимозависимость логических условий, многоаспектность и глубина анализа, огромное число сложнореализуемых связей между отдельными операциями машины приближают эту сферу применения компьютеров к неформальным процессам мышления. Если же учесть скорость выполнения операций и число одновременно участвующих в расчетах элементов информации, то вряд ли удастся найти человека, способного конкурировать в этом вопросе с ЭВМ.
      «Банки данных» располагают мощными средствами защиты памяти от попадания посторонней информации и от обращения клиентов в зоны памяти, доступ к которым им не предусмотрен. Естественно, что в закрепленных за данным клиентом зонах памяти он является полным хозяином своей информации. «Постороннему» клиенту специальные программные средства дают возможность только считывать информацию.
      — Где же на практике используются колоссальные возможности «банков данных»?
      — Во-первых, так сказать, по прямому назначению в виде самостоятельных справочных систем разнообразного профиля. Во-вторых, они входят как подсистемы в другие крупные программные комплексы, например, в автоматизированные системы управления.
      — Хорошо бы познакомиться хотя бы с самыми распространенными примерами использования «банков данных».
      Вот современный «банк данных» научно-технической информации. Все документы — научные статьи, технические отчеты, описания изобретений, протоколы испытаний и т. д., подлежащие хранению в банке., помещаются в основное хранилище. Для этого документ фотографируется сначала на обычную фотопленку, а затем, при вводе в хранилище, переносится на специальный. малоформатный микрофильм. Библиотека фотокопий основного хранилища размещается в барабанах кассетного типа. Такой барабан имеет 200 кассет/каждая кассета содержит 50 микрофильмов, а в микрофильме помещается примерно 100 страниц обычного текста. Другими словами, в барабане хранится информация, зафиксированная примерно на миллионе стра;-ниц. Хранилище же может состоять из 100 — 200 и более барабанов.
      На каждый документ, вводимый в основное хранилище, составляется специальное описание, в котором содержатся сведения об авторах и названии документа, его номер, число страниц, адрес в библиотеке фотокопий, а также краткий реферат — конкретизация темы, используемые методы, физические характеристики, оборудование и аппаратура, способы исследования, условия испытаний и т. д. Описание документа на информационно-поисковом языке дескрипторного типа заносится в информационный массив (каталог) на магнит-
      ных дисках. Объем каталога может достигать нескольких миллиардов байт. Каталог разбит на предметные рубрики, составленные из дескрипторов, и упорядочен по алфавиту.
      Система снабжена развитым программным хозяйством, обеспечивающим работу ЭВМ по выполнению всех необходимых функций информационно-поисковой системы.
      Сформулированный информационный запрос вводится в ЭВМ с терминалов рабочего места пользователя. Далее следует грамматический анализ запроса и перевод его на информационно-поисковый язык — построение формального поискового предписания. В соответствии с этим предписанием ведется поиск в информационном массиве-на магнитных барабанах в пределах предметных рубрик, соответствующих дескрипторам запроса. Скорость поиска — несколько тысяч записей в секунду. В результате поиска находятся описания документов и их адреса в библиотеке фотокопий. Описания документов выводятся на печать или на экран рабочего места пользователя. Пользователь просматривает описания документов, прочитывает рефераты и уточняет, какие именно документы ему нужны.
      Адреса отобранных документов и индекс заказчика нажатием кнопки переводятся в память ЭВМ. Происходит обращение к библиотеке фотокопий. В зависимости от желания заказчика и объема документа текст либо выводится на дисплей рабочего места, либо пересылается заказчику в виде фотокопий. Время снятия фотокопий — 0,2 — 0,5 секунды (фотографирование в ультрафиолетовых лучах и сухое проявление).
      Клиенты «банка данных» имеют возможность подавать заявки и на периодическое обслуживание без специального запроса. В заявке указываются лишь даты и описания необходимых им документов.
      По данным, имеющимся в информационно-поисковых системах такого типа, могут составляться периодические аннотированные бюллетени по основным направлениям научно-технических областей. Система способна обслуживать десятки тысяч клиентов, обращающихся через сотни выносных рабочих мест. Информационно-поисковые системы такого типа создаются в крупных научно-исследовательских центрах, конструкторских бюро, университетах, высших технических учебных заведениях, научно-производственных объединениях. Подобной системой обладает, например, упоминавшийся уже ВИНИТИ.
      Похожую структуру имеет и информационно-поисковая система современной библиотеки, например, крупнейшего книгохранилища СССР — Библиотека имени В. И. Ленина.
      Здесь по запросу читателя ЭВМ не только выполняет поиск конкретных книг. Она способна выдавать библиографические списки по новым поступлениям, различные указатели и справки, помогающие читателю быстрее сориентироваться в сложном библиотечном хозяйстве и океане жниг основного хранилища.
      ЭВМ решает также многие учетно-статистические задачи: накапливает сведения о движении книжного фонда, учитывает данные о контингенте читателей, готовит материалы для различного рода отчетов, которые библиотека должна представлять в вышестоящие инстанции как по территориальной, так и по ведомственной принадлежности, а также в органы государственной статистики.
      Большое распространение получили информационнопоисковые системы и в области сбора, хранения и обработки медицинской информации. Число таких систем только в нашей стране уже составляет несколько десятков.
      Вот, например, информационно-поисковая система Киевского онкологического института. Она имеет следующую структуру: первичным элементом информации, помещаемым в основное хранилище (на магнитных лентах), является карта обследования больного — формализованная история болезни. Карта состоит из разделов; каждый раздел — из пунктов; некоторые пункты делятся на подпункты.
      В разделе общих сведений о больном помещаются фамилия, имя и отчество больного, его возраст и пол, сведения о профессии и условиях труда, состав семьи и сведения о жилищных условиях, режим труда и отдыха, гигиенические мероприятия, занятия физкультурой и другие сведения — всего около 20 пунктов.
      Раздел анамнеза (около 50 пунктов) содержит сведения о всех болезнях, которые перенес человек со дня рождения, характер их протекания, методы лечения, осложнения и последствия. Кроме того, сюда же занесены данные о состоянии здоровья родителей и ближайших родственников, помогающие составить представление о наследственности больного.
      Раздел врачебных осмотров представляет заключения лечащих врачей в момент поступления больного на лечение и в последующие посещения врачей в течение всего периода лечения.
      Раздел объективного обследования содержит данные всех анализов, электрокардиограмм, рентгеноскопии, энцефалограмм, флюорографии, зондирования, измерений кровяного давления, обследования глазного дна и т. д.
      Раздел «Диагноз» показывает динамику диагнозов на всех этапах заболевания, лечения и выздоровления больного.
      Наконец, в разделе «Отдельные результаты» отмечаются данные о состоянии здоровья больного после окончания лечения в течение нескольких лет, если этот больной подвергался периодическому амбулаторному наблюдению или состоял на учете в диспансерах.
      Формализованная история болезни размещается в памяти ЭВМ таким образом, чтобы поисковым признаком могли служить не только фамилия больного, но и любые части (пункты) различных разделов и их сочетания. Это требуется для того, чтобы ЭВМ могла найти не только историю болезни конкретного больного по его фамилии, но и выделять группы больных по сложным признакам, например, перенесших ту или другую операцию, прошедших тот или другой курс лечения, имевших то или другое осложнение, а также группы больных по возрасту, по профессиям, по длительности протекания тех или других стадий болезни и т. д.
      Основное хранилище системы содержит истории болезни нескольких тысяч больных, накопленные более чем за 20 лет. Математическое обеспечение системы имеет программы не только для поиска информации и формирования простых справок, но и для статистической
      обработки анализа всего информационного массива и его частей.
      Одно из важнейших назначений системы — поиск медицинского прецедента. Суть его заключается в следующем. Допустим, в клинику поступил новый больной. Он прошел врачебный осмотр и объективные обследования (анализы, инструментальные измерения), известен также анамнез. На основании этих данных лечащий врач должен поставить окончательный диагноз и наметить план лечения — медикаментозного, физиотерапевтического, хирургического. Однако организм человека — объект чрезвычайно сложный, реакция отдельных людей на те или другие медикаменты, на те или другие воздействия лечебных мероприятий очень индивидуальна. Поэтому врачу подходить к лечению больного надо не формально, а стараться учесть некоторые малоприметные особенности данного индивидуума и специфические нюансы разновидности заболевания. До последнего времени ему помогал только личный опыт и хорошая память. Теперь на помощь приходит ЭВМ.
      Располагая информационно-поисковой системой, врач может опираться на коллективный опыт многих предшественников, зафиксированный в историях болезней, и на грандиозную память современных компьютеров.
      Сначала он должен познакомиться с историями болезни, хранящимися в памяти ЭВМ, больных, которые болели той же разновидностью болезни и имели близкие субъективные и объективные характеристики — медицинский прецедент. Зэтем поинтересоваться, что происходило у этих больных при употреблении тех или других медикаментов или применении физиотерапевтических методов лечения. Далее, он должен осмыслить осложнения и побочные действия, имевшие место при сходных обстоятельствах. Потом ему будет полезно сравнить отдаленные результаты при различных вариантах лечения и т. д. Изучение прецедентов, быть может, подскажет ему, какие еще анализы или обследования стоит сделать, на какие особенности организма больного или специфику разновидности заболевания необходимо обратить внимание, каких побочных действий лекарств следует остерегаться. Он сможет обдумать с учетом опыта всех своих предшественников показания и противопоказания к хирургическому вмешательству, применению других лечебных средств. Наконец, учитывая индивидуальный характер действия лекарств, он может проанализировать результаты тех или других методов лечения «в среднем», по большому числу сходных больных и выявить возможные тенденции, полезные для окончательного назначения плана лечения или его корректировки, исходя из фактического течения болезни.
      Поиск и анализ медицинского прецедента имеют большое теоретическое и практическое значение и интенсивно вторгаются в лечебную практику. Однако это не единственный путь использования информационнопоисковой системы.
      Важное значение имеет обработка и анализ всего массива истории.болезни или его частей по характеристикам больных и разновидностям заболеваний. В частности, сопоставляя возраст людей в момент заболевания, можно понять, «помолодела» данная болезнь или «постарела» за последние 10, 20 и т. д. лет.
      Можно узнать, влияет ли на заболеваемость данным недугом профессия человека, условия труда и отдыха, его пол, режим жизни и в какой степени это сказывается. 1 Легко проследить, как меняется (или не меняется) стечением времени эффективность тех или других препаратов или методов лечения, для каких возрастных или профессиональных групп людей и для лечения каких стадий болезни более эффективны эти препараты и методы лечения. Важно также оценить, как сопоставляются изменения хода болезни в процессе лечения с отдаленными результатами, какое это оказывает влияние на сопутствующие заболевания. Много других интересных сведений сообщит банк медицинских данных, особенно если обращаться к нему со знанием дела и не жалеть труда и средств для его обновления и пополнения.
      Весьма интересны и полезны «банки данных», используемые для управления предприятиями и отраслями народного хозяйства, для обслуживания аэродромов и бронирования авиабилетов, в сфере материально-технического снабжения, социального обеспечения и других.
      Но «банки данных» входят как составные части в соответствующие автоматизированные системы управления (АСУ), созданные на базе ЭВМ третьего поколения. Их удобнее рассмотреть в следующей беседе.
     
      ЭВМ ТРЕТЬЕГО ПОКОЛЕНИЯ В АСУ
      — Говорят, что только с появлением ЭВМ третьего поколения удалось по-настоящему решить проблему АСУ — автоматизированных систем управления.
      — Это верно. Такие машины создавались как раз для обработки больших массивов информации, поступающей от удаленных объектов!
      — Ну а можно ли теперь, с появлением машин третьего поколения, надеяться, что наступит пора полного автоматического управления, без участия человека?
      — Такая задача и не ставится! АСУ не предполагает исключение человека из процесса управления. Это человеко-машинная система! Компьютеру поручаются хотя и очень сложные, но все же лишь рутинные операции. Принципиальные же решения принимают люди!
      Всякая автоматизированная система управления (АСУ) — лишь автоматизированная, а не автоматическая. Это означает, что, кроме электронной вычислительной машины, внешних и периферийных устройств, каналов передачи данных и других технических средств, снабженных математическим и информационным обеспечением, она обязательно включает и людей! И, разумеется, не только специалистов, обслуживающих всю эту технику и математическое обеспечение, а главное — работников аппарата управления — руководителей, принимающих ответственные решения по информации, которую готовит для них ЭВМ.
      Пусть речь идет, например, о каком-либо министерстве, управляющем своей отраслью народного хозяйства. Здесь отрасль — управляемый объект, а министерство — орган управления. Тогда отраслевая АСУ представляет собой инструмент, при помощи которого министерство собирает информацию о состоянии подчиненных предприятий — заводов, фабрик, складов, конструкторских бюро и т. д., перерабатывает ее в команды управления и своевременно доводит их до исполнителей. Любую АСУ можно условно разделить на такие основные подсистемы: во-первых, автоматизированный информационно-диспетчерский пункт, во-вторых, «банк данных» с программным и информационным обеспечением и, в-третьих, вычислительный центр с комплексом информационно-расчетных задач.
      Что же представляют собой названные подсистемы?
      Автоматизированный информационно-диспетчерский пункт (АИДП) это главный «регулировщик и дирижер АСУ». Сотни терминалов, установленных в «горячих точках» объекта управления, посылают сюда самые разнообразные сведения. Рассортировать эти потоки информации, направить их в требуемые адреса, «заком-мутировать» источники и потребителей сведений — вот нелегкая задача диспетчерского пункта!
      К АИДП подключены терминалы двух типов. Это периферийные устройства ввода-вывода информации на подчиненных предприятиях, и это автоматизирован
      ные рабочие места, расположенные в кабинетах сотрудников министерства.
      Через терминалы первого типа идет информационный обмен между органом управления и подчиненными объектами, вводятся данные о состоянии управляемых объектов и выдаются команды органа управления.
      В отраслевой АСУ состояние предприятий отражается в донесениях: ежедневных, еженедельных, месячных, квартальных и годовых. Сюда в первую очередь включаются данные о выполнении производственных заданий — представляются сводки о выпуске продукции но каждой номенклатуре. Предприятия также информц-руют министерство об обеспеченности производства сырьем и комплектующими изделиями, о состоянии 000-рудования, об узких местах, угрожающих срывом плановых заданий, и т. д. Кроме того, регулярно представляется отчетная, финансово-плановая и статистическая информация.
      С другой стороны, через эти же терминалы министерство отдает предприятиям оперативные распоряжения. Главки, управления и отделы министерства передают указания, корректирующие производственные задания и планы выпуска продукции. Они извещают предприятия о выделении дополнительных фондов на сырье, получение нарядов на предметы снабжения, об ожидаемом поступлении подвижного состава для отгрузки продукции и прочее, и прочее.
      Терминалы второго типа, установленные в самом министерстве, кроме обычных средств ввода-вывода информации, нередко оборудуются дисплеями и рассчитаны на работу в режиме диалога. С их помощью работники министерства обращаются в «банк данных» АСУ за нужными справками, выдают запросы на дополнительные сведения с предприятий. Они же используются для ответов на запросы подчиненных предприятий или ввода распоряжений министерства, касающихся всех или некоторых элементов управляемого объекта.
      Кроме собственно диспетчирования, АИДП, во-первых, обрабатывает поступающую информацию и по заданному регламенту, в определенном порядке засылает ее в «банк данных» АСУ; во-вторых, регулярно готовит и автоматически выдает разнообразнейшие справки о состоянии подчиненных предприятий. Роль их чрезвычайно важна. Скажем, суточные справки готовятся к началу рабочего дня и дают возможность министру, его заместителям, начальникам главков и отделов министерства постоянно находиться в курсе событий и иметь исчерпывающие сведения о работе подчиненных предприятий. По этим данным работники министерства принимают оперативные решения, вмешиваются в ход событий, обеспечивая предприятиям возможность выполнения производственных заданий.
      АИДП потому, собственно, и называется диспетчерским, что текущие к нему реки и ручьи информации от предприятий и работников министерства он разводит по заранее предусмотренным местам: одно — в справку министру, другое — в «банк данных», третье — на терминал определенного предприятия и т. п.
      Очевидно, что реализация столь сложных функций невозможна без современной ЭВМ третьего поколения. Часто АИДП располагает даже самостоятельной ЭВМ, как это имеет место в отраслевой АСУ.
      Вторая подсистема — «банк данных» АСУ — представляет собой разновидность рассмотренной выше информационно-справочной системы, правда, достаточно сложную: здесь обычно велик объем информации и весьма разнообразны типы запросов и виды работ,
      производимых над этой информацией.
      Есть в этом банке, разумеется, все, что полагается «банку данных»: ЭВМ (иногда отдельная не. выделяется, а используется «по совместительству» машина АИДП), связанная через АИДП с терминалами работников министерства, а телеграфными или тедефонными каналами — с терминалами подчиненных предприятий; есть и большая память на магнитных дисках, или магнитных лентах; есть комплекс программ зап.и,си и корректировки информации; комплексы программ анализа информационных запросов, а также программы поиска
      и выдачи информации.
      Большая память «банка данных» разделена на две части. В первой хранится так называемая пострянная, точнее, редко изменяющаяся информация: нормативы, цены, справочники, положения, инструкции, регламенты, приказы и распоряжения вышестоящих инстанций и самого министерства и другие документы, которыми руководствуются сотрудники и министерства й подчиненных предприятий в повседневной работе. Здесь же находятся сведения об основных фондах предприятий, занимаемых площадях, производственном оборудовании, штатных, транспортных и других вспомогательных средствах. В эту часть памяти могут обращаться не только люди со своих терминалов, но и ЭВМ АИДП и ВЦ, если им по ходу расчета потребуются справочные данные.
      Во второй части большой памяти располагается переменная, периодически или эпизодически обновляемая информация.
      Сюда заносятся данные из суточных, недельных, месячных, квартальных и т. д. донесений подчиненных предприятий о состоянии производства (информационное поле АСУ), а также оперативные данные от вышестоящих и смежных ведомств.
      И наконец, третья подсистема — вычислительный центр (ВЦ) АСУ. Он располагает одной или несколькими ЭВМ такой же или даже большей производительности, чем машина АИДП. В некоторых случаях все вычислительные функции всех трех подсистем — АИДП, «банка данных» и ВЦ — могут быть совмещены в одной достаточно мощной ЭВМ. Машины ВЦ связаны и с «банком данных» в целях получения исходной информации для расчетов, и с машиной АИДП.
      Обычно ЭВМ ВЦ работают в режиме разделения времени как системы коллективного пользования со всеми абонентами, имеющими терминальные выносные пульты.
      Важнейшее место в работе вычислительного центра АСУ занимают вычисления, обеспечивающие оперативное управление отраслью. Сюда относится корректировка производственных заданий, вызванная как потребностями внутренней и внешней торговли, так и необходимостью ликвидации узких мест. Многие расчеты ведутся в связи с переходом на новые виды продукции, внедрением новой техники и оборудования, усовершенствованием технологии и организации производства.
      Кроме того, ВЦ готовит справочные и отчетные материалы для вышестоящих ведомств, планирующих органов, государственной статистики, материально-технического снабжения, финансовых органов и т. д.
      Из сказанного можно получить примерное представление о масштабах программного (математического) обеспечения АСУ. В его состав входят программы внутреннего математического обеспечения каждой ЭВМ, имеющейся в АСУ, комплекс программ «банка данных», комплекс программ АИДП, выполняющих обработку поступающей информации и подготовку справок, комплексы программ для решения информационно-расчетных задач текущего и долгосрочного планирования, оперативного управления, учета и отчетности и других технико-экономических расчетов.
      Кроме того, в математическое обеспечение включается также общая операционная система АСУ, организующая согласованную работу всех технических и программных средств АСУ. Общий объем программного хозяйства АСУ колеблется от сотен тысяч до миллионов команд ЭВМ.
      Так выглядит отраслевая АСУ — автоматизированная система управления министерства или ведомства.
      Аналогичный вид имеет и АСУ предприятия, или, иначе, АСУП. Управляемыми объектами здесь являются отдельные цехи: заготовительные, сборочные, вспомогательные, — технологические линии и производственный процесс предприятия в целом. Необходимо все же отметить, что плановые, отчетные и экономические расчеты занимают более скромное место. А в основном это и вопросы обеспечения ритмичности производства, и синхронизация различных технологических и производственных операций, и обеспечение бесперебойной работы станков-автоматов, автоматических линий, сборочных конвейеров и других агрегатов производственного оборудования.
      К разряду АСУП можно отнести также АСУ целого ряда предприятий непроизводственной сферы: крупных складов, больниц, гостиниц, систем бронирования железнодорожных и авиационных билетов, систем управления аэродромами, уличным движением и т. д.
      Особо стоит подчеркнуть тот факт, что всякая АСУ предъявляет весьма высокие требования к ЭВМ, входящим в ее состав. И это понятно. Ведь АСУ является системой коллективного пользования с разнесенными по объекту управления терминалами. Она содержит «банк данных» с комплексом программ сбора, обновлет ния и поиска информации. Наконец, на вычислительных машинах АСУ предусматривается реализация сложных расчетно-информационных процессов, связанных с решеним задач управления. Таким разносторонним требованиям могут удовлетворить только ЭВМ третьего поколения.
      — Если ЭВМ третьего поколения способны работать в режиме коллективного пользования, управлять «банками данных» и эффективо решать управленческие задачи, то зачем же создавать еще АСУ?
      — Ваш вопрос можно перефразировать так: чем отличается использование ЭВМ, входящей в АСУ, от использования обычной ЭВМ при решении задач управления в народном хозяйстве?
      — Совершенно верно!
      Главное отличие заключается в принципиально новой организации общения человека и ЭВМ.
      Пусть АСУ еще не введена в действие, но в министерстве или на предприятии уже установлена ЭВМ и даже имеются все программы, необходимые для решения задач управления. Особенности организации общения человека с ЭВМ в этих условиях легко проследить на примере управления отраслью.
      Для наглядности рассматривается задача корректировки производственного задания нескольких предприятий в связи с поступившим распоряжением. Пусть, например, требуется увеличить в следующем квартале выпуск телевизоров марки «Рубин-711» на 75 процентов.
      Как сотрудник министерства приступит к решению этой задачи? Сначала он обратится к документам, имеющимся в отделах главка, курирующего названные ему предприятия, для получения сведений о наличии на предприятиях необходимых видов технологического оборудования и его загрузке при существующем производственном задании. Поскольку в документах отражены данные на момент утверждения задания (на конец предыдущего квартала), ему придется порыться в делах, хранящих сведения о поступлении на предприятия нового оборудования.
      Далее он бросится к междугородному телефону, чтобы уточнить непосредственно на предприятиях, какое оборудование уже введено в строй и какое из имеющегося вышло из строя или находится в стадии замены.
      Но не так-то просто дозвониться до заводов, дождаться, пока найдут и пригласят к телефону нужного человека. А что, если он уехая на смежное предприятие или заболел?
      Можно, конечно, дать циркулярную телеграмму на все заводы сразу. Но тогда пропадает уверенность, что удастся получить именно те сведения, которые нужны;
      по телефону все-таки легче понять друг друга.
      Наконец, тем или другим путем сведения собраны. Тут сотрудник министерства засядет за специальные справочники, своды нормативов и станет выписывать оттуда данные, позволяющие оценить имеющиеся на предприятиях резервы и допустимые уровни загрузки оборудования. После этого он пойдет на ВЦ и будет просить выделить ему машинное время. Получив доступ к ЭВМ, он попросит ввести в оперативную память хранящуюся на ленте или диске программу решения задачи об оптимальном размещении производственных заданий. Для работы придется отперфорировать и ввести в ЭВМ исходные данные, которые он принес с собой, и только тогда начнется решение задачи. Дождавшись результатов расчета, сотрудник заберет с собой «распечатку» ответа для ознакомления и анализа.
      Проанализировав результаты решения задачи и убедившись, что предполагаемая корректировка производственных заданий допустима (если это не так, придется запрашивать дополнительные сведения от предприятий о возможности установки на имеющихся площаДях нового оборудования), сотрудник министерства переходит к следующему вопросу: как обеспечить дополнительное задание сырьем, материалами, комплектующими изделиями, рабочей силой, финансами и т. д. Опять засядет он за телефоны, чтобы собрать информацию о наличии материалов или фондов на них, о возможности обойтись имеющимся финансированием или о потребностях в дополнительных средствах и т. д.
      Сформировав информационный массив, он снова пойдет на ВЦ, опять обратится к ЭВМ и решит новую задачу об обеспечении дополнительного задания.
      Если все расчеты прошли удачно, наступает новый этап. Теперь ему нужно оставить целый ряд документов для реализации дополнительного задания: распоряжения на предприятия, заявки на сырье и материалы, на транспорт для подвоза, запросы в Госбанк на дополнительные кредиты и др. При выполнении этой работы сотрудник напишет или напечатает многие документы. Для выполнения тех или других расчетов он будет обращаться по мере надобности к ЭВМ, запрашивать на
      предприятиях данные или извлекать из справочников необходимые сведения.
      Примерно таким образом будет действовать этот сотрудник, и вряд ли ему удастся уложиться в неделю. Можно возразить: зачем ходить на ЭВМ, когда можно установить терминалы на рабочих местах сотрудников министерства? Верно, установить терминалы и у себя и на предприятиях и связать их с ЭВМ министерства можно, но это уже будет шаг по пути создания АСУ. Но только шаг. До АСУ еще далеко. Кроме того, с клавиатуры терминалов сотруднику слишком долго пришлось бы набирать свою довольно обширную информацию: несколько показателей по десяткам видов оборудования различных предприятий, а также сотни нормативных характеристик. Быстрее сходить на ЭВМ, где имеются скоростные устройства ввода. Но это, разумеется, не решит основной проблемы! Вся трудность в том, что на долю сотрудника министерства приходится немало ручной работы, требующей больших затрат времени. Особенно существенно, что для решения каждой задачи на ЭВМ он вынужден заново вручную формировать информационные массивы, запрашивая каждый раз ту или другую информацию на предприятиях или отыскивая ее в справочниках и сводах нормативов. Но сотрудники предприятий, не зная заранее, какие сведения от них потребуют, могут быть не готовы немедленно дать ответ на запрос, отчего будет расходоваться дополнительное время на сбор и подготовку данных на предприятиях. Кроме того, к сотрудникам предприятия могут поступать почти одновременно несколько запросов от различных работников министерства и по различным поводам. Может создаться нервозная обстановка, так как каждый из них станет требовать выполнить его задание в первую очередь, что приведет к тому, что ответы могут оказаться непродуманными, в них много будет ошибок и сведений «с потолка».
      Естественно, что в таких условиях работник министерства не испытает особого удовольствия от использования ЭВМ. Он увидит, что для решения минутной задачи ему приходится днями и даже неделями готовить информацию, «выбивать» ее с предприятий, часами копаться в справочниках. А результаты решения на ЭВМ нередко оказываются близкими к тому, что он мог бы прикинуть и на глазок.
      Совсем другая ситуация складывается в том случае, когда в министерстве создана АСУ. Нет нужды что-либо запрашивать. Все сведения, исчерпывающим образом характеризующие состояние производства, уже имеются в информационном поле «банка данных» АСУ. Эти сведения обновляются по жесткому регламенту (некоторые ежедневно, другие еженедельно и т. д.), установленному для всех предприятий приказом министра. Они вводятся с заводских терминалов без специальных запросов и помещаются в «банк данных» независимо от того, решают ли в это время сотрудники министерства какие-нибудь задачи или нет. Информационное поле обновляется постоянно и всегда готово выдать свежую информацию. Работников предприятий никто не дергает. Они раз и навсегда знают, к какому времени что нужно подготовить и в каком объеме.
      В этих условиях работник министерства со своего терминала выдает лишь команды на подготовку (выборку из «банка данных») необходимого информационного массива. Вручную он вводит небольшие порции информации, выражающие особенности его запроса или задачи. Например, готовя дополнительное производственное задание на увеличение выпуска телевизоров, он с терминала укажет только марку телевизора — «Рубин-711», процент увеличения выпуска и некоторые другие, столь же краткие сведения.
      Ему нет нужды заботиться о вводе в оперативную.
      память тех или других программ — это за него сделает операционная система АСУ. Ему не придется возиться с промежуточными результатами расчетов — их «осмыслит», а если надо, и затребует дополнительную информацию для продолжения расчета управляющая программа соответствующего комплекса информа-
      ционно-расчетных задач. Сотрудник министерства лишь укажет, какие наиболее важные промежуточные результаты должны выдаваться на экран дисплея для их просмотра и, если надо, для корректировки, которую он введет с терминала.
      . Таким образом, никому не придется никуда ходить и ничего не нужно носить на ЭВМ.
      После того как задача решена, нет нужды заниматься подготовкой документов. По специальной команде с терминала ЭВМ сама организует автоматическую передачу распоряжений на предприятия или распечатает по формам установленного образца документы, готовые к подписи и утверждению руководящими работниками министерства.
      Разница огромная! Без АСУ сотрудник министерства тонет в море документов, пытаясь кое-как собрать данные для решения задачи, и часами висит на телефонах. Нередко он оказывается беспомощным перед тягучей тиной путаницы, разнобоя и несогласованности в различных сведениях. Даже ЭВМ не в силах ему помочь. Когда появляется АСУ, человек становится хозяином положения. В его распоряжении четкие и строго регламентированные потоки информации. ЭВМ превращается в могучего помощника, покорного воле человека. В этом основное преимущество АСУ, подчеркивает академик В. Глушков, ведущий специалист нашей страны по проблемам автоматизации управления, создатель современных научных принципов построения АСУ.
      Надо заметить, что процесс подготовки любого важного решения, любого серьезного документа в масштабе министерства — процесс многоэтапный. В рассмотренном примере корректировки производственного задания возможны следующие этапы. Оценка возможностей предприятий и выявление резервов — первый этап; решение задачи оптимального размещения производственных заданий — второй; расчет обеспечения сырьем и материалами — третий; внутриотраслевое балансирование — четвертый и т. д. и т. п.
      При обычном использовании ЭВМ каждый этап заканчивается, как правило, выводом результатов решения на печать — печатанием промежуточного документа. Затем, следует анализ и дополнение расчетов новой информацией — формированием. (вручную) нового информационного массива для решения на ЭВМ задачи следующего этапа. В таком обращении с информацией весь корень зла. Сколько ручной работы приходится при этом выполнять! Многие элементы информации вводятся и выводятся из ЭВМ по нескольку раз. А ведь самая трудоемкая работа — это перфорация или набор данных на клавиатуре. Сколько при этом допускается ошибок, сколько времени и труда занимают контроль и исправление первичных носителей!
      При разработке АСУ этот корень зла следует вырвать в первую очередь. Информация должна вводиться на машинный носитель только один раз и в «первичном звене», то есть там, где она рождается: о выпуске продукции — на предприятии, о наличии материалов — на складе, о состоянии финансов — в бухгалтерии и т. д. При решении любых задач эта информация перерабатывается и передается только автоматически. Запрещено выводить из ЭВМ хотя бы одну строчку из той информации, которую потом опять придется вводить, печатать сведения, которые не нужны ни для чего другого, как только для ввода информации в ЭВМ при переходе к другому этапу решения задачи. Выводятся из ЭВМ только те документы, которые являются окончательным итогом решения задачи и нужны, например, для подписи и утверждения руководством. Даже передача сведений из одного органа управления в другой, скажем, из заводоуправления в министерство, из одного главка в другой либо в соседнее министерство, должна осуществляться автоматически на машинных носителях. И уж если такая передача невозможна, то гораздо разумнее отвезти магнитную ленту или колоду перфокарт и ввести их в ЭВМ получателя, чем печатать сведения на бумаге, затем перфорировать их снова для ввода в другую ЭВМ. Печатание промежуточных результатов, нуждающихся затем в повторном вводе в ЭВМ, обычно съедает весь эффект автоматизации управления, сводит к нулю всю экономию времени, сил и средств от применения ЭВМ в АСУ.
      Отсюда следует, что при создании АСУ исключительное внимание должно уделяться информационному обеспечению. Вся информация, перенесенная на машинные носители и соответствующим образом очищенная от дубликатов и второстепенных сведений, заносится в единое информационное поле АСУ. Этим полем пользуются все сотрудники органа управления, независимо от ранга и профиля работы. Каждый из них йолучает требуемую ему информацию в нужном разрезе: министр — одно, начальник главка — другое и т. д. То жэ самое относится и к машинам АСУ; какую бы они задачу ни решали, информация извлекается из единого информационного поля АСУ. И категорически запрещено иметь отдельные информационные поля для различных руководителей или подразделений министерства.
      Этот последний тезис нужно понимать следующим образом. Общее информационное поле может состоять из секций, в которых расположена информация, наиболее характерная для различных подразделений. Например, первая секция содержит общеминистерскую информацию; вторая — информацию производственного главка (если производственных главков несколько, то будет несколько таких секций); следующая секция — финансово-планового главка; далее — секция главка капитального строительства и т. д. Каждый главк заботится о формировании своей секции, о ее пополнении, аккуратном обновлении. Но информация в секциях не дублируется, данный элемент информации находится только в одной из секций. Любой сотрудник министерства обращается в ту секцию, в которой находится нужная ему информация, независимо от того, в каком главке он работает.
      В этом смысле информационное поле едино. Кто бы ни запросил сведения о выпуске изделий данного типа на данный момент: министр, начальник производственного главка или представитель бухгалтерии — все они получат одни и те же сведения. Если бы это было не так, то началась бы такая путаница, при которой АСУ скорее принесла бы вред, чем пользу.
      — Теперь понятно, что даже при наличии ЭВМ третьего поколения создание АСУ — проблема сложная. Видимо, больше всего времени и средств расходуется на информационное и математическое обеспечение.
      Безусловно, иногда на это уходят годы упорного труда многих людей.
      — Как же окупаются затраты на создание АСУ?
      Неужели лишь за счет сокращения управленческого аппарата?
      — Нет! Тем более что фактически сокращения не получается, более того, для обслуживания ЭВМ нужен дополнительный персонал.
      — Тогда вы не получите эффекта от внедрения АСУ!
      — АСУ дает выигрыш за счет улучшения качества управления и в связи с этим значительного повышения эффективности производства.
      Разработка АСУ требует длительной работы большого коллектива специалистов. В него входят высококвалифицированные специалисты по вычислительной технике и программированию, по прикладной математике и системотехнике, по организации производства и технологии, а также экономисты, финансисты, плановики и даже психологи. Их работа начинается с обследования объекта управления, изучения свойств и характеристик основных его частей, анализа потоков информации и упорядочения документооборота. Лишь после этого
      можно вести речь о технических средствах и математическом обеспечении.
      В настоящее время технический комплекс АСУ может быть скомпонован из готовой серийно выпускаемой аппаратуры практически без какой бы то ни было переделки. Главное здесь — определение потребной мотности ЭВМ, объема внешней памяти, пропускной способности каналов связи, требуемых характеристик терминалов и т. д. Зная эти величины, можно выбрать из серийных такие средства, которые покрывали бы потребности и были бы по возможности недорогими.
      В какой-то мере аналогичная картина получается и в области программного хозяйства — математического обеспечения АСУ. Многие комплексы программ можно собрать из имеющегося стандартного набора. И здесь речь идет не только о внутреннем математическом обеспечении конкретных ЭВМ; даже такие программы, как управление «банком данных» и операционная система АСУ, можно взять типовые. Из имеющихся пакетов программ выбираются наиболее подходящие для создаваемой АСУ, исходя из объема памяти «банка данных», числа терминалов, объема задач внешнего математического обеспечения, режимов работы АСУ и других характеристик. Разработка новой операционной системы — явление редкое, а создание программ управления «байком данных» почти исключительное.
      Несколько сложнее обстоит дело с комплексами программ решения информационно-расчетных задач планирования, оперативного управления и различных технико-экономических расчетов. Однако во многих случаях эти программы также можно взять типовыми или позаимствовать у других АСУ аналогичного профиля. Бывает, что 80 — 90 процентов таких программ можно взять на стороне. Но все-таки каждая отрасль, каждое предприятие, каждый объект управления имеет свою специфику, требующую создания некоторых программ заново. Кроме того, подбор комплексов программ еще не все — предстоит стыковка всех программе единое целое, увязка их с операционной системой и доводка вычислительного процесса до состояния согласованной и устойчивой работы.
      Однако все это играет как бы вспомогательную роль; программы и технические средства всего лишь инструмент, призванный обрабатывать циркулирующую в системе информацию. Главная же задача разработчиков АСУ — это создание информационного обеспечения и на его базе создание новой организации управления отраслью или предприятием. Как говорится, необходимо приспособить структуру и методы управления к средствам автоматизации. В противном случае АСУ не даст должного эффекта. Так же как, по образному выражению, «нельзя вливать вино молодое в мехи ветхие», невозможно добиться хороших результатов, применяя новейшие средства автоматизации и электронной вычислительной техники к традиционным ручным методам управления.
      Разработчики АСУ должны прежде всего решить, какие же сведения необходимо поместить в «банк данных» АСУ, и в дальнейшем регулярно обновлять. Для отраслевой АСУ это сведения «о состоянии производства» на подчиненных предприятиях. Однако этот ответ оказывается весьма неопределенным. Чтобы заполнить большую память «банка данных», отведенную для информационного поля, необходимо конкретно знать весь перечень технико-экономических характеристик предприятий, подлежащих хранению и обновлению.
      Как предугадать, что потребуется сотрудникам министерства в процессе их управленческой деятельности и все ли данные, которые могут потребоваться, должны быть приготовлены заранее, а какие из них можно вычислять в момент подготовки ответа на запрос?
      Для ответа на эти вопросы используется так называемый граф показателей, основанный на принципе «первичности вторичного документа», предложенном академиком В. Глушковым. Суть его состоит в следующем.
      Все документы, поступающие в министерство: от предприятий — сведения о состоянии производства; от вышестоящих инстанций — директивы; от смежных и планирующих органов — фонды и т. д. — называются первичными. А документы, которые министерство выдает предприятиям в виде команд управления, вышестоящим инстанциям в виде отчетов, смежным министерствам в виде заявок, органам планирования, финансирования, статистики и т. д. в виде справок, называются вторичными.
      Если подходить очень формально, то в министерстве, собственно, и происходит переработка первичных документов во вторичные. Состав вторичных документов определить в принципе нетрудно, хотя это и весьма громоздкая работа, требующая тщательного анализа «выходных» документов и выявления технико-экономических показателей, которые в них содержатся. Более сложное дело определить минимальный состав первичных документов, достаточный для формирования всех вторичных.
      Естественно, что в процессе работы сотрудников министерства нередко возникает необходимость и в таких сведениях, которые не являются ни первичными, ни вторичными, а относятся к категории промежуточных показателей различных уровней. Как правило, эти сведения можно получать путем расчетов в момент подготовки ответа на запрос, поступающий в «банк данных». Однако в некоторых случаях их также можно хранить в «банке данных», там же могут храниться и отдельные вторичные показатели, потребность в которых возникает наиболее часто.
      Создание АСУ, бесспорно, освобождает работников органа управления от рутинных, нетворческих операций. У людей появляется время для того, чтобы выполнять работу поистине достойную человека, чтобы думать! Думать не только над тем, как устранить появившееся узкое место на производстве, но и о причинах, которые его породили, о профилактических мероприятиях, способных ликвидировать эти причины навсегда; думать, наконец, вообще над лучшими способами организации производства, внедрением новой техники и новой технологии, об улучшении экономических показателей, повышении эффективности производства и качества продукции.
      Это обстоятельство способно само по себе дать немалый экономический эффект за счет снижения простоев оборудования и потерь, ликвидации срывов, авралов, спешки и неразберихи; за счет выполнения планов и производственных заданий в условиях ритмичной работы с соблюдением всех требований технологии, а не любой ценой; за счет повышения сортности основной массы изделий.
      Но не только в этом дело. Чтобы показать влияние АСУ на экономику производства, стоит рассмотреть такой конкретный пример. Пусть речь идет о сборочном конвейере завода, на котором изделия собираются из отдельных узлов и деталей. На каждом рабочем месте выполняется определенная операция, связанная с установкой на изделие еще одной детали или узла. Чтобы обеспечить бесперебойную работу конвейера (а остановка сборочного конвейера — это ЧП для завода, чреватое значительными потерями), необходимо на каждом рабочем месте иметь некоторый запас устанавливаемых там узлов или деталей, или, как говорят, «задел», для компенсации возможной неритмичности подачи полуфабрикатов со склада. Но на складе тоже должен быть задел, в противном случае транспортер, прибывший за очередной партией полуфабрикатов, должен будет ожидать, пока она поступит, а задержка транспортера повлечет за собой срыв своевременной доставки полуфабрикатов на другие рабочие места и т. д.
      Если задел на рабочем месте исчисляется единицами пли десятками полуфабрикатов, то на складе — не менее нескольких единиц или десятков партий. Таким образом, общий задел по каждому узлу или детали может составлять сотни или тысячи, а иногда и десятки тысяч штук. Из этих полуфабрикатов молено было бы собрать дополнительно сотни или тысячи готовых изделий, если бы не опасность срыва работы сборочных конвейеров! Ясно, что солидный задел — это омертвленный капитал, который ложится тяжелым бременем на экономику предприятия. Кроме того, в нем «погибают» дефицитные материалы, сырье, труд рабочих и инженеров, он требует дополнительных складских площадей.
      И только АСУ, повышающая ритмичность производства, может обеспечить бесперебойную работу сборочных конвейеров при сниженном размере задела, особен-гто той его части, которая находится на складе.
      Ни один человек не может помнить все имеющиеся полуфабрикаты и знать в каждый момент времени, какая опасность подстерегает производство, какие узлы или детали на исходе, когда нужно подать команду заготовительным цехам, чтобы они успели ликвидировать узкие места, о каких материалах для заготовительных цехов и когда нужно побеспокоиться и т. д. Ни один диспетчер не способен предусмотреть всевозможных ситуаций, складывающихся в заготовительных цехах и на сборке.
      А АСУ все это может! Более того, в условиях АСУ можно организовать работу заготовительных цехов таким образом, что их продукция будет поступать не на склад, а прямо на сборку. Система для этого располагает возможностью не только оптимально планировать работу заготовительных цехов и оперативно готовить для них изменения производственных заданий, переключать цехи на выпуск других полуфабрикатов, но и автоматизировать технологическую, материальную, инструментальную и другие виды подготовки производства, автоматизировать техническую документацию на машинных носителях, переходить на автоматизированное управление станками-автоматами и автоматическими технологическими линиями; она располагает возможностью в еще большей степени снизить размеры задела без увеличения риска остановить сборочные конвейеры...
      Рассмотрен лишь один пример влияния АСУ на экономику производства — через заделы. Но их можно привести сотни. В целом затраты на создание АСУ окупаются быстро. Настолько быстро, что в настоящее время на ряде предприятий оказывается более рентабельно вкладывать капитал в автоматизацию управления, а не в расширение основного производства. Это важно еще и потому, что расширение основного производства редко осуществляется без дополнительного капитального строительства и без привлечения дополнительной рабочей силы. Создание же АСУ дает возможность повышать выпуск продукции почти без дополнительного найма рабочих (растет производительность труда) и с улучшением экономики производства (повышается рентабельность).
      В заключение надо подчеркнуть еще раз, что создавать АСУ необходимо в том случае, если целью этого дорогостоящего мероприятия является не слепое следование моде, не сокращение управленческого аппарата, не автоматизация тех действий, которые орган управления выполняет и без АСУ, а расширение функции управления, охват большого числа новых задач, недоступных ручному управлению, повышение глубины и качества анализа процесса производства, повышение его эффективности.
     
      НЕАРИФМЕТИЧЕСКИЕ ПРИМЕНЕНИЯ ЭВМ
      — О неарифметических применениях ЭВМ нередко говорят так, будто речь идет о машинах, способных думать как человек, даже в ходу выражение — «искусственный интеллект». Как это понимать? Ведь ЭВМ не в состоянии сделать ничего, кроме нескольких простейших арифметических и логических операций...
      — Вы заглянули в самый корень проблемы. Основная задача и состоит в том, чтобы суметь выразить через эти элементарные операции такие сложнейшие процессы, как, например, оценка шахматной позиции или выбор удачного синонима при переводе.
      — Но почему традиционные области применения ЭВМ не вызывают подобных трудностей?
      — Научные и технические проблемы в большинстве своем уже формализованы, изложены на языке математики, и их переложение на язык операций ЭВМ, как говорится, дело техники. А вот игра в шахматы, перевод с иностранного языка или процессы распознавания изображений не только не формализованы, но даже до конца и не поняты.
      Как известно, уже первые вычислительные машины с программным управлением умели выполнять не только арифметические операции (сложение, вычитание, умножение и т. д.), но и простейшие логарифмы операции: отрицание (если «да» обозначается единицей, то «нет» — нулем), сравнение (больше, меньше), дизъюнкцию (операцию «или»), конъюнкцию (операцию «и»), условный переход (если «да», то вычисления продолжаются одним набором операций, если «нет» — другим) и пр. Без логических операций немыслимо было бы построить сколько-нибудь сложные вычислительные процессы, да и вообще реализовать принцип программного управления счетом. Это легко понять из рассмотрения простейших примеров программ, приведенных выше.
      Вскоре ученые заинтересовались логическими возможностями ЭВМ вообще. Эти возможности оказались достаточно широкими; удалось построить алгоритмы, реализующие сложные функции формальной логики.
      Огромные возможности и «интеллектуальная» мощь ЭВМ третьего поколения поставили перед человечеством вопрос: «А не создан ли интеллект, сравнимый, быть может, в некоторых аспектах с интеллектом человека, а кое-где и превосходящий его?» Дискуссии по этому вопросу породили массу направлений, потребовали от исследователей осознания вопросов, что же такое вообще интеллект. Проблема «искусственного интеллекта», касающаяся в основном развития возможностей ЭВМ, волнует в настоящее время ученых всего мира. Но что такое интеллект, какую деятельность следует считать действительно интеллектуальной?
      Если человек решает системы дифференциальных уравнений, например, второго порядка, то, пожалуй,
      никто не усомнится, что он занят сугубо интеллектуальной деятельностью. Увидев же, как первоклассники, расчертив асфальт на квадраты, режутся в крестики-нолики, мы, возможно, произнесем несколько нелестных слов в адрес подрастающего поколения, которое не стремится стать особенно интеллектуальным. Но, как это ни парадоксально, для специалиста по искусственному интеллекту наибольший интерес представляет как раз игра, чем решение уравнений. В чем же дело?
      В том, что для решения уравнений не требуется собственно «мышления». Здесь имеется определенный алгоритм, который четко представляет процесс решения задачи в виде последовательности элементарных операций, легко реализуемых на ЭВМ. Представить же последовательность операций для принятия решения в игре, пусть даже такой простой, как крестики-нолики, не так уж просто. А человеку ежедневно приходится решать куда более сложные задачи на работе, дома. Шофер автобуса, например, принимает решение мгновенно затормозить или объехать, учитывая при этом десяток различных факторов. А как он это сделал — не объяснит. Скорее всего скажет, что руки сами повернули руль.
      Итак, для решения проблемы создания искусственного интеллекта существенную роль играет вопрос о формальном описании различных «неформальных» задач, о методах их расчленения на отдельные элементарные шаги и организации оптимальных в некотором смысле процедур перебора вариантов.
      Цель работ по созданию искусственного интеллекта — составление таких программ для ЭВМ, которые реализовали бы процессы, обычно требующие участия интеллекта человека. В основе всех этих процессов лежит теория эвристического поиска — решение задач методом проб и ошибок в пространстве возможных решений. Слово «эвристический» произошло от «эврика» — нашел. Таким восклицанием, по преданию, возвестил человечеству об открытии своего закона Архимед. (Кстати, серия книг, куда входит и данная книга, тоже называется «Эврика», и авторы надеются, что читатель также откроет для себя кое-что в той области знаний, о которой в ней говорится.) Вот почему вместо слов «искусственный интеллект» можно еще встретить — «эвристическое программирование».
      Прошло четверть века с тех пор, как английский математик К. Шеннон теоретически показал, как ЭВМ смогла бы играть в шахматы. Он же высказал чрезвычайно интересную мысль: если машина сможет хорошо играть в шахматы, она окажется в силах решать и другие важные жизненные задачи.
      Еще для ЭВМ второго поколения были запрограммированы простейшие игры: НИМ, крестики-нолики и др. Логические операции в сочетании с возможностью перебора большего числа вариантов обеспечивали машине «непобедимость». Постепенно добрались до игры в шахматы. Но здесь успехи достигались не так легко.
      Во-первых, шахматные позиции и возможные варианты развития игры были не столь прозрачными, как при игре в крестики-нолики, и описать их с помощью машинных операций оказалось довольно трудно. А во-вторых, что самое главное, число вариантов, подлежащих перебору, превышало возможности самых быстрых ЭВМ.
      Получалось как в старинной легенде. За изобретение шахмат изобретатель попросил у раджи «мизерную» награду: за первую клетку шахматной доски — всего одно пшеничное зерно, за вторую — два зерна, за третью — четыре и т. д. За каждую следующую клетку всего лишь в два раза больше зерен, чем за предыдущую. Царь с радостью согласился. Но скоро выяснилось, что требуемого числа зерен не найдется во всем государстве. В самом деле, здесь получается ряд чисел: 1, 2, 4, 8... или 2щ где n = 0, 1, 2, 3, 4, ... 63.
      Известно, как растут значения показательной функции: 25 = 32; 210 превышает 1000; 220 будет больше миллиона; 230 — больше, чем 100 миллиардов... И хотя 264 — число конечное, оно поистине колоссальное, даже написать его на бумаге не так просто.
      Аналогичная ситуация имеет место и при анализе игры в шахматы. Если просмотр продолжения игры на один ход требует оценки п позиций, то на два хода требуется уже оценить примерно п2 позиций (на каждую позицию первого хода — примерно п возможных позиций, образующихся при втором ходе), на три хода — примерно п3 позиций и т. д. Мы опять имеем дело с быстрорастущими значениями показательной функции... Короче говоря, пришлось отказаться от идеи полного перебора всех возможных вариантов и пойти путями более сложными. Нужно признать тем не менее, что в этой области обозначился известный прогресс: ЭВМ все-таки играют в шахматы. Некоторые специалисты считают, что ЭВМ уже достигла квалификации шахматиста первого разряда. Впрочем, есть и скептики.
      Так, английский шахматист Д. Леви еще в 1968 году заключил пари с программистами на тысячу английских фунтов, что и через десять лет никакой ЭВМ не удастся его обыграть. Кстати, он был главным судьей на проходящем в Стокгольме первом чемпионате мира по шахматам между ЭВМ, точнее говоря — между различными шахматными программами. В чемпионате участвовали программы — признанные мастера: «Папа» из Венгрии, «Франц» из Австрии, «Хаос» и «Страус» из США, «Мастер» из Англии, «Телль» из Швейцарии — всего тринадцать программ из восьми стран мира. Часть машин находилась в самом Стокгольме, остальные поддерживали связь с (помощью телефона и телетайпа. Советский Союз представляла шахматная программа «Каисса», названная так в честь музы шахмат Каиссы, которую породила фантазия средневекового английского поэта Уильяма Джонса. Создана «Каисса» в Москве, в Институте проблем управления.
      Общепризнанными фаворитами первого чемпионата мира специалисты считали программу Нордвестернско-го университета из Иллинойса под названием «Чесс — 4:0» — четырехкратного чемпиона США среди компьютеров, — а также занявшую второе место в последнем чемпионате в США программу «Теч II».
      Вот как описывает эту шахматную баталию очевидец событий советский гроссмейстер Ю. Авербах.
      «В первом туре «Каиссе» выпало по жребию скрестить оружие с «Францем», детищем вычислительного центра Граца (Австрия). Два года тому назад я был в Граце и познакомился с этой программой. Тогда она на меня большого впечатления не произвела. Сейчас с первых же ходов стало ясно, что «Франц» значительно усилился. Когда партия еще не вышла из дебютной стадии, белые уже опередили противника в развитии. Итак, некоторый перевес на стороне белых, но, если черные успеют благополучно закончить развитие, он испарится. В этом положении «Франц» сделал любопытный ход с интересной идеей активизировать ферзя».
      Далее следует подробное изложение шахматных тонкостей. И наконец наступает стремительная развязка.
      «Однако, попав в трудное положение, «Франц» «растерялся» и быстро получил мат. По телефону из Стокгольма узнаем другие результаты первого тура. Зафиксированы просрочки времени. У «Папы» с «А-16 СЧ» и у «Риббита» с «Чесс — 4:0». Правда, позиции у всех проигравших в этот момент были шюхие. Не удалось попасть в яблочко «Теллю». На 37-м ходу он получил мат от «Страуса». До самого утра сражались «Мастер» и «Теч II». После восьми часов игры на 88-м ходу поединок этот закончился красивой победой
      «Теч II».
      «...Жеребьевка перед вторым туром свела «Каиссу» с американцем «Теч II». Дебют машины разыграли очень быстро — в их память заложены книжные теоретические варианты, которые пришлись по душе авторам программ. Один из авторов программ «Каиссы», А. Битман, — шахматный мастер. Он и научил «Каиссу» играть этот диковинный вариант скандинавской защиты.
      Игра «по теории» закончена, и «Теч II» сразу же делает свой ход, не предусмотренный никакими «курсами дебютов». Впрочем, и «Каисса» не осталась в долгу!»
      И в этой партии наша «Каисса» с честью вышла из борьбы, обыграв американскую программу «Теч II».
      «В этом туре произошла сенсация: столь разрекламированный победитель чемпионатов США «Чесс — 4:0» неожиданно проиграл «Хаосу». После двух туров у «Каиссы» и «Хаоса» было по два очка. Поэтому естественно, что они встретились между собой».
      Обыграв «Хаос», «Каисса» ринулась в последний поединок.
      «После трех туров «Каисса», выигравшая все партии, на очко опережала своих соперников. Из группы машин, имевших по два очка, ей по жребию выпало встретиться со «Страусом» (США). Ничья гарантировала «Каиссе» первое место, но в случае проигрыша ее могли догнать сразу несколько конкурентов. В этой решившей судьбу золотой медали партии на долю «Каиссы», вернее — ее создателей и болельщиков, выпало немало переживаний».
      Последний, самый напряженный поединок также закончился победой нашей программы.
      «Итак, набрав четыре очка, «Каисса» стала первым чемпионом мира среди ЭВМ. Создателям программы вручена золотая медаль стоимостью 1000 долларов. Кто же они? Это кандидаты физико-математических наук В. Арлазаров, Г. Адельсон-Вельский, М. Донской, А. Усков, научные сотрудники А. Бараев и А. Битман.
      Американские программисты обескуражены неудачей. Ведь «Каисса» опередила все четыре американские программы, Однако они помышляют о реванше: чем-
      пионат мира среди машин станет, по-видимому, традиционным».
      Не стоит, однако, питать особых иллюзий относительно действительной интеллектуальности «шахматных» ЭВМ. Что ни говори, а их поединок — это все-таки поединок двух людей, создавших для них алгоритмы и написавших программы.
      Есть определенные успехи и в других сферах «интеллектуальной» деятельности ЭВМ.
      Работы по машинному переводу с одного языка на другой начались еще на заре 50-х годов. О переводе с языка программирования на язык команд ЭВМ, осуществляемом программами-трансляторами и интерпретирующими программами, уже упоминалось. Когда говорилось об использовании ЭВМ третьего поколения, то разбирались искусственные (информационные) языки и способы перевода. Исследования по переводу с обычных человеческих (естественных) языков продолжаются и теперь, но практические успехи здесь не следует переоценивать. Об использовании машинного перевода в сфере художественной литературы речь, естественно, и не идет — это искусство, и оно остается за человеком. А вот области прессы, экспресс-информации, оповещения о стихийных бедствиях и резких изменениях погоды, обмен оперативными данными на международных авиалиниях и другие с нетерпением ждут внедрения машин-переводчиков.
      — Оказывается, и в области неарифметических применений ЭВМ вышла уже из младенческого возраста?
      Ведь игры и перевод — это уже не «детский лепет» новорожденного.
      — Безусловно, здесь есть определенный прогресс. В настоящее время ЭВМ решает и более сложные задачи, например, автоматическое узнавание изображений, или, как говорят, «распознавание образов».
      — Неужели это сложнее игры в шахматы? Ведь даже ребенок легко узнает знакомое лицо.
      — Конечно, сложнее. Игры подчинены все-таки определенным формальным правилам, жестко регламентирующим поиск решения. Перевод также обусловлен словарем и грамматикой. Распознавание же — это тончайший интуитивный процесс, представить который как совокупность логических условий чрезвычайно трудно]
      Любой человек легко отличит кошку от собаки, а вот дать формальное определение той и другой и объяснить, чем они отличаются, не так-то просто.
      Методы распознавания образов, или автоматического узнавания, находят все более широкие применения на практике. В простейшем случае, чтобы узнать символ, достаточно суметь отнести его к одному из заранее выделенных классов. Так, если речь идет об узнавании букв русского алфавита (33 буквы), а буква есть некоторое сочетание черточек (длинных и коротких,
      горизонтальных и вертикальных, наклонных влево и вправо), то узнать букву — значит отнести заданное сочетание черточек к одному из 33 классов. Делается это так.
      В памяти ЭВМ выделяется для этого 33 участка для размещения 33 эталонных строк. В каждой строке помещается «признаковый портрет» какой-нибудь одной буквы, состоящей из совокупности ее признаков. Он делится на две части: 1) грубый портрет и 2) дополнительные признаки.
      Грубый портрет составляется в виде некоторого числа. Первая цифра означает количество длинных вертикальных черточек; вторая цифра — количество коротких вертикальных черточек; третья — длинных горизонтальных; четвертая — коротких горизонтальных; пятая — наклонных влево; шестая — наклонных вправо и т. д.
      Представленный таким числом грубый портрет не всегда позволяет выделить одну конкретную букву, или, другими словами, грубые портреты различных букв могут совпадать. Например, буквы Н и П имеют по две длинные вертикальные черточки и по одной короткой горизонтальной. Поэтому надо считать, что грубый портрет определяет только «тип» буквы. Правда, некоторые типы будут содержать ровно по одной букве; для них дополнительные признаки не нужны. Если же в тип входит несколько букв, то вводятся дополнительные признаки, позволяющие различать каждую букву внутри типа.
      Дополнительные признаки можно построить на учете взаимного расположения черточек. Например, в типе, содержащем буквы Н и П, дополнительным признаком буквы П можно взять «короткая горизонтальная черточка вверху» и т. д.
      Алгоритм узнавания букв в этом случае можно себе представить следующим образом. Считывается в определенный участок памяти ЭВМ при помощи специального электронно-оптического устройства заданная буква как совокупность черточек с учетом взаимного расположения. Этой совокупности нужно придать форму признакового портрета. Анализируется состав совокупности: имеются ли и сколько длинных вертикальных черточек (результат записывается как первая цифра портрета); имеются ли и сколько коротких вертикальных черточек (результат записывается как вторая цифра портрета) и т. д. Получив грубый признаковый портрет, начинают сопоставлять его с содержимым каждой из 33 эталонных строк. Если грубый портрет совпадает с содержимым одной из эталонных строк, значит, выделился тип узнаваемой буквы. Далее следует анализ заданной совокупности черточек с целью определения дополнительных признаков и тем самым выделения конкретной буквы в типе.
      На такого рода принципах строятся читающие автоматы, производящие ввод текста в ЭВМ. Практически эти автоматы устроены сложнее. Во-первых, обстоятельнее и полнее характеризуется ориентация черго-
      чек на плоскости — автомат должен читать текст, не зная, где верх или низ, при любом положении считываемого листа, в том числе и «вверх ногами» и «боком», а также при любом расположении отдельных частей текста на листе. Во-вторых, реальный, даже печатный, текст имеет немало отклонений от стандарта: смещение отдельных букв, плохая пропечатка некоторых частей буквы, различная толщина черточек и др.
      Автоматы, способные читать рукописные тексты, сталкиваются с еще большим разнообразием в начертании букв. Поэтому признаковые портреты содержат немало случайных погрешностей, и отнесение буквы к типу или выделение конкретной буквы в типе может быть сделано не вполне определенно, а лишь с некоторой вероятностью. Обеспечение надежной работы автомата требует включения в алгоритм узнавания ряда дополнительных частей, в том числе для расчета вероятностей различных гипотез и выбора гипотезы, обладающей наибольшей вероятностью
      Все рассматриваемые подходы обобщаются и распространяются на распознавание более сложных образов, чем буквы и вообще символы — цифры, знаки, условные обозначения и др. Сегодня они используются для расшифровки радарных снимков поверхностей планет с космических кораблей, расшифровки электрокардиограмм в медицине и даже для интерпретации геологических наблюдений и сейсмографических измерений, с целью распознавания структуры глубинных подземных слоев и обнаружения месторождений полезных
      ископаемых: нефти, газа, каменного угля, руд.
      Существенное значение приобретает в последнее время проблема обучения автоматов и алгоритмов. Предположим, что для управления каким-нибудь процессом сконструирован автомат или, что практически то же самое, построен алгоритм, реализуемый на ЭВМ. Нередко случается, что по причине недостаточной изученности явлений управляемого процесса удовлетворительно работающий автомат создать невозможно. В некоторых случаях его удается «доучить» и добиться вполне приемлемого качества управления. Для этого нужно, во-первых, взять автомат с так называемой изменяющейся структурой, а во-вторых, создать обучающую приставку (или, когда речь идет об алгоритме, — обучающую программу).
      Обучение производится следующим образом. Первоначально созданный автомат запускается в работу. Человек, наблюдая за течением управляемого процесса, оценивает его качество, например, по пятибалльной системе: «отлично», «хорошо» и т. д. Оценка вводится в обучающую приставку или программу и служит основанием для изменения структуры автомата или значений его параметров. Если качество управляемого процесса улучшается, внесенные изменения запоминаются и фиксируются. В противном случае они отбрасываются и выбираются новые. Обучение идет эффективно лишь в том случае, если приставка или программа изменяют структуру автомата не «как попало», не чисто случайным образом, а по определенным правилам, учитывающим наши знания об управляемом процессе.
      Здесь как раз и идет речь об эвристическом поиске правильной структуры автомата.
      Процесс обучения может носить характер адаптации (приспособления) к изменяющимся условиям течения процесса или условиям внешней среды. Существуют специальные адаптивные системы, обладающие упомянутым свойством. Если оценку поведения управляемого объекта или управляющего автомата выполняет не человек, а некоторый автомат (или программа) по результатам измерения отклонений характеристик от требуемых значений и по этим отклонениям автоматически вырабатываются команды на перестройку структуры управляющего автомата, то уже можно говорить о так называемой самоорганизующейся системе.
      Проблема самоорганизации — одна из ведущих в современной кибернетике. Она, с одной стороны, имеет выход на синтез все более и более сложных адаптивных автоматов, применяющихся для управления недоступными человеку процессами и объектами. А с другой — примыкает к проблеме создания интеллектуальных роботов и вообще искусственного интеллекта, также основанного на эвристических методах принятия решений и ориентирования в окружающей обстановке.
      В основу большинства неарифметических применений положены математические модели рассматриваемых процессов. Математическая модель — это совокупность формул, уравнений, соотношений, алгоритмов или программ, которая имитирует формализованное (и потому огрубленное) поведение реального процесса.
      В любых эвристических процессах, действительно, как бы моделируется поведение человека, решающего ту или иную задачу: шахматную, лингвистическую или задачу узнавания.
      Математическое моделирование получило и самостоятельное развитие. Его специфической и весьма интересной разновидностью является имитационное моделирование, или, как говорят иначе, машинный эксперимент. Представление об имитационных моделях сложных процессов можно получить из следующего примера.
      В торговом зале промтоварного магазина располагаются прилавки, где производится демонстрация товаров и выбор их покупателем, кассовые аппараты для оплаты покупок и отдел контроля и выдачи. Покупатель, войдя в зал, направляется к прилавкам, выбирает товары и просит продавца-демонстратора выписать чек. Далее покупатель отправляется к одному из кассовых аппаратов, становится в очередь и, подойдя к кассиру, оплачивает чек. Затем он идет в отдел контроля и выдачи для получения покупки. Предположим, что для обслуживания торгового зала выделено 10 сотрудников магазина. Ставится вопрос, как наилучшим образом, оптимально, распределить этих сотрудников между рабочими местами в зале? Другими словами, сколько нужно выделить из этих 10 человек продав-цов-демонстраторов, кассиров и продавцов-контролеров, выдающих покупки?
      Очевидно, что эта задача может быть решена путем натурного эксперимента. В самом деле, пусть выбирается первоначальный вариант распределения сотрудников в зависимости от длительности операций на рабочих местах и в соответствии с этим организуется работа торгового зала. В процессе работы следует вести наблюдение за загрузкой сотрудников и образующимися очередями покупателей. Наименее загруженных сотрудников надо перебрасывать туда, где образуются наибольшие очереди, и соответствующим образом менять организацию работы зала. Постепенно, путем последовательных реорганизаций, можно прийти к вполне приемлемому распределению продавцов.
      Ту же задачу можно решить при помощи машинного эксперимента. Сначала проводится обследование работы торгового зала для определения исходных данных для расчета. В первую очередь оценивается интенсивность потока покупателей, поступающих в зал. Для этого один из сотрудников с секундомером в руках учитывает число покупателей, входящих в зал в единицу времени (скажем, в минуту). Получив ряд чисел, изменяющихся с течением времени и испытывающих случайные колебания, заносят их на перфокарты или перфоленту. Далее, измеряют достаточно длинные ряды времен, затрачиваемых покупателями — на выбор товара, продавцами — на выписывание чека, кассирами — на прием оплаты, контролерами — на выдачу покупок. Эти ряды чисел также помещают на перфоноситель ЭВМ. Оценивается, также приближенно, доля покупателей, которые, не выбрав нужного товара, покидают торговый зал без покупки.
      Затем строится имитационный алгоритм. Он должен быть основан на прослеживании движения каждого покупателя по определенному маршруту: вход — прилавок — касса — отдел выдачи (для покупателя, совершившего покупку) или вход — прилавок — выход (если покупка не состоялась).
      Пусть в начальный момент времени в зале покупателей нет. Затем вводятся в оперативную память моменты поступления покупателей (с перфоленты, на которой были записаны данные наблюдения за интенсивностью входа покупателей) за первую минуту. История движения каждого покупателя фиксируется в оперативной памяти по этапам маршрута: вошел в зал, прибыл к прилавку, выбрал товар, отправился в кассу. Времена, затрачиваемые на каждом этапе, берутся из совокупности экспериментальных данных. Когда покупатель дошел до кассы, к моменту его прибытия прибавляется время работы кассира. Если за этот интервал к кассе прибыли другие покупатели, фиксируется наличие очереди определенной длины. Покупатель, оплативший покупку, переводится к отделу выдачи, и учитывается время его обслуживания контролером. Наконец, покупатель покинул зал — сведения о нем исключаются из рассмотрения в модели.
      В конце каждой минуты положение всех покупателей запоминается, и ЭВМ вводит в зал новых покупателей. Далее история движения покупателей изучается с учетом вновь поступивших. Решение о том, совершает покупатель покупку или нет, принимается «по жребию» (ЭВМ умеет реализовать жребий с так называемыми «случайными числами») в соответствии с долей выборов, полученной экспериментально. В процессе имитации запоминаются необходимые характеристики: длина очереди у каждого кассового аппарата и продавца-контролера, время, затрачиваемое покупателем непроизводительно (в очередях и ожиданиях), время простоев всех сотрудников зала и т. д. Эти характеристики в конце машинного эксперимента выводятся на печать и анализируются. В результате анализа принимаются решения о реорганизации работы зала и готовится к моделированию новый, улучшенный вариант распределения сотрудников.
      Здесь очень кратко (и не очень точно) рассмотрена методика имитации одного из процессов «массового обслуживания». Такие процессы широко распространены в жизни — это и парикмахерская, и поликлиника, и бензозаправочная станция, и станок. Существует специальная наука — математическая теория массового обслуживания, или теория очередей. При исследовании различных систем, связанных с массовым обслуживанием, часто прибегают к машинному эксперименту.
      Пусть речь идет о некотором технологическом процессе, достаточно насыщенном станками-автоматами и автоматическими линиями. Если надо узнать, как поведет себя процесс при изменении режимов работы оборудования, например, при увеличении скоростей резания металлов, температуры горячей штамповки, темпа подачи заготовок и т. д., необходим эксперимент. Для проведения натурного эксперимента придется либо остановить один из действующих цехов или агрегатов, либо создавать специальную экспериментальную установку. И тот и другой путь неизбежно связан с материальными потерями или дополнительными затратами.
      Но не всегда нужен натурный эксперимент. По крайней мере некоторую его часть можно заменить машинным экспериментом. Если характеристики отдельных станков и других элементов оборудования можно измерить в натуре, то есть получить данные по результатам натурного эксперимента, то поведение процесса в комплексе удобнее идадтв на математических моделях, оформленных в виде специальных моделирующих, или имитационных, программ для ЭВМ.
      Изучить работу отдельного станка всегда проще и дешевле. Иногда это можно сделать, не нарушая общего хода производства, например, выводя для испытаний станки поочередно, в периоды, когда без них можно обойтись. На базе изучения отдельных станков и агрегатов строятся математические модели их работы. Затем создаются программы для ЭВМ, которые не только имитируют поведение отдельных станков, но и увязывают их в единый комплекс общего технологического процесса. Реализация моделирующей программы на ЭВМ позволяет вычислить характеристики общего технологического процесса в некоторые последовательные моменты времени и тем самым дать оценку поведению процесса в целом.
      Машинный эксперимент не только проще и дешевле натурного. Он имеет и другие принципиальные преимущества. Среди них главное место принадлежит следующим двум. Во-первых, машинный эксперимент позволяет быстро менять условия опыта. При необходимости, например, увеличить скорость резания на 25 процентов в машинном эксперименте достаточно заменить несколько цифр (перебить одну-две перфокарты). А в натурном эксперименте для этого, быть может, пришлось бы создавать новое оборудование или, по крайней мере, серьезно переделывать старое. Во-вторых, машинный эксперимент позволяет исследовать процессы, для которых оборудование еще не
      создано, например, находится в стадии проектирования.
      Пусть требуется спроектировать модернизацию аэродрома под новый самолет, который еще только разрабатывается. Не имея самолета, нельзя изучить режим загрузки посадочных полос и автоматического оборудования слепой посадки. Не имея модернизированного аэродрома, нельзя новый самолет не только ввести в эксплуатацию, но даже и испытать в нормальных условиях. В такой ситуации всегда выручает машинный эксперимент. Для него достаточно знать только основные характеристики нового самолета, предусмотренные проектом. А далее — дело специалистов по машинному моделированию и программистов. В течение короткого времени моделирующая программа будет запущена и выдаст необходимую информацию для проекта модернизации аэродрома.
      — Это моделирование в технике. Но в печати попадаются статьи и о моделировании художественного творчества. Говорят, что созданы программы для ЭВМ, которые якобы пишут стихи и сочиняют музыку.
      — Действительно, существуют электронные сюиты, электронные поэмы, но здесь, очевидно, речь не идет о какой-то замене человека-творца его электронной моделью. Синтезированные стихи и музыка — скорее своеобразные «отходы производства». Главное — модели, алгоритмы творчества!
      Дело в том, что математическая модель любого творческого процесса может быть оценена только путем сравнения выданной ЭВМ «продукции» с продуктами творческой деятельности человека. Если созданная на ЭВМ музыка не уступает сочиненной композитором, то и математическое описание, положенное в основу программы, достаточно близко к реальному творческому процессу. Этот факт не стоит забывать при любом подходе к машинному творчеству. Ведь порой еще возникают дискуссии, где серьезно отстаивается вопрос о ненужности и даже вредности продукции машинного творчества, о неприемлемости «конкуренции человека с машиной».
      Методы машинного синтеза музыки основаны прежде всего на тщательном анализе правил и закономерностей построения музыкальных произведений; особенностях стиля, структуры, гармонии и т. д. Ведь не секрет, что музыка в большей степени, чем другие произведения искусства, подчинена строгим формальным правилам. Все эти особенности формализуются и программируются для воспроизведения их на ЭВМ. Так возникают разнообразнейшие музыкальные программы, синтезирующие одноголосые и многоголосые мелодии, моделирующие полифонию и т. п.
      Широкую известность получили работы советского математика Р. Зарипова. Разработанные им программы позволяют не только сочинять и гармонизировать модели, в частности мелодии песен, но даже проверять решение задач по гармонии, выполненных студентами. Здесь машина выступает как бы в роли экзаменатора. Интересен опыт моделирования на ЭВМ стилей отдельных композиторов. В экспериментах удается получить довольно качественные «подделки». Так, одной из программ была синтезирована мелодия известной песни И. Дунаевского «Молодежная» из кинофильма «Волга-Волга».
      За рубежом известность получили работы сотрудников Иллинойского университета в США. Еще в 1956 году там была создана известная «Иллиак-сюита для струнного квартета», названная так по имени ЭВМ «Иллиак», на которой она была «изготовлена». Сюита состоит из четырех частей, так называемых «экспериментов». В «эксперименте 1» создается простая мелодия и проводится ее гармонизация; «эксперимент II» усложняется путем введения 14 новых стилистических правил, характерных для итальянского композитора XVI века Палестрина; «эксперимент III» дополняется введением разнообразных музыкальных ритмов и темпов; «эксперимент IV» создан при помощи случайных чисел — они задавали интервалы между нотами но шкале высот. Сюита «Иллиак» неоднократно исполнялась публично и пользуется определенной известностью.
      Надо сказать, что все музыкальные программы построены примерно по одному и . тому же принципу: генератор случайных чисел выдает случайные числа, характеризующие ноту — длительность, интервал и высоту. Затем эти значения проходят через систему программных блоков, каждый из которых оценивает ноту с точки зрения определенных правил тональности, стиля, манеры композитора и т. д. Если нота удовлетворила всему набору правил, она помещается в результирующую мелодическую цепочку, если нет — отбрасывается. В последнем случае все начинается сначала для нового набора случайных чисел. Чем больше бло-ков-контролеров, тем более сложному набору правил удается подчинить мелодию. Естественно, что время реализации программы на ЭВМ в таком случае может возрастать значительно.
      Задача моделирования функций поэта при создании стихотворений неизмеримо сложнее. Дело в том, что проанализировать механизмы стихотворчества и высказать какие-либо формальные рекомендации весьма непросто. Ведь, как известно, информационная емкость стиха чрезвычайно велика. Так, формальные исследования русского языка показали, что одна буква делового сообщения несет информацию около 0,6 бит, буква разговорной речи — 1 бит, одна буква поэтического «сообщения» — 1,5 бит.
      Интересно рассмотреть некоторые попытки машинного поэтического синтеза.
      В городе Штутгарте (ФРГ)’ на прилавках книжных магазинов появились два поэтических сборника: книга неизвестного поэта Ульриха Краузе и «Электронная поэзия» без указания автора. Если «Электронная поэзия», насыщенная формальными штампами, не вызвала особого интереса, то сборник У, Краузе, стихи которого отличались высоким поэтическим мастерством, сразу привлек к себе внимание. Пресса заговорила о новой восходящей звезде современной поэзии. Восторженные отзывы критиков и поэтов пестрили дифирамбами, выпускались исследования, посвященные его стихам, которые «...поражали масштабностью тем, богатством словаря, тонкостью переживаний. Перед читателями поднимался образ некоторого лирического героя — романтика, альтруиста, первого любовника, сочетающего в себе черты Джека Лондона, Франциска Ассизского и Жерара Филипа». Сборник стихов был мгновенно раскуплен и вскоре выпущен вторым изданием, которое также не залежалось на прилавках магазинов.
      И тут разразился скандал: профессор Штутгартского университета Макс Бензе выступил с заявлением, в котором утверждал, что никакого У. Краузе не существует и что оба сборника стихов написаны ЭВМ. М. Бензе использовал для этого две разные составленные им программы, одна из которых просто отличалась большей сложностью и использовала более емкий словарь.
      Это сообщение, воспринятое сначала с явным недоверием, вызвало временный шок в среде поэтов и критиков. Как? Творения бездушного «электронного ящика» были приняты за глубочайшие человеческие произведения? Короче говоря, критики были посрамлены, а это уже свидетельствует о том, что машинные алгоритмы поэтического творчества достигли высокой степени приближения к действительным творческим процессам.
      Приведем небольшой отрывок из синтезированного М. Бензе стихотворного текста. Естественно, судить о качестве стихов по этому небольшому отрывку, да к тому же переводу, не стоит.
      Я пишу моим сердцем В пыли улиц
      От Урала до Сьерра-Невады,
      От Иокогамы до Килиманджаро Звенит моя арфа —
      Арфа телеграфных проводов.
     
      ЭВМ ЧЕТВЕРТОГО ПОКОЛЕНИЯ. ПЕРСПЕКТИВЫ
      — В последнее время проскальзывают сообщения об ЭВМ четвертого поколения. Что же отличает их от машин предыдущих поколений?
      — Вы должны были уже заметить, что трамплином для очередного скачка в развитии вычислительной техники всегда оказывался переход на новые элементы.
      — Наверное, и на этот раз электроника преподнесла нам очередной сюрприз!
      — Формально как будто не произошло ничего особенного. Просто повысилась степень интеграции электронных схем: появились большие интегральные схемы, сокращенно — БИС!
      Это техническое новшество вряд ли способно потрясти воображение неискушенных. Но оно приводит к столь поразительным переменам в возможностях ЭВМ, что перед ними блекнут все предыдущие «перевороты» в вычислительной технике. ЭВМ четвертого поколения невозможно удержать в рамках только технического применения. Они вторгаются во все области науки и техники и потенциально способны оказать заметное влияние на многие стороны жизни и быта людей. Но об этом позже. А сейчас важно понять, что же такое БИС.
      Большая интегральная схема — прямой потомок обычной интегральной схемы, которая является основным элементом ЭВМ третьего поколения. Нет даже необходимости выдумывать новый термин — это та же интегральная схема, но большая, большая, конечно же, не размерами. Велика степень интеграции этой схемы, поскольку в одном-единственном монокристалле размером, например, 5x5,2 миллиметра объединено около 45 тысяч элементов. Для сравнения заметим, что обычный телевизор имеет всего около тысячи таких элементов. Вот что означают слова «схема большой интеграции»!
      Естественно, возникает вопрос, как же удалось уместить в столь ничтожные размеры такое количество электронных элементов? Иными словами, что за чудодейственная технология рождает подобные шедевры миниатюризации? Читатель не удивится, если узнает, что здесь на выручку человеку опять приходит его верный помощник — ЭВМ.
      Процесс изготовления большой интегральной схемы выглядит следующим образом. Пусть имеется принципиальная электрическая схема БИС. Она кодируется и
      вводится в ЭВМ. Машина разрабатывает детальную структуру сопряжения всех взаимодействующих частей схемы. Вспомнив о 45 тысячах элементов, легко понять, что человеку вручную это сделать просто не под силу.
      Далее ЭВМ переходит к так называемой топологии БИС, то есть к определению конфигурации и взаимного расположения элементов на поверхности кристалла. По топологии автоматически строится набор фотошаблонов, охватывающий всю создаваемую схему.
      Фотошаблон, уменьшенный до размеров будущей схемы, тиражируется в нужном числе экземпляров и служит основой для создания рабочих фотошаблонов — матриц, непосредственно воздействующих на кристалл. Полученные матрицы фотошаблонов направляются в зону изготовления БИС.
      В зоне изготовления над кристаллом производятся наиболее ответственные операции. На него наносится специальный светочувствительный слой — фоторезист, который засвечивается через фотошаблон. Затем полученный «негатив» проявляют и, удалив засвеченные участки, в образовавшиеся в фоторезисте «окошки» вводят необходимые примеси. После отжига проводят анало-
      гичные операции над этим же кристаллом, но с помощью других фотошаблонов. Каждый шаблон отвечает за свою группу первичных элементов БИС или определенный набор ее функций. Есть среди них фотошаблон, формирующий специальные участки алюминиевого покрытия для соединительных цепей сложной конфигурации.
      Заканчиваются эти операции нанесением защитного слоя, резкой кристалла на отдельные БИСы, установкой их в корпуса и герметизацией.
      Автоматическая технология позволяет обеспечить высокую точность параметров БИС. Допустимые погрешности в размерах и конфигурации отдельных зон на поверхности кристалла измеряются десятимиллионными долями миллиметра. Количество вводимых примесей дозируется с точностью до миллиардных долей процента. Тепловые режимы — до сотых долей процента. Чистота воздуха в зонах работы оборудования, создающего БИСы, должна составлять не более 3 — 4 пылинок на кубический метр воздуха.
      По сравнению с интегральными схемами эпохи ЭВМ третьего поколения БИСы обладают большей надежностью, значительно меньшими размерами, весом и потребляют меньше энергии. Особенно следует подчеркнуть снижение стоимости — прямой результат автоматической технологии и высокой серийности выпускаемых образцов (операции производятся сразу над сотнями кристаллов).
      Известны следующие данные: в эпоху ЭВМ второго поколения устройства, содержащие порядка ста тысяч первичных элементов, стоили около миллиона рублей, для ЭВМ третьего поколения эта стоимость снизилась до нескольких тысяч, для БИСов она не превышает нескольких десятков рублей.
      Большие интегральные схемы стали первичными электронными элементами, серийно выпускаемыми промышленностью. Прибор на одном монокристалле является функциональным узлом, заменяющим собой десятки тысяч диодов, транзисторов, резисторов, сотни интегральных схем.
      Один-единственный кристалл может выполнять функции сумматора, счетчика, регистра сдвига либо любого другого узла ЭВМ. Но и это не предел. Довольно скоро научились создавать большие интегральные схемы, способные заменять целые устройства.
      Представляете себе устройство управления ЭВМ на одном монокристалле! Или процессор размером с пятикопеечную монету!
      Трудно не поддаться волнению, сравнивая их с процессорами ЭВМ на электронных лампах 50-х годов, занимавшими сотни квадратных метров и требовавшими
      воздушного и водяного охлаждения!
      Создаются БИСы со все более и более широкими функциями, имеющие все более общее назначение. Сейчас почти любой самостоятельный электронный прибор, например радиоприемник или телевизор, может быть выполнен на одной интегральной схеме, реализованной в одном монокристалле.
      Перспективнейшим направлением в этой области является разработка программно-управляемых больших интегральных схем, функции которых меняются в зависимости от программы, тоже «напыляемой» на отдельном кристалле. Такая интегральная схема состоит из «операционной» части — функционального элемента универсального назначения — и программы в «твердом виде». Ввод программы настраивает большую интегральную схему на определенный класс операций и сообщает ей конкретную ориентацию. Одна и та же БИС может служить и арифметическим устройством ЭВМ, и устройством управления, и радиоприемником, и телевизором — все зависит от того, какую программу в нее ввели. Здесь появляются возможности для дальнейшей унификации производства больших интегральных схем и снижения их стоимости.
      Развитие этого направления привело к созданию так называемых микропроцессоров, построенных на одном или всего на нескольких монокристаллах и содержащих в едином миниатюрном приборчике арифметическое устройство, устройство управления и оперативную память ЭВМ. Наличие микропроцессоров позволяет собирать из стандартных однотипных элементов электронные системы самого широкого назначения: вычислительные, управляющие, регистрирующие
      информацию, обеспечивающие ее переработку и хранение.
      Таким образом, «простое» увеличение степени интеграции электронных схем на монокристаллах приводит к серьезным сдвигам в вычислительной технике и радиоэлектронике вообще!
      Возможность разместить в одном кристалле десятки тысяч электронных элементов позволяет уже сейчас создать весьма миниатюрный компьютер — компьютер на одном кристалле! Ну, может быть, не на одном, а на двух-трех, однако суть остается верной: вычислитель, по мощности близкий к средним ЭВМ второго-третьего поколения, вполне помещается в кармане.
      Сегодня карманными вычислительными машинами никого не удивишь. На прилавках магазинов их целые коллекции! Но машина машине рознь! Карманные калькуляторы, выполняющие четыре арифметических действия, создавались на элементах не только третьего поколения, но даже второго. Однако только большие интегральные схемы позволили от простейших калькуляторов перейти к карманным ЭВМ с программным управлением и наладить их массовое производство.
      Отечественная промышленность выпускает немало таких машин. Например, микрокомпьютер «Электроника Б3-18а» имеет размеры немного более карманной записной книжки. На передней панели ее располагается клавиатура и цифровое индикаторное табло на восемь десятичных разрядов, светящееся приятным зеленоватым цветом. Имеются клавиши для каждой из 10 цифр, для арифметических действий и некоторых специальных знаков. При нажатии на клавишу «=» на индикаторе высвечивается результат. Кроме того, переключив режим, можно заставить клавиши выполнять новые функции: тут синусы и косинусы, логарифмы и корни,- степени и многие другие операции. Для вычисления используются весьма сложные, заранее запрограммированные алгоритмы. Скажем, расчет значений синуса ведется путем так называемого разложения в ряд Тейлора.
      В памяти ЭВМ записаны необходимые константы, в том числе значения зх = 3,141..., е = 2,7... и т. д., можно ввести туда и свои собственные постоянные и хранить их как угодно долго.
      Таким образом, «Электроника Б3-18а» оодержит в себе практически все части обычной большой ЭВМ: процессор с оперативной памятью, устройства ввода (клавиатуру) и вывода (индикаторное табло), а в постоянной памяти хранятся программы общим объемом
      1152 команды. Надо все же заметить, что такую машину назвать компьютером в традиционном смысле можно только с некоторой натяжкой. От обычных универсальных ЭВМ она отличается тем, что в нее нельзя вводить новые программы по желанию пользователя.
      Но, разумеется, никто и не собирается заменять микрокомпьютерами с ограниченными средствами ввода-вывода и сравнительно бедным запасом программ настоящие универсальные ЭВМ третьего поколения. Для этой цели на больших интегральных схемах создаются прямые наследники ЭВМ третьего поколения, получившие названия мини-ЭВМ. Приставка «мини» означает лишь то, что размеры таких машин значительно уменьшились по сравнению со своими предшественниками, снизилась потребляемая энергия при сохранении прежней скорости вычислений и объема запоминающих устройств.
      Мини-ЭВМ четвертого поколения — это машины средней производительности — порядка сотен тысяч операций в секунду. Габариты их вместе с устройствами ввода-вывода всех типов и внешней памятью, не превышают письменного стола. Например, отечественная вычислительная машина СМ-3 выполняет 350 тысяч операций в секунду. Она располагает оперативной памятью объемом 32 тысячи байт и позволяет подключать устройства внешней памяти на магнитных дисках и магнитных лентах. У нее есть устройства сопряжения с каналами связи, позволяющие подключать 256 терминалов, и устройства ввода-вывода любых типов, в том числе и экраны-дисплеи. Ее операционная система достаточно развита и весьма совершенна. Помимо основных функций управления вычислительным процессом, она способна обеспечивать режим разделения времени, управление «банками данных» и осуществлять разнообразный программный сервис.
      Генеральный конструктор ЭВМ серии СМ — системы малых машин — член-корреспондент АН СССР Б. Наумов говорит: «Мини-ЭВМ четвертого поколения являются машинами массового применения. Они способны заменить ЭВМ третьего поколения практически во всех основных сферах: в управлении технологическими процессами, в АСУ предприятий и ведомств, в обеспечении инженерных расчетов широкого профиля, а также в библиотеках, справочных системах, регулировании уличного и воздушного движения, бронировании железнодорожных и авиационных билетов и т. д.».
      И тем не менее они не в состоянии удовлетворить всех потребностей народного хозяйства, науки и техники. Вне сферы их действия остаются задачи уникальной сложности, требующие быстродействия порядка сотен миллионов операций в секунду, и оперативных запоминающих устройств, способных хранить десятки миллионов машинных слов. А без таких ЭВМ нечего браться за современные задачи — задачи межотраслевого баланса в планировании и управлении народным хозяйством, за расчет оптимальных режимов функционирования сложных объектов ядерной энергетики, решать новые задачи аэродинамики и космической баллистики, моделировать фильтрационные процессы в единой системе газоснабжения страны. Кроме того, такими машинами должны комплектоваться крупные центры коллективного пользования, вычислительные центры общегосударственной автоматизированной системы, современные комплексы научно-технического эксперимента.
      Поэтому неудивительно, что, получив большие интегральные схемы, конструкторы ЭВМ направили свои усилия на создание высокопроизводительных вычислительных систем, обладающих быстродействием в сотни миллионов операций в секунду. Начались разработки, стали возникать новые проекты, появились лабораторные макеты и экспериментальные установки, развернулась работа по их испытаниям...
      После длительных поисков и исследований удалось создать уникальные лабораторные макеты процессоров на БИСах с гигантским быстродействием. В печати появлялись сообщения о достижении скорости порядка 600 — 800 миллионов операций в секунду, стали поговаривать о достижении рубежа в один миллиард операций. Но оказалось, что ни один из построенных образцов не был пригоден для серийного производства. Соображения экономической эффективности заставили отказаться от создания подобных ЭВМ. В чем же дело?
      Оказывается, при современном состоянии техники достижение подобных скоростных рубежей находится на пределе возможностей электроники вообще. Здесь уже играют роль не инженерные решения, а химическая чистота материалов, однородность тела кристаллов, стабильность температурных режимов, взаимодействие электрических полей внутри кристалла и другие физические факторы.
      — Как же удалось решить проблему быстродействия?
      Может быть, были найдены новые физические принципы
      дискретного счета?
      — Нет, переход к другим физическим принципам — это уже привилегия машин нового поколения. Сейчас речь идет об ЭВМ на больших интегральных схемах. Перефразируя известную пословицу, можно сказать, что конструкторы выиграли сражение «не умением, а числом». Они стали строить многопроцессорные вычислительные системы.
      Нельзя сказать, чтобы эта идея была слишком уж новой. Еще в эпоху машин второго поколения предпринимались попытки повысить производительность ЭВМ путем объединения нескольких компьютеров в единый многомашинный комплекс. Машины, содержащие два-три процессора, появлялись и на этапе третьего поколения. Однако это направление не получило достаточного развития главным образом из-за того, что не удалось в свое время преодолеть трудности организации вычислительного процесса и оперативного управления им по ходу вычислений. Почему же вычислительная техника четвертого поколения не боится таких трудностей? И вообще в чем суть проблемы?
      Начнем с главного. Как работает современная машина?
      Для реализации любой программы на многопроцессорном компьютере эту программу нужно «распараллелить», то есть расчленить на кусочки — фрагменты, — которые могли бы одновременно выполняться отдельными процессорами параллельно. Понятно, что далеко не всякая программа может быть представлена как совокупность фрагментов, допускающих одновременную реализацию на ЭВМ. Но даже если бы сделать это и удалось, трудности на этом не кончаются.
      Фрагменты, выделяемые отдельным процессорам, обычно не одинаковы и для своей реализации требуют различного времени счета. Процессор, закончивший вычисления по своему фрагменту, вынужден ждать окончания работы по фрагментам данного этапа всех остальных процессоров, так как, не имея их результатов, он не может перейти к реализации фрагмента следующего этапа.
      Далее, передача промежуточных результатов от одного процессора к другому занимает определенное время. В эти мгновения фактически простаивают оба процессора — и выдающий информацию, и принимающий. Нередки случаи, когда из-за ожиданий и затрат времени на передачу промежуточных результатов простои процессоров достигают 50 процентов всего рабочего времени.
      Чтобы добиться эффективного использования оборудования ЭВМ, необходимо усилить внимание к вопросам организации и управления вычислительным процессом. А это означает еще большее усложнение операционной системы, как известно, и так исключительно сложного комплекса программ.
      Для наглядности стоит рассмотреть пример работы конкретной многопроцессорной ЭВМ. Одной из простейших вычислительных систем такого класса является «Иллиак-IV», построенная в Иллинойском университете (США). По проекту система должна включать 256 процессоров, которые и составляют ее «вычислительный ресурс». Каждый из 256 процессоров содержит арифметическое устройство примерно на 3 миллиона операций в секунду, оперативную память емкостью 2 тысячи 64-разрядных машинных слов и обычное для процессоров такого класса устройство управления. Процессоры имеют прямой доступ к устройствам ввода-вывода информации, и каждый из них непосредственно связан с четырьмя соседними процессорами. Все процессоры сгруппированы в четыре квадранта, или сегмента, по 64 процессора в каждом.
      Квадранты имеют свои собственные устройства управления — так называемые управляющие процессоры. Наконец, вся вычислительная система управляется центральным управляющим процессором — самостоятельной ЭВМ.
      В целом система представляет собой гигантскую иерархическую конструкцию — элементарные процессоры, как кирпичики, составляют могучее здание ЭВМ. Среди конструкторов сейчас существует даже специальный термин — архитектура вычислительной системы, — который отражает специфику современного подхода к конструированию ЭВМ.
      Оперативная память системы «Иллиак-IV» также построена по иерархическому принципу. Во-первых, как уже говорилось, каждый процессор снабжен своим местным индивидуальным запоминающим устройством небольшой емкости, но колоссальной скорости работы; во-вторых, каждый квадрант имеет оперативное запоминающее устройство, общее для всех процессоров квадранта; и, наконец, отдельные квадранты могут обращаться в общесистемное оперативное хранилище информации.
      Каждая иерархическая ступень памяти имеет свои четкие функции и является как бы государством в государстве. Так, местная сверхбыстродействующая память каждого процессора — это его «личная вотчина»; никто, кроме самого процессора, не может обратиться к ней. Там содержатся таблицы распределения памяти, важнейшие константы, расписание очередности опроса устройств ввода-вывода и т. п. Кроме того, в ней хранится мощный набор так называемых диагностических программ, контролирующих весь ход вычислительного процесса и обнаруживающих неисправности оборудования. И наконец, здесь же располагаются фрагменты программ, которые выполняет данный процессор, и промежуточные результаты.
      Общесегментное запоминающее устройство, пожалуй, наиболее тонко организованный иерархический «слой» памяти. Здесь есть зоны, жестко закрепленные за каждым процессором (во много раз более емкие, чем внутренняя память самого процессора), но к ним уже могут обращаться и другие процессоры, однако лишь для считывания информации. Вместе с тем оно имеет в зоны общего доступа — этакое буферное хранилища промежуточных данных и программ пользователей, В этой же памяти хранится и чисто служебная информация — общесегментные таблицы и константы, информация о распределении памяти в данный момент, сведения о состоянии процессоров и т. д.
      Наконец, в большой общесистемной оперативной памяти хранится общемашинное математическое обеспечение: операционные системы, трансляторы с алгоритмических языков, тест-программы системы к программы диагностики. Здесь же расположены буферные мае» сивы потока задач, еще не принятых к решению, различные подпрограммы пользователей к т. п.
      Как и любая современная ЭВМ, многопроцессорная система имеет и внешнюю память, где хранятся «банка данных» пользователей, принадлежащие км библиотеки программных модулей и многое другое.
      Общая производительность реализованного квадранта «Иллиак-IV» достигает 200 миллионов операций в секунду. Вычислительная система оказалась работоспособной и привлекалась для решения ряда сложнейших задач. Любопытно проследить за особенностями функций операционной системы ЭВМ такого класса.
      У любой операционной системы одна задача — -оптимальное управление вычислительным процессом. Однако эти слова, ставшие уже трюизмом, практически ничего не выражают. Реальные процессы, происходящие в операционной системе, сложнее этих слов во столько раз, во сколько четырехтомный атлас анатомии сложнее слова «человек»! Каковы же особенности функций операционной системы?
      Ее работа состоит из двух больших стадий: планирования и оперативного управления.
      Исключительная сложность взаимодействия отдельных процессоров, сегментов, областей памяти и внешних устройств требует постоянных прогнозов и периодически обновляемого плана загрузки. Без этого в рамках стихийной «конкуренции» процессоров, кроме хаоса, ничего бы не вышло.
      В планирование входит анализ потока задач с их приоритетами и оптимизация загрузки и использования ресурсов машины. Весь цикл планирования составляет доли секунды. За это время операционной системе нужно успеть многое: проанализировать поток запросов на решение задач и наличествующий ресурс машины и создать оптимальный план на ближайшую долю секунды. Однако жизнь, как известно, не стоит на месте — каждый план рано или поздно нуждается в корректировке. Чем это вызывается?
      Во-первых, не слишком высокой точностью предварительного планирования; особенно значительные ошибки происходят из-за неточности в оценке длительности реализации отдельных фрагментов программ; кроме того, сама оптимизация проводится приближенно, иначе она потребовала бы большего числа операций ЭВМ. Во-вторых, непредвиденные обстоятельства — поступление новых запросов или изменение ресурса машины вследствие отказов каких-то элементов. Вот и приходится в течение выделенной доли секунды несколько раз производить перепланирование работы, и это при наличии сотен процессоров и десятков сложных задач. Объем работы, как видно, впечатляющий.
      Но планирование — лишь полдела. Другая половина — управление процессом вычисления.
      Грубо говоря, любая задача состоит из программ и данных; таким образом, возникают еще две подпроблемы: управление заданиями и управление данными. Первая — вызов программ, их фрагментов и выделение им участков оперативной памяти; вторая — обеспечение этих программ исходными данными для работы.
      Все это, по сути дела, лишь движение информации из одних запоминающих устройств в другие. Но взглянем на проблему пошире. Возьмем какой-нибудь фрагмент информации, предположим, массив данных или кусочек программы, и посмотрим, в какие ситуации он
      может практически попадать.
      Вот какой-то процессор кончил решать один из этапов своей задачи и сообщил, что данный массив или программа ему больше не нужны. «Где же это у меня программа перекачки информации из одного уровня памяти в другой? — думает операционная система. — Ах да, ведь я ее послала к 176-му процессору во второй сегмент. Пошлю-ка ей вызов... Так, а куда я суну эту информацию? Четырнадцатая зона забита, в шестой данные по задаче № 880/12 а, но скоро из семнадцатой зоны пойдут данные на счет к 89-му процессору, так я их туда, в семнадцатую, пожалуй, и закину. Да! А как закинешь, если программа записи в это самое время как раз на 256-м участке трудиться будет — данные в общесегментную память перекачивать? Значит, надо успеть до этого... Может, в 77-й блок к 13-му процессору — он как раз на профилактике!»
      Примерно так рассуждала бы операционная система, если бы умела рассуждать. Но, увы, этой способности она начисто лишена. Поэтому она не рассуждает, а почти мгновенно принимает оптимальные управленческие решения, по сравнению с которыми бледнеют легендарные подвиги виртуозов-снабженцев.
      А забот у операционной системы немало! Здесь и пересылка информации, необходимой процессорам по ходу расчетов, в более быстрые элементы памяти, и очистка запоминающих устройств от ненужной информации (сброс ее в хранилище с меньшей скоростью обращения), и динамическое перераспределение памяти в соответствии с ситуациями, возникающими по ходу решения задач, и многое другое.
      — Если раньше мы сравнивали работу операционной системы ЭВМ третьего поколения с АСУ предприятия, то операционную систему ЭВМ четвертого поколения вполне можно, вероятно, сравнить с АСУ министерства или отрасли, имеющей в подчинении сотни предприятий.
      — Да, создание операционной системы ЭВМ четвертого поколения — это, как говорят специалисты, проблема создания своеобразного искусственного интеллекта.
      Конечно, и операционные системы машин третьего поколения могли бы — правда, при очень большой доработке — осуществлять функции управления многопроцессорной ЭВМ. Но тогда для их работы пришлось бы отрядить почти всю оперативную память и громадное число операций, что повлекло бы за собой расходование значительной части ресурса машины на внутренние нужды, на управление вычислительным процессом. А что осталось бы пользователю?!
      Реальные возможности для создания рентабельных и действительно многопроцессорных систем появились лишь в эпоху компьютеров четвертого поколения. Во-первых, был накоплен значительный опыт управления подобными ЭВМ. Во-вторых, число самих процессоров существенно возросло. Наконец, трудоемкость создания мощнейших операционных систем удалось существенно облегчить путем так называемой аппаратурной реализации операционной системы. Что это такое?
      Здесь надо вспомнить недалекое прошлое. При переходе к ЭВМ второго поколения появилась идея — реализовать некоторые функции аппаратуры с помощью программ. Эта идея зародилась потому, что электронные схемы тогда были очень дорогими и малонадежными. Эта тенденция, просуществовав 20 лет, себя изживает, и причиной этому являются исключительные свойства больших интегральных схем: их быстродействие, надежность и баснословно низкая стоимость. Теперь оказалось целесообразным идти не по пути составления программ для управления внутренними процессами в компьютерах, а строить специальные устройства, выйолняющие ту же работу, но гораздо быстрее и надежнее. Стоимость же этих устройств на БИСах значительно ниже создания эквивалентных программ. Ведь БИСы фактически создает ЭВМ, а человек лишь закладывает основные характеристики требуемого блока.
      Теперь о том, как можно реализовать программу аппаратно.
      Пусть имеется небольшая программа, скажем, на 90 команд. Для ее замены набором БИС берется 100 БИСов универсального назначения, настраивают каждую из них на определенную команду программы, соединяют все их в нужной последовательности и получают то, что нужно: устройство размером со спичечный коробок, которое абсолютно надежно и почти мгновенно может реализовать заданную программу на 100 команд. То, что быстродействие в этом случае возрастет, станет очевидным, если вспомнить, что реализация каждой команды на обычной ЭВМ с помощью программы требует нескольких обращений к оперативной памяти за операндами: нескольких обращений
      к арифметическому устройству и десяток тактов работы управляющего устройства. Все эти блоки находятся в разных частях машины, соединены электрическими магистралями и т. д. В микропроцессоре же на БИСах и память, и управление, и «арифметика» практически «под рукой».
      В ЭВМ четвертого поколения аппаратными средствами реализуются не только операционные системы, но и трансляторы с наиболее распространенных алгоритмических языков. Это, естественно, делает более дешевым и доступным процесс трансляции, так как над ним не висит дамоклов меч экономии памяти и операций.
      Предпринимаются попытки реализовать аппаратными средствами и другие стандартные элементы программного хозяйства.
      Следует подчеркнуть, что создание самих компьютеров четвертого поколения практически невозможно без комплексной автоматизации всех процессов, начиная от проектирования, конструирования узлов и устройств машин, написания и отладки программ внутреннего математического обеспечения и кончая управлением станками и технологическими линиями, выпускающими большие интегральные схемы, отдельные устройства и ЭВМ в целом. Все необходимые здесь вычислительные и логи* ческие операции должны выполняться достаточно мощными компьютерами третьего или четвертого поколения по специальным программам, входящим в систему автоматизации проектирования.
      Люди уже не в силах охватить колоссальное число сложнейших структурных и функциональных закономерностей, характерных для описания машин четвертого поколения в действии. Без ЭВМ нельзя строить новые, более сложные ЭВМ. Если бы даже удалось найти требуемое число специалистов, в принципе способных выполнить «вручную» работу по проектированию и построению ЭВМ четвертого поколения, практически их услугами нельзя было бы воспользоваться. Во-первых, такое мероприятие потребовало бы чрезмерно больших затрат человеческого труда и растянулось бы на многие годы, и идеи, заложенные в проект, устарели бы еще до передачи его на заводскую реализацию. Во-вторых, исполнители проекта наверняка запутались бы в необозримом множестве стыковочных параметров, ошибок, исправлений и доработок, которых никто бы не мог учесть и запомнить.
      А сколько времени потребовалось бы на наладку и
      запуск в эксплуатацию ЭВМ, отдельные части которой плохо согласованы между собой?! Даже в заведомо более простых ситуациях не всегда удается свести концы с концами.
      Только комплексная автоматизация проектирования и изготовления позволяет получить надежные и дешевые ЭВМ четвертого поколения.
      Но перспективность ЭВМ четвертого поколения объясняется не только тем, что в них удачно решается проблема внутреннего программного обеспечения, не менее важно и то, как решается вопрос программирования большого числа задач пользователей. Не так просто «накормить» компьютер, имеющий быстродействие, исчисляемое сотнями миллионов операций в секунду. Высказываются даже сомнения в том, что удастся вообще обеспечить эти гигантские вычислительные системы достаточным числом запрограммированных задач!
      — Вы все печетесь о загрузке ЭВМ и совсем забыли о нуждах пользователей.
      — В распоряжение пользователей предоставляется большой набор языков программирования и совершенных трансляторов. Какие же еще средства автоматизации программирования вам хотелось бы иметь?
      — Мне вообще не хотелось бы иметь дело с программированием! Лучше всего было бы просто решать задачи по уже подготовленным заранее программам.
      В настоящее время технология программирования действительно располагает богатейшим набором языков программирования: от весьма универсальных ФОРТРАН, АЛГОЛ, КОБОЛ, PL и других до проблемно-ориентированных. Трансляторы с этих языков являются мощным инструментом автоматизации рутинных работ при создании программ для ЭВМ. Их применение приводит к значительному снижению трудоемкости работы программистов, а скорость подготовки задач возрастает в десятки раз!
      Кроме программистов-профессионалов, приобщаются к языкам программирования и инженеры всех специальностей, как потенциальные пользователи ЭВМ. Но можно ли рассчитывать, что эти широчайшие круги специалистов овладеют языками программирования так,
      что смогут готовить для своих нужд сколь угодно сложные задачи?
      Скорее всего нет. Практика показывает, что большинство из них в состоянии с трудом запрограммировать и отладить, да и то с помощью профессиональных программистов, лишь простейшие задачи, встречающиеся в их повседневной практике. Основная же масса специалистов пока, к сожалению, не освоилась с ЭВМ
      Вспомним третье поколение машин и проблему создания для них внутреннего математического обеспечения. Вначале операционные системы и трансляторы с алгоритмических языков создавались каждым коллективом пользователей практически только для своих нужд, или брались типовые и подгонялись под свои цели.
      К концу эпохи компьютеров третьего поколения подобные программные комплексы стали создаваться индустриальными методами — крупными сериями для целых семейств ЭВМ. Так, например, появились операционная система ЕС ЭВМ (так называемая ОС ЕС), дисковая операционная система серии ЕС (ДОС ЕС), типовые трансляторы, «банки данных» и т. д.
      Наконец, к моменту перехода к четвертому, поколению эта тенденция получает свое логическое завершение в аппаратурной реализации средств внутреннего и элементов внешнего математического обеспечения. Это поднимает проблему индустриализации их производства на поистине недосягаемую высоту! А что происходит с программами пользователей?
      Они готовятся индивидуальными, зачастую кустарными методами. Как тут можно надеяться «накормить» мультипроцессорного гиганта! Здесь и для мини-ЭВМ вряд ли напрограммируешь! Трагическая ситуация; как говорится, и волки не сыты, и овцы далеко не в порядке!
      Как же быть?
      Посмотрим, как похожие проблемы разрешаются в других сферах. Сейчас почти в каждой семье есть магнитофон или проигрыватель. Для них нужны магнитофонные ленты с записями музыки или пластинки. Как формируется личная фонотека? Возьмем среднего «пользователя» — пусть это любитель классической музыки, увлекающийся, например, произведениями И.-С. Баха. Вряд ли ему придет в голову брать ноты, скажем, «Бранденбургского концерта», разучивать его самому и играть для записи или приглашать для этой цели к себе на квартиру симфонический оркестр. Сомнительно даже, чтобы он попытался пойти в консерваторию и там записать любимое произведение. В этом абсолютно нет никакой необходимости! Почему?
      Да потому, что он в любой момент может пойти в магазин и приобрести там все, что ему нужно, практически все произведения великого композитора, исполненные на самом высоком профессиональном уровне. Там же, в магазине, он может получить необходимые консультации: узнать, что еще стоит приобрести из произведений любимого автора, какие новые записи появятся в ближайшее время.
      Конечно, «пользователь» может создать и собственную фонотеку «домашних» записей: скажем, записать, как дочка играет «Чижик-пыжик» либо приятель исполняет «Очи черные». Но ему никогда не придет в голову браться за интерпретацию «Мессы си минор» или самому исполнять «Искусство фуги».
      Но почему тот же любитель музыки, если он работает, скажем, инженером в НИИ, должен сам программировать свои задачи чрезвычайной сложности? Ведь программа, допустим, моделирования производственного процесса непрерывной варки целлюлозы не менее сложна, чем любая симфония, а реализовать современный вычислительный процесс посложнее, чем дирижировать симфоническим оркестром!
      Проблема подготовки задач для современных ЭВМ считается одной из наиболее актуальных проблем современного использования вычислительной техники. Решение ее способно оказать заметное влияние на весь ход научно-технического прогресса.
      «Существуют различные точки зрения на программирование как на процесс человеческой деятельности, — говорит академик В. Глушков, — многие считают его искусством, с вытекающим отсюда порядком проведения.
      В последнее время потребности практики определили необходимость пересмотра этой точки зрения. Появились работы, которые трактуют процесс программирования как производственный, со всеми присущими ему атрибутами: плановостью, распараллеливанием и разделением труда, четкой технологией выполнения операций, наличием кооперированных поставок, средств автоматизации и т. п.
      Это означает, что усилия по производству программ следует сосредоточить в специализированных объединениях коллективов, ориентированных на изготовление программ определенных классов».
      Не менее важно, чтобы этот дорогостоящий и кропотливый труд не пропадал даром, чтобы использованные программы не выбрасывались, а накапливались, могли служить многократно.
      Сейчас м-ного говорят о накоплении «программного капитала», о предохранении его от «девальвации».
      Серьезные шаги в этом направлении уже сделаны — речь идет о создании ведомственных и даже общегосударственных фондов алгоритмов и программ.
      К каждой программе, поступающей в фонд на хранение, предъявляются жесткие требования: она должна быть написана на одном из распространенных языков программирования, к программе должна прилагаться инструкция, поясняющая особенности реализации ее на ЭВМ, правила подготовки исходной информации, взаимодействие с «банками данных», правила использования внешних устройств, организации режима диалога и другие. В инструкции обычно помещается простой пример, доведенный до окончательного решения, наглядно иллюстрирующий работу программы и методику решения с ее помощью типичного класса задач.
      Фонды алгоритмов и программ существенно экономят труд, связанный с постановкой, алгоритмизацией и программированием задач на ЭВМ. Опыт, однако, показывает, что они не смогли еще решить обсуждаемую проблему окончательно. Здесь имеются две основные трудности. Одна из них вызвана тем, что большинство сдаваемых в фонд программ готовилось пользователями практически лишь «для себя», без учета потребностей и особенностей других возможных потребителей. Отсюда многие хранящиеся в фонде программы оказываются подходящими только по названию, а не по существу к тем, которые требуются.
      Вторая трудность связана с тем, что обращаться в фонд, выбирать нужные программы и оценивать их пригодность для решения конкретной задачи могут опять же только высококвалифицированные программисты, знающие к тому же и прикладную постановку задачи.
      Все это свидетельствует о необходимости создания единых центров «программных услуг», которые, помимо фондов алгоритмов и программ, располагали бы высококвалифицированными специалистами, способными, дать консультации по любым вопросам использования «программного хозяйства».
      Нужно поставить технологию производства программ на индустриальные рельсы. За пользователем должна оставаться лишь основная часть работы, связанная с конкретизацией задач, причем все последующие доработки должны фиксироваться и немедленно становиться достоянием всех пользователей. Только тогда создание программ сравнится по темпам со скоростью развития вычислительных средств.
      В последнее время активно проявляет себя новый подход к подготовке задач пользователей. Он привел к созданию современных проблемно-ориентированных пакетов прикладных программ.
      Современный проблемно-ориентированный пакет программ — это весьма сложный программный комплекс с автоматическим управлением. Но пользователь этой сложности не ощущает, для него все выглядит просто: ввел исходные данные — и получай результаты! Более того, ЭВМ поможет даже проанализировать результаты расчета и принять по ним соответствующее решение.
      Таким образом, пакет прикладных программ для пользователя — это вполне реальное средство раскрепощения человека от тирании программирования.
      — Теперь бы поговорить и о сути пакетов; сказать, что за идея лежит в их основе, идея, которая наконец-то позволила решить проблему программирования.
      — Пожалуй, об окончательном решении еще говорить не приходится. Скорее следует сказать о забрезжившей надежде на решение этой проблемы в будущем.
      Современный пакет программ — это государство в государстве: программное государство пакета в электронном государстве ЭВМ. Есть у этого программного государства все, что приличествует любой ЭВМ: своеобразный «программный процессор», программные средства общения с пользователем (ввод-вывод), внешняя память («банк данных» пакета) и даже собственная операционная система.
      Но главное своеобразие пакета — - сходная с ЭВМ широта функций. Оказывается, пакет можно использовать не только для решения одной конкретной задачи, а целого класса прикладных задач, причем весьма широкого.
      Конечно, пакеты программ существовали и раньше;
      взять хотя бы библиотеки стандартных подпрограмм, появившиеся еще в эпоху ЭВМ второго поколения. Однако современный пакет отличается от наборов стандартных программ так же, как современная ЭВМ от ее ламповых предков. Сейчас все более популярным становится термин «пакеты программ второго поколения», который говорит о качественном скачке в развитии этого перспективного направления математического обеспечения ЭВМ.
      К созданию современных пакетов прикладных программ привели две тенденции. Первая — это накопленный опыт в постановке и решении отдельных классов задач на ЭВМ, который приводит к обобщению постановок таких задач для целых классов искомых величин. Вторая — новый подход к программированию сложных задач, который выливается в создание своеобразных «программных БИСов» высокой универсальности.
      Сказанное удобно пояснить на примере класса задач имитационного моделирования сложных систем. Как уже говорилось, имитационная модель представляет собой программу, воспроизводящую при помощи операции ЭВМ сложные процессы, происходящие в реальной системе,
      будь то производственный, информационный или биологический объект.
      Для создания программной модели необходимо сначала формально описать происходящий процесс, то есть построить его математическую модель — аналогию. Второй этап — программирование математической постановки, то есть запись ее алгоритма в виде последовательности команд и реализация полученной программы на ЭВМ.
      Вообще, метод математического моделирования весьма универсален, да и применяется он с давних пор. Первыми математическими моделями можно считать со- отношения Г. Галилея и И. Кеплера, описывающие движение планет, и законы динамики И. Ньютона. Второе рождение метод математического моделирования пережил с появлением ЭВМ, этих колоссальных «усилителей интеллекта». Огромная скорость работы, «бездонная» память ЭВМ позволили ученым перейти от очень грубых и слишком общих постановок моделей к более детальным, точным; от решения частных задач, в основном касающихся исследования отдельных элементов систем, к исследованию сложных систем, состоящих из сотен и тысяч таких элементов.
      Огромный опыт, накопленный в процессе построения большого числа разнообразных моделей, позволил специалистам усмотреть определенные общие свойства любых моделей, выделить некоторый обобщенный прием построения модели любой сложной системы независимо от ее реального содержания. Прием этот состоит в разбиении сложной системы на простые части, которые называются элементами системы, и описании их математически. Затем таким же образом следует описать и сложную структуру взаимодействия элементов и, наконец, произвести увязку этих разнообразных описаний в единый моделирующий алгоритм с последующим программированием.
      В процессе работы над составлением моделей удалось также обобщить математическую модель поведения элемента. Оказалось, что элементы любой системы работают, как правило, похожим образом, и, стало быть, возможно создание «обобщенной универсальной математической модели элемента сложной системы».
      Такая модель, носящая замысловатое название — «кусочно-линейный агрегат», создана киевским математиком, членом-корреопондентом АН УССР И. Коваленко. Около десяти лет трудился ученый над обобщением процесса функционирования элемента.
      Постепенно выкристаллизовались и другие обобщенные математические модели, например схема для описания структуры любой сложной системы. Так, шаг за шагом, складывалась универсальная математическая модель сложной системы.
      Подобная обобщенная модель обладает рядом привлекательных качеств: во-первых, для решения любых частных задач удобно пользоваться единой стандартной методикой и универсальными обобщенными описаниями; во-вторых, благодаря обобщенности и универсальности модели существенным образом может быть унифицировано и ее программирование.
      «Пусть наша программа моделирования, — подумали программисты, — тоже состоит из стандартных блоков: модели элемента системы (кусочно-линейный агрегат) и модели взаимодействия элементов (на базе универсальной методики описания структуры). В силу общности этих моделей любую встретившуюся нам в практике систему мы в состоянии моделировать на нашей программе. Для этого необходимо лишь представить описание системы в виде выбранной универсальной стандартной формы».
      Это поразительный результат! Отныне для решения столь сложной задачи, как моделирование сложной системы, не нужно ничего программировать; достаточно лишь сводить математическое описание системы к заранее запрограммированной стандартной форме!
      Здесь, очевидно, просматривается и другая, программная сторона проблемы создания пакета: она состоит в новых особенностях «технологии» программирования.
      Проведем своеобразную аналогию между сменой поколений ЭВМ и развитием программных комплексов для ЭВМ. История программирования не менее захватывающа, чем история самих ЭВМ.
      Вспомним ЭВМ первого поколения. Здание машины собирается из отдельных «кирпичиков»: диодов, ламп, сопротивлений, конденсаторов. Подобно ЭВМ, и программы набираются вручную из простейших команд: сложить, вычесть, умножить, разделить и т. п.
      Второе поколение машин характеризуется уже известной сложностью первичных «кирпичей», содержащих десятки элементов. Аналогичные «кирпичи» появляются и в области программирования — это знакомые библиотеки стандартных подпрограмм. А появившиеся вскоре языки программирования есть не что иное, как попытка переложить на ЭВМ составление из этих «кирпичей» более крупных программных блоков, то есть своеобразная попытка автоматизации трудоемкого процесса программирования.
      Третье поколение ЭВМ, как известно, характеризуется наличием интегральных схем — сосредоточением сотен и тысяч элементов. Такое же «крупноблочное строительство» имеет место и в области программирования — достаточно вспомнить стандартные операционные системы, «банки данных», типовые АСУ и т. д.
      Наконец, в машинах четвертого поколения появились БИСы. Они не только содержат тысячи и сотни тысяч элементов, но в силу унификации и стандартизации обладают весьма универсальными функциями, имеют широкий спектр приложений. Уже упоминалось об универсальных БИСах, настраиваемых на классы операций путем введения небольших БИСов-программ. Поражает другое — чрезвычайная широта функций таких элементов. Ведь эта БИС в зависимости от программы может выполнять широкий круг обязанностей: быть и радиоприемником, и сумматором ЭВМ, и блоком памяти, и даже счетным элементом в наручных электронных часах. Может показаться, что такая избыточная универсальность чрезмерна, что слишком дорого обойдется эта БИС. Но оказывается, что «экономия сырья», или время изготовления, или даже размеры БИС — факторы вторичные; как универсальная, так и частная БИС стоит примерно одинаково. Причина тому — высокая автоматизация процессов изготовления БИС, «многотираж-ность» партий БИС, их миниатюрность. Таким образом, не изготовить БИС, а спроектировать новую схему есть самое сложное.
      Подобная тенденция наблюдается сейчас и в области программирования! Поскольку создание универсальной или частной программы одинаково кропотливый и трудоемкий процесс, то стоит создавать программы для более общих постановок задач, тогда их можно будет использовать гораздо шире. При этом наличие в программе большого числа дополнительных особенностей, не используемых в данный момент, не очень пугает программистов,
      ведь быстродействие ЭВМ велико, а машинное время сравнительно дешево.
      Все это породило и более «гуманное», снисходительное отношение к труду программистов. Сейчас перед ними уже не ставится задача создать программу, использующую память ЭВМ «самым оптимальным образом» или решающую задачу «наикратчайшим путем», что превращало иногда работу над программой в мучительный процесс перебора сотен вариантов алгоритмов решения и размещения исходных данных. При создании программ, особенно одноразового использования, нужно экономить не память и операции машины, а труд людей! Основные критерии программирования в настоящее время — это сроки создания программ, универсальность их функций, доступность широкому кругу пользователей и т. п. Разве не об этом же говорит широкое распространение языков программирования и трансляторов, которые призваны помочь как можно быстрее создать программу, пусть и не столь оптимальную по памяти и быстродействию!
      Итак, две тенденции — унификация постановок и повышение универсальности программ — приводят программистов к созданию современных пакетов прикладных программ своеобразных универсальных «программных БИС».
      Сердце современного пакета — основная решающая программа — это как бы программный «универсальный процессор» пакета. Программа эта предназначена для решения самой общей из класса задач в наиболее универсальной ее постановке. В силу этого она воспринимает данные в специальной стандартной форме, наиболее общей для рассматриваемого класса задач. Для пользователя же такая форма задания исходных данных не обязательно окажется самой удобной, напротив, пользователь, не владеющий общей постановкой задачи, вообще не сможет приступить к решению своей задачи по универсальной программе. Это обстоятельство и объясняет тот факт, что почти любой из современных пакетов содержит целую группу программ преобразования данных, вводимых пользователем в стандартную форму, принятую в «основной решающей программе».
      Дальнейшее развитие этой тенденции приведет, и сейчас это уже неоспоримо, к тому, что пользователь будет общаться с пакетом (точнее было сказать — с ЭВМ, содержащей пакет) на все более привычном ему языке. Причем речь идет не о языке программирования, ведь в пакете все уже запрограммировано заранее, а о так называемом языке заданий. Этот язык может быть языком привычных пользователю бланков, трафаретов, схем и таблиц. Наконец, пользователь может вводить информацию световым пером, изображая на экране графическую постановку своей задачи.
      Итак, данные задачи введены в ЭВМ, преобразованы специальными программами в стандартную форму, и основной решатель приступил к работе. Можно ли надеяться, что данные, полученные в результате решения, окажутся наглядными и доступными пользователю? Сомнительно, чтобы программа, решающая задачу в общей постановке, выдала результат в доступной для пользователя частной форме. Скорее всего потребуется преобразование этой информации из универсальной стандартной формы, которую только и может выдать универсальная программа, в форму, привычную для пользователя, доступную для обозрения и использования.
      Поэтому следующая и наиболее обширная часть современного пакета программ — это библиотека программ анализа и обработки результатов программ, переводящих результаты решения задачи в удобный для человека вид. Кстати, это и наиболее развивающаяся часть пакета, она все время пополняется, ведь новые задачи возникают в работе пользователей постоянно!
      Входят в пакет также разнообразные «стандартные» средства математического обеспечения: «банк данных», операционная система, обеспечивающая режим диалога и коллективного пользования, и другой разнообразный программный сервис.
      Итак, аналогия пакета и ЭВМ не оказывается слишком притянутой. Правда, нельзя сказать, что эта «программная ЭВМ» может быть названа особенно универсальной, однако очевидно, что вопрос универсализации пакетов связан скорее с экономической целесообразностью. Во-первых, можно создать как бы «многопроцессорный» пакет, где каждый «процессор» будет предназначен для решения своей группы задач. Кроме того, можно надеяться на все большее обобщение постановок задач. Таким образом, с ростом быстродействия ЭВМ могут возникнуть предпосылки для создания весьма общих универсальных решателей для целых областей знаний.
      — Ну что ж, пора поговорить и о перспективах развития ЭВМ.
      — Строить прогнозы — дело опасное. Здесь легко оторваться от реальной действительности и попасть в область фантастики. И все же, пожалуй, стоит остановиться на двух направлениях: новых физических принципах построения ЭВМ и внедрении вычислительной техники четвертого поколения в самую гущу жизни.
      Нужно иметь в виду, что даже четвертое поколение еще не сложилось окончательно. ЭВМ на больших интегральных схемах выходят из стадии разработок, начинается их серийный выпуск, но опыт работы на них еще мал. Тем не менее об основных перспективах развития вычислительной техники можно уже говорить. И начать этот разговор стоит с использования новых физических
      принципов.
      В настоящее время, несмотря на достаточные успехи в построении ЭВМ на традиционных принципах, ведутся работы по созданию компьютеров на основе новых физических явлений. Одним из таких направлений является лазерная техника.
      Лазер — сложнейшее оптическое устройство, представляющее собой мощный генератор высокочастотных световых импульсов. Об интенсивности и концентрации луча лазера можно судить хотя бы по такому факту. В настоящее время проводится лазерное исследование поверхности Луны. Луч лазера, посланный с Земли, легко достигает лунной поверхности и «высвечивает» на ней световое поле размером всего несколько метров.
      Сфера применения лазерной техники существенно расширяется в связи с появлением так называемой волоконной оптики или гибких световодов. Представьте себе тончайший прозрачный волосок — это световой канал. Он устроен таким образом, что луч света, попавший в один его конец, отражаясь от зеркальных стенок, уже не выходит в сторону, а двигается по этому световоду, пока не выйдет из другого его конца. Чем не проводник? Его можно как угодно изгибать, соединяя световые устройства друг с другом, как детали электронных схем.
      Обычно световоды объединяют в мощные жгуты по нескольку тысяч элементарных нитей. Такой световой кабель может передавать огромное количество информации: во-первых, за счет колоссального числа световодов; во-вторых, благодаря тому, что по одному и тому
      же. волоску можно передавать несколько сообщений ка разных частотах (подобно тому, как по одному электрическому проводу идет десяток телеграмм).
      Так родилось новое направление — оптоэлектроника.
      Конструкторы вычислительных устройств не могли ке обратить внимания на это интересное изобретение; ведь его применение в ЭВМ удивительно перспективно. Как известно, свет распространяется с максимальной в природе скоростью — «со скоростью света» — 300 тысяч километров в секунду. Значит, можно создавать вычислительные устройства, работающие на подобных скоростях. Кроме того, появляется возможность спроектировать запоминающие устройства колоссальной емкости: ведь размеры участка для запоминания единицы информации могут иметь порядок длины световой волны. Заманчиво построить компьютер на подобных принципах!
      Дальнейшее совершенствование оптоэлектронных методов передачи и хранения информации привело создателей ЭВМ к мысли, что элементарные световоды-волоски могут передавать не только двоичные знаки, но и другие порции информации, например, целые изображения, телевизионные кадры. Пусть на одном конце светового проводника стоит устройство, которое сжимает изобра-
      жение до небольших размеров и мощным световым лучом посылает его в канал. На другом конце специальный «усилитель» воспринимает это изображение и увеличивает его до размеров, удобных для обозрения.
      Это открывает пути для немыслимого до сих пор способа обработки данных. Ведь, используя «картинку» в качестве «элементарной единицы» информации, можно, например, совершенно преобразить машинный поиск. Любой сложный признак информации будет найден не по громоздкому коду или шифру, а путем простого оптического сравнения — наложением.
      Более того, таким признаком может оказаться не только слово или фраза, но и любая картинка, скажем, фотография человека. Уже сейчас созданы образцы такой памяти, где луч света, обегая небольшую пластинку, хранящую несколько сот элементарных картинок,
      мгновенно и безошибочно находит искомую.
      Очевидно, можно хранить не только плоские картинки, но и объемные изображения. Это становится возможным при использовании голографических методов формирования изображений.
      Последним и наиболее фантастическим прогнозом, который стоит отметить, является выросшая из голографии идея об операциях над «образами» — объемными или плоскими изображениями.
      Обычно перспективы в области применения ЭВМ всегда связывают с развитием самих ЭВМ, точнее говоря — их эволюционным развитием. Совершенствование элементной базы, увеличение быстродействия, объема памяти, пропускной способности каналов и устройств ввода-вывода — вот главные факторы. Однако в настоящее время ситуация в области вычислительной техники такова, что развитие компьютеров опережает прогресс в области их практического использования. Серийное производство ЭВМ новых поколений может быть организовано быстрее, чем внедрение их в практику.
      И это не простая проблема. Извлечь все, что дает нам поразительный скачок в возможностях ЭВМ, — это, пожалуй, самая насущная задача, стоящая перед человеком. В силу этого, говоря о перспективах, следует особенно подчеркнуть ту новую качественную особенность ЭВМ четвертого поколения, ту тенденцию, которую можно было бы назвать «симбиозом» человека и ЭВМ, более плотным переплетением их «жизненных линий».
      Создание человеко-машинных систем, все более тесное взаимодействие человека и ЭВМ, все большее высвобождение человека из-под гнета тяжелого, непроизводительного умственного труда — однообразных рутинных счетных операций — позволяют по-настоящему говорить о промышленной революции, которую совершили ЭВМ.
      Одной из наиболее характерных человеко-машинных систем являются АСУ. Посмотрим, какие нее тенденции наблюдаются в этой области.
      Техническая база АСУ теперь может опираться на иерархическую сеть ЭВМ, располагающую весьма разнородными средствами, от гигантских мультипроцессорных ЭВМ до миниатюрных микропроцессоров.
      Пусть речь идет об АСУ какого-нибудь предприятия. В центре такой системы будет стоять многопроцессорная вычислительная машина большой производительности. Каждое подразделение предприятия: цех, склад, дирекция — будет располагать собственной мини-ЭВМ средней производительности; все они должны быть связаны с главной ЭВМ. Но мини-ЭВМ подразделений, в свою очередь, тоже являются центрами сети более низкого уровня — это мини-ЭВМ небольшой мощности, стоящие на каждом технологическом участке предприятия. И наконец, эти мини-ЭВМ соединены с сотнями микрокомпьютеров, встроенных в автоматические технологические линии, в погрузочные средства, в агрегаты и реакторы. Такая иерархическая сеть представляет собой единый организм, управляемый «центральным мозгом», получающим сигналы от всех периферийных источников информации.
      Преимущества подобной организации заключаются в том, что она дробит функцию управления на более мелкие процедуры и выход в этом случае из строя отдельного микропроцессора, мини-ЭВМ или даже центральной ЭВМ не влечет за собой отказа системы в целом. При такой постановке дела большой ЭВМ нет необходимости контролировать всю систему и управлять всеми производственными компонентами, такими, как паровой котел, фрезерный станок, испаритель или каталитический конвертор. Это с успехом сделают микропроцессоры.
      Иерархические сети ЭВМ получают распространение не только в АСУ предприятий и ведомств, но и при создании систем управления широкого профиля. Конечно, такие системы создавались и раньше, но применение ЭВМ в них было затруднено, во-первых, высокой их стоимостью, во-вторых, ЭВМ третьего поколения нуждались в специальном изолированном помещении с кондиционерами и другой вспомогательной аппаратурой, поэтому рентабельность подобных систем была невысока.
      Управление дорожным движением с помощью микропроцессоров может представлять собой наглядный пример использования микро-ЭВМ в подобных системах управления. Система на основе микропроцессоров вэ много раз дешевле и благодаря своей гибкости может, помимо основных функций, выполнять множество дополнительных заданий: контролировать количество
      проезжающих машин, их скорость и число пассажиров.
      Мини-ЭВМ и микрокомпьютеры используются, например, в системе управления самолетом. Компьютер получает в полете информацию о высоте, наружной температуре воздуха, степени сжатия в двигателях и подсказывает пилоту, па какой высоте ему следует держаться. Более точно подбирая высоту и режим полета, компьютер позволяет экономить до 5 процентов дорогостоящего горючего.
      Пожалуй, ни в одной отрасли промышленности так сильно не сказывается воздействие микрокомпьютеров, как в приборостроении. Использование их в измерительных приборах настолько упрощает и ускоряет различные измерения, что можно говорить о новом этапе в
      развитии измерительной техники.
      Не менее широко проникновение микрокомпьютеров и в сферу услуг. Например, на основе микропроцессора на большой интегральной схеме предложен новый счетчик для такси. Он следит за маршрутом и одновременно показывает стоимость проезда для каждого из пяти пассажиров, севших в машину в разных местах.
      Почтовые весы с компьютером — новинка на почте. В память таких весов вводятся почтовые тарифы, и микрокомпьютер после взвешивания почтовых отправлений и ввода почтового индекса сам подсчитывает стоимость почтового сбора.
      Устройство для считывания цифровых и буквенных знаков в автоматическом кассовом аппарате (читающий автомат) еще одна область применения микропроцессоров. Маленькая палочка, размером с многоцветную шариковую ручку, перемещаемая вдоль строки цифр
      или букв, позволяет считывать информацию в пять раз быстрее любого оператора, набирающего ее на клавиатуре.
      Миниатюризация счетных элементов и совершенствование конструкции микро-ЭВМ приводят к созданию универсальных микрокомпьютеров с программным управлением. Эти карманные ЭВМ на батарейках позволяют самому широкому кругу пользователей составлять программы и решать задачи точно так же, как это делается на больших ЭВМ.
      Устройство ввода такой машинки воспринимает информацию с миниатюрных магнитных карточек. Задать программу и закодировать ее на карточки можно с помощью клавиатуры самого компьютера. Затем карточка вставляется в считывающее устройство и вводится нажатием одной из клавиш. Запрограммировав десяток задач, можно, меняя карточки, настраивать такую ЭВМ на решение любой из них — от планирования бюджета семьи до сложных инженерных расчетов!
      Такое карманное устройство, обладающее памятью в миллион бит, можно использовать как вычислитель, телефонную книгу, дневник, календарь деловых встреч, словарь! Часто употребляемые формулы, трудные для написания слова, телефонные номера, адреса, имена и фамилии и всевозможные другие данные можно извлекать из памяти простым нажатием одной или нескольких клавиш. Информация выдается на бумажную ленту, где она печатается быстро и бесшумно. Люди смогут лучше планировать свой день. Встроенные часы автоматически напомнят о ранее назначенных встречах.
      По мнению специалистов, революция в производстве дешевых и миниатюрных ЭВМ окажет глубочайшее влияние на весь быт людей; и это не фантастические проекты далекого будущего. Уже сейчас размеры электронных калькуляторов определяются в основном размерами клавиатуры, а не микропроцессорных электронных схем. Вопрос их массового распространения связан лишь со снижением стоимости.
      Наиболее нетривиальная, но, пожалуй, не менее перспективная область приложения микропроцессоров — создание новых товаров широкого потребления!
      Специалисты считают, что микропроцессоры будут использоваться в жилых домах, в автомашинах, в бытовых электроприборах и в других потребительских товарах в значительно большей степени, чем в любой другой продукции.
      Так появятся «умные вещи», перед которыми поблекнут скатерть-самобранка и волшебная дудочка. В настоящее время их еще немного, и цены на них пока высоки. Но первые образцы уже появились. Вот некоторые из них.
      Умная печь. Она может быть запрограммирована на любую последовательность операций, например, медленное размораживание продуктов, их выдержку с целью выравнивания до комнатной температуры и затем приготовление блюда в любом температурном режиме. Такая микроволновая печь сама подогреет жаркое к нужному часу, допустим, к приходу гостей.
      Умный видеомагнитофон может воспроизвести любую из 200 хранящихся в магнитной памяти видеозаписей. Простое нажатие кнопки настраивает микропроцессор на поиск и демонстрацию нужного фрагмента.
      Умные часы. Одна из моделей таких часов позволяет владельцу ввести в нее любые даты, скажем, дни рождения друзей, и спустя несколько месяцев часы сами напомнят, что пора покупать подарок.
      Умная стиральная машина производит все операции с учетом конкретных условий: вида ткани, веса белья, степени загрязнения. Установленные в сушильном отсеке датчики влажности и температуры сами подберут нужную (оптимальную) продолжительность и скорость сушильного цикла.
      Появились уже первые автомобили, в которых использованы микрокомпьютеры. Микропроцессор, подающий команды на карбюратор, способен оптимально спланировать режим подачи топлива с учетом нагрузки на вал двигателя и рельефа дороги.
      Внедрение микропроцессоров в бытовые товары создает для их потребителей особый комфорт и существенно экономит время и силы. Дело здесь не только в особом удобстве обращения с такими вещами — сами функции товаров могут существенно улучшиться. И произойдет это не за счет дорогостоящей перестройки их механических или электронных схем, а путем оптимального управления происходящими процессами.
      Ведь такая микро-ЭВМ явится своеобразной АСУ:
      АСУ автомобиля, АСУ холодильника или АСУ стиральной машины.
      На очереди АСУ квартиры! Микро-ЭВМ будет контролировать систему отопления и кондиционирования воздуха, вовремя включать и выключать бытовые приборы. Будет в такой АСУ квартиры и свой «банк данных», где будут храниться печатные сообщения прессы и по желанию воспроизводиться на экране телевизора; можно даже запрограммировать выбор сообщений по определенной тематике.
      Такой универсальный компьютер в союзе с телевизором, видеомагнитофоном, дисплеем и кнопочным пультом, соединенный по телефонному каналу с большим банком информации, стоящим в центре города, и есть та домашняя ЭВМ, о которой иногда поговаривают фантасты.
     
      Итак, закончились наши беседы о поколениях ЭВМ, но не закончена история поколений. Вам, молодым, вписывать в нее новые страницы. И может быть, при жизни нынешнего поколения людей и произойдет в истории ЭВМ самое интересное!

|||||||||||||||||||||||||||||||||
Распознавание текста книги с изображений (OCR) — творческая студия БК-МТГК.

 

 

 

От нас: 500 радиоспектаклей (и учебники)
на SD‑карте 64(128)GB —
 ГДЕ?..

Baшa помощь проекту:
занести копеечку —
 КУДА?..

 

На главную Тексты книг БК Аудиокниги БК Полит-инфо Советские учебники За страницами учебника Фото-Питер Техническая книга Радиоспектакли Детская библиотека


Борис Карлов 2001—3001 гг.