ЖУРНАЛ «СТА» №1/2007
сора, но также может быть причиной проблем в случае, когда высокоприори- тетная задача неумышленно или наме- ренно потребляет все доступные циклы процессора (рис. 1). Например, задача А препятствует всем другим задачам в получении доступа к процессору с момента своего запуска (4я единица времени). Более того, планировщик, основан- ный на приоритетах, может допустить полную загрузку процессора вредонос- ным программным обеспечением или процессом отказа от обслуживания по- ступивших запросов (DoS attack), делая таким образом систему недоступной для пользователей. В целях предотвращения таких про- блем разработчики программного обес- печения выбирают одно из двух воз- можных решений: ● использование управляющего про- цессадиспетчера или «сторожевого» процесса, который отслеживает за- грузку процессора потоками. ● использование алгоритма выделения процессорного времени, управляе- мого операционной системой, кото- рый назначает определённое процес- сорное время каждому потоку. «Сторожевые» процессы Иногда группа связанных потоков лишает другие потоки процессорного времени. В других случаях недостаток времени процес- сорной обработ- ки — это результат зацикливания од- ного высокопри- оритетного потока. Чтобы предотвра- тить такие момен- ты, «сторожевой» процесс следит за загрузкой процес- сора и осуществля- ет корректирую- щие действия в случае обнаруже- ния превышения потоком бюджета ус т ановл енно г о времени процес- сорной обработки. Тем не менее не существует просто- го способа нейтра- лизовать использо- вание процессора вышедшим изпод контроля потоком. В связи с этим «сто- рожевой» процесс должен использовать кардинальные меры, такие как переза- пуск защищённого процесса (и всех его порождённых процессов) или снижать приоритеты защищённых потоков или процессов. Более того, метод «сторожевого» про- цесса не работает гладко со всеми про- цессами и потоками. Например, неко- торым процессам необходимо полно- стью использовать процессор в опреде- ленные моменты времени, это порож- дает необходимость обращения «сторо- жевого» процесса к списку исключе- ний, чтобы поддерживать правильное функционирование системы. «Сторожевой» процесс может также поглощать значительный объём про- цессорного времени. Например, прихо- дится через определённые интервалы времени регулярно посылать запрос операционной системе, чтобы правиль- но определять использование процес- сора всеми потоками, а затем сравни- вать полученную информацию с данны- ми предыдущего интервала. Также не- обходимо учитывать все случаи исклю- чения, упомянутые ранее. Так как «сто- рожевой» процесс выполняется с более высоким приоритетом, чем все другие потоки, за которыми он следит, он и сам может стать причиной лишения задач процессорного времени. «Сторожевой» процесс обладает и другими побочными эффектами, вклю- чая замедленное время отклика, ограни- чение использования процессорного времени «законным» процессом. Алгоритм выделения процессорного времени, управляемого операционной системой Некоторые операционные систе- мы реального времени поддержива- ют фиксированное выделение про- цессорных ресурсов группам пото- ков. Такой подход обеспечивает не- кий контейнер для процессов и по- токов, называемый разделом, кото- рому выделяется фиксированная доля процессорного времени. На- пример, для группы потоков, имеющих общее предназначение, разработчик выделяет раздел с фик- сированным бюджетом в 5% от об- щего объема процессорного време- ни. Планировщик раздела будет в этом случае гарантировать, что дан- ный раздел получит назначенный объём процессорного времени. Используя подход временного разделения, при разработке можно задать бюджет гарантированного процессорного времени для каж- 72 СТА 1/2007 П Р О Г РАММНО Е ОБ Е С П Е Ч Е НИ Е / СИС Т ЕМЫ Р Е АЛ Ь НО ГО В Р ЕМЕ НИ www.cta.ru Система автоматизации Локальный человеко-машинный интерфейс Сенсорное сканирование/ запрос данных Удалённая система мониторинга Система управления двигателем Рис. 2. Пример упрощённой системы автоматизации #200
Made with FlippingBook
RkJQdWJsaXNoZXIy MTQ4NjUy