我有关于进程线程调度的以下查询。 a)如果我的进程A有3个线程,那么可以在SMP m / c中的不同CPU上同时调度这些线程,或者它们将在同一个cpu上给出时间片。
b)假设我有两个进程A有3个线程,进程B有2个线程(所有线程具有相同的优先级),那么分配给每个线程的cpu时间(时间片)取决于进程中的线程数或者不? 如果我错了,请纠正我,以便将cpu时间分配给进程,然后在其线程之间共享,即给予进程A线程的时间片小于进程B线程的时间片。
答案 0 :(得分:3)
这取决于您的操作系统和线程实现。 POSIX线程定义了一个接口,用于定义线程的调度方式:每个线程是否被平等调度,或者每个进程是否均匀调度。并非所有平台都支持所有调度类型。
在Linux上,使用nptl,默认行为是平等地调度所有线程,因此如果所有11个线程都受CPU限制,则具有10个线程的进程可能会获得10个带有1个线程的进程的时间。