操作系统的死锁概念,临界区概念

来源:互联网 发布:linux保存文件并退出 编辑:程序博客网 时间:2024/04/30 01:53
操作系统中有若干进程并发执行,它们不断申请、使用、释放系统资源,虽然系统的进程协调、通信机构会对它们进行控制,但也可能出现若干进程都相互等待对方释放资源才能继续运行,否则就阻塞的情况。此时,若不借助外界因素, 谁也不能释放资源, 谁也不能解除阻塞状态。根据这样的情况,操作系统中的死锁被定义为系统中两个或者多个进程无限期地等待永远不会发生的条件,系统处于停滞状态,这就是死锁。  
产生死锁的原因主要是:  
(1) 因为系统资源不足。  
(2) 进程运行推进的顺序不合适。  
(3) 资源分配不当等。  
果系统资源充足, 进程的资源请求都能够得到满足,死锁出现的可能性就很低, 否则就会因争夺有限的资源而陷入死锁。其次,进程运行推进顺序与速度不同,也可能产生死锁。  
产生死锁的四个必要条件:(如果产生死锁,就能推出下面的结论是正确的)
(1) 互斥条件:一个资源每次只能被一个进程使用。  
(2) 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。  
(3) 不剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺。  
(4) 循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。  

这四个条件是死锁的必要条件, 只要系统发生死锁, 这些条件必然成立, 而只要上述条件之一不满足,就不会发生死锁。  

操作系统临界区

    多道程序系统中存在许多进程,它们共享各种资源,然而有很多资源一次只能供一个进程使用,一次仅允许一个进程使用的资源称为临界资源。
使用临界资源的代码段称为临界区
进程进入临界区的调度原则是:①如果有若干进程要求进入空闲的临界区,一次仅允许一个进程进入。
②任何时候,处于临界区内的进程不可多于一个。如已有进程进入自己的临界区,则其它所有试图进入临界区的进程必须等待。
③进入临界区的进程要在有限时间内退出,以便其它进程能及时进入自己的临界区。
④如果进程不能进入自己的临界区,则应让出CPU,<避免进程出现“忙等”现象。



0 0
原创粉丝点击