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