Помощь в написании студенческих работ
Антистрессовый сервис

Программное обеспечение реального времени от фирмы On Time Informatik GmbH RTKernel 4.5

РефератПомощь в написанииУзнать стоимостьмоей работы

RTKerneI-32 представляет собой мощную мультизадачную систему реального времени, предназначенную для разработки встраиваемых приложений, использующих 32-разрядное линейное адресное пространство памятиRTKernel-32 является библиотекой или модулем, который может быть скомпонован с прикладной программой. В состав RTKemel-32 входят многочисленные функции и процедуры управления задачами, семафорами… Читать ещё >

Программное обеспечение реального времени от фирмы On Time Informatik GmbH RTKernel 4.5 (реферат, курсовая, диплом, контрольная)

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

Общие сведения

RTKcrnel представляет собой мощную многозадачную систему реального времени, предназначенную для разработки программного обеспечения, исполняющегося на IBM PC совместимых контроллерах с открытой архитектурой в среде MS-DOS.

RTKerncI является библиотекой или модулем, который может быть скомпонован с прикладной программой. В состав RTKernel входят многочисленные функции и процедуры управления задачами, семафорами и прерываниями, а также средства обмена данными между задачами. Запуск на исполнение задач RTKcrnel производится из единственной программы, которая содержит ядро, необходимые драйверы и все задачи. Данная программа может выполняться из любой вычислительной системе, содержащей операционную систему MS-DOS. Хотя программа, в которой используется RTKemel, и обладает свойствами, характерными для мультизадачных систем реального времени, она по-прежнему остается приложением DOS.

Основные характеристики

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

Время переключения задачи не зависит от количества задач и составляет около 6 мкс (80 486/33 МГц).

Количество приоритетов задач — 64.

Виды планирования: коллективное (Cooperative), с вытеснением (Preemptive), с выделением квантов времени (Time-Slicing).

Переключение задач по событию или прерыванию.

Возможность |активизации задачи при возникновении аппаратного прерывания.

Возможность изменения периода поступления прерываний от таймера в диапазоне 0,1 …55,0 мс.

Возможность измерения временных интервалов с разрешением 1 мкс.

Поддержка арифметического сопроцессора и его программной эмуляции.

Семафоры: двоичные, счетные, ресурсов.

Обмен данными между задачами с использованием очередей сообщений.

Непосредственный обмен данными между задачами с использованием механизма передачи сообщений.

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

Поддержка аппаратного буфера универсальных асинхронных приемопередатчиков (УАПП) семейства 16С550.

Драйверы для работы с таймером, видеоподсистемой, клавиатурой, принтером и локальными вычислительными сетями (ЛВС) Novell с протоколом IPX.

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

Отсутствие проблем повторной входимости, свойственных MS-DOS.

Возможность создания приложений RTKernel в виде резидентных программ.

Возможность запуска других DOS-программ, в том числе Windows 3.0/3.1, из приложения RTKernel.

Удобство отладки приложений путем использования встроенной возможности компиляции с добавлением отладочной информации, необходимой для Turbo Debugger или CodeView.

Возможность создания приложений, загружаемых из ПЗУ.

Возможность поставки версии с полным комплектом исходных текстов ядра.

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

Структура и принцип функционирования. Задачи RTKernel

Задачи RTKernel являются обычными Pascal-процедурами или Си-функциями без параметров, методы создания которых ничем не отличаются от традиционных. При старте программы на исполнение запускается только одна функция main. Несмотря на то, что в состав программы входит мультизадачная система реального времени, ее выполнение происходит последовательно, как в традиционных приложениях DOS.

Каждой задаче присваивается приоритет, значение которого может быть установлено в диапазоне от 1 до 64, а также выделяется собственная область стека. Самый высокий приоритет соответствует значению 64. Самый низкий -1. Все локальные переменные (за исключением статических), объявленные в пределах преобразованных в задачи функций (процедур), помещаются в собственные области стека каждой задачи. Это же относится и к функциям, вызываемым из задач RTKernel. Поскольку для каждой задачи формируется собственный стек, имеется возможность одновременного выполнения разными задачами одних и тех же участков кода. Структура приложения RTKernel показана на рис. 5.5.

Структура приложения RTKernel.

Рисунок 5.5. Структура приложения RTKernel.

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

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

Семафоры

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

Очереди сообщений

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

Передача сообщений

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

Планировщик

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

Любая задача RTKernel всегда пребывает в одном из следующих состояний (рис. 5.6).

Состояния задачи RTKernel.

Рисунок 5.6. Состояния задачи RTKernel.

Current (состояние исполнения) Активная в настоящий момент времени задача характеризуется состоянием Current. По крайней мере, одна задача под управлением RTKernel должна пребывать в указанном состоянии.

Ready (состояние готовности) Все задачи, готовые к исполнению, находятся в состоянии Ready. В текущий момент времени одна из данных задач переходит в состояние Current (состояние исполнения). Задачи в состоянии Ready имеют одинаковый или более низкий приоритет по сравнению с текущей активной задачей.

Suspended (состояние приостановки) Задачи, исполнение которых явно приостановлено обращением к ядру посредством вызова RTKSuspend. Данные задачи могут быть переведены в состояние Ready только с помощью вызова функции RTKResume.

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

Delaying (состояние задержки) Задачи в данном состоянии блокируют себя на определенный интервал времени. По истечении заданного интервала обработчиком прерывания RTKernel по системному таймеру производится перевод указанных задач в состояние Ready.

Timed

(состояние ожидания события с синхронизацией).

Состояние ожидания задачей события в течение заданного интервала времени. Перевод задачи в состояние Ready производится по истечении установленного интервала либо при наступлении ожидаемого события.

При инициализации RTKernel создаются две задачи: основная (Main Task) и «пустая» (Idle Task). Пустая задача, имеющая нулевой (самый низкий) приоритет, необходима для функционирования планировщика, поскольку условием его работы является наличие хотя бы одной задачи, находящейся в состоянии Ready.

Планирование в RTKernel происходит согласно следующим правилам.

  • 1. Из всех задач, находящихся в состоянии Ready, в активное состояние переводится задача с наивысшим приоритетом.
  • 2. Если в состоянии Ready пребывают несколько задач, имеющих одинаковый приоритет, в активное состояние переводится задача, не исполнявшаяся в течение наиболее длительного интервала времени.
  • 3. Если несколько задач находятся в состоянии ожидания события, порядок их активизации при наступлении события осуществляется в соответствии с порядком убывания их приоритетов.
  • 4. За исключением планирования исполнения задач с выделением каждой заданного кванта времени (Time-Slicing Task Switches), переключение задачи производится только в том случае, когда возникают предпосылки нарушения правила 1, что позволяет минимизировать количество переключении задач.

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

Прерывания

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

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

RTKernel, DOS и Windows

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

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

Рисунок 5.7. Взаимодействие Windows и RTKernel.

Программа RTKernel может быть загружена в качестве резидентной (TSRterminate and stay resident), после чего имеется возможность запуска на исполнение Windows 3.0/3.1 или приложения под управлением DOS-расширителя. В дальнейшем Windows и все приложения, запущенные под управлением Windows, рассматриваются RTKernel как одна задача. Другие задачи, входящие в состав RTKernel-приложения, продолжают выполняться в соответствии с требованиями, предъявляемыми к системам реального времени, и с возможностью неограниченного использования функций дискового ввода-вывода, а также взаимодействия с приложениями Windows посредством программных прерываний или специального модуля IPC (Inter-Process Communication — модуль межпроцессного взаимодействия). Таким образом, имеется способ создания сложных приложений реального времени, использующих интерфейс Windows (рис. 5.7). Вся работа в режиме реального времени выполняется под управлением RTKernel, тогда как интерфейс пользователя реализуется средствами Windows.

Драйверы устройств

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

Timer

