Как планировщик VxWorks становится выполняемым?

Хотел бы знать, как планировщик называют так, чтобы он мог переключить задачи. Как в том, даже если его упреждающее планирование или циклическое планирование - планировщик должны войти к изображению, чтобы сделать какой-либо вид переключения задач. Предположим, низкоприоритетная задача имеет бесконечный цикл - когда планировщик вмешивается и переключается на более высокую приоритетную задачу?

Запрос: 1. Кто называет планировщик? [в VxWorks] 2. Если в это заходят равные интервалы - как тот механизм реализован?

Заранее спасибо.

- Ashwin

10
задан Ashwin 8 June 2010 в 06:29
поделиться

3 ответа

Простой ответ заключается в том, что vxWorks берет управление через аппаратное прерывание от системного таймера, которое происходит постоянно через фиксированные интервалы времени, пока система работает.

Вот более подробная информация:

Когда vxWorks запускается, он настраивает ваше оборудование на генерацию таймерного прерывания каждые n миллисекунд, где n часто равно 10, но полностью зависит от вашего оборудования. Интервал таймера обычно устанавливается vxWorks в вашем Board Support Package (BSP) при запуске.

Каждый раз, когда таймер выдает прерывание, система начинает выполнять обработчик прерывания таймера. Обработчик прерывания таймера является частью vxWorks, поэтому теперь vxWorks имеет контроль. Первое, что он делает, это сохраняет состояние процессора (например, регистры) в Task Control Block (TCB) текущей выполняемой задачи.

Затем vxWorks запускает планировщик, чтобы определить, кто будет выполняться следующим. Чтобы запустить задачу, vxWorks копирует состояние задачи из ее TCB в машинные регистры, и после этого задача получает контроль над процессором.

Бонусная информация:

vxWorks предоставляет крючки в логику переключения задач, чтобы вы могли вызвать функцию всякий раз, когда ваша задача получает вытеснение.

13
ответ дан 3 December 2019 в 20:40
поделиться

Если у вас нет сильно настроенной целевой сборки, планировщик запускается прерыванием таймера. Однако детали зависят от платформы.

0
ответ дан 3 December 2019 в 20:40
поделиться

Планировщик также вызывается, если текущая задача завершена или блокируется.

0
ответ дан 3 December 2019 в 20:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: