如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
万方数据关于计算机操作系统中死锁问题的讨论’胡泉在计算机系统中,资源是有限的,并且许多的资源都是独占性资源,在任何时刻都只能被一个进程使用。另一方面,对于一个进程而言,在其整个生命周期中一般不可能仅使用一个资源,而是请求使用多个资源。对于集中式操作系统是如此,对于网络操作系统和分布式操作系统更是如此。现代操作系统(包括集中式操作系统、网络操作系统和分布式操作系统)的重要特征是并发处理、资源共享和进程在CPU上的执行时间的不确定性,这些特征是相辅相成的。没有资源共享就不可能并发执行,并发执行的结果必然造成进程执行的不确定性。资源共享的目的是为了提高资源的利用率,提高用户程序的执行速度和整个计算机系统的性能。但是,资源共享和多个进程的并发执行就必然出现进程对资源的竞争,有竞争就有可能出现多个进程的死锁。死锁一直是操作系统中始终没有根本解决的问题,因而始终是学习和研究操作系统的重点问题之一。本文就死锁的概念和发生死锁的原因及可能发生死锁的问题进行讨论。1死锁现象及其原因分析死锁是指在一个进程集合中,每个进程都在等待一些事件的发生,而这些事件又仅仅被同组中的另一些进程所触发,没有一个进程能够顺利运行下去,所有进程都永远相互等待。或者说,死锁现象是一个进程在等待另一个进程释放它所占有的资源,但另一个进程也不能获得其需要的资源,也处于等待状态中,导致无法释放其占有的资源,造成所有的进程都不能运行,永无休止等待。由此可见,系统中单个进程不会发生死锁,发生死锁必然涉及两个或两个以上的进程。产生死锁的原因可以归结为两点,即:竞争资源和进程推进顺序非法。当系统中供多个进程共享的资源,不能同时满足进程运行的需要时,如果进程推进的顺序非法,就会造成进程竞争资源的死锁。资源可以是硬件,也可以是一组信息,甚至一个数据,但是一个资源在同一个时刻只能被一个进程所使用,这样的资源被称为临界资源。我们将资源分成两类:可剥夺资源(如存储器)和不可剥夺资源(如打印机)。一个进程可以将可剥夺资源从拥有它的进程中剥夺而不会有任何地副作用,相反的,没有办法将~个进程正在使用的不可剥夺资源取走而不会引起任何故障。因此,竞争临界资源的死(华中师范大学计算机科学系析、讨论,希望本文的讨论有利于读者对死锁问题的深刻理解,并深入研究解决死锁问第14卷第5期2001年10月高等函授学报(自然科学版)Education(NaturalScie.nces)文章编号:1006—7353(2001)04—0048(15)一03湖北武汉430079)摘要:本文就死锁的概念、必要条件和若干可能发生死锁的问题作了深入浅出的分题的方法。关键词:操作系统;计算机系统;资源共享;进程中图分类号:TP文献标识码:A·收稿日期:2001—03—20JournalV01.1448ofHigherCorrespondenceNo.5October2001316万方数据锁和不可剥夺资源有密切的关系。比如一个系统中拥有一台打印机和一台软驱都是不可剥夺资源可供P1、P2两个进程使用,当P1进程占用了打印机,p2占用软驱后,此时,若p2请求使用打印机,则p2进程将被阻塞,然后P,进程请求使用软驱,同样也不可获得软驱,于是P,进程也被阻塞,此时便造成了不可剥夺资源竞争的死锁。而可剥夺资源的死锁是可以通过进程间的资源再分配化解的,比如分时处理就是利用了CPU资源和内存资源的可剥夺性。但是资源竞争并不是导致死锁的直接原因,对于多道程序系统来说,多个进程并发执行时,进程推进顺序的不当便会直接导致死在并发处理中,进程的异步性导致进程必需按照某个顺序推进,由此便总结出产生死锁的四个必要条件:(1)互斥条件:指进程对所分配的资源进行排它性使用,即在一段时间内某资源只被一个进程占用。如果此时还有其他进程要求使用该资源,申请者必需被阻塞,直至占有该资源的进程释放资源后才能被唤醒。(2)请求和保持条件:进程已经保持了至少一个资源,但又提出了新的资源要求,而该资源又已被其它进程所占有,此时请求阻塞,但又对已经获得的资源保持不变。(3)不剥夺条件:进程已获得的资源在未使用完之前不能被剥夺,只能在使用完时由(4)环路等待条件:在发生死锁时,必然存在一个进程~资源的环形链,即进程集合中的{P1,P2,⋯⋯,P。}中,P1正在等待一个P:占用的资源,P2正在等待P3的一个占用资源,⋯⋯,P。正在等待P,占用的一个资源。如图1所示。上述四个条件只能是必要条件,决不能是充分条件。例如,有如下四句话:(1)有死锁必有环路;(2)有环路必有死锁;(3)没有死锁一定没有环路;(4)没有环路必然没有死锁。上述这四句话只有(1)、(4)两句正确,而(2)、(3)两句是错误的。原因是环路是死锁的必要条件而不是充分条件。3死锁问题讨论3.1进程数与资源数