Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги / Основы научных исследований

..pdf
Скачиваний:
2
Добавлен:
12.11.2023
Размер:
12.77 Mб
Скачать

Режим

подго­ Диалоговый

Диалого­

Диалоговый

Диалоговый,

Диалоговый

Диалого­

товки и

отладки

вый, пакет­

 

пакетный

 

вый, пакет­

программ

 

ный

 

 

 

ный

Режим работы

Диалоговый

Диалого­

Диалого­

Диалого­

Диалоговый

 

 

вый, пакет­

вый, реаль­

вый,

пакет­

 

 

 

ный

ного време­

ный,

реаль­

 

 

 

 

ни

ного време­

 

 

 

 

 

 

ни

 

Наличие средств

Нет

Через

Через

Есть

телеобработки

 

СТОД1

СТОД

 

‘СТОД — система телеобработки данных.

ПДОС — перфоленточная операционная система. ДОС — дисковая операционная система.

ДОСРВ — дисковая операционная система реального вре­ мени.

ФОБОС — система реального времени для проблемноориентированных комплексов

РАФОС — базовая система реального времени.

ОСРВ — система

реального

времени для широкого

класса

задач.

 

ДИАМС — диалоговая многопультовая система.

ДОС РВР — система

разделения

времени.

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

В настоящее время программное обеспечение под­ разделяется (рис. 8.4) на общее (операционные систе­

мы),

которое поставляется вместе с

оборудованием

(эта

часть программного обеспечения

предназначена

для

эффективного обслуживания пользователей), и на

специальное, позволяющее расширить сферу применения ЭВМ.

Основной задачей операционной системы является обеспечение наилучшей загрузки всех элементов маши­ ны и внешних устройств за счет организации параллель­ ного решения нескольких задач и автоматизации уп­ равления процессом их решения. Общее программное обеспечение имеет две функционально самостоятельные части: управляющие и обрабатывающие программы. Управляющие программы фактически составляют систе­ му диспетчеризации. Г л а в н а я у п р а в л я ю щ а я п р о г р а м м а (Супервизор) контролирует работу всей вычислительной системы, организует выполнение вводавывода, распределение массивов информации в памяти, работу каналов и одновременное функционирование центрального процессора и устройства ввода-вывода, пла­ нирует последовательность выполнения отдельных частей программы по различного рода признакам. П р о г р а м ­ ма у п р а в л е н и я з а д а н и я м и (Монитор) управляет выполнением всех других программ, в том числе уп­ равляющих программ: загрузки, ввода-вывода, программ пользователя. Инициирует и останавливает выполнение

отдельных

заданий. П р о г р а м м а

н а ч а л ь н о й

за­

г р у з к и

осуществляет подготовку

основной

памяти

к размещению различных программ,

вводит в нее

ос­

новную часть Супервизора, программу управления

за­

даниями

(Монитор)

и передает этой

программе

управ­

ление. Организует

размещение

программ

пользователя

в основной

памяти

и защиту

системных

программ

от

1 Математическое обеспечение ЕС ЭВМ. Минск, 1973. Вып. 1; Математическое обеспечение ЕС ЭВМ. Минск, 1979. Вып. 18; Любимский 9. 3.. Мартышок В. В., Трифонов Н. П. Программирование. М., 1980; Разумов О. С. Организация данных в вычислительных си­ стемах. М., 1978; Математическое обеспечение ЕС ЭВМ. Минск, 1973. Вып. 4.

222

Управляющие

программы

Главная управляю­ щая программа (Супервизор)

Программа управ­ ления заданиями ( Монитор)

Программа начальВой загрузни

Программа управ­

ления данными или

Овра£аты£амщ ие

Пакеты лоикладных

Программы функци­

программы

программ■ ( ППП)

ональных заооч

Трансляторы

Редактор связей

Система отладки

Библиотекарь "|

Программы сорти­ ровки-слияния

Программы провер­ ки внешних уст­ ройств

П П П

ППП

функциональ­

овщего

ного

назначения

назначения

 

Статистический

анализ

Математические

методы

Информационнопоисковая система

—| банк данных |

Программы

пользователей

ЭВМ

Программы реше­ ния задач опреде­ ленной овласти знаний

