Вопросы к Поиску с Алисой
Основное отличие диспетчеризации без вытеснения (невытесняющей многозадачности) от вытесняющей многозадачности заключается в том, как происходит переключение между задачами. osdev.fandom.com {8-host}
Диспетчеризация без вытеснения (non-preemptive multitasking) предполагает, что активный процесс выполняется до тех пор, пока он сам, по собственной инициативе, не отдаст управление диспетчеру задач для выбора из очереди другого, готового к выполнению процесса. {8-host} {10-host} При этом механизм распределения процессорного времени распределён между системой и прикладными программами. {8-host}
Вытесняющая многозадачность (preemptive multitasking) характеризуется тем, что решение о переключении процессора с выполнения одного процесса на выполнение другого процесса принимается диспетчером задач, а не самой активной задачей. {8-host} {10-host} При этом механизм диспетчеризации задач целиком сосредоточен в операционной системе, и программист может писать своё приложение, не заботясь о том, как оно будет выполняться параллельно с другими задачами. {8-host} {10-host}
Таким образом, при диспетчеризации без вытеснения управление системой может теряться на произвольный период времени, который определяется процессом выполнения приложения, а в системах с вытесняющей многозадачностью такие ситуации, как правило, исключены. {8-host}