Архитектура Unix

Алгоритм обработки прерываний по таймеру



Рисунок 8.9. Алгоритм обработки прерываний по таймеру



алгоритм clock входная информация: отсутствует выходная информация: отсутствует { перезапустить часы; /* чтобы они снова посылали преры- вания */ если (таблица ответных сигналов не пуста) { установить время для ответных сигналов; запустить функцию callout, если время истекло; } если (профилируется выполнение в режиме ядра) запомнить значение счетчика команд в момент прерыва- ния; если (профилируется выполнение в режиме задачи) запомнить значение счетчика команд в момент прерыва- ния; собрать статистику о самой системе; собрать статистику о протекающих в системе процессах; выверить значение продолжительности ИЦП процессом; если (прошла 1 секунда или более и исполняется отрезок, не являющийся критическим) { для (всех процессов в системе) { установить "будильник", если он активен; выверить значение продолжительности ИЦП; если (процесс будет исполняться в режиме задачи) выверить приоритет процесса; } возобновить в случае необходимости выполнение про- цесса подкачки; } }










Содержание раздела