1

假设我们使用信号量来提供互斥,并且一个进程正在关键部分执行。然后另一个进程来使用临界区,它会被放入等待队列吗?

我怀疑哪个进程将此进程放入等待队列?

提前致谢,

4

2 回答 2

2

在典型的操作系统中,这是由内核而不是进程处理的。内核跟踪存在哪些关键区域以及哪些进程正在占用它们。同样在典型的操作系统中,调度程序也是内核的一部分,因此调度程序会将进程置于等待状态(或者更准确地说更可能是阻塞状态)。

于 2012-06-14T03:11:38.993 回答
1

当线程/进程/任务请求互斥对象时,它会对处理互斥对象的内核进行系统调用。如果此时此对象不可用,则内核将此线程/进程/任务放入等待/阻塞队列并选择另一个。

于 2012-06-14T08:13:05.573 回答