почему пользовательский контекст и контекст ядра ... unix - PullRequest
2 голосов
/ 17 апреля 2009

вопрос, связанный с операционными системами Не знаю, если я могу задать здесь

но думал, что получу правильное объяснение на этом форуме

когда процесс исполняется в контексте пользователя ... не имеет прецедентов с более высоким приоритетом в контексте ядра, постоянно блокирующих процесс в контексте пользователя ...

для меня туманно ... понятия

......

Ответы [ 4 ]

3 голосов
/ 17 апреля 2009

В операционной системе существует два основных типа планировщика: упреждающие планировщики и не вытесняющие планировщики.

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

Но планировщики без вытеснения встречаются редко, и планировщик Linux не такой. Он использует временные интервалы, чтобы позволить процессу работать в течение короткого периода времени перед его отменой планирования, он также включает в себя приоритет, но сохраняет процессы планирования с более низким приоритетом, вы должны взглянуть на эту статью о планировщике Linux .

2 голосов
/ 17 апреля 2009

Эта публикация Stackoverflow содержит обсуждение, которое включает краткий обзор того, как работает режим ядра, с объяснением некоторых жаргонов. В частности, посмотрите на раздел «Краткий учебник по ядру и пользовательскому режиму». Это может помочь пролить свет на ваш вопрос.

1 голос
/ 17 апреля 2009
1 голос
/ 17 апреля 2009

Ваш процесс в режиме ядра также может быть прерван, когда он достигает кванта.

Википедия: Премиум

...