You are here

Scheduling - Основы работы планировщика

Перевод может содержать ошибки. Читайте первоисточник: Scheduling

Назад: [Как работает FreeRTOS] Вверх: [Как работает FreeRTOS] Вперёд: [Как работает FreeRTOS]

 

Планировщик это часть ядра, отвечающая за выбор задачи, которая будет выполняться в любой конкретный момент времени. Ядро может приостанавливать и возобновлять выполнение задачи много раз время существования задачи.

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

В дополнение к тому, что задача непреднамеренно останавливается ядром, она сама может перейти в остановленное состояние. Задача будет это делать, если она либо хочет выполнить задержку ("уснуть") на фиксированное время, или ждёт ("заблокирована"), когда будут доступны необходимые ресурсы (например последовательный порт) или когда произойдёт событие (например, будет нажата клавиша). Заблокированная или приостановленная задача не может выполняться, и ей не будет выделяться никакого процессорного времени.

suspending.gif

Метки на этой диаграмме:

  • (1) Задача 1 выполняется..
  • (2) Ядро приостанавливает (заменяет) задачу 1...
  • (3) ... и возвобновляет выполнение задачи 2.
  • (4) Во время выполнения задача 2 запирает доступ к некоторой периферии процессора для собственного монопольного доступа.
  • (5) Ядро приостанавливает выполнение задачи 2.
  • (6) ... и возобновляет выполнение задачи 3.
  • (7) Задача 3 пытается получить доступ к той же периферии процессора, обнаруживает, что она уже заперта задачей 2, и приостанавливает своё выполнение.
  • (8) Ядро возвобновляет выполнение задачи 1.
  • И т.п.
  • (9) В следующий раз задача 2 во время выполнения успевает завершить работу с периферией процессора и отпирает эту периферию.
  • (10) Во время следующего раза, когда задача 3 выполняется, она обнаруживает, что теперь может получить доступ к периферии процессора, и будет выполняться до тех пор, пока ядро не приостановит её.


Далее: переключение контекста

Hobby's category: