книги / Основы научных исследований
..pdfРежим |
подго Диалоговый |
Диалого |
Диалоговый |
Диалоговый, |
Диалоговый |
Диалого |
товки и |
отладки |
вый, пакет |
|
пакетный |
|
вый, пакет |
программ |
|
ный |
|
|
|
ный |
Режим работы |
Диалоговый |
Диалого |
Диалого |
Диалого |
Диалоговый |
|
|
|
вый, пакет |
вый, реаль |
вый, |
пакет |
|
|
|
ный |
ного време |
ный, |
реаль |
|
|
|
|
ни |
ного време |
|
|
|
|
|
|
|
ни |
|
Наличие средств |
Нет |
Через |
Через |
Есть |
телеобработки |
|
СТОД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