Как ядро может работать все время, когда процессор может выполнять только один процесс за раз? То есть, если ядро постоянно занимает процессор, то как идут другие процессы.Как ядро может работать все время?
Пожалуйста, объясните Спасибо
Как ядро может работать все время, когда процессор может выполнять только один процесс за раз? То есть, если ядро постоянно занимает процессор, то как идут другие процессы.Как ядро может работать все время?
Пожалуйста, объясните Спасибо
Таким же образом, что вы можете запускать несколько процессов пользовательского пространства одновременно: Только один из них на самом деле использует процессор в любой момент времени. У вас есть некоторые прерывания, которые заставляют их отказаться от него.
Код, который является частью операционной системы, здесь ничем не отличается (кроме того, что он контролирует настройку этого планирования в первую очередь).
Вы также должны различать процессы, выполняемые ОС в фоновом режиме (я полагаю, это то, о чем вы здесь говорите) и системные вызовы (которые выполняются как часть «нормальных» процессов, которые временно переключаются на режим супервизора).
Он не работает все время. Ядро устанавливает прерывание тревоги для CPU, чтобы разбудить его так часто, а затем, когда прерывается тревога, ЦПУ прекращает выполнение программы и переходит к вектору прерывания ядра. Когда процессор начинает выполнять ядро, ядро проверяет, должен ли он откладывать программу, выполняемую ЦП (если есть что-то более высокое), или если он должен просто вернуться в режим сна и позволить ЦП продолжать выполнение программы, которая уже была запущена , –