|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Требования к реализации функций ОС реального времениВ подразделе 1.3 отмечалось, что, роль операционной системы состоит в управлении аппаратными и информационными ресурсами КС, при этом важнейшие разновидности услуг (функций, процедур, механизмов), предоставляемых программным приложениям операционной системой включают: · инициализацию приложений, · организацию исполнения задач, · разделение основных аппаратных и информационных ресурсов КС (процессорного времени, массивов оперативной памяти, доступа к глобальным переменным) между компонентами приложений, · управление доступом к периферийным устройствам КС (в частности, к внешней памяти, внешним коммуникационным каналам), · реализацию взаимосвязей задач и средств синхронизации вычислений. Со стороны программного приложения состав услуг, предоставляемых операционной системой, отражается семантикой интерфейса прикладных программ. Любая ОС, вне зависимости от ее назначения, должна обеспечивать выполнение перечисленных услуг. Вместе с тем, специфика требований к реализации этих функций определяется особенностями условий работы того класса приложений, на поддержку которого ориентируется конкретная ОС. Выше отмечен ряд особенностей построения и условий функционирования комплексов прикладных программ для СРВ: · в соответствии с принципом дуальности программные приложения для СРВ должна строиться в виде комплексов тесно взаимосвязанных задач, · явно сформулированные требования привязки выполнения прикладных функций системы к ходу времени, · автономность по питанию и обслуживанию, · отказоустойчивость и доступность до 0.999%, · поддержка программных приложений для встроенных систем. Особенности условий функционирования программных приложений реального времени приводят к необходимости учета этих условий при реализации перечисленных разновидностей функций ОС. Центральным звеном ОС реального времени является ядро, выполняющее ключевые функции ОС, состав которых может по-разному определяться в различных системах, но в любом случае ядро включает инициализацию приложения, управление заданиями, планирование, службу времени, внутренние коммуникационные механизмы. Во многих системах реального времени с жестким лимитом аппаратных ресурсов набор услуг ОС, предоставляемых прикладным программам, ограничивается функциями ядра. 4.1. Инициализация приложений. Отметим следующие особенности реализации функции ОС реального времени в части инициализации приложений: · широкое использование обратных вызовов, · мягкое конфигурирование аппаратных средств КС, · инициализация ОС приложением, · ускоренная инициализация ключевых модулей, · привязка инициализации к абсолютному моменту времени. Обратный вызов – это особый элемент интерфейса прикладных программ. Обычный элемент ИПП обеспечивает обращение к процедуре, реализуемой в рамках ОС и вызываемой из прикладной программы. В случае обратного вызова ОС и приложение в этом отношении меняются местами: процедура реализуется в рамках приложения и вызывается в нужный момент из операционной системы. Требование автономности по обслуживанию СРВ приводит к тому, что начальные настройки параметров приложения должны выполняться автоматически. Для осуществления необходимых начальных настроек при инициализации ОС выполняется обратный вызов прикладной процедуры, которая выполняет необходимые проблемно-ориентированные начальные настройки программных модулей. К начальным настройкам относится и операции мягкого конфигурирования аппаратных блоков. Мягкое конфигурирование может осуществляться как в рамках выполнения обратных вызовов, так и самой ОС по статически сформированным данным. В состав интерфейса прикладных программ ОС реального времени может быть включен системный вызов типа StartOS(). Наличие такого системного вызова позволяет начинать работу КС с обращения к стартовым (инициализирующим) блокам приложения, а не к инициализирующим блокам операционной системы. В этом случае стартовый блок комплекса прикладных программ выполняет начальные настройки до инициализации ОС, и по завершении начальных настроек вызовом StartOS()запускает работу операционной системы. Жесткие требования доступности приводят к необходимости поэтапной инициализации приложения операционной системой. На первом этапе ОС выполняет минимально необходимый объем настроек, форсируя безотлагательную активизацию выполнения жизненно важных для КС прикладных заданий; последующие этапы инициализации приложения происходят на фоне работы этих жизненно важных компонент комплекса прикладных программ. Некоторые специальные приложения требуют более или менее длительного пребывания КС в спящем режиме с инициализацией ОС и комплекса программных средств в какой-то заранее заданный момент времени. 4.2. Организация исполнения задач. К основным свойствам СРВ относится необходимость привязки выполнения задач к ходу времени в условиях эффективного использования ресурсов КС. Поэтому ОС реального времени должна обеспечивать повышенную точность привязки выполнения задач к системным событиям и к предельным срокам завершения заданий. Соответственно повышенные требования предъявляются к планированию заданий, выбору эффективных дисциплин и параметров планирования. Эффективность использования ресурса процессора означает, в частности, минимизацию процессорного времени, расходуемого на активизацию вновь возникающих заданий, на переключение процессора при смене текущего задания (эффективность переключения контекстов), в том числе с использованием специальных аппаратных средств (например, выбор формата фреймов прерывания). Для повышения эффективности использования ресурса процессора применяются и такие меры, как планирование с минимизацией переключений контекста; выделение классов задач, допускающих применение упрощенных процедур переключения контекстов. Все это относится в одинаковой мере к программно и к аппаратно активизируемым заданиям. Для встроенных систем с автономным питанием эффективность использования ресурса процессора актуальна и с точки зрения экономии затрат энергии. В числе других мер энергосбережения можно указать использование блоков постоянной энергонезависимой памяти с быстрым доступом, размещаемой в адресном пространстве CPU (в процессе работы системы такие блоки памяти потребляют существенно меньше энергии, чем блоки оперативной памяти того же объема). Требование эффективности по энергопотреблению означает также актуальность выбора минимальной частоты процессора, обеспечивающей нормальное функционирование СРВ. Архитектура встроенных СРВ может предусматривать возможность изменения рабочей частоты процессора. Системы с такими архитектурными возможностями допускают как форсирование производительности в критических ситуациях, так и снижение тактовой частоты процессоров. Если форсирование производительности включается достаточно редко и кратковременно, то система будет работать без перегрева, а общее энергопотребление будет определяться в основном параметрами нефорсированного режима. Снижение тактовой частоты процессора позволяет экономить энергию в те периоды, когда от системы не требуется высокой активности. Такое снижение может производиться вплоть до нулевой частоты, с переводом системы в состояние, сходное с анабиозом. Для СРВ с постоянной частотой процессора выбор значения этой частоты выполняется средствами инструментальной системы. Еще один путь экономии затрат энергии обеспечивается возможностями мягкого конфигурирования состава имеющихся в составе микроконтроллера аппаратных блоков (отключения питания не используемых периферийных блоков). Условия тесной взаимосвязи задач в СРВ приводит к необходимости эффективной реализации соответствующих механизмов взаимодействия заданий. А это, как отмечалось в подразделе 2.2, может потребовать использования моделей и методов анализа логической корректности системы таких связей. Автономность по обслуживанию, отказоустойчивость и доступность обеспечиваются включением в состав системы механизмов самодиагностики и восстановления работоспособности системы после сбоев (автоинициализация), наличием средств отклонения невыполнимых задач, и реализации сокращенных вычислений. 4.3. Разделение ресурсов. Ресурсы системы разделяются (динамически) между заданиями и (статически) между задачами как типами заданий. К важнейшим разделяемым ресурсам относятся процессоры, процессорное время (такты процессора) и память (постоянная, оперативная и стековое пространство). Особенности требований к реализации функций разделения ресурсов операционной системой реального времени вытекают из необходимости своевременного выполнения прикладных заданий. Разделение ресурса процессора осуществляется операционной системой путем выбора и реализации дисциплин планирования, построения и реализации статических и динамических графиков выполнения заданий, назначения параметров планирования (приоритетов активизации и выполнения заданий). При квазипараллельном исполнении задач корректность взаимодействия соответствующих заданий может обеспечиваться правильным назначением приоритетов. За счет выбора способа доступа заданий к разделяемым аппаратным и информационным ресурсам может достигаться экономия стекового пространства. Для выполнения требований надежности (отказоустойчивость, доступность) используются средства анализа выполнимости заданий. 4.4. Доступ к периферийным устройствам, обработчики прерываний. Системы реального времени отличаются от КС общего назначения, в частности, тем, как распределяются функции доступа к периферийным устройствам между операционной системой и комплексом прикладных программ. В случае КС общего назначения операционная система, как правило, полностью берет на себя взаимодействие с периферийными устройствами (заслоняя, таким образом, особенности аппаратных интерфейсов от разработчика прикладных программ). В случае КС реального времени периферийные блоки, обеспечивающие взаимосвязи с объектами физической сферы, контролируются, как правило, программными модулями приложения. Кроме того, СРВ может быть оснащена коммуникационными каналами (и/или устройствами пульта оператора) с нестандартными аппаратными интерфейсами, что, опять же, требует обслуживания таких каналов и пультовых устройств непосредственно прикладными программами. В подобных ситуациях для периферийных блоков, подключенных к системе прерываний, в состав прикладных программ должна включаться специфическая разновидность задач – обработчики прерываний. Обработчики прерываний принципиально отличаются способом регистрации и активизации соответствующих им заданий – регистрация и активизация заданий по обработке прерываний осуществляется аппаратно (средствами системы прерываний). Так образуются две разновидности задач, составляющих программное приложение: · аппаратно контролируемые прикладные обработчики прерываний (экземпляры таких задач регистрируются и активизируются системой прерываний), · программно контролируемые прикладные задачи (экземпляры таких задач регистрируются и активизируются операционной системой). Входящие в состав единого программного приложения задачи обеих разновидностей тесно связаны друг с другом элементами межзадачных интерфейсов. Однако, состав этих интерфейсов отличается существенной асимметрией в части возможных направлений обмена сигнальными информационными посылками: прикладные обработчики прерываний не принимают сигнальных посылок от прикладных задач, но, вместе с тем, сами обработчики прерываний могут выполнять операторы, генерирующие сигнальные посылки в адрес программно контролируемых прикладных заданий. Эта асимметрия отражается, в частности, особенностями состава элементов интерфейса прикладных программ, доступных обработчикам прерываний (см. подраздел 7.7), выражающейся, например, в том, что некоторые сервисы ОС, доступные обработчикам прерываний, недоступны программно контролируемым задачам и наоборот. 4.5. Внутренняя и внешняя синхронизация заданий. В корректно построенной СРВ ход исполнения задач гарантированно координируется с ходом процессов во внешней среде (внешняя синхронизация). Кроме того, гарантируется согласованная по порядку и по времени реализация действий, выполняемых в рамках взаимодействующих заданий (внутренняя синхронизация). Внешняя синхронизация обеспечивается построением и интерпретацией графиков активизации заданий, развитой службой времени (программные таймеры), реализацией части прикладных задач в виде обработчиков прерываний. Отметим, что графики активизации заданий зачастую строятся как статические объекты в ходе разработки программного приложения реального времени на инструментальной машине. Возникает вопрос, следует ли относить построение таких графиков к функциям операционной системы или к функциям каких-то самостоятельных средств разработки СРВ. С одной стороны, своевременная активизация заданий относится к функциям ОС, но, с другой стороны, традиционно в рамки ОС включались только динамические сервисы. Внутренняя синхронизация обеспечивается за счет использования обращений к сервисам ОС, реализующим внутренние коммуникационные механизмы: обмен синхронизирующими сообщениями между действующими заданиями, обмен сигнальными посылками, за счет координации средствами ОС доступа к разделяемым аппаратным и информационным ресурсам. Реализуемые операционной системой коммуникационные механизмы гарантируют корректность предоставления заданиям требуемых ресурсов. Так, ресурс, занятый заданием xt i, не будет предоставлен заданию yt j до тех пор, пока задание xt i его не освободит. Информационный ресурс, формируемый заданием xt i, не будет предоставлен заданию yt j до тех пор, пока задание xt i не завершит его подготовку. А это означает, что обращение к сервисам ОС, реализующим коммуникационные механизмы, сопряжено с потенциальной возможностью приостановки текущего задания. Подобные приостановки непосредственно связаны с проблемами корректности – логической и динамической корректностью построения СРВ. Логически некорректная сеть межзадачных связей чревата потенциальной возможностью возникновения взаимных блокировок, тупиковых ситуаций, когда процессы исполнения задач блокируются кругом взаимных ожиданий. Динамическая некорректность означает потенциальную возможность нарушения предельных сроков выполнения задач. Требование отказоустойчивости СРВ означает, что в ходе разработки СРВ должны быть предусмотрены меры, исключающие наличие и того, и другого вида некорректности. Опять же, возникает вопрос, следует ли относить проверку логической и динамической корректности приложения к функциям операционной системы или к функциям каких-то самостоятельных средств разработки СРВ. С одной стороны, синхронизация заданий относится к функциям ОС, но, с другой стороны, проверка логической и динамической корректности относится к разряду статических сервисов. 4.6. Статические сервисы. Большинство рассмотренных разновидностей функций ОС реального времени относится к целевым сервисам ОС, соответствующие программы входят в состав комплекса целевых программных средств СРВ. Обращения к целевым сервисам ОС выполняются в ходе работы СРВ (динамически). Вместе с тем, как отмечено выше, часть комплекса инструментальных программных средств по разработке приложений реального времени уместно рассматривать как подмножество статических сервисов операционной системы. Сюда можно отнести, в частности, построение графиков активизации заданий, средства проверки логической и динамической корректности приложений. В состав статических сервисов ОС могут быть включены также выбор дисциплин планирования, определение параметров планирования (например, значения приоритетов задач). Несмотря на то, что традиционно в рамки ОС включались только динамические сервисы, статическая составляющая состава сервисов ОС реального времени уже начинает закрепляться на уровне международных стандартов (см. раздел 11). Контрольные вопросы. 1. Какие разновидности услуг предоставляет ОСРВ программным приложениям? 2. Какие особенности систем реального времени обуславливают специфические требования к ОСРВ? 3. Какие функции реализуются ядром ОСРВ? 4. В чем состоят особенности инициализации прикладных программ реального времени ядром ОСРВ? 5. Чем отличаются элементы интерфейса прикладных программ, относящиеся к разряду обратных вызовов? 6. Как осуществляется мягкое конфигурирование аппаратных блоков СРВ? 7. Как требование доступности СРВ связано с поэтапной инициализацией компонент программного приложения? 8. Как связаны требования к СРВ с особенностями требований к планированию заданий операционной системой? 9. В каких случаях аппаратура СРВ не поддерживает работу программных компонент в привилегированном режиме? 10. Какую роль играет изменение тактовой частоты процессора в работе СРВ? 11. С какими условиями функционирования СРВ связано требование включения в состав системы средств самодиагностики, восстановления работоспособности. 12. В каких условиях может потребоваться включение в состав ОСРВ средств отклонения запросов на выполнение задач или средств организации сокращенных вычислений. 13. Между какими компонентами программных средств СРВ осуществляется статическое распределение ресурсов системы? 14. Между какими компонентами программных средств СРВ осуществляется динамическое распределение ресурсов системы? 15. Какие разновидности ресурсов СРВ разделяются между компонентами программной системы? 16. Каким образом требования к СРВ приводят к необходимости включения обработчиков прерываний в состав программных приложений? 17. В чем принципиальное различие механизмов активизации обработчиков прерываний от механизмов активизации других задач в составе программного приложения СРВ? 18. В чем состоит асимметрия набора межзадачных интерфейсов, связывающих обработчики прерываний с программно активизируемыми задачами? 19. В чем различие между внутренней и внешней синхронизацией задач? Какими средствами обеспечивается внутренняя и внешняя синхронизация исполнения задач? 20. Как в ходе работы СРВ могут проявляться логическая некорректность построения программной системы? 21. Какие отклонения от нормального хода работы СРВ относят к разряду динамических некорректностей? 22. Что входит в состав статических сервисов ОСРВ?
Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.008 сек.) |