Пользовательский режим и режим ядра: разные программы одновременно - PullRequest
0 голосов
/ 29 апреля 2019

Возможно ли, что один процесс работает в режиме ядра, а другой в режиме пользователя одновременно?

Я знаю, это не вопрос кодирования, но, пожалуйста, направьте меня, если кто-то знает ответ.

Ответы [ 2 ]

2 голосов
/ 30 апреля 2019

Чтобы два процесса действительно выполнялись одновременно, у вас должно быть несколько процессоров. И действительно, когда у вас несколько процессоров, то, что выполняется на разных процессорах, очень плохо связано, и вы, безусловно, можете иметь один процесс, выполняющий пользовательский код на одном процессоре, в то время как другой процесс выполняет код ядра (например, выполняет некоторую работу внутри системного вызова). на другом процессоре.

Если вы запрашиваете только один процессор, в этом случае у вас не может быть двух работающих процессов одновременно. Но то, что вы можете иметь, это два запускаемых процесса, что означает два процесса, которые оба готовы к запуску, но поскольку имеется только один ЦП, фактически может работать только один из них. Один из запускаемых процессов может находиться в режиме пользователя - например, рассмотрим длительный замкнутый цикл, который был прерван после того, как его квота времени была закончена. Другой выполняемый процесс может находиться в режиме ядра - например, рассмотрим процесс, который сделал системный вызов read () с диска, ядро ​​отправило запрос чтения на диск, но запрос чтения завершен, и теперь процесс готов к повторному запуску в режим ядра и завершите вызов read ().

1 голос
/ 29 апреля 2019

Да, это возможно.Даже несколько процессов могут находиться в режиме ядра одновременно.

Просто один процесс не может быть в обоих режимах одновременно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...