Управление процессами в CISCO IOS

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

Многозадачность невытесняющая, для предотвращения монополизации процессора одним процессом используется сторожевой таймер. Он запускается при передаче управления любому процессу и каждые 2 секунды получает управление по прерыванию. Если при втором вызове он застает процесс незавершенным, управление принудительно передается диспетчеру.

Диспетчер поддерживает 4 очереди готовых к выполнению процессов по приоритетам.

1. Очередь критического приоритета. Включает некоторые системные процессы и процесс измерения нагрузки маршрутизаторов.

2. Очередь высокого приоритета. Назначается процессам, выполняющим срочную часть работы коммуникационных протоколов.

3. Очередь среднего приоритета. Основные сетевые протоколы, протоколы маршрутизации.

4. Очередь низкого приоритета. Включает фоновые процессы, такие как проверка устаревших записей в КЭШ.

Процесс попадает на выполнение только если пусты очереди более высокого приоритета.

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