2010-04-08 72 views
1

我有以下有关进程线程调度的查询。 a)如果我的进程A有3个线程,那么可以在SMP m/c中的不同CPU上同时调度这些线程,否则它们将在同一个cpu上被赋予时间片。进程线程调度

b)假设我有两个进程A和三个线程,进程B有两个线程(所有线程的优先级相同),那么分配给每个线程(时间片)的CPU时间取决于进程中的线程数或不? 纠正我,如果我错了是这样,CPU时间分配给进程,然后在它的线程之间共享,即给进程A线程的时间片小于进程B线程。

回答

3

这取决于你的操作系统和线程的实现。 POSIX线程定义了一个接口,用于定义如何调度线程:每个线程是平均调度还是每个进程调度平均。并非所有调度类型在所有平台上都受支持。

在Linux上,使用NPTL,默认行为是平等调度所有线程,因此有10个线程的过程可能会得到10倍多的时间,过程与1个线程,如果所有十个线程CPU约束。