0

循环调度是否会导致死锁?如果 CPU 调度基于循环,并且在调度中的某一时刻,两个不同的进程请求没有进程拥有的同一个文件,会发生什么情况?这会导致死锁还是将文件提供给应该在计划的下一步中执行的进程?

4

2 回答 2

1

rr调度当然会死锁。例如,如果进程A请求并获得打印机但超过了它的时间量,而进程B恰好其正常的cpu突发时间等于它的时间量..那么它的执行将完成..然后它请求进程 A 仍然持有的打印机..在队列尾部等待进入内存时进程 B 仍然持有..然后发生死锁

于 2012-08-17T09:57:35.547 回答
1

您描述的情况不会导致死锁。锁是原子的,因此一次只能有一个进程持有一个。因此,当时有控制权的进程将获得锁,而第二个进程将失败。

但是,在更一般的情况下,RR 调度中可能会发生死锁。考虑两个进程和两个锁。进程 A 获取锁 1,然后将处理器让给进程 B。进程 B 然后获取锁 2 并尝试获取锁 1。由于锁 1 属于进程 A,因此进程 B 将进入休眠状态。进程 A 唤醒并尝试获取锁 2。锁 2 仍属于进程 B,因此两个进程都无法前进,因此您陷入了死锁。

于 2011-03-10T10:18:55.963 回答