操作系统被定义为一个程序,该程序最初由A boot程序加载到计算机后,管理计算机中的所有其他应用程序。
操作系统基本上是接口在计算机用户和计算机硬件之间,并控制程序的执行。
在本文中,我将详细说明操作系统中的死锁。
什么是僵局?
当一个过程在操作系统中执行时,它以以下方式使用资源 -
-
请求资源
-
使用资源
-
释放资源
a 僵局是一种情况,因为每个过程都是持有资源和等待另一个资源获得的另一个资源其他一些过程。
要在操作系统中定义僵局,在这种情况下,两个或多个过程或线程 无法进行,因为每个过程都在等待彼此等待<强>发布资源或终止。
僵局的例子
有两个过程 - 过程1 和过程2 。
有两个资源 - 资源1 和资源2 。
- 资源1 分配给过程1 ,资源2 分配给过程2 。
- 过程1 正在等待资源2 ,该由过程2 和过程2 2 正在等待资源1 由过程1 。 获得
请参阅以下图以了解条件 -
在上述情况下,过程1 和过程2 的要求都无法实现,因此这被定义为僵局的条件强>。
僵局发生的必要条件(科夫曼条件)
如果同时发生以下四个条件,可能会出现僵局,这些情况首先是由 Edward G. Coffman - -
-
相互排斥 - 这意味着两个或多个资源是不可共享的。
-
保持和等待 - 一个过程至少有一个资源并等待其他资源。
-
没有先发制人 - 除非流程释放资源,否则不能从一个过程中获取资源。
-
圆形等待 - 一组互相等待的过程。
僵局处理
绝对有必要处理僵局的状况,否则它可能会恶化您的系统并妨碍多个过程的执行。
死锁处理是指针对预防,检测和解决方案 deslove deadlocks的策略和技术。
有多种技术和策略可用于处理僵局 -
- 无知
- 预防僵局
- 僵局避免
- 死锁检测和恢复
1。无知 -
它是所有机制中最广泛使用的方法。在这种方法中,操作系统假定僵局永远不会发生,它只是忽略了僵局。此方法最适合单个最终用户系统,该系统仅用于浏览和所有其他内容。
2。预防僵局 -
僵局的状况仅在相互排斥,保持和等待时才发生,没有先发制人和循环等待。如果我们能以某种方式否定在任何时候都可以否定在系统中永远不会发生僵局。
因此,这种方法背后的主要思想是使僵局发生的四个必要条件之一。
3。避免僵局 -
在此技术中,操作系统在操作系统执行的每个步骤中检查系统是否处于安全状态还是不安全状态。这个过程一直持续到系统处于安全状态为止。一旦系统移至不安全状态,操作系统就必须回溯一步。
4。僵局检测和恢复 -
这种方法使该过程陷入僵局,然后定期检查僵局是否发生。如果发生僵局,则应用上述一些讨论的恢复方法来摆脱僵局。
结论
结论是,操作系统通常使用僵局无知技术来处理僵局,因为其他技术会降低操作系统。尽管如此,还有一些组件比其他组件需要更多的保护。为此,操作系统结合了以前的算法,通常试图打破圆形等待。
就是这样!您已经成功地了解了操作系统中的Deaddlocks!
在LinkedIn上与我联系:-Linkedin
请查看我的GitHub,以了解惊人的项目:-Github
查看我的个人投资组合:-Aryan's Portfolio