Рис. 8.4. Структура программного обеспечения ЭВМ

грамму, то это выполняется в процессе загрузки и ини­ циализации пакета.

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

Каждый пакет, в зависимости от ЭВМ и его назначе­ ния, реализуется на конкретном языке программирова­ ния в соответствии с требованиями к пакету и возмож­

ностями языка. Ниже приводятся

некоторые сведения

о пакете научных подпрограмм,

написанных на языке

Фортран.

 

Фортран является наиболее распространенным язы­ ком программирования вычислительных задач. Трансля­ тор с этого языка входит в состав математического обес­ печения почти всех ЭВМ. На языке Фортран накоплена самая большая в мире библиотека программ.

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

225

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

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

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

ройство ввода-вывода. Поэтому

пользователь в своей

программе должен

предусмотреть

какой-то ввод-вывод

и другие операции,

необходимые для полного

решения

задачи. Кроме того, пользователь при помощи

операто­

ра DIMENSION должен определить все матрицы, над которыми будут произведены операции, подпрограммами

226-

пакета, a jatOKe матрицы, используемые в других вер­ сиях Фортрана, имеющих более широкие возможности, он может использовать элементы этого языка, отсутству­ ющие в языке базисного Фортрана. Например, некоторые версии Фортрана содержат возможности кратного входа в подпрограмму. Используя эти возможности, некоторые подпрограммы пакета могут быть объединены. В качест­ ве примера можно привести объединение подпрограмм GMADD и GMSUB, (сложение и вычитание общих мат­ риц):

SUBROUTINE GMADD(A,B,R,N,M)

DIMENSION А (I), В (I) R(I)

K = 0

GOTO 10

ENTRY GMSUB (A, B, R, N, M)

K = 1

10NM = N.M

DU 40 I = 1, NM IF (K) 20,20, 30

20R (I) = A(I) + B(I) GOTO 40

30 R (I) = A (I) — В (I)

40GONTINUE RETURN END

Такой способ составления подпрограмм не влияет на программу пользователя, но сокращает общий размер используемой памяти.

Т о ч н о с т ь в ы ч и с л е н и й многих подпрограмм пакета в значительной степени зависит от числа знача­ щих цифр, поступающих в арифметическую операцию. Обращение матриц, интегрирование и многие подпро­ граммы статистики относятся к этой категории. Поэтому возникает необходимость в варианте удвоенной точно­ сти этих подпрограмм. Многие подпрограммы текста SSP (пакет научных подпрограмм) написаны в двух ва­ риантах: с обычной и удвоенной точностью. Некоторые подпрограммы содержат инструкции для работы с дан­ ными удвоенной точности в тексте подпрограммы на ис­

227

ходном языке. Операторы для работы с удвоенной точ­ ностью включены в каждую такую подпрограмму в фор­ ме карт комментариев. В большинстве случаев вариант подпрограммы с удвоенной точностью может быть полу­ чен удалением перед компиляцией символа «С» столбца карты (карт) с оператором DOUBLE PRECISION.

В некоторых случаях даются дополнительные ин­ струкции: например, заменить SQRT на DSQRT, АВС на DABS или задать новые константы. Использование под­ программ с удвоенной точностью требует детального знания правил языка Фортран, касающихся удвоенной точности. Ниже приводятся два из них: 1. Имя любой действительной переменной или массива, содержащегося в списке аргументов оператора CALL, вызывающего под­ программу с удвоенной точностью, должно быть описано с помощью оператора DOUBLE PRECISION в вызыва­ ющей программе. Например, если подпрограмма обра­ щения матрицы MINV из пакета SSP видоизменена в вариант удвоенной точности и если программа поль­

зователя

содержит

оператор

CALL

MINV

