2011-02-27 77 views
0

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

回答

1

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

但是,在更一般的情况下,RR调度中可能会发生死锁。考虑两个进程和两个锁。进程A获取锁1,然后使处理器进入进程B.进程B然后获取锁2并尝试获取锁1.因为锁1属于进程A,进程B将进入休眠状态。进程A唤醒并试图获取锁2.锁2仍然属于进程B,因此这两个进程都不能向前移动,并且发生死锁。

1

rr调度可能会发生死锁。例如,如果进程A请求并获取打印机但超出了其时间范围,并且processB碰巧有其正常的cpu突发时间等于其时间范围,则其执行将完成..然后它请求打印机哪个进程A仍然持有..当在队列尾部等待进入内存仍然由进程B保留时,此时发生死锁