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

Древс Системы реалного времени технические и программные средства 2010

.pdf
Скачиваний:
237
Добавлен:
16.08.2013
Размер:
20.14 Mб
Скачать

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

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

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

ВРоссии наиболее распространена операционная система QNX, отчасти из-за большой распространенности архитектуры х86 фирмы Intel. QNX – это разработка канадской кампании QNX Software System Ltd. Впервые она появилась на рынке в 1981 году. Система построена по технологии FLEET:

Fault-tolerance (отказоустойчивая); Load-balancing (регулирующая нагрузку); Efficient (эффективная);

Extensible (расширяемая); Transparent (прозрачная).

Система допускает объединение в одну сеть разнородных Intelсовместимых компьютеров, соединенных через Arcnet, Ethernet, Token Ring или через последовательный порт, причем возможно участие одного компьютера в трех сетях одновременно.

Файловая система полностью соответствует стандарту POSIX. QNX обеспечивает работу с различными типами файловых систем: POSIX, Embedded (Flash, ROM, SRAM), CD-ROM (с поддержкой стандарта ISO 9660 и его расширения Rock Ridge), DOS (доступ ко всем носителям информации в формате DOS), NFS (доступ к раз-

291

личным типам удаленных файловых систем), SMB (прозрачный доступ к Windows 95 или NT-серверам).

Операционная система OS-9 относится к классу Unix-подобных ОС. Она имеет модульную структуру, поэтому для исполнения программы в целевой системе требуются лишь некоторые части операционной системы. Весь код, генерируемый в OS-9, не зависит от адреса загрузки, он реентерабельный и может быть записан в ПЗУ. Для связи между процессами можно использовать сигналы, события, каналы и модули данных. Когда сигнал направляется от одного процесса к другому, процесс-адресат исполняет процедуру прерывания. Канал представляет собой последовательный поток данных от одного процесса к другому. Наиболее быстрый обмен данными осуществляется через модули – разделяемые области оперативной памяти, к которой могут обращаться все процессы. Среди других функций режима реального времени система также поддерживает аппаратные прерывания.

Основные характеристики OS-9:

* многозадачная (65535 процессов, 65535 уровней приорите-

та);

*многопользовательская (255 пользователей);

*переносимость приложений: ANSI C/С++, POSIX 1003.1, TCP/IP (NFS/RPC), X Windows X11.R6 (OSF Motif), JAVA;

*объектно-ориентированный модульный дизайн;

*полностью вытесняемое детерминированное ядро с минимальным временем реакции на прерывание;

*развитые сетевые средства: Arcnet, Ethernet, OMNlnet, X.25, ISDN T1/E1, ATM, NFM, TCP/IP, IPX, Profibus, CAN, MIL STD 1553;

*графические оконные интерфейсы GUI.

Операционная система Windows NT способна обеспечить гарантированное время отклика 5–10 мс. Тем не менее время реакции системы зависит от используемых драйверов, от того, запрещена подкачка страниц или нет, и от множества других факторов. Более того, механизмы обработки прерываний Windows NT имеют определенные особенности, которые мешают использовать эту ОС в приложениях «жесткого» реального времени. Например, пользовательский процесс, независимо от его приоритета, может быть пре-

292

рван для обработки аппаратного прерывания, даже если последнее пришло от такого источника, как манипулятор типа «мышь». Как правило, подпрограммы обработки аппаратных прерываний делают только самые необходимые действия, после чего основные процедуры обработки ставятся в очередь для последующего выполнения с использованием механизма вызова отложенных процедур (DPC

— Deferred Procedure Call). К сожалению, DPC обслуживает оче-

редь по принципу FIFO без учета приоритетов как прерываний, так и процессов, с которыми эти прерывания связаны. Более того, DPC не функционирует до тех пор, пока не будут отработаны все аппаратные прерывания, даже если они приходят от «мыши». В настоящее время ряд продуктов, таких как LA-SPOX, RTX, Falcon, Hyperkernel, приспособлен для реального времени на платформе

Windows NT.

RTKernel 4.5 – многозадачное ядро реального времени для работы в среде MS-DOS. При инициализации создаются две задачи: основная и «пустая», которая нужна для нормального функционирования планировщика (ему нужна хотя бы одна задача, находящаяся в состоянии готовности). Планирование происходит согласно правилам:

1.Из всех задач, находящихся в состоянии готовности, в активное состояние переводится задача с наивысшим приоритетом.

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

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

Можно упомянуть и такие ОС реального времени как VxWorks, pSOS, LynxOS, VRTX.

10.9. Типовая структура алгоритмов управляющих ЭВМ

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

293

программы обмена с внешними абонентами;

программы управления и диспетчеризации вычислений;

программы подготовки к обработке и подготовки к выдаче сообщений;