(AR 1, N,

(целевая

переменная);

DET — определитель

(действи­

тельный массив удвоенной точности);

N — размерность

(целевая

переменная);

DET — определитель

(действи­

тельная

переменная

удвоенной

точности), MY 1 — рабо­

чий вектор (массив целых чисел); MY2 — рабочий век­ тор (массив целых чисел), тогда в начале программы пользователя должен быть оператор описания DOUBLE PRECISION AR 1, DET.

Остальные переменные оператора CALL являются це­ лыми переменными и их не следует включать в опера­ тор описания.

2. Любая задаваемая пользователем функция, на­ званная в операторе CALL при обращении к подпрограм­ ме с удвоенной точностью из пакета SSP, должна быть запрограммирована как функция удвоенной точности. Например, для решения дифференциального уравнения методом Рунге-Кутта по подпрограмме RK2 использует­

ся функция, названная FUN. Пусть эта функция запро­ граммирована следующим образом:

FUNCTION FUN (X, Y)

FUN — Ы .Х

RETURN

END

228

Если используется вариант RK2 с удвоенной точно­ стью, то функция должна быть запрограммирована с удвоенной точностью:

DOUBLE PRECISION FUNCTION FUN (X, Y)

DOUBLE PRECISION X, Y

FUN= M*X

RETURN

END

Для иллюстрации обращения к подпрограммам па­ кета SSP ниже приводятся четыре примера. Первые два — это подпрограммы сложения и умножения двух матриц общего вида. Третий и четвертый — подпро­ граммы для решения систем линейных алгебраических уравнений методом исключения Гаусса. Последний — решение системы с удвоенной точностью.

1. Подпрограмма CMADD (сложение двух матриц общего вида).

Назначение Сложить две матрицы общего вида.

Результирующая матрица общего вида. Обращение

CALL GA1ADD (А, В, R, N, М)

Описание параметров: А — имя первой входной мат­ рицы; В — имя второй входной матрицы; R — имя вы­ ходной-матрицы; N — число строк А, В, R; М — число столбцов А, В, R.

Замечания: Все матрицы должны запоминаться как матрицы общего вида.

Требуемые подпрограммы и подпрограммы-функции Нет.

Метод Сложение выполняется поэлементно.

2. Подпрограмма GMPRD (произведение двух мат­ риц общего вида),

Назначение Перемножить две матрицы общего вида. Обращение

CALL CMPRD (А, В, R, N, М, L)

Описание параметров: А — имя первой входной мат­ рицы; В — имя второй входной матрицы, R — имя вы­ ходной матрицы; N — число строк А; М — число столб­ цов А и строк В; L — число столбцов В.

229

Замечания: Все матрицы должны храниться как ма­ трицы общего вида.

Матрица R не может находиться на месте матрицы А или матрицы В. Число столбцов матрицы А должно

быть равно числу строк матрицы В.

 

Требуемые подпрограммы

и подпрограммы-функции

Нет.

 

 

Метод

 

матрицу

Матрица В порядка М* L умножается на

А порядка N* М и результат

запоминается

на месте

матрицы R порядка N* L.

 

линейных

3.Подпрограмма GELS (решение системы

уравнений с симметричной матрицей коэффициентов)

Назначение

 

 

с симметрич­

Решить систему линейных уравнений

ной

матрицей

коэффициентов,

верхняя

треугольная

часть которой располагается по столбцам.

 

Обращение

 

 

 

CALL GELS (R, А, М, N, EPS, 1ER, AVX)

 

Описание параметров: R — матрица правых частей

порядка М* N

(в ходе вычисления изменяется), на вы­

ходе

содержит

решение систем;

А — верхняя треуголь­

ная часть симметричной матрицы коэффициентов' по­ рядка M*N (в ходе вычисления изменяется); М — чиссло уравнений в системе; N — число векторов правых частей; EPS — входная константа, используемая в ка­ честве относительной погрешности для проверки потери точности; IER — результирующее значение параметров ошибки:

IE R =0 — нет ошибки,

IER = 1 — нет результата, так как либо М<1, либо на каком-то шаге исключения главный элемент равен нулю;

IER = K — сообщение о возможной потере точности на шаге исключения (К +1), где главный элемент был меньше или равен внутренней погрешности EPS, умно­ женной на наибольший по абсолютной величине диаго­ нальный элемент матрицы А.

AVX — вспомогательный массив размерности (М—1). Замечания: Верхняя треугольная часть матрицы А располагается по столбцам в М (М +1)/2 последова­ тельных адресах, матрица правых частей R — по столб­ цам в (N+M) последовательных адресах. На выходе матрица решений R также располагается по столбцам.

230