循环调度和死锁

时间:2011-02-27 11:24:02

标签: scheduling deadlock round-robin

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

2 个答案:

答案 0 :(得分:1)

您描述的案例不会导致死锁。锁是原子的,因此一次只能有一个进程。因此,当时控制的任何进程都将获得锁定,第二个进程将失败。

但是,在更一般的情况下,RR调度中可能发生死锁。考虑两个进程和两个锁。进程A获取锁1,然后将处理器生成进程B.进程B然后获取锁2并尝试获取锁1.由于锁1属于进程A,因此进程B将休眠。进程A唤醒并尝试获取锁2.锁2仍然属于进程B,因此任何进程都不能继续前进并且您有死锁。

答案 1 :(得分:1)

rr调度当然可以是死锁。例如,如果进程A请求并获得打印机但是超过了它的时间量程,并且processB碰巧正常的cpu突发时间等于其时间量。那么它的执行将完成。然后它请求打印机哪个进程A仍然保持...在队列尾部等待进入内存仍然被进程B暂停..然后发生了死锁