假设我们使用信号量来提供互斥,并且一个过程正在关键部分执行。然后另一个进程来使用关键区域,是否会被放入等待队列?
我怀疑哪个进程将此进程置于等待队列中?
提前致谢,
答案 0 :(得分:2)
在典型的操作系统中,这由内核而不是进程处理。内核会跟踪存在哪些关键区域以及哪些进程占用它们。同样在典型的操作系统中,调度程序也是内核的一部分,因此调度程序将使进程处于等待状态(或更准确地说,更可能是阻塞状态)。
答案 1 :(得分:1)
当线程/进程/任务请求互斥对象时,它会向处理互斥对象的内核进行系统调用。如果此对象目前不可用,则内核将此线程/进程/任务置于等待/阻塞队列中并选择另一个队列。