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

Учебное пособие 966

.pdf
Скачиваний:
6
Добавлен:
30.04.2022
Размер:
683.25 Кб
Скачать

адапт атор

 

контур адаптации

 

Управляющ ее

Объект

устройство

управл ен ия

основной контур

Управляющ ее устройство в цепи ОС

Адаптивный регулятор

Первая часть содержит настраиваемые параметры, вторая - неизменна, объект вместе с регулятором - это основной контур регулирования, а изменяющаяся часть регулятора и адаптатор

составляет контур адаптации (контур самонастройки). Задача синтеза адаптивного регулятора состоит в определении объекта, цели либо алгоритма регулирования (адаптации). Существование решения этой задачи зависит, прежде всего, от

цели управления, при задании которой необходимо учитывать уровень информации об объекте и возмущениях. Здесь существенную роль играет величина «порога» А. К наиболее простым относятся задачи синтеза, в которых величине А не фиксирована и требуется, чтобы целевое неравенство было выполнено при каком-нибудь А > 0. Такие задачи возникают, когда информация об интенсивности внешних воздействий и полях отсутствует, а объект управления неустойчив и требуется лишь обеспечить ограниченность выхода у (t). Другой крайний случай возникает, когда значение А взято минимально возможным, равным нижней грани левой части соответствующего неравенства. Такие задачи называются задачами оптимального адаптивного управления.

При решении задач синтеза адаптивного регулятора можно выделить:

Построение закона управления. Способы построения функций для линеаризованных моделей объектов управления записаны в уравнениях.

Выбор класса алгоритмов адаптивного управления. Здесь принимается решение о выборе идентификационного либо прямого

алгоритма адаптивного управления.

Выбор алгоритма адаптации.

Определение параметров алгоритма адаптации из условий сходимости процесса и достижения цели адаптации.

6.ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ

Существуют три основных типа ПО: штатное системное, фирменное и прикладное.

Штатное системное программное обеспечение обычно покупается одновременно с компьютерным оборудованием; или аппаратным

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

Термин «штатское системное программное обеспечение» включает системы управления базами данных, программное

обеспечение дистанционной обработки данных, и другие сходные части ПО.

Фирменное ПО представляет собой специальный вид ПО и поступает к заказчику вместе с компьютером. Оно предназначается

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

29

30

группы пользователей. Как правило, пользователь не может сам изменить фирменное ПО; обычно с этой задачей в состоянии справиться только поставщик оборудования. Иногда фирменное ПО реализуется блоками оборудования, известными под названиями «платы» или «панели», которые приводятся в действие специальным программным обеспечением, называемым микрокодом. В настоящее время ПО все чаще реализуют на дисках.

Прикладное программное обеспечение состоит из тех программ, которые фактически выполняют основную работу компьютера,

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

На большинстве компьютеров прикладные системы могут исполняться совместно. На некоторых компьютерах могут работать

совместно несколько операционных систем. Каждая из которых контролирует много прикладных программ. Кроме того, в современных прикладных системах входные данные не кодируются отдельной операцией. В таких «оперативных» системах входные данные вводятся непосредственно в компьютер с удаленных устройств, например с терминалов, которые соединены с компьютером телефонными линиями.

Рис. 6.1. Обобщенная схема программного обеспечения

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

задач.

Программное обеспечение микроЭВМ разделяется на прикладное, кроссовое, тестовое и системное.

Рис. 6.2. Структурная схема программного обеспечения

31

32

Прикладное ПО - совокупность программ, предназначенных для решения конкретных задач, интересующих пользователя

микроЭВМ.

Нередко в составе микроЭВМ отсутствуют удобные ПУ для работы программиста или сама микроЭВМ не доступна для него в

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

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

микроЭВМ других типов.

Разработка программ программистом с помощью кроссового ПО до некоторой степени аналогична подготовке спортсмена к

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

31

32

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

Тестовое ПО - совокупность программ и языковых средств, предназначенных для проверки работоспособности устройств,

входящих в состав микроЭВМ на стадиях ее изготовления и эксплуатации.

Системное ПО - совокупность программных и языковых средств, предназначенных для поддержания функционирования микроЭВМ

инаиболее эффективного выполнения целевого назначения. По функциональному назначению в системном ПО можно

выделить две системы: операционную и систему

программирования.

Операционная система (ОС) - комплекс программ, которые обеспечивают управление аппаратурой микроЭВМ, планирование

эффективного использования ее ресурсов и решение задач по заданиям пользователей.

Эту систему можно рассматривать как программное продолжение и расширение аппаратуры микроЭВМ.

Система программирования - совокупность программных средств, обеспечивающих автоматизацию разработки и отладки

программ.

Программные компоненты системы программирования выполняются под управлением ОС наравне с прикладными

программами пользователей. Назначение и состав операционной системы.

