Вопрос проверяет базовое понимание того, как ОС управляет выполнением потоков и делит процессорное время.
Переключение между потоками выполняется планировщиком операционной системы. Когда поток блокируется или истекает его квант времени, ОС сохраняет его состояние и передает управление другому потоку. Этот процесс называется контекстным переключением. Он позволяет нескольким потокам «делить» один или несколько CPU.
Операционная система должна обеспечивать иллюзию параллельного выполнения потоков, даже если физически процессоров меньше.
Context switch — сохранение состояния одного потока и восстановление состояния другого для передачи управления CPU.
При контекстном переключении ОС сохраняет:
регистры процессора;
указатель инструкций;
состояние стека;
информацию о планировании.
Это позволяет позже продолжить выполнение с того же места.
Основные причины:
истек квант времени CPU;
поток ушёл в ожидание I/O;
появился поток с более высоким приоритетом.
Аппаратный таймер:
периодически прерывает выполнение;
передает управление планировщику.
Планировщик решает:
продолжать текущий поток;
или переключиться на другой.
Контекстное переключение:
не выполняет полезной работы;
занимает время CPU;
при большом количестве потоков может снижать производительность.
Переключение потоков — базовый механизм многозадачности ОС. Оно делает возможной конкурентность, но чрезмерное количество потоков может привести к потере производительности.