109
КОМПОНЕНТЫ И ТЕХНОЛОГИИ •
№ 3 '2011
www.kite.ru
компоненты
микроконтроллеры
Андрей Курниц
kurnits@stim.by
Основы работы ОСрВ
Прежде чем говорить об особенностях
FreeRTOS, следует остановиться на основных
принципах работы любой ОСРВ и пояснить
значение терминов, которые будут приме-
няться в дальнейшем. Эта часть статьи будет
особенно полезна читателям, которые не зна-
комы
с принципами, заложенными в ОСРВ.
Основой ОСРВ является ядро (Kernel) опе-
рационной системы. Ядро реализует осново-
полагающие функции любой ОС. В ОС об-
щего назначения, таких как Windows и Linux,
ядро позволяет нескольким пользователям
выполнять множество программ на одном
компьютере одновременно.
Каждая выполняющаяся программа пред-
ставляет собой задачу (Task). Если ОС позволя-
ет одновременно выполнять множество задач,
она является мультизадачной (Multitasking).
Большинство процессоров могут выпол-
нять только одну задачу в один момент вре-
мени. Однако при помощи быстрого пере-
ключения между задачами достигается эф-
фект параллельного выполнения всех задач.
На рис. 1 показано истинно параллельное
выполнение трех задач. В реальном же про-
цессоре при работе ОСРВ выполнение задач
носит периодический характер: каждая за-
дача выполняется определенное время, после
чего процессор «переключается» на следую-
щую задачу (рис. 2).
Планировщик (Scheduler) — это часть ядра
ОСРВ, которая определяет, какая из задач, го-
товых к выполнению, выполняется в данный
конкретный момент времени. Планировщик
может приостанавливать, а затем снова воз-
обновлять выполнение задачи в течение всего
ее жизненного цикла (то есть с момента соз-
дания задачи до момента ее уничтожения).
А л г о р и т м р а б о т ы п л а н и р о в щ и к а
(Scheduling policy) — это алгоритм, по ко-
торому функционирует планировщик для
принятия решения, какую задачу выполнять
в данный момент времени. Алгоритм работы
планировщика в ОС общего назначения за-
ключается в предоставлении каждой задаче
процессорного времени в равной пропорции.
Алгоритм работы планировщика в ОСРВ от-
личается и будет описан ниже.
Среди всех задач в системе в один мо-
мент времени может выполняться только
одна задача. Говорят, что она находится
в состоянии выполнения. Остальные зада-
чи в этот момент не выполняются, ожидая,
когда планировщик выделит каждой из них
процессорное время. Таким образом, задача
может находиться в двух основных состоя-
ниях: выполняться и не выполняться.
Кроме того, что выполнение задачи может
быть приостановлено планировщиком при-
нудительно, задача может сама приостано-
вить свое выполнение. Это происходит в двух
случаях. Первый — это когда задача «хочет»
задержать свое выполнение на определенный
промежуток времени (в таком случае она пере-
ходит в состояние сна (sleep)). Второй — когда
задача ожидает освобождения какого-либо
аппаратного ресурса (например, последова-
тельного порта) или наступления какого-то
события (event), в этом случае говорят, что за-
дача блокирована (block). Блокированная или
«спящая» задача не нуждается в процессорном
времени до наступления соответствующего
события или истечения определенного интер-
вала времени. Функции измерения интерва-
лов времени и обслуживания событий берет
на себя ядро ОСРВ.
Достарыңызбен бөлісу: