8

我有一个关于 Windows 和 linux 中进程和线程的时间量子的问题。

我知道操作系统通常会为每个线程提供固定的时间量。(我知道时间量会根据前台或后台线程而变化。也可能会根据进程的优先级而变化。)

每个进程是否有固定的时间段?例如。如果操作系统为每个进程提供 36 个时间片,并且如果一个进程有 2 个线程,那么每个线程将获得 18 个时间片。如果线程数变为 3,则每个线程将得到 12。

但是,如果每个进程的固定量不存在并且操作系统为每个线程提供固定量(不依赖于父进程。)那么我可以通过产生多个线程来使我的进程更高效。(假设我没有两个我的代码中的互斥锁/信号量。)

我有一个在两个操作系统(Windows 和 linux)上运行的应用程序。所以,我是在一般意义上问它。

谢谢

4

2 回答 2

1

在 linux 上,从调度的角度来看,线程和进程是等价的。因此,如果一个进程产生两个线程,每个线程应该得到 36 个量程。虽然我想听听比我可信度更高的人来确认这一点。

于 2012-08-24T20:54:19.783 回答
1

很有趣的问题:)

我并没有确切的细节,但是从下面的链接中你可以看到现代操作系统有一个基于估计的线程调度方法。

http://technet.microsoft.com/en-us/magazine/2007.02.vistakernel.aspx

于 2012-08-24T20:56:33.620 回答