ЖУРНАЛ СТА 2/1997

3. Если несколько задач находятся в состоянии ожидания события, по- рядок их активизации при наступле- нии события осуществляется в соот- ветствии с порядком убывания их приоритетов. 4. За исключением планирования ис- полнения задач с выделением каж- дой заданного кванта времени (TimeSlicing Task Switches), пере- ключение задачи производится толь- ко в том случае, когда возникают предпосылки нарушения правила 1, что позволяет минимизировать ко- личество переключений задач. Поскольку планировщик RTKernel реализован в строгом соответствии с данными правилами, исполнение задач, составляющих приложение RTKernel, всегда предсказуемо и абсолютно уп- равляемо. При создании приложений может при- меняться как метод коллективного (Cooperative) планирования, так и пла- нирования с вытеснением (Preemptive). Коллективное планирование (без вы- теснения) предполагает возможность переключения задачи только после ее обращения к ядру. Таким образом обес- печивается «джентльменское» поведе- ние параллельно исполняемых задач по отношению друг к другу, а принятие решения о предоставлении процессо- ра какойлибо из них возлагается на ядро. При планировании с вытеснени- ем переключение задачи может быть произведено непосредственно обра- ботчиком прерывания по какомулибо событию без обращения к ядру. В случае, если в приложении необхо- димо использовать различные алгорит- мы планирования, имеется возмож- ность временного блокирования встро- енного планировщика RTKernel. Кроме того, возможно применение метода планирования с выделением параллельно выполняющимся задачам фиксированных интервалов времени (TimeSlicing). Прерывания Процедуры обслуживания прерыва- ний могут приостанавливать и акти- визировать исполнение задач. Дан- ный факт позволяет квалифицировать RTKernel как систему «реального вре- мени». Создание обработчиков преры- ваний производится обычным обра- зом, принятым в средах программиро- вания Си и Pascal, но с использовани- ем специальных функций RTKernel по- лучения вектора, установки вектора и т. п. Обработчики прерываний могут совершать обмен данными или сигна- лами с задачами путем использования семафоров или очередей сообщений. Операции по отношению к семафо- рам или очередям сообщений, в свою очередь, при необходимости позволя- ют осуществлять переключение задач. RTKernel, DOS и Windows MSDOS является однозадачной одно- пользовательской операционной сис- темой. Таким образом, мультизадачные системы, подобные RTKernel, должны обеспечивать решение проблемы пов- торной входимости, присущей DOS, а также проблемы совместного доступа параллельно выполняющихся задач к файлам. В состав RTKernel входят сред- ства защиты DOS, обеспечивающие воз- можность параллельно выполняющим- ся процессам использовать системные вызовы INT 20H, 21H, 25H, 26H и 27H. Программа RTKernel может быть за- гружена в качестве резидентной (TSR — terminate and stay resident), после чего имеется возможность запуска на ис- полнение Windows 3.0/3.1 или прило- жения под управлением DOSрасши- рителя. Запуск Windows в реальном (Real), стандартном (Standard) или за- щищенном (386Enhanced) режимах осуществляется путем использования функции RTKExec, назначение кото- рой аналогично функции DOS Exec. В дальнейшем Windows и все приложе- ния, запущенные под управлением Windows, рассматриваются RTKernel как одна задача. Другие задачи, входя- щие в состав RTKernelприложения, продолжают выполняться в соответст- вии с требованиями, предъявляемыми к системам реального времени, и с воз- можностью неограниченного исполь- зования функций дискового вводавы- вода, а также взаимодействия с при- ложениями Windows посредством программных прерываний или специ- ального модуля IPC (InterProcess Com- munication — модуль межпроцессного взаимодействия). Таким образом, име- ется способ создания сложных прило- жений реального времени, использую- щих интерфейс Windows (рис. 4). Вся работа в режиме реального времени вы- полняется под управлением RTKernel, тогда как интерфейс пользователя реа- лизуется средствами Windows. Средства отладки приложений Поскольку RTKernel полностью ин- тегрирована с исполнительной средой поддерживаемых компиляторов, для отладки приложений RTKernel могут быть использованы широко распрос- траненные отладчики типа CodeView или Turbo Debugger. Для предоставления наибольших удобств разработчикам программного обеспечения при выполнении отладки в комплект поставки RTKernel, помимо стандартной версии библиотеки, опти- мизированной для обеспечения макси- мальной производительности и мини- мального размера кода, входит так на- зываемая отладочная версия (Debug ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИ 87 2/97 Рис. 4. Взаимодействие Windows и RTKernel

RkJQdWJsaXNoZXIy MTQ4NjUy