ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Вторник
6 мая
1513805 Топик полностью
Nikolaj (24.04.2025 05:38, просмотров: 108) ответил mse homjak на Не, по идее, планировщик должэн заводить на себя все прерывания и контролировать все "алярм!алярм!", в т.ч. и сустик, с передачей машинного времени кому попало.
Планировщик "работает" со списком задач по которому он, в общем случае, запускает (поочерёдно и поприоритетно :) ) готовые к выполнению и останавливает те которые не требуют процессорного времени. "Внеочередное" переключение задач выполняется: 

- сменой статуса задачи в списке задач на требуемый (либо сама задача "помечает" себя как готовой к остановке (Sleep/Delay), либо кто-то помечает задачу как готовую к выполнению (прерывание, другая задача));

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


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