ГЛАВА 1. ОСНОВНЫЕ ПРИНЦИПЫ ОРГАНИЗАЦИИ ОПЕРАЦИОННЫХ СИСТЕМ РЕАЛЬНОГО ВРЕМЕНИ
Общие положения и определения
Задачи реального времени составляют одну из сложнейших и крайне важных областей применения вычислительной техники, поскольку они связаны с контролем и управлением процессами, являющимися неотъемлемой частью современной жизни и предъявляют такие требования к аппаратному и программному обеспечению, как надежность, высокая пропускная способность передающей среды в распределенных системах, своевременная реакция на внешние события и т.д. Для выполнения этих требований и создаются системы реального времени (СРВ), аппаратное и программное обеспечение.
СРВ – это аппаратно-программный комплекс, который должен своевременно и предсказуемо реагировать на поступающие извне раздражители. Основное требование к СРВ – своевременность обработки событий. Реакция на событие должна уложиться в пределы заранее определенного лимита времени, а превышение этого лимита или опоздание считается программным сбоем. Еще одним важным требованием к СРВ является одновременная обработка событий: если несколько событий происходят одновременно, все они должны быть обработаны своевременно. Это означает, что свойством СРВ должен быть параллелизм. Для этого необходимо установить более одного процессора или придерживаться многозадачного подхода.
ОСРВ (Real-Time Operating Systems) – тип ОС. ОС РВ должна быть предсказуемой, т.е. необходимо добиться того, чтобы максимальное время, затрачиваемое на определенную работу, укладывалось в заранее установленный лимит, сравнимый с требованиями приложения.
Рис. 1.1. Организация системы реального времени |
Любая СРВ состоит из трех основных подсистем (рис. 1.1). Управляемая (контролируемая) подсистема диктует требования в реальном масштабе времени; подсистема контроля (контролирующая) управляет некоторыми вычислениями и связью с оборудованием для использования от управляемой подсистемы; подсистема оператора (операционная) контролирует полную деятельность системы. Интерфейс между управляемыми и подсистемами контроля состоит из таких устройств, как датчики и приводы. Интерфейс между управляющей подсистемой и оператором связывает человека с машиной.
Управляемая подсистема представлена прикладными задачами, которые используют оборудование, управляемое подсистемой контроля. Эта подсистема строится из большого количества процессоров, управляющими такими местными ресурсами, как память и устройства хранения, и доступ к локальной сети в реальном масштабе времени. Эти процессоры и ресурсы управляются системой программного обеспечения, образующей операционную систему реального масштаба времени (RTOS – real time operating system).
Операционная система реального времени это система, которая используется для построения систем жесткого реального времени и гарантирует выполнение каких-то действий за определенный интервал времени. Это определение выражает отношение к ОС РВ как к объекту, содержащему необходимые инструменты, но также означает, что этими инструментами еще необходимо правильно воспользоваться.
Большинство программного обеспечения ориентировано на «мягкое» реальное время, а задача СРВ – обеспечить уровень безопасного функционирования системы, даже если управляющая программа никогда не закончит своей работы. ОС «мягкого» реального времени успевает выполнить действия за заданный промежуток времени.
Есть много определений термина ОС РВ, иногда противоречащих друг другу. Самые распространённые из них:
· ОС, в которой успешность работы любой программы зависит не только от её логической правильности, но и от времени, за которое она получила этот результат. Если система не может удовлетворить временным ограничениям, должен быть зафиксирован сбой в её работе;
· стандарт POSIX 1003.1 даёт определение: «Реальное время в ОС – это способность ОС обеспечить требуемый уровень сервиса в определённый промежуток времени»;
· ОС, реагирующая в предсказуемое время на непредсказуемое появление внешних событий;
· интерактивные системы постоянной готовности;
· иногда понятие ОСРВ отождествляют с «быстрой системой», но это не всегда правильно, так как важно не время задержки реакции ОСРВ, а то, чтобы этого времени было достаточно для рассматриваемого приложения и оно было гарантированно.
Для подобных систем характерно:
· гарантированное время реакции на внешние события (прерывания от оборудования);
· жесткая подсистема планирования процессов (высокоприоритетные задачи не должны вытесняться низкоприоритетными, за некоторыми исключениями);
· повышенные требования к времени реакции на внешние события или реактивности (задержка вызова обработчика прерывания не более десятков микросекунд, задержка при переключении задач не более сотен микросекунд).
Такими ОС являются QNX, VxWorks, Windows CE, BeOS.
Требования к ОС для обеспечения предсказуемости:
1. ОС РВ многонитевая (multi-threaded) и допускает вытеснение (preemtible). Предсказуемость достигается, если в ОС допускается много параллельных потоков управления (нитей), а диспетчер ОС прерывает выполнение любой нити (вытеснить ее) в системе и предоставляет ресурсы той нити, которой они требуются в первую очередь. ОС и аппаратная архитектура должны предоставлять множество уровней прерываний, чтобы вытеснение было возможно и на уровне прерываний.
2. Диспетчеризация осуществляется на базе приоритетов. Основная сложность диспетчеризации заключается в том, чтобы обнаружить, какая нить нуждается в ресурсах в первую очередь. ОС РВ предоставляет ресурсы той нити (драйверу), которой осталось меньше всего времени до установленного срока, для этого ОС должна знать, когда нить обязана завершить свою работу и сколько времени ей понадобится. Диспетчеризация потоков управления в ОС базируется на понятии приоритета: ресурсы предоставляются нити с наивысшим приоритетом.
3. Механизм синхронизации нитей предсказуем, для чего необходим механизм захвата ресурсов и межнитевых связей, поскольку нити разделяют общие ресурсы.
4. Существует система наследования приоритетов. Разделение нитями с разными приоритетами общих ресурсов может привести к классической проблеме инверсии приоритетов. Такая проблема возникает, если имеется, по крайней мере, три нити. Если нить с низшим приоритетом захватит ресурс, разделяемый с нитью высшего приоритета, тогда нить со средним приоритетом будет выполняться, а нить с высшим приоритетом будет приостановлена до тех пор, пока захваченный ресурс не освободится, что произойдет только тогда, когда нить с низшим приоритетом получит управление и завершит работу, связанную с захваченным ресурсом. В этом случае время, необходимое для завершения нити с высшим приоритетом, зависит от нити с низшим приоритетом. Этот случай называется инверсией приоритета. При этом трудно уложиться в заранее установленный лимит времени. Чтобы избежать этого, ОС РВ должна допускать "наследование" приоритета, подталкивая нить с низшим приоритетом. Наследование приоритета означает, что блокирующая нить наследует приоритет нити, которую она блокирует, если последняя обладает более высоким приоритетом.
5. Временные характеристики ОС предсказуемы и известны. Разработчик СРВ должен знать, сколько времени затрачивается на ту или иную системную работу. Должны быть известны уровни системных прерываний и уровни IRQ (линий запросов прерываний) драйверов устройств, максимальное время, которое они затрачивают и т.п.
Дата добавления: 2016-04-06; просмотров: 1454;