Для выполнения любой программы на микроЭВМ необходимы по меньшей мере два ресурса: оперативная память для хранения

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

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

 

 

 

Таблица 6.1

 

 

Характеристики режима

 

Режим

Число

Порядок

Возможность

 

функциони-

программ,

выполнения

взаимодействия

 

рования

которым

программ

программ

 

микроЭВМ

предо-

 

 

 

 

ставляются

 

 

 

 

ресурсы

 

 

 

Однопрограммн

 

 

 

 

ый

Одна

Последовательный

Отсутствует

 

Многопрограм

программа

Параллельный

Тоже

 

мный

Много

 

 

 

Многозначный

программ

Параллельно-

Имеется

 

 

 

последовательный

 

 

 

Тоже

 

 

 

Однопрограммный режим. В этом режиме все ресурсы микроЭВМ предоставляются лишь одной программе, которая

выполняет обработку данных. Многопрограммный режим. При функционировании микроЭВМ

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

33

34

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

В оперативной памяти микроЭВМ одновременно находятся несколько программ, но в любой момент времени МП выполняет

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

Рис. 6.3. Временные диаграммы работы МП и периферийных устройств ПУ1 и ПУ2: а - однопрограммный режим; б - мультипро-

граммный режим; t - текущее время

На рис6..2, изображены временные диаграммы выполнения двух прорамм 1 и 2 при одно-программном и мультипрограммном

режимах функционирования микроЭВМ. Каждая из программ 1 и 2 выполняется микропроцесором (МП) и осуществляет обмен данными с периферийным устройствами ПУ1 и ПУ2. Затраты времени t, связанные с переключением микропроцессора операционной системой, здесь не показаны. Из диаграмм видно, что

для выполнения двух программ в мультипрограммном режиме требуется меньше времени, чем в однопрограммном, а поэтому пропускная способность микроЭВМ увеличивается.

Операционная система может выполнять запросы пользователей в пакетном или диалоговом режиме или управлять устройствами в реальном времени. В соответствии с этим различаю! операционные системы (ОС) пакетной обработки, разделения времени, реального

времени и диалоговые (табл. 6.2). Операционная система пакетной обработки. Это - система,

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

Таблица 6.2

 

Характеристики операционной системы

 

Число

Порядок

Возможность

Операционные

программ,

выполнения

взаимодействия

системы

которым

программ

программ

 

предо-

 

 

 

ставляются

 

 

 

ресурсы

 

 

 

 

 

Однопрограммны

Пакетной

Взаимодействие

Один или

й или

обработки

невозможно и

несколько

мультипрограмм-

 

ограничено

 

ный

 

Диалоговый

Несколько

Мультипрограмм

Разделения

 

 

-ный

времени

Оперативный

''

Многозначный

 

Диалоговый

Один

Однопрограммны

Реального времени

 

 

й

Диалоговая

 

 

 

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

позволяя каждому пользователю взаимодействовать со своим заданием в режиме диалога. Эффект одновременного обслуживания

35

36

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

Операционная система разделения времени может применяться не только для обслуживания пользователей, но и для управления технологическим оборудованием. В этом случае «пользователями»

35

36

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

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

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

Диалоговые операционные системы. Они получили широкое распространение в микро-ЭВМ, предназначенных для

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

Состав операционной системы. Чаще всего ОС микроЭВМ состоит из относительно компактного ядра-монитора и набора

системных программ и данных (рис.3).

Монитор. В зависимости от функционального назначения микроЭВМ возможности монитора изменяются от выполнения

небольшого числа простых команд, вводимых пользователем с дисплея, до управления в реальном времени различными устройствами.

РИС. 6.4. Состав операционной системы

Типичными функциями монитора являются организация взаимодействия пользователей с микроЭВМ, управление

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

Весь монитор или некоторая его часть, называемая резидентным монитором, с момента загрузки и запуска ОС постоянно находится в

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

Требования, предъявляемые к ПО

Прежде чем принять соответствующее решение, необходимо рассмотреть ряд основных требований, таких, как время обработки

информации, стоимость обработки, вероятность ошибки и различного рода преднамеренных действий. Анализ требований

37

38

может способствовать лучшему пониманию собственно решаемой проблемы и компромиссных ситуаций, что помогает выбору наилучшего решения.

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

версиях системы для разных применений.

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

форме их применения, о потребности в обслуживающем персонале и возможностях использования программного обеспечения.

7. АЛГОРИТМИЧЕСКИЕ ЯЗЫКИ ПРОГРАММИРОВАНИЯ

Алгоритмический язык - формальный язык, предназначенный для записи алгоритма. Он представляется алфавитом (или словарем

исходных символов), точным описанием его синтаксиса (грамматики) и семантики. Синтаксисом языка называется система правил, по которым из символов алфавита образуются правильные конструкции языка. Семантикой языка называется система правил, позволяющая однозначно интерпретировать действия, которые производят операторы программы над данными в процессе выполнения программы.