программы контроля;

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

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

Рис. 10.8

294

Программы обмена с внешними абонентами можно разде-

лить на две группы:

программы приема сообщений (ППСi);

программы выдачи сообщений (ПВСi).

Включение этих программ обычно осуществляется схемно по инициативе внешних устройств, подготовивших сообщение к вводу в ЭВМ или освободившихся для приема сообщений из ЭВМ и для передачи управляемым объектам. Управление вклинивающимися программами обмена производится диспетчером прерываний (ДПр), который управляет также программой анализа сбоев и, возможно, другими программами с абсолютным приоритетом. Если сообщения внешних абонентов не образуют случайного потока и всегда готовы к вводу в ЭВМ (например, показания датчиков), то включение программы приема сообщений может производиться по инициативе ЭВМ от соответствующего диспетчера. В случае выдачи сообщений для включения ПВСi необходимо выполнение двух условий: 1) готовности i-го канала к передаче сообщения; 2) наличия подготовленного к выдаче сообщения m-го типа (под типом сообщения подразумевается номер абонента, которому предназначено сообщение).

Алгоритмы приема сообщений решают следующие задачи:

преобразование последовательного кода поступающих сигналов в параллельный код;

первичное декодирование информации с учетом особенностей применяемого помехозащитного кода;

накапливание поступающей информации в виде отдельных информационных слов и сообщений;

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

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

определение адреса свободного места в буферной зоне памяти ЭВМ;

295

ввод информации в буферную зону памяти ЭВМ;

изменение адреса свободного места в буферной зоне;

сигнализация программе операционной системы ЭВМ о поступлении в машину очередной порции входной информации;

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

Алгоритмы выдачи сообщений разделяются на алгоритмы программной выдачи основными программами и вклинивающимися программами и алгоритмы внепрограммной выдачи.

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

Алгоритмы программной выдачи вклинивающимися программами работают следующим образом. Процесс подготовки сообщения к выдаче заканчивается посылкой в соответствующее устройство обмена сигнала готовности к выдаче информации. Вторым условием для включения программы является сигнал готовности абонента. Операция непосредственного вывода информации осуществляется вклинивающейся программой во время выполнения машиной других алгоритмов системы управления.

Внепрограммная выдача информации отличается тем, что реализация процедуры непосредственного вывода информации осуществляется аппаратурой устройства обмена.

Алгоритмы выдачи сообщенийдолжны осуществлять:

проверку соответствия шифров подготовленных сообщений и освободившихся каналов передачи данных;

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

296

выдачу слов сообщения в систему передачи данных;

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

Программы управления и диспетчеризации включают:

программу начального пуска (ПНП);

программу тактировки периодических вычислений (ПТПВ);

центральный диспетчер (ЦД);

местные диспетчеры (МД).

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

Основными функциями программы начального пуска являются:

приведение аппаратуры ЭВМ в исходное состояние для перевода в рабочий режим;

оперативный контроль исправности аппаратуры ЭВМ и устройств сопряжения при помощи обнаруживающих тест-программ;

начальный ввод информации в ЗУ ЭВМ в соответствии с заданным режимом работы системы;

введение астрономического времени в систему и установка начальных состояний всех датчиков времени в системе;

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

Программа тактировки периодических вычислений осущест-

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

Программа тактировки выполняет следующие функции:

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

297

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

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

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

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

обслуживание заявок в порядке их поступления;

приоритетное обслуживание без прерывания вычислений;

приоритетное обслуживание с прерыванием вычислений. Центральный диспетчер управляет включением совокупности

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

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

восновной программе в результате:

приема сообщений от внешних абонентов;

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

поступления данных от программы тактировки периодических вычислений;

Диспетчерские программы выполняют следующие функции:

анализируют наличие заявок на включение групп подпрограмм в соответствии с заданной дисциплиной обслуживания;

298

при обнаружении заявки определенного типа или приоритета проверяют наличие аналогичных заявок;

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

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

Программы подготовки к обработке (ППОi) выполняют зада-

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

необходимое перекодирование и масштабирование квазинепрерывных величин;

дешифрирование кодовой и признаковой информации;

контроль и защиту от ложной и сбойной информации;

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

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

Программы подготовки к выдаче (ППВi) формируют сооб-

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

Программы контроля (ПК) можно разбить на две группы:

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

299

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

Подпрограмма анализа сбоев выполняет следующие функции:

осуществляет регистрацию и накопление данных о всех выявленных искажениях вычислительного процесса и информации;

селектирует искажения по их повторяемости и источникам;

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

выдает на индикацию для операторов характеристики выявленных искажений и мероприятий, принятых для ликвидации их последствий;

ведет накопление наиболее часто встречающихся искажений

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

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

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

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

300