асемблерные инструкции, которые исполняются процессором. Процессор не в курсе что вообще происходит и просто исполняет инструкции над данными в том порядке, к котором ему скажет планировщик ос (прыгнем сразу в планировщик ос). Планировщик ос старается распределить нагрузку в зависимости от приоритета (nice к примеру) и захватил ли поток какой-нибудь примитив синхронизации (допустим поток висит на мютексе). Соответственно если поток спит по какой - либо причине - это значит что планировщик ос не отправляет инструкции этого потока на исполнение процессору. Сами же примитивы синхронизации постоянно пулятся в процессоре чтобы планировщик ос мог принимать решения. Все так или по - другому?
они там нигде не пулятся в процессоре то) они живут в памяти ток. если повезёт в кеше процессора всё что делает планировщик это достаёт из списка след. поток (по приоритету), и меняет контекст (регистры проца) на сохранённые в том списке вместе с потоком )
Обсуждают сегодня