EX1
进程 A 包含了 1 个用户级线程$t_{1}$,进程 B 包含了 100 个用户级线程$t_{i},i \in (1,100)$,$t_1$运行的时间和$t_i$的运行时间是否一样?
不一样,$t_1$运行的时间是$t_{i}$的 100 倍,进程 B 获得 CPU 的时间与进程 A 的相等
EX2
若进程 A 和进程 B 中的线程都是内核支持线程,两者的运行时间是否一样?
$t_1=t_i$,进程 B 获得 CPU 的时间是进程 A 的 100 倍
Explanation
当一个系统设置了用户级线程时,虽然每个进程可能有多个线程,但对于操作系统内核来说,它只看到进程,而看不到进程内部的线程。因此,内核的调度仍然是以进程为单位进行的。在采用时间片轮转调度算法时,操作系统会公平地将处理器时间分配给每个进程。也就是说,每个进程都会轮流获得一定的处理器时间(时间片)来执行。这确保了各个进程之间的公平性。
而运行内核支持线程时,操作系统内核是可以看到进程内部的线程的。因此,内核的调度是以线程为单位进行的。也就是说,每个线程都会轮流获得一定的处理器时间(时间片)来执行。这确保了各个线程之间的公平性。