История изменений
Исправление X512, (текущая версия) :
А разве разбрасывание потоков по ядрам цпу производится не из одного главного потока планировщика?
Нет никакого потока планировщика. Есть функция Schedule()
, которая выбирает следующий поток для исполнения и переключает текущее ядро процессора на него. Она вызывается когда поток вызвал блокирующий системный вызов (IO, взятие семафора и т.п.) или когда истёк квант исполнения и пришло прерывание таймера. Смотрите исходники простой учебной UNIX-подобной системы xv6.
Исходная версия X512, :
А разве разбрасывание потоков по ядрам цпу производится не из одного главного потока планировщика?
Нет никакого потока планировщика. Есть функция Schedule()
, которая выбирает следующий поток для исполнения и переключает текущее ядро процессора на него. Она вызывается когда поток вызвал блокирующий системный вызов (IO, взятие семафора и т.п.) или когда истёк квант исполнения и пришло прерывание таймера. Смотрите исходники простой учебной UNIX-подобной системы xv6.