Лекции - Часть 3-2 - файл n1.doc
Лекции - Часть 3-2скачать (14.3 kb.)
Доступные файлы (1):
n1.doc
3.2. Операционные системы реального времени и Windows
Сегодня становится широко распространенным желание потребителей использовать
Windows NT в системах реального времени [9]. Для этого имеется ряд весомых, на первый взгляд, причин:
Win32
API считается стандартом, а на его базе разработано огромное количество программ; графический интерфейс стал сегодня очень популярным; для
NT имеется немало готовых решений для коммерческих применений; в среду
NT включены многие виды средств разработки. Тем не менее, возможно ли использование
Windows для разработки системы реального времени?
Перечислим необходимые требования к ОС для обеспечения предсказуемости.
Требование 1.
ОС РВ должна быть многонитевой и допускать вытеснение (
preemtible).
Предсказуемость достигается, если в ОС допускается много параллельных потоков управления (нитей), а диспетчер ОС может прервать выполнение любой нити (вытеснить ее) в системе и предоставить ресурсы той нити, которой они требуются в первую очередь. ОС и аппаратная архитектура также должны предоставлять множество уровней прерываний, чтобы вытеснение было возможно и на уровне прерываний.
Требование 2. Диспетчеризация должна осуществляться на базе приоритетов.
Основная сложность диспетчеризации заключается в том, чтобы обнаружить, какая именно нить нуждается в ресурсах в первую очередь. В идеале ОС РВ предоставляет ресурсы той нити или драйверу, которым осталось меньше всего времени до установленного срока. Чтобы сделать это, ОС должна знать, когда нить обязана завершить свою работу и сколько времени ей понадобится. Поскольку это очень трудно реализовать, таких ОС пока еще не существует. Поэтому механизм диспетчеризации потоков управления в современных ОС базируется на понятии приоритета: ресурсы предоставляются нити с наивысшим приоритетом.
Требование 3. Механизм синхронизации нитей должен быть предсказуемым.
Механизм захвата ресурсов и межнитевых связей необходим, поскольку нити разделяют общие ресурсы.
Требование 4. Должна существовать система наследования приоритетов.
Разделение нитями с разными приоритетами общих ресурсов может привести к классической проблеме инверсии приоритетов. Чтобы избежать этого, ОС РВ должна допускать "наследование" приоритета, подталкивая нить с низшим приоритетом. Наследование приоритета означает, что блокирующая нить наследует приоритет нити, которую она блокирует (конечно, только если последняя обладает более высоким приоритетом).
Требование 5. Временные характеристики ОС должны быть предсказуемы и известны.
Разработчик СРВ должен знать, сколько времени затрачивается на ту или иную системную работу. Кроме того, должны быть известны уровни системных прерываний и уровни
IRQ (линий запросов прерываний) драйверов устройств, максимальное время, которое они затрачивают и т.п.
Несмотря на то, что сегодня
Windows NT не отвечает в полной мере требованиям, предъявляемым к операционной системе реального времени, давление рынка привело к появлению коммерческих решений, расширяющих
NT возможностями обработки в реальном времени.