2009-04-17 4 views
2
UNIX

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

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

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

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

......

ответ

1

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

Википедия: Preemption

+0

Не могли бы вы добавить некоторые ссылки на ваш ответ Джером? –

3

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

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

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

2

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