Функциональная классификация программ математического обеспечения ЭВМ
Описанные в общих чертах требования к системным программам в основном определяют структуру математического обеспечения ЭВМ, являются синтаксическими требованиями. Для пользователя не менее (а, может быть, более) важным является содержание системы математического обеспечения. Обычно в ее состав входят:
1) операционная система;
2) система средств программирования (трансляторы, отладочные программы, собирающие программы);
3) системы программ ввода и вывода информации;
4) система программ поддерживания ОС в рабочем состоянии;
5) система программ управления данными;
6) система испытательных программ;
7) совокупность комплексов прикладных программ. Читатель уже знает, что такое операционная система, трансляторы, программы ввода и вывода. Из программ поддержания в рабочем состоянии операционной системы нужно прежде всего назвать программу, с помощью которой операционная система вводится в оперативную память и настраивается на конфигурацию ЭВМ, и те условия, в которых ЭВМ должна применяться. Кроме того, к их числу относятся всевозможные программы, предназначенные для освобождения операционной системы от информации, которая возникла при решении уже завершенных задач и может мешать нормальной работе системы.
Система управления данными представляет собой группу программ, осуществляющих всевозможные обмены данными между запоминающими устройствами процессеров. Испытательные программы применяются инженерно-техническим составом для проверки исправности ЭВМ. Среди них легко обнаружить две разновидности: контролирующие программы, устанавливающие наличие или отсутствие неисправности, и диагностические, определяющие место неисправности в ЭВМ.
Большой интерес для пользователей представляют комплексы прикладных программ. Каждый пользователь может оформить свою программу в виде такого комплекса и включить в систему математического обеспечения ЭВМ. Но это вряд ли целесообразно. Обычно каждый комплекс представляет собой небольшую самостоятельную систему программ (чаще всего рабочих), позволяющих решать задачи некоторого сравнительно узкого класса задач. Он обычно содержит в себе транслятор с так называемого проблемно-ориентированного языка, ведущую программу комплекса, библиотеку подпрограмм и иногда еще некоторые другие программы. Например, существуют комплексы для решения задач линейного программирования, для решения задач статистики и теории вероятностей, для интегрирования дифференциальных уравнений и т. п. Будучи проблемно ориентированным, каждый комплекс тем не менее значительно шире, чем программа решения какой-нибудь отдельной задачи, составляемая пользователем.
Операционные системы
Самой сложной частью каждой системы математического обеспечения бесспорно является операционная система. Мы уже говорили, что по отношению к программам на языке загрузки операционная система создает тот или иной режим их выполнения. Это, конечно, важнейшая функция операционной системы. Очень важна также система правил, в соответствии с которой, в рамках принятого режима, производится так называемое обслуживание работ. Термин «обслуживание» пришел в теорию программирования из математической дисциплины, называемой теорией массового обслуживания. Заложенная в операционной системе совокупнссть правил обслуживания работ называется дисциплиной обслуживания. Далее, операционная система осуществляет обмен информацией между ЭВМ и оператором, управляющим ЭВМ. Наконец, операционная система расширяет или видоизменяет набор операций, выполняемых машиной за счет того, что в своем составе содержит специальную библиотеку подпрограмм. Вот важнейшие функции операционной системы.
Сама операционная система состоит из двух основных подсистем. Одна из них реализует стратегию использования машины. Назовем эту подсистему диспетчером[26]. Эта подсистема обеспечивает прогон программ в соответствии с установленными режимом и дисциплиной обслуживания.
Вторая подсистема осуществляет «общение» ОС с оператором и обеспечивает осуществление задаваемой им тактики применения ЭВМ. Эту систему будем называть супервизором. Каждая из указанных систем в свою очередь состоит из ряда подпрограмм (их привыкли называть программами, что неточно).
Функционально-структурная схема операционной системы в очень укрупненном виде изображена на рис. 20. В эту схему включен блок, называемый прерыванием, хотя этот блок реализован в ЭВМ аппаратурно, в виде некоторого устройства, а не как программа. Но без указания этого блока трудно пояснить связь, существующую между основными частями операционной системы, ее блоками.
Супервизор состоит из следующих основных блоков, которые, как мы уже сказали, называют программами.
1. Управляющая программа супервизора, координирующая работу остальных его блоков.
2. Программа общения. Расшифровывает приказы оператора, вводимые в ЭВМ с пульта, и осуществляет выдачу информации, получаемой при работе ОС на пульт управления.
3. Программа-планировщик. Формирует массив информации, являющийся планом работы для диспетчера, и корректирует его при наличии соответствующих
приказов оператора.
4. Программа-распределитель оборудования. Производит закрепление периферийных процессоров (оборудования ЭВМ) за отдельными работами, указанными в плане работы. Соответствующие «сведения» об этом в виде определенных кодов она вносит в план работы.
Основными частями диспетчера являются следующие.
1. Ведущая программа диспетчера, координирующая работу остальных его частей.
2. Программа обработки прерываний. Получает управление после каждого незамаскированного прерывания. Считывая содержимое регистра прерываний он5 «устанавливает» источник прерывании и передает управление либо ведущей программе супервизора, либо ве-пущей программе диспетчера.
3. Программа выполнения работ. Получает управление от ведущей программы диспетчера и в соответствии с планом работ, составленным супервизором, организует выполнение работ. С помощью ведущей программы она, если надо, передает управление программе-загрузчику для ввода на рабочее поле рабочей программы, программе управления данными, если для решения задачи нужна информация, уже введенная на магнитные ленты или на магнитные диски; программе управления вводом-шво-лом если требуется выдать результаты из машины или ввести в нее исходные данные, программе выполнения макрокоманд, если требуется выполнить так называемую макрокоманду (присутствующий в рабочей программе код, означающий не команду выполнения машинной операции, а команду выполнения более сложной операции, реализованной в виде подпрограммы). После того как указанные программы, выполнив свои функции, с помощью ведущей программы передадут управление программе выполнения работ она, наконец, передаст управление рабочей программе находящейся на рабочем пом (так называют часть запоминающего устройства ЭВМ, отведенную для рабочих программ).
Причинами прерываний могут быть:
1 Поступление приказа с пульта управления. В этом случае должен работать супервизор.
2 Сигнал неисправности ЭВМ, поступающий от аппаратуры контроля. Опять управление получает супервизор, для выдачи соответствующего сообщения на пульт управления и последующего останова ЭВМ.
3 Сигнал, возникающий в контролирующих устройствах ЭВМ означающий наличие ошибки в программе, т. е. того 'что рабочая программа составлена не в соответствии с системными соглашениями. В этом случае управление получает супервизор, исключающий неправильную программу; он формирует сообщение об этом оператору и передает управление диспетчеру для продолжения работы.
4 Наличие в рабочей программе команды обмена информацией. После такого прерывания управление получает диспетчер, активизирующий соответствующий процессор и после этого продолжающий выполнение плана работ в соответствии с заложенным в нем режимом.
5. Сигнал об окончании работы периферийного процессора. Управление получает диспетчер, организующий дальнейшее выполнение плана работ.
6. Сигнал, возникающий при наличии в программе команды, означающей конец ее выполнения. Управление получает диспетчер, производящий завершение работы по оконченной программе и вызов на ее место новой программы, данных для нее и т. д. и осуществляющий продолжение выполнения плана работ.
7. Сигнал от таймера. Как используется этот сигнал и в каких операционных системах, мы уже знаем.
Теперь читатель представляет себе, правда, в очень общих чертах, работу современной ЭВМ, являющейся мощным наполнителем алгоритмов. Ясно, что для сознательного и эффективного применения ЭВМ необходимо глубокое понимание принципов ее работы и построения программ. Такое понимание может быть достигнуто только при наличии хорошо разработанной теории алгоритмов. Кстати, заметим здесь, что анализ коллективов алгоритмов, проведенный в § 10 гл. 8, говорит о том, что в работе ЭВМ могут происходить безрезультатные остановки, являющиеся абсолютными или мерцающими тупиками,— явление крайне нежелательное. Это является лишним подтверждением значительности роли аналитической теории алгоритмов как при разработке ЭВМ, так и при составлении программ.
Эксплуатация ЭВМ связана не только с разработкой алгоритмов, но и с экономией материальных ресурсов, расходуемых машиной и людьми. Ясно, что, кроме теории алгоритмов, нужно овладеть и рядом других дисциплин. Например, при разработке операционной системы нужно определить хорошую дисциплину обслуживания работ. От этой дисциплины зависит расход машинного времени и труда операторов. Даже при составлении отдельной рабочей программы расход труда людей и машинного времени зависит от того, как составлена эта программа, какой метод положен в ее основу и т. д. Для решения проблемы выбора дисциплины обслуживания нужно познакомиться с математической теорией массового обслуживания.
Сама система программ математического обеспечения — это сложная система. Читатель, наверное, слышал о новой научной дисциплине — теории сложных систем. Нужно и с ней познакомиться.
Г л а в а 10 АЛГОРИТМЫ
И АВТОМАТИЗАЦИЯ ПРОЦЕССОВ
§ I. Использование ЭВМдля управления
Как с помощью ЭВМ осуществляется решение задач, читатель уже знает. Но есть еще одна область применения ЭВМ. Ее можно использовать для управления отдельными машинами, станками, агрегатами. Как может ЭВМ управлять объектами? Этот вопрос не относится к теории алгоритмов, но все же очень коротко, без всяких деталей, мы на него ответим.
Читатель уже знает, что в составе ЭВМ может присутствовать процессор, выдающий получаемые машиной результаты в канал связи. В канале связи информация будет физически представлена в виде некоторой последовательности импульсов электрического тока. Эти импульсы поступают в специальное устройство, связанное с управляемым объектом, которое, по существу, тоже является процессором. В нем получаемые сигналы, в зависимости от их сочетания (т. е. в зависимости от передаваемой ими информации), направляются в разные точки управляемого объекта. Там они подвергаются усилению, может быть, еще дополнительному преобразованию и в конечном счете используются для управления составными частями объекта путем включения или выключения тока, который приводит в действие или тормозит части объекта, вызывает нагрев или охлаждение и т. п.
Естественно, что управляемый объект должен быть оснащен различными приборами (датчиками информации), от которых сигналы о состоянии управляемого объекта поступают в ЭВМ.
Таким образом, исходными данными для ЭВМ, управляющей объектом, являются сигналы, поступающие от объекта. Результаты переработки этих данных в соответствии с алгоритмами (программами), выполняемыми ЭВМ, поступают на объект для управления им. При этом состояние объекта изменяется, новые серии исходных данных поступают в ЭВМ и т. д.
ЭВМ, управляющая объектом, должна работать в режиме, называемом режимом реального времени. Работа в этом режиме направлена к тому, чтобы в соответствии с характером поступающих данных результаты решения получались всегда своевременно, т. е. так, чтобы управляющие сигналы не запаздывали. Для реализации режима реального времени создается специальная операционная система, в которой подсистема супервизора играет особенно важную роль. План работы ЭВМ супервизор вырабатывает автоматически и при поступлении некоторых сочетаний сигналов пересматривает с таким расчетом, чтобы более важные срочные задачи решались немедленно. Задачами особой важности являются задачи предотвращения, а тем более устранения аварийных ситуаций.
Все программы решения задач управления должны быть составлены заранее и включены в библиотеку подпрограмм, из которой их в соответствии с планом работы извлекает диспетчер.
Интересной особенностью режима реального времени является отсутствие программ пользователя. Все выполняемые с помощью ОС в этом режиме программы являются системными. Это связано с теми жесткими требованиями, которые при управлении объектами предъявляются к ЭВМ и ее программам. В некоторых системах задачи управления решаются «на фоне» пользовательских задач.
ЭВМ может быть использована как составная часть и в системах управления коллективами людей. Но здесь ее роль менее значительна, хотя и не менее существенна.
Управление людьми пока не может быть полностью осуществлено с помощью ЭВМ. Связано это прежде всего с тем, что перечень задач, решаемых при управлении коллективами людей, еще не установлен, методы решения многих задач еще не известны, объемы исходных данных настолько велики, что их сбор и доставка в ЭВМ еще не возможны.
Сложности проблемы управления людьми таковы, что в настоящее время вопрос о том, может ли это делать ЭВМ или не может, принадлежит области философии, а не математики или кибернетики.
Как же в таком случае можно применить ЭВМ при управлении людьми? Двояко: 1) для выполнения расчетов в помощь руководящему органу коллектива, чтобы избавить руководителей и их помощников от технической работы; 2) для подготовки и группировки информации, как той, которая необходима руководящему органу для принятия решений, так и той, которая должна быть направлена исполнителям.
Первая сфера применения ЭВМ сводится к решению обычных задач и нам с вами, читатель, вполне ясна. Вторая представляет новые особенности: при группировке и подготовке информации ЭВМ должна использовать не только исходные данные, поступающие непосредственно перед решением задач, но и большие количества данных, накопленных ранее или полученных при решении предыдущих задач. Машина должна накапливать информацию, хранить ее, использовать при решении задач, а в ряде случаев просто выдавать для сведения руководителей коллектива. Машина должна быть использована как информационная система.
Информационные системы
Кроме сферы управления, есть еще одна область, в которой к машине предъявляются почти такие же требования. Это сфера информации.
Каждый ученый, каждый научно-исследовательский институт нуждается в получении сведений обо всех научных результатах, полученных другими институтами и другими учеными в его науке. Без этого значительная часть усилий ученых расходуется на получение результатов, которые уже получены другими людьми.
Для удовлетворения потребностей в информации создаются информационные системы. Эти системы могут быть неавтоматизированными. Например, нужные сведения можно выбирать из различных источников и записывать на карточках, которые затем в определенном порядке должны быть размещены в специальных ящиках, размещенных в специальных шкафах. Работа по заполнению новых карточек должна осуществляться постоянно. При необходимости получения информации нужно найти соответствующие карточки в такой картотеке и составить на их основании информационную справку.
Аналогичные картотеки ведутся в больших библиотеках, для того чтобы можно было найти любую книгу не только по фамилии автора (которая может быть и малоизвестной), но и по другим исходным данным, например, по тем или другим характеристикам ее содержания.
Подобные информационные системы создаются и в различных информационных агентствах, накапливающих сведения о тех или иных различных событиях, происходящих в мире.
Огромные объемы информации, накапливаемые в информационных системах, делают поиск данных далеко не простой задачей. Вполне понятно, что в качестве технической основы информационной системы стали применять ЭВМ, быстродействие которых позволяет надеяться на эффективность такого применения.
В чем же особенность математического обеспечения ЭВМ, используемой в составе информационной системы? Оказывается, что требования к информационным системам очень различны и зависят от их назначения. В соответствии с этим различны и требования, предъявляемые к математическому обеспечению таких систем.
Некоторые информационные системы должны работать в режиме коллективного пользования. Для них применяются ЭВМ, оснащенные большим числом терминалов. Естественно, что ОС такой информационной системы должна обеспечивать режим разделения времени. . Как правило, такие «оперативные» информационные системы выдают сведения непосредственно в том виде, в каком эти сведения в них хранятся.
Такие информационные системы называются поисковыми. Основные задачи сводятся либо к поиску сведений в массивах накопленной информации и выдаче их на печатающие устройства пользователей, либо к приему новой информации и размещению ее на местах, освобождающихся от устаревшей информации.
Подобные мелкие информационные системы очень эффективны на транспорте, например, при продаже пассажирских билетов, производимой многими кассирами, да к тому же размещенными в различных помещениях, иногда в разных концах города.
В капиталистических странах подобные простые информационные системы предоставляются в распоряжение частных пользователей (отдельных бизнесменов), которым они оказываются полезными для того, чтобы постоянно контролировать свое финансовое положение. Ясно, что информация, принадлежащая одним бизнесменам, представляет очень большой интерес для других. Каждый не прочь получить справку о состоянии дел своего компаньона или конкурента. Поэтому в информационных системах, обслуживающих бизнес, очень серьезной проблемой является защита информации от лиц, для которых она не предназначена. Система мероприятий, предназначенных для этой цели, называется защитой конфиденциальности информации. Конечно, защита конфиденциальности в ряде случаев очень важна и в социалистических странах. Операционные системы подобных систем коллективного пользования имеют ряд специальных подпрограмм, осуществляющих защиту конфиденциальности.
Как может быть защищена конфиденциальность? Наиболее простым способом ее защиты является система постоянно изменяющихся паролей. Для того чтобы записать информацию или прочитать ее, пользователь, кроме собственного запроса, должен ввести в ЭВМ свой пароль. При отсутствии или несоответствии пароля ни прием, ни выдача информации не производятся.
Разработаны и многие другие мероприятия для защиты конфиденциальности. Хотя этот вопрос и интересен, но не с точки зрения теории алгоритмов, и потому более подробно мы его освещать не станем. Во всяком случае, защита конфиденциальности является специфической функцией ОС некоторых информационных систем.
Совсем иной характер имеют информационные системы, выдающие справки о состоянии крупных объектов (как это бывает в системах управления коллективами людей) или о ' большом количестве событий (как это имеет место в системах информации). Здесь выдача сведений в том виде, в каком они хранятся в машине, может оказаться совершенно бесполезной из-за очень большого объема этих сведений и необходимости их существенной переработки, систематизации, а иногда и предварительного выполнения на их основе сложных расчетов. Здесь, кроме поиска сведений в записанных массивах информации, большую роль играет их завершающая переработка.
Функционально-структурная схема ОС подобной большой информационной системы приведена на рис. 21. Характерной особенностью этой ОС является ее приспособленность к накоплению информации, информационному поиску и завершающей обработке выбранной информации. Супервизор ОС принимает введенные в систему запросы, анализирует их и включает в план приказы об их обработке. При составлении плана работы супервизор учитывает также график донесений, выдаваемых систематически в установленные моменты времени. Для этого в составе супервизора имеется специальная программа службы времени, которая должна вести календарный учет времени. В идеальном случае в составе ЭВМ для этой цели должно быть электронное устройство, работающее даже в то время, когда система выключена. В простейшем случае после каждого перерыва в работе ЭВМ супервизор требует сведения, о календарном времени от оператора и в случае, если оказывается, что упущены моменты выдачи некоторых донесений, требует приказа о том, пропустить ли эти донесения или выдать их с опозданием. Запросы, получаемые супервизором, могут содержать вопрос (требование сведений) или новую информацию, которая должна быть размещена в информационных массивах системы.
Ввод новой информации в ряде случаев связан с необходимостью перестройки основных массивов и может требовать большого расхода времени. Поступление новых а затем, если там нет нужных сведений, производится поиск в основном массиве. Изредка, когда система не загружена ответами на вопросы, производится включение новых сведений в основной массив информации. Эта процедура называется обновлением информации.
В больших информационных системах содержатся сотни миллионов кодов (чисел или текстов). Информационный поиск представляет собой при этом очень сложную проблему. Он вообще становится возможным только благодаря тому, что информация при размещении ее в массиве очень четко классифицируется, распределяется по «рубрикам» и «подрубрикам» массива.
В том случае, когда запрос является вопросом, он подвергается анализу, в результате которого разделяется на две компоненты. Одна компонента нужна для поиска информации, а другая — для поиска обрабатывающей подпрограммы, которая должна быть применена к выбранной информации. Кроме информационного массива, в составе системы содержится массив, хранящий такие подпрограммы (библиотека обрабатывающих подпрограмм). После получения ответа на вопрос ответ должен быть отредактирован и лишь после этого отпечатан и доставлен абоненту.
Заметим, что с течением времени изменяется не только информационный массив, но и библиотека обрабатывающих подпрограмм. Связано это с тем, что с изменением хранящейся информации, которая отражает состояние некоторой области объектов, могут появляться новые виды сведений, требующие новых алгоритмов обработки.
Для обеспечения возможности обновления библиотеки обрабатывающих подпрограмм в составе системы должен быть специальный транслятор и, конечно, программа ведения библиотеки подпрограмм.
Нужно отметить одну особенность, отличающую информационные системы, используемые в составе систем управления, от информационных систем, входящих в состав систем информации. Заключается эта особенность в том, что библиотека обрабатывающих подпрограмм в системах управления, как правило, недостаточно полна. Если всевозможные задачи, связанные с выполнением расчетов и группировкой сведений, исследованы довольно основательно, то задачи принятия решений (решения, конечно, должны быть «оптимальными» или хотя бы не очень «плохими») пока изучены мало.
В связи с этим в системах управления коллективами людей для решения задач управления привлекаются люди. ЭВМ, как правило, выдает им некоторые варианты решения, на основании которых специалисты вносят коррективы. Коррективы должны быть введены в ЭВМ и использованы для дальнейшей обработки информации. После довольно большого числа сеансов обращения к специалистам и получения от них корректив в конце концов получают приемлемый результат.
Подобная «игра в мячик», в которой, с одной стороны, участвует ЭВМ, а с другой — специалист (или группа специалистов), связана с необходимостью сохранения в ЭВМ корректируемых результатов до тех пор, пока не будет получен окончательный результат. В информационной системе должен быть предусмотрен специальный массив корректируемых результатов и программа корректировки. К числу видов «запроса» прибавляется еще один вид: «исправления получаемого результата».
Читатель, может быть, спросит: «Зачем хранить в машине результат, подлежащий корректировке? Ведь его можно с исправлениями ввести в машину». Это было бы очень невыгодно, так как ввод информации осуществляется довольно медленно. Одно дело ввести целый массив информации, а другое — некоторые лаконичные указания о его корректировке.
Может у читателя возникнуть и еще один вопрос: «Как могут люди решать такие задачи, которые нельзя решать на ЭВМ?». Отвечая коротко на этот вопрос, скажем только, что решение многих задач управления люди осуществляют, привлекая для этого огромные запасы информации, накопленные в их мозге в обобщенном виде. Использование этих данных мы называем интуицией и результатами опыта. В информационной системе таких больших и так обобщенных сведений просто нет, да и необходимые для их получения алгоритмы еще не созданы. Автор убежден, что в ближайшем будущем многие проблемы, доступные только людям, станут доступными и для решения на машинах.
Алгоритмизация процессов
Как известно, автоматизация — это применение машин в области управления. Но тогда оказывается, что проблема автоматизации связана с проблемой разработки алгоритмов. Программы для ЭВМ — это только некоторая разновидность алгоритмов. Чем же отличаются алгоритмы, которые нам нужны при управлении, от алгоритмов, которые были нужны для решения различных задач? Да, собственно говоря, и всем, и ничем. Алгоритм — это инструмент управления. Разница между алгоритмами заключается прежде всего в том, на каких языках они сформулированы и на каких языках задаются их исходные данные и получаются результаты. Остальное зависит от того, каковы исполнители алгоритмов. Составляя алгоритм, нужно учитывать свойства его исполнителя. Конечно, разница между алгоритмами заключается и в том, какие задачи можно решать с их помощью.
Оказывается, между задачами, которые мы рассматривали в начале книги, и задачами, с которыми читатель встретится, если захочет работать в области автоматизации управления, колоссальная разница. И эта разница сразу бросается в глаза. Само название задачи обычно ничего не говорит о том, какие объекты являются исходными данными и что будет результатом. Название результата не объясняет его свойств.
Если даже речь будет идти об управлении отдельным объектом, что гораздо проще управления учреждением или управления страной, задача управления звучит крайне туманно: «определить реакцию управляемого объекта на аварийную ситуацию, в результате которой объект выйдет из аварийной ситуации». Это задача? Конечно, задача. Но о чем идет в ней речь? Какая ситуация является аварийной? В чем заключается реакция системы? Все это точно описать в виде одной лаконичной фразы невозможно.
Математика приобрела современную ясность и лаконичность в результате многовековых усилий человечества. Естественно, для формулировки новых задач еще нет достаточно лаконичного и красивого языка. Но есть ли вообще какой-нибудь язык? Оказывается, есть. И это имеет огромное практическое значение.
Сформулировав задачу, мы надеемся и решить ее. Что же это за язык? Это подходящим образом выбранный алгоритмический язык. Если ,мы сумеем составить алгоритм, которому соответствовал бы процесс, подлежащий автоматизации, то задача четко сформулирована. Она, может быть, и не лаконична, но сформулирована точно.
Чтобы ее можно было решить, нужно теперь придать этому алгоритму удобную для этого форму. Точнее говоря, нужно на другом языке, который понятен имеющемуся исполнителю, построить алгоритм, эквивалентный данному. Может быть, окажется, что новый алгоритм нельзя реализовать за приемлемое время? Это возможно. Тогда нужно искать другой алгоритм, эквивалентный данному и ориентированный на имеющегося исполнителя. Это уже работа математиков и программистов. Они большие мастера своего дела и рано или поздно получат (ли?) эффективный алгоритм, если, конечно, это возможно[27]. Первый шаг, во всяком случае, уже сделан, задача точно описана. С одной стороны, кое-кто, может быть, огорчится и скажет: «Что же это за постановка задачи — полнее описание процесса ее решения?» Действительно, это не очень коротко, не очень красиво и совсем не поэтично. Но это точно. Многие задачи сегодня иначе и нельзя описать.
С другой стороны, сложившееся положение дало на» понять, что алгоритм — это не только предписание, направляющее нас при решении задачи, но в ряде случаев описание процесса, реализация которого с помощью автомата (например с помощью ЭВМ) и составляет сущность задачи. В ряде случаев никакой другой постановки задачи мы не имеем. Получается, что один алгоритм из класса эквивалентных между собой алгоритмов является постановкой задачи, а некоторый другой алгоритм из этого же класса является ее решением.
Кто же должен осуществлять алгоритмизацию процессов? Конечно, тот специалист, который знает эти процессы. Алгоритмизация процессов — это не математическая проблема, а проблема из области знания, изучающей эти процессы; в наше время приемами алгоритмизации должны овладеть все ученые.
В рассмотренных случаях, описывая процесс, мы стремимся найти алгоритм, позволяющий получать тот же результат, к которому приводит этот процесс. Но бывают и другие задачи. Иногда сам процесс почему-либо представляет большую ценность, и тогда его алгоритмизацию производят для того, чтобы зафиксировать его и иметь возможность в точности воспроизводить.
Примерами таких ценных процессов являются: исполнение музыкального произведения на отдельном инструменте или оркестром, исполнение танца отдельным артистом или группой артистов и т. д.
Для описания некоторых процессов человечество располагает довольно совершенными способами, точнее говоря — алгоритмическими языками. Например, система нот ной записи музыкальных произведений — это формальный алгоритмический язык. Изучая и анализируя понятие алгоритма, мы находим новые применения его в практике людей, а попутно — новые задачи теории алгоритмов.