2015-10-08 4 views
0

Как ядро ​​может работать все время, когда процессор может выполнять только один процесс за раз? То есть, если ядро ​​постоянно занимает процессор, то как идут другие процессы.Как ядро ​​может работать все время?

Пожалуйста, объясните Спасибо

+6

Он не работает все время. Ядро устанавливает прерывание тревоги для CPU, чтобы разбудить его так часто, а затем, когда прерывается тревога, ЦПУ прекращает выполнение программы и переходит к вектору прерывания ядра. Когда процессор начинает выполнять ядро, ядро ​​проверяет, должен ли он откладывать программу, выполняемую ЦП (если есть что-то более высокое), или если он должен просто вернуться в режим сна и позволить ЦП продолжать выполнение программы, которая уже была запущена , –

ответ

1

Таким же образом, что вы можете запускать несколько процессов пользовательского пространства одновременно: Только один из них на самом деле использует процессор в любой момент времени. У вас есть некоторые прерывания, которые заставляют их отказаться от него.

Код, который является частью операционной системы, здесь ничем не отличается (кроме того, что он контролирует настройку этого планирования в первую очередь).

Вы также должны различать процессы, выполняемые ОС в фоновом режиме (я полагаю, это то, о чем вы здесь говорите) и системные вызовы (которые выполняются как часть «нормальных» процессов, которые временно переключаются на режим супервизора).

Смежные вопросы