Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Алгоритмы вокруг нас.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
13.11 Mб
Скачать

§ 3. Функциональная классификация программ математического обеспечения эвм

Описанные в общих чертах требования к системным про­граммам в основном определяют структуру математическо­го обеспечения ЭВМ, являются синтаксическими требова­ниями. Для пользователя не менее (а, может быть, более) важным является содержание системы математического обеспечения. Обычно в ее состав входят:

1) операционная система;

2) система средств программирования (трансляторы, отладочные программы, собирающие программы);

3) системы программ ввода и вывода информации;

4) система программ поддерживания ОС в рабочем сос­тоянии;

5) система программ управления данными;

6) система испытательных программ;

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

Система управления данными представляет собой груп­пу программ, осуществляющих всевозможные обмены дан­ными между запоминающими устройствами процессеров. Испытательные программы применяются инженерно-тех­ническим составом для проверки исправности ЭВМ. Среди них легко обнаружить две разновидности: контролирующие программы, устанавливающие наличие или отсутствие не­исправности, и диагностические, определяющие место не­исправности в ЭВМ.

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

§ 4. Операционные системы

Самой сложной частью каждой системы математического обеспечения бесспорно является операционная система. Мы уже говорили, что по отношению к программам на язы­ке загрузки операционная система создает тот или иной ре­жим их выполнения. Это, конечно, важнейшая функция операционной системы. Очень важна также система правил, в соответствии с которой, в рамках принятого режима, про­изводится так называемое обслуживание работ. Термин «обслуживание» пришел в теорию программирования из математической дисциплины, называемой теорией массо­вого обслуживания. Заложенная в операционной системе совокупнссть правил обслуживания работ называется дис­циплиной обслуживания. Далее, операционная система осуществляет обмен информацией между ЭВМ и оператором, управляющим ЭВМ. Наконец, операционная система рас­ширяет или видоизменяет набор операций, выполняемых машиной за счет того, что в своем составе содержит спе­циальную библиотеку подпрограмм. Вот важнейшие функ­ции операционной системы.

Сама операционная система состоит из двух основных подсистем. Одна из них реализует стратегию использова­ния машины. Назовем эту подсистему диспетчером26. Эта подсистема обеспечивает прогон программ в соответствии с установленными режимом и дисциплиной обслуживания.

Вторая подсистема осуществляет «общение» ОС с опера­тором и обеспечивает осуществление задаваемой им такти­ки применения ЭВМ. Эту систему будем называть суперви­зором. Каждая из указанных систем в свою очередь состоит из ряда подпрограмм (их привыкли называть программами, что неточно).

Функционально-структурная схема операционной сис­темы в очень укрупненном виде изображена на рис. 20. В эту схему включен блок, называемый прерыванием, хотя этот блок реализован в ЭВМ аппаратурно, в виде некоторо­го устройства, а не как программа. Но без указания этого блока трудно пояснить связь, существующую между ос­новными частями операционной системы, ее блоками.

Супервизор состоит из следующих основных блоков, которые, как мы уже сказали, называют программами.

1. Управляющая программа супервизора, координирующая работу остальных его блоков.

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

3. Программа-планировщик. Формирует массив информации, являющийся планом работы для дис­петчера, и корректирует его при наличии соответствующих

приказов оператора.

4. Программа-распределитель обо­рудования. Производит закрепление периферийных процессоров (оборудования ЭВМ) за отдельными работами, указанными в плане работы. Соответствующие «сведения» об этом в виде определенных кодов она вносит в план ра­боты.

Основными частями диспетчера являются следующие.

1. Ведущая программа диспетчера, коорди­нирующая работу остальных его частей.

2. Программа обработки прерываний. Получает управление после каждого незамаскиро­ванного прерывания. Считывая содержимое регистра преры­ваний он5 «устанавливает» источник прерывании и передает управление либо ведущей программе супервизора, либо ве-пущей программе диспетчера.

3. Программа выполнения работ. По­лучает управление от ведущей программы диспетчера и в соответствии с планом работ, составленным супервизором, организует выполнение работ. С помощью ведущей про­граммы она, если надо, передает управление программе-за­грузчику для ввода на рабочее поле рабочей программы, программе управления данными, если для решения задачи нужна информация, уже введенная на магнитные ленты или на магнитные диски; программе управления вводом-шво-лом если требуется выдать результаты из машины или ввес­ти в нее исходные данные, программе выполнения макро­команд, если требуется выполнить так называемую макро­команду (присутствующий в рабочей программе код, озна­чающий не команду выполнения машинной операции, а ко­манду выполнения более сложной операции, реализованной в виде подпрограммы). После того как указанные про­граммы, выполнив свои функции, с помощью ведущей про­граммы передадут управление программе выполнения ра­бот она, наконец, передаст управление рабочей програм­ме находящейся на рабочем пом (так называют часть за­поминающего устройства ЭВМ, отведенную для рабочих программ).

Причинами прерываний могут быть:

1 Поступление приказа с пульта управления. В этом случае должен работать супервизор.

2 Сигнал неисправности ЭВМ, поступающий от аппара­туры контроля. Опять управление получает супервизор, для выдачи соответствующего сообщения на пульт управ­ления и последующего останова ЭВМ.

3 Сигнал, возникающий в контролирующих устройствах ЭВМ означающий наличие ошибки в программе, т. е. того 'что рабочая программа составлена не в соответствии с системными соглашениями. В этом случае управление получает супервизор, исключающий неправильную программу; он формирует сообщение об этом оператору и передает управление диспетчеру для продолжения работы.

4 Наличие в рабочей программе команды обмена инфор­мацией. После такого прерывания управление получает диспетчер, активизирующий соответствующий процессор и после этого продолжающий выполнение плана работ в со­ответствии с заложенным в нем режимом.

5. Сигнал об окончании работы периферийного процес­сора. Управление получает диспетчер, организующий дальнейшее выполнение плана работ.

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

7. Сигнал от таймера. Как используется этот сигнал и в каких операционных системах, мы уже знаем.

Теперь читатель представляет себе, правда, в очень общих чертах, работу современной ЭВМ, являющейся мощным наполнителем алгоритмов. Ясно, что для созна­тельного и эффективного применения ЭВМ необходимо глубокое понимание принципов ее работы и построения программ. Такое понимание может быть достигнуто только при наличии хорошо разработанной теории алгоритмов. Кстати, заметим здесь, что анализ коллективов алгоритмов, проведенный в § 10 гл. 8, говорит о том, что в работе ЭВМ могут происходить безрезультатные остановки, являю­щиеся абсолютными или мерцающими тупиками,— явление крайне нежелательное. Это является лишним подтвержде­нием значительности роли аналитической теории алгорит­мов как при разработке ЭВМ, так и при составлении про­грамм.

Эксплуатация ЭВМ связана не только с разработкой алгоритмов, но и с экономией материальных ресурсов, расходуемых машиной и людьми. Ясно, что, кроме теории алгоритмов, нужно овладеть и рядом других дисциплин. Например, при разработке операционной системы нужно определить хорошую дисциплину обслуживания работ. От этой дисциплины зависит расход машинного времени и труда операторов. Даже при составлении отдельной ра­бочей программы расход труда людей и машинного времени зависит от того, как составлена эта программа, какой метод положен в ее основу и т. д. Для решения проблемы выбора дисциплины обслуживания нужно познакомиться с математической теорией массового обслуживания.

Сама система программ математического обеспечения — это сложная система. Читатель, наверное, слышал о новой научной дисциплине — теории сложных систем. Нужно и с ней познакомиться.

Г л а в а 10 АЛГОРИТМЫ