操作系统——进程死锁

进程管理师操作系统的核心,但如果设计不当,就会出现死锁的问题。如果一个进程在等待一个不可能发生的事情,则进程就死锁了。而如果一个或多个进程产生死锁,就会造成系统死锁。
死锁发生的必要条件:
互斥条件:即一个资源每次只能被一个进程使用,在操作系统中这是真实存在的情况。
保持和等待条件:有一个进程已获得了一些资源,但因请求其他资源被阻塞时,对已获得的资源保持不放。
不剥夺条件:有些系统资源是不可剥夺的,当某个进程已获得这种资源后,系统不能强行收回,只能由进程使用完时自己释放。
环路等待条件:若干个进程形成环形链,每个都占用对方要申请的下一个资源。
解决死锁的策略:
死锁预防:
例如:要求用户申请资源时一起申请所需的全部资源,这就破坏了保持和等待条件;将资源分层,得到上一层资源后,才能申请下一层资源,它破坏了环路等待条件。预防通常会降低系统的效率。
死锁避免:避免是指进程在每次申请资源时判断这些操作是否安全,典型算法是“银行家算法”。但这种算法会增加系统的开销。
死锁检测:前两者是事前措施,而死锁的检测则是判断系统是否处于死锁状态,如果是,则执行死锁解除策略。
死锁解除:这是与死锁检测结合使用的,它使用的方式就是剥夺。即将资源强行分配给别的进程。
 
 
 
 
原文地址:https://www.cnblogs.com/CharmingDang/p/9663939.html