Создание и разработка различных языков программирования значительно упростили процесс описания алгоритмов решения

задач и позволили более широкому кругу специалистов использовать вычислительные машины.

Специалистами по разработке языков программирования создан целый ряд языков программирования, предназначенных для

разработки программ задач любого класса. Язык программирования - набор правил, определяющих, какие последовательности символов составляют программу и какое вычисление описывает программа. Он дает возможность программисту описать вычисление абстрактно и в то же время позволяет программе (обычно называемой ассемблером,

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

К таким языкам относятся языки Algol-68, PL/1, Pascal, Ada. Язык Ada включает в себя важнейшие черты современных языков

программирования, обеспечивает гибкие средства управления данными, модуляции программ, параллельного решения задач и построение систем реального времени.

Разработано множество языков программирования, которые позволяют описывать алгоритмы разных задач в виде,

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

Одним из первых языков этого вида был язык Fortran. Были разработаны программы перевода предложений, записанных на языке Fortran, в команды для вычислительных машин. Язык Fortran предназначался для программирования задач вычислительного характера.

К языку Fortran близок язык Basic. В виду простоты реализации он широко используется в микроЭВМ. Язык Basic - диалоговый,

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

Алгоритмический язык Cobol, разработанный позже, предназначался для решения экономических задач. Использование

Cobola предпочтительно в тех случаях, когда при организации ввода-вывода требуется проведение сложного редактирования.

Современные алгоритмические языки можно подразделить на два класса: машинно-зависимые и машинно-независимые. К

машинно-зависимым языкам относятся язык ассемблера, автокоды,

к машинно-независимым - PL/1, Fortran, Cobol, Basic, Pascal и др.

39

40

Машинно-зависимые языки ориентированы на конкретную ЭВМ, имеют непосредственный доступ к аппаратным средствам

ЭВМ и чаще всего используются для составления программ, входящих в состав операционных систем.

Машинно-независимые языки (процедурно-ориентированные и проблемно-ориентированные) учитывают особенности решаемых

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

39

40

экономических задач, а также задач обработки массивов данных, анализа текстов информации и многие другие. При использовании проблемно-ориентированных языков пользователь лишь формулирует задачу, указывает исходные данные и форму выдачи результатов.

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

преимущества для решения определенного класса задач. Разработка универсальных языков приводит к усложнению процессов трансляции и создает определенные трудности для овладения программированием на этих языках.

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

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

Рассмотрим языки трех уровней абстракции.

Процедурные языки Fortran

Первым языком программирования, который значительно превзошел уровень языка ассемблера, стал Fortran. Он был

разработан в 1950-х годах группой специалистов фирмы IBM во главе с Джоном Бекусом и предназначался для абстрактного описания научных вычислений. Fortran встретил сильное противодействие по тем же причинам, что и все последующие предложения абстракций более высокого уровня, а именно из-за того, что большинство программистов полагало, что сгенерированный компилятором программный код не может быть лучше написанного вручную на языке ассемблера.

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

структурирования модулей и данных. Сам Бекус, оглядываясь назад, говорил:

Мы просто придумывали язык по мере его осмысления. Мы расценивали проектирование языка не как трудную задачу, а просто как прелюдию к реальной проблеме: проектированию компилятора,

который мог бы генерировать эффективные программы.

Однако преимущества абстракции быстро покорили большинство программистов: разработка программ стала более

быстрой и надежной, а их машинная зависимость уменьшилась изза абстрагирования от регистров и машинных команд. Поскольку самыми первыми на компьютерах рассчитывались научные задачи, Fortran стал стандартным языком в науке и технике, и только теперь на смену ему приходят другие языки. Fortran был неоднократно модернизирован (1966, 1977, 1990) с тем, чтобы адаптировать его к требованиям современных программных разработок.

Cobol и PL/1

Язык Cobol был разработан в 1950-х для обработки коммерческих данных. Он создавался комитетом, состоящим из представителей

Министерства Обороны США, производителей компьютеров и коммерческих организаций типа страховых компаний.

Предполагалось, что Cobol — это только временное решение, необходимое, пока не создан лучший проект; однако язык быстро стал самым распространенным в своей области (как Fortran в науке), причем по той же самой причине: он обеспечивал естественные средства выражения вычислений, типичных для своей области. При обработке коммерческих данных необходимо делать относительно простые вычисления для большого числа сложных записей данных, а по возможностям структурирования данных Cobol намного превосходит алгоритмические языки типа Fortran или С.

IBM позже создала язык PL/1, универсальный, обладающий всеми свойствами языков Fortran, Cobol и Algol. PL/1 заменил

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

Algol и его потомки

Из ранних языков программирования Algol больше других повлиял на создание языков. Разработанный международной группой первоначально для общих и научных приложений, он

никогда не достигал такой популярности, как Fortran, поскольку не

41

42