Позволяет осуществлять измерение любого количества независимых временных интервалов с разрешением около 0,8 мкс. Длительность интервала может составлять до 3,7 лет. Кроме того, данный модуль предоставляет возможность изменения частоты системного таймера, которая обычно равна 18,2 ГЦ

RTKeybrd

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

KillKey

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

RTTextIO

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

Spooler

Обеспечивает возможность вывода файлов на печатающее устройство (параллельный принтер) в фоновом режиме.

CPUMoni

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

RTCom

Содержит полную реализацию взаимодействия с последовательными портами. Прием и передача данных через последовательные порты СОМ1-СОМ4 может осуществляться как в режиме опроса, так и по прерыванию.

RTIPX

Содержит полную реализацию протокола IPX фирмы Novell. Может использоваться на любой рабочей станции сети, в программной среде которой установлен стандартный драйвер IPX. Длина пакета передаваемых данных может составлять до 64 кбайт. В отличие от протокола Novell IPX обеспечивает гарантированную выдачу ответа на принятое сообщение. Обработка тайм-аутов и формирование запросов повторной передачи при обнаружении коммуникационных ошибок осуществляются непосредственно из приложения.

IPC

Облегчает реализацию взаимодействия между разными DOS-приложениями путем использования мультиплексного прерывания DOS. В основном это относится к резидентным программам, передающим данные основному исполняемому приложению. Кроме того, посредством IPC может быть организован обмен данными между приложением Windows и резидентной программой DOS.

RTKerneI-32

Многозадачное ядро реального времени для З2-разрядных встраиваемых систем

RTKerneI-32 представляет собой мощную мультизадачную систему реального времени, предназначенную для разработки встраиваемых приложений, использующих 32-разрядное линейное адресное пространство памятиRTKernel-32 является библиотекой или модулем, который может быть скомпонован с прикладной программой. В состав RTKemel-32 входят многочисленные функции и процедуры управления задачами, семафорами и прерываниями, а также средства обмена между задачами. Запуск на исполнение задач RTKernel-32 производится из единственной программы, которая содержит ядро, необходимые драйверы и все задачи. Исполняемый модуль приложения для запуска в составе встраиваемой системы, оснащенной процессором любого типа, поддерживающим Intel совместимый 32-разрядный защищенный режим, может быть подготовлен с помощью кросс-системы, подобной RTTarget-32, поставляемой фирмой On Time.

Количество задач, выполняемых под управлением RTKernel-32, ограничивается общим объемом оперативной памяти. Для каждой задачи RTKemel дополнительно требуется около 1 кбайт памяти.

Время переключения задачи не зависит от количества задач и составляет около 5 мкс (80 486 33 МГц).

Количество приоритетов задач 16.

Виды планирования: коллективное (Cooperative), с вытеснением (Preemptive), с выделением квантов времени (Time-Slicing).

Переключение задач по событию или прерыванию.

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

Возможность измерения временных интервалов с высоким разрешением.

Поддержка арифметического сопроцессора и его программной эмуляции.

Пять типов семафорных примитивов.

Обмен данными между задачами с использованием очередей сообщений.

Непосредственный обмен данными между задачами с использованием механизма передачи сообщений.

Управление памятью в режиме реального времени (пулы памяти).

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

Совместимость с RTKernel-C для DOS.

Совместимость с Win32 API.

Поддержка RTTarget-32 и других кросс-средств.

Возможность запуска в составе целевых систем на базе процессоров, совместимых с i386.

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

Отсутствие ограничений на количество разрабатываемых приложений. Структура приложения RTKernel-32 показана на рис. 5.8.

Структура приложения RTKernel-32.

Рисунок 5.8. Структура приложения RTKernel-32.

Для обеспечения возможности переноса в среду RTKernel-32 существующих многозадачных приложений, созданных для функционирования под управлением Windows NT или Windows 95, в ее состав включен практически полный набор функций, образующих интерфейс Win32.

Показать весь текст
Заполнить форму текущей работой