54
времени [9]. Для этого имеется ряд весомых, на первый взгляд,
причин:
Win32
API считается стандартом, а на его базе разработано
огромное
количество программ; графический интерфейс стал
сегодня очень популярным; для
NT имеется немало готовых
решений для коммерческих применений; в среду
NT включены
многие виды средств разработки. Тем не менее возможно ли
использование
Windows для разработки системы реального
времени?
Перечислим необходимые требования к ОС для обеспечения
предсказуемости.
1.
ОС РВ должна быть многонитевой и допускать вытеснение
(
preemtible).
Предсказуемость достигается, если в ОС допускается много
параллельных потоков управления (нитей), а диспетчер ОС может
прервать выполнение любой нити (вытеснить ее) в
системе и
предоставить ресурсы той нити, которой они требуются в первую
очередь. ОС и аппаратная архитектура также должны
предоставлять множество уровней прерываний, чтобы вытеснение
было возможно и на уровне прерываний.
2.
Диспетчеризация должна осуществляться на базе
приоритетов.
Основная сложность диспетчеризации
заключается в том,
чтобы обнаружить, какая именно нить нуждается в ресурсах в
первую очередь. В идеале ОС РВ предоставляет ресурсы той нити
или
драйверу, которым осталось меньше всего времени до
установленного срока. Чтобы сделать это, ОС должна знать, когда
нить обязана завершить свою работу и сколько времени ей
понадобится. Поскольку это очень трудно реализовать, таких ОС
пока еще не существует. Поэтому
механизм диспетчеризации
потоков управления в современных ОС базируется на понятии
приоритета: ресурсы предоставляются нити с наивысшим
приоритетом.
3.
Механизм синхронизации
нитей должен быть
предсказуемым.
55
Механизм захвата ресурсов и межнитевых связей необходим,
поскольку нити разделяют общие ресурсы.
4.
Должна существовать система наследования приоритетов.
Do'stlaringiz bilan baham: