2010-11-11 3 views
0

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

ответ

2

Потоки запускаются/планируются операционной системой, и поэтому они получают свое собственное процессорное время. Процессное время процессора - это всего лишь сумма процессорных времен всех потоков в процессе.

Если вы хотите, чтобы ваш процесс планировал сами задачи, вы должны использовать волокна (Windows). Это своего рода потоки, но они не запланированы ОС. Процесс должен обрабатывать планирование самих волокон.

4

Я подозреваю, что ответ зависит от ОС. В Windows процесс не просто обойден, а полностью игнорируется - все, с которым работает планировщик, это потоки. Процессы имеют отношение только к степени, в которой все неядерные потоки должны принадлежать к некоторому процессу, и каждый процесс должен содержать хотя бы один поток.

+1

На Linux, а также потоки фактически полноценные процессы в планировщике (хотя и с их данными совместно с родительским процессом). –

Смежные вопросы