Управление в общем случае - достижение поставленной цели организацией взаимодействия избранных для сего средств. Мы будем вести речь только об осознанном, целесообразном, организованном управлении, оставив в стороне стихийное. Естественно, что нас прежде всего интересует управление в автоматических системах. Но не минуем мы и автоматизированных.
Различия терминов "автоматический" и "автоматизированный" очень глубоки: в первом случае имеет место самостоятельная (автономная) работа (выполнение действий) технического средства, именуемого автоматом, во втором деятельность человека и работа автомата сочетаются (чередуются).
"Поле деятельности" автоматов пока весьма ограниченно. Например, что может автомат, оберегающий вход на станцию метрополитена? Только одно - пропустить вас, если вы опустили в него пятак. Во всех остальных случаях - не пропустит. Даже если вы опустите в его приемное отверстие десять копеек (за неимением пятака). Увы! Эта задача для данного автомата неразрешима. Он "понимает" ее как нарушение заданных правил действия.
Главная забота создателей автоматов - как можно более тщательно регламентировать правила их поведения, чтобы они однозначно соответствовали цели, ради достижения которой автомат создается.
Жизненный цикл автомата начинается с замысла, идеи или с заказа, формулирования цели и выбора (назначения) средств ее достижения. За ними следует проектирование автомата, описание его специальным языком (языками). Язык этот понятен тем, кто будет автомат делать, настраивать и использовать. С помощью его "слов", "синтаксиса" создаются чертежи, графики, таблицы, описания, инструкции, методики, технологические карты и прочая техническая документация.
Но нас интересует не она, а та умственная работа, которая предшествует ее созданию. Ведь прежде, чем что-либо начертить, нарисовать, написать, исполнитель должен это придумать, представить в сознании. Применительно к создаваемому автомату - это выбор процесса и технических средств, осуществляющих этот процесс.
Цель в сознании конструктора преобразуется в процесс - последовательность операций (действий, мероприятий) по ее достижению, который сразу распадается на два потока! В одном мышление "создает" операции работы (действия) автомата (вернее, их образы), а в другом - образы выполнения (реализации) этих действий. Из последних возникают представления о технических средствах, которые в состоянии исполнить потребные действия.
Нас более всего интересует первый поток, отображающий действие будущего автомата. Вся предшествующая деятельность исполнителя может быть обобщенно описана как управление (вспомните его определение, данное выше). Да и абстрактные (мысленные) и физические, силовые (черчение, письмо и т. п.) действия Человека на начальном этапе жизненного цикла создаваемого объекта представляют собой управление.
Так и мы, преследуя при написании этой книги цель ввести в сознание читателя некоторые истины, касающиеся проблем компьютеризации, были вынуждены выделить в объекте суждения элементы и связи между ними. Путем отдельных (дискретных) высказываний, рассуждений, умозаключений, объединенных общностью замысла, мы попытались добиться цели. (Насколько мы в этом преуспели, судите сами.)
Это "лирическое отступление", как и приведенный выше пример, свидетельствует о необходимости и даже неотвратимости разбиения цели, выделения подпроцессов - последовательностей операций. Само разбиение и "выдумывание" операций мы осмелились назвать управлением. Наверное, вы не будете против. Это ведь действительно управление, его абстрактная, мысленная форма, реализуемая в сознании человека. Из хранящихся в памяти образов реальных объектов выбираются наиболее подходящие для данного случая. Совершаются операции над этими объектами - объединение, расчленение, сдвиг (во времени и/или в пространстве), деформация (изменение) конструктивных признаков и способов их использования, "отбраковываются" негодные. Если же отыскать образ-аналог не удалось, свершается изобретение.
Это, конечно, весьма приближенное, так называемое "феноменологическое" описание процесса мышления. На самом деле все в нем гораздо сложнее, интереснее, загадочнее. Но об этом мы поговорим позже.
А пока констатируем, что мы преобразуем цель в алгоритм ее достижения. Следовательно, абстрактный этап проектирования завершается выработкой окончательного варианта последовательности операций, обеспечивающих решение задачи (или задач), и принятием решения в виде алгоритма.
Алгоритм содержит описания не самих сущностей (содержания), а результатов операций, вытекающих из их сущностей. Скажем так: "Вычислить площадь круга" "Вычислить объемы нескольких цилиндров, площади оснований которых равны площади круга, а высоты отличаются друг от друга на единицу длины"→"Сравнить полученные объемы с заданным"→"Наиболее близкий результат обозначить V"→"Вывести отмеченный V объем цилиндра на экран цифрового дисплея"→"Вывести аксонометрический чертеж цилиндра на экран графического дисплея"→"Приписать диаметру основания цилиндра и его высоте цифровые значения, соответствующие варианту V" и т. д. Данный пример дает представление об алгоритмизации управления АРМК - автоматизированным рабочим местом конструктора.
Программа отличается от алгоритма, прежде всего, детализацией, дроблением, декомпозицией (раскрытием сущностей) всех операций, именуемых иногда "блоками алгоритма", на элементарные действия, причем эти действия описываются в программе языком, который воспринимает ЭВМ, управляющая, скажем, тем же АРМК, например ПЛ-I, Фортран, Кобол, Ада и т. д.
На практике алгоритм задает автор-конструктор, а его декомпозицию исполняет программист, который выбирает машинный язык. Затем за работу берется транслятор, который записывает программу в память ЭВМ в той форме (последовательность электрических сигналов), которая используется в данной машине. Она может быть совершенно непригодна для ЭВМ с другой операционной системой. Но если ЭВМ имеют одинаковые операционные системы (это справедливо только для ЭВМ одного ряда), то полученную программу - полностью, частично (с любого места) или в виде промежуточных результатов - можно передавать с одной ЭВМ на все остальные и в них свободно использовать.
Пока не будем детализировать, что же в описанной технологии управления может быть улучшено. Просто зафиксируем в сознании, что процедура ввода данных в ЭВМ очень непроста, многоэтапна и специфична. Последнее означает, что программирование и управление универсальной ЭВМ требует специалистов-программистов, потому что знание языков программирования и "правил обращения" с ЭВМ - целая отрасль прикладной вычислительной математики. Учить этому специалистов других отраслей знания (тех же конструкторов), конечно, приходится, чтобы хотя бы отчасти компенсировать недостаток программистов. Но такое обучение, сопряженное с усвоением больших объемов довольно сложных данных, является тяжелым бременем.
Обретение того, что не ведающие сомнений энтузиасты именуют скромненько "компьютерной грамотностью, обязательной для всех специалистов", осложняет сам по себе непростой, требующий непрерывного самообразования процесс инженерного труда.
Но даже и этот грустный факт - еще не вся правда. Хотя объем памяти среднего конструктора все же весьма велик и превышает аналогичные возможности средней ЭВМ, эффективность (производительность и безошибочность) проектирования зависят не столько от объема хранящейся в памяти конструктора информации, сколько от многих других факторов. Не погружаясь в глубины вопроса об эффективности конструирования - как вообще, так и "в паре" с программистом и ЭВМ, отметим, что регулярное выполнение алгоритмизации цели высококвалифицированным конструктором нежелательно, так как снижает его творческий потенциал. Для среднего же конструктора (особенно, если цели выдвинуты высококвалифицированным коллегой, у которого наш средний конструктор "на подхвате") оно может вообще оказаться роковым: не даст подняться над средним уровнем.
Здесь мы невольно вторглись в область, которую будем обсуждать в двух следующих главах, что, впрочем, вполне оправданно. Ведь мы не ставили задачу изложить принципы алгоритмизации, программирования и управления ЭВМ. (Все это вы либо уже знаете, либо можете с успехом познать, обратившись к соответствующей литературе, повествующей о возможностях ЭВМ). Мы должны обозначить рифы и мели безбрежного океана компьютеризации. Ведь без этого невозможно безопасное плавание.
Машина имеет программное обеспечение, написанное на конкретном языке программирования, и исполняет заданные на нем действия. Поэтому новый язык - это новая ЭВМ.
Сегодня языки программирования и их "диалекты" исчисляются, по крайней мере, сотнями. Возможности овладения ими ограничены: и в области изучения естественных языков полиглотов мало. Зачем же столько языков программирования? Ведь большинство вычислительных (читай - управляющих) задач можно решить, пользуясь любым из "больших" языков, скажем языком Паскаль. Все дело в погоне за повышением эффективности решения некоторых, избранных (авторами очередного языка, соответствующего программного обеспечения и ЭВМ) классов задач. Скажем, специалистам по физике твердого тела подходит язык А, а гидродинамики считают, что язык А очень "неэкономен" (в смысле расходования машинного времени, памяти и т. п.), и желают иметь "свой" язык, каковой в конце концов и получают. Но язык В не устраивает экономистов, а о языке А они давно отзывались скептически. И пошло, и поехало... Может быть, создать универсальный язык, который бы всех устраивал? Этого пока никому не удалось.
Опять препятствия... И совсем некстати (хотя бывают ли они кстати?). Фронт Познания непрерывно расширяется, образуются новые "межотраслевые" проблемы. Мысленный взор ученого, инженера должен захватывать все большие "пространства" Знания, чтобы достичь высот квалификации и не сдавать их. И все чаще наиболее подготовленные специалисты усматривают тени на сияющем лике науки.
Однако управление, алгоритм, программа останутся абстрактными понятиями, всего лишь именами объектов, процессов, если нет средств физического воздействия на объекты Внешнего Мира - технических систем, состоящих из управляющих устройств (ЭВМ), исполнительных органов и источников энергии. Познакомимся с ними поближе.
Шеф оторвал глаза от циферблата и недоуменно посмотрел... Нет, он хотел посмотреть на такую знакомую и родную ему фигуру Квази, но ее не было. Совсем! Постамент опустел. Вокруг него в беспорядке были разбросаны обрывки проводов, оторванные клеммы, какой-то мелкий мусор и кусок серой мятой ткани, величиной с листок из ученической тетради.
Шеф негромко икнул и спросил отрешенно: "А где... этот?"
Ему никто не ответил. Казалось, все ждали, что еще немного - и наваждение исчезнет, все образуется, утрясется, вернется на круги своя. Но время шло, и ничего не утрясалось и не образовывалось. Подиум был пуст. И тогда все заговорили разом, вскочили со своих мест, забегали... Кто-то заглядывал за шкафы, кто-то выворачивал ящики своих столов, словно Квази мог в них поместиться, кто-то выбежал в коридор и потерянно кричал в его закоулках: "Ва-а-с-я-я-я!"
- Я не закрыл дверь лаборатории, уходя на перерыв последним,- Майонез встал, сгорбившись, и виновато развел руками.
- Это, конечно, возмутительно,- взорвался Шеф,- Но при чем здесь дверь, если мы еще не включили "автономку"?!
- А, может, включили?
- Но кто, кто мог это сделать?!
- Наверное, я?- в голосе Майонеза звучала вопросительная интонация, словно он не был уверен в том, что говорит, и кто-то должен развеять его сомнения.- Во всяком случае, когда мы пришли с перерыва, кнопка уже горела...
Все замерли, переводя взгляд с Майонеза на Шефа и обратно. Но Шеф молчал, и пауза затягивалась.
"Может быть",- робко начал Майонез, но тут Шеф понял наконец, что произошло, как-то нелепо подпрыгнул, закричал истошно и кинулся прочь из лаборатории.