死锁:修订间差异
外观
删除的内容 添加的内容
小 機器人 新增: vi:Deadlock |
小 機器人 新增: vi:Deadlock; 細部更改 |
||
第1行: | 第1行: | ||
'''死锁''',这里指的是[[进程]]死锁,是一个计算机技术的名词。它是[[操作系统]]的一种状态,当一个或多个进程等待系统资源,而系统资源又同时被此进程本身或者其它进程占用,就形成了死锁。它有一个变种是[[活锁]]。 |
'''死锁''',这里指的是[[进程]]死锁,是一个计算机技术的名词。它是[[操作系统]]的一种状态,当一个或多个进程等待系统资源,而系统资源又同时被此进程本身或者其它进程占用,就形成了死锁。它有一个变种是[[活锁]]。 |
||
==简介== |
== 简介 == |
||
例如,一个[[进程]] p1占用了显示器,同时又必须使用打印机,而打印机被进程p2占用,p2又必须使用显示器,这样就形成了死锁。现实生活中也有死锁的例子,在一个十字路口,四面的汽车都在等待(靠右行),每次都是右边的汽车先行。 |
例如,一个[[进程]] p1占用了显示器,同时又必须使用打印机,而打印机被进程p2占用,p2又必须使用显示器,这样就形成了死锁。现实生活中也有死锁的例子,在一个十字路口,四面的汽车都在等待(靠右行),每次都是右边的汽车先行。 |
||
==死锁的预防== |
== 死锁的预防 == |
||
如果系统中只有一个进程,当然不会产生死锁。如果每个进程仅需求一种系统资源,也不会产生死锁。不过这只是理想状态,在现实中是可遇不可求的。 |
如果系统中只有一个进程,当然不会产生死锁。如果每个进程仅需求一种系统资源,也不会产生死锁。不过这只是理想状态,在现实中是可遇不可求的。 |
||
第14行: | 第14行: | ||
'''循环等待''' |
'''循环等待''' |
||
==死锁的避免== |
== 死锁的避免 == |
||
我们也可以尝试回避死锁。因为在理论上,死锁总是可能产生的,所以操作系统尝试监视所有进程,使其没有死锁。 |
我们也可以尝试回避死锁。因为在理论上,死锁总是可能产生的,所以操作系统尝试监视所有进程,使其没有死锁。 |
||
==死锁的消除== |
== 死锁的消除 == |
||
最简单的消除死锁的办法是重启系统。更好的办法是终止一个进程的运行。 |
最简单的消除死锁的办法是重启系统。更好的办法是终止一个进程的运行。 |
||
同样也可以把一个或多个进程回滚到先前的某个状态。如果一个进程被多次回滚,迟迟不能占用必需的系统资源,可能会导致[[进程饥饿]]。 |
同样也可以把一个或多个进程回滚到先前的某个状态。如果一个进程被多次回滚,迟迟不能占用必需的系统资源,可能会导致[[进程饥饿]]。 |
||
==参见== |
== 参见 == |
||
*[[競爭危害]] |
*[[競爭危害]] |
||
⚫ | |||
[[Category:操作系統技術]] |
[[Category:操作系統技術]] |
||
[[Category:協同控制]] |
[[Category:協同控制]] |
||
⚫ | |||
[[ca:Abraçada mortal]] |
[[ca:Abraçada mortal]] |
2009年7月3日 (五) 12:22的版本
死锁,这里指的是进程死锁,是一个计算机技术的名词。它是操作系统的一种状态,当一个或多个进程等待系统资源,而系统资源又同时被此进程本身或者其它进程占用,就形成了死锁。它有一个变种是活锁。
简介
例如,一个进程 p1占用了显示器,同时又必须使用打印机,而打印机被进程p2占用,p2又必须使用显示器,这样就形成了死锁。现实生活中也有死锁的例子,在一个十字路口,四面的汽车都在等待(靠右行),每次都是右边的汽车先行。
死锁的预防
如果系统中只有一个进程,当然不会产生死锁。如果每个进程仅需求一种系统资源,也不会产生死锁。不过这只是理想状态,在现实中是可遇不可求的。
禁止抢占
持有和等待
互斥
循环等待
死锁的避免
我们也可以尝试回避死锁。因为在理论上,死锁总是可能产生的,所以操作系统尝试监视所有进程,使其没有死锁。
死锁的消除
最简单的消除死锁的办法是重启系统。更好的办法是终止一个进程的运行。
同样也可以把一个或多个进程回滚到先前的某个状态。如果一个进程被多次回滚,迟迟不能占用必需的系统资源,可能会导致进程饥饿。
参见
这是一篇與计算机相關的小作品。您可以通过编辑或修订扩充其内容。 |