является диспетчером отдельного процесса или он просто выполняется в контексте какого-то другого процесса - PullRequest
0 голосов
/ 29 апреля 2011

привет В операционной системе Unix BSD 5 у нас есть диспетчер, отдельный процесс с идентификатором процесса или его код выполняется в контексте какого-то другого процесса. например, если у нас есть какая-то пользовательская программа, которую нужно отправить обратно в «готовность к запуску в памяти» ... так диспетчер будет работать в контексте пользовательской программы или нет? любая помощь будет оценена.

1 Ответ

0 голосов
/ 30 апреля 2011

Ядро Linux (Unix, BSD, MacOS X, ...) действует как «диспетчер».Он решает, какой процесс должен быть запущен следующим, корректируя приоритеты и статус процессов, и гарантирует, что выбранный процесс не будет работать дольше, чем его квант времени (до того, как ядро ​​сможет контролировать, какой процесс выполняется следующим снова).Ядро использует упреждающее планирование (а не совместное планирование).Он категорически не работает в контексте пользовательской программы;он работает в контексте ядра.

Вы можете обсудить, является ли ядро ​​отдельным процессом.Это, конечно, не часть вашего пользовательского процесса, поэтому он отдельный;вопрос в том, действительно ли это процесс.Однако это несколько философский вопрос, и он на самом деле не влияет на вас - есть отдельная часть системы, которая контролирует планирование и распределение процессов.

...