操作系统--死锁应对的有关问题(1)
来源:互联网 发布:c语言头文件大全及含义 编辑:程序博客网 时间:2024/05/10 05:31
1,计算机发生死锁的原因
死锁发生的原因就是对计算机资源的一种争夺而造成的一种现象。
2,对死锁的描述
线程在使用资源时,是通过如下顺序:
a,请求资源
b,使用资源
c,释放资源
在请求资源没有批准的时候,线程开始等待:一种是阻塞式等待,另一种是立即返回。执行别的任务。
立即返回时,线程是不会发生死锁的。只有在阻塞式等待时,发生死锁现象。
死锁正式定义:
如果有一组线程,每个线程都是在等待一个事件的发生,而这个事件只能由该租线程里面的另一个线程发出,
我们称这组线程发生了死锁。
3,死锁的4个必要的条件
①:死锁发生的必要条件是资源有限。
这是非常直观的现象,如果资源是无限的,大可不必等待别的线程释放资源后再去请求资源,和人类一样。
②:死锁的另一个必要的条件就是持有等待。
如果一个线程一直不释放资源,别人在请求资源时,总是等不到资源。造成死锁。
③:还有就是不可抢占。
如果一个线程能抢占别的线程的资源,别的线程的资源就会立即释放,不会造成持有等待。
④:循环等待条件。
也就是死循环。
4,死锁的应对
①:允许死锁的发生
一:可以当作没看见,不处理。
二:在死锁发生之后,才想办法处理。
②:不允许死锁的发生
一:考虑周全。
二:使用消除死锁的必要条件。
5,消除死锁的必要条件
①:消除资源独占条件
就是将有限资源增大到无限和共享资源。
将有限资源增大到无限,这个并不实际,也不需要。线程总是有限,所以对请求的资源也可限。
共享资源是可以实现的,比如共享的打印机。
②:消除保持和请求条件
就是一个进程一次性请求完所有的资源,不再请求一点资源后,再去执行一些任务。
这样做的缺点就是资源太过浪费,有些进程只有在最后的时候才请求所需的资源,如果一开始就占用,非常影响效率。
③:消除非抢占条件
就是运行进程对别的进程资源的抢占。这也是cpu和内存调度的一个关键。
缺点是,如果在抢占资源时,将一个死锁资源抢占过来,则后果很严重。
④:消除循环等待时间
就是我们设定请求资源的顺序,不再让进程随机无序的请求资源。
死锁发生的原因就是对计算机资源的一种争夺而造成的一种现象。
2,对死锁的描述
线程在使用资源时,是通过如下顺序:
a,请求资源
b,使用资源
c,释放资源
在请求资源没有批准的时候,线程开始等待:一种是阻塞式等待,另一种是立即返回。执行别的任务。
立即返回时,线程是不会发生死锁的。只有在阻塞式等待时,发生死锁现象。
死锁正式定义:
如果有一组线程,每个线程都是在等待一个事件的发生,而这个事件只能由该租线程里面的另一个线程发出,
我们称这组线程发生了死锁。
3,死锁的4个必要的条件
①:死锁发生的必要条件是资源有限。
这是非常直观的现象,如果资源是无限的,大可不必等待别的线程释放资源后再去请求资源,和人类一样。
②:死锁的另一个必要的条件就是持有等待。
如果一个线程一直不释放资源,别人在请求资源时,总是等不到资源。造成死锁。
③:还有就是不可抢占。
如果一个线程能抢占别的线程的资源,别的线程的资源就会立即释放,不会造成持有等待。
④:循环等待条件。
也就是死循环。
4,死锁的应对
①:允许死锁的发生
一:可以当作没看见,不处理。
二:在死锁发生之后,才想办法处理。
②:不允许死锁的发生
一:考虑周全。
二:使用消除死锁的必要条件。
5,消除死锁的必要条件
①:消除资源独占条件
就是将有限资源增大到无限和共享资源。
将有限资源增大到无限,这个并不实际,也不需要。线程总是有限,所以对请求的资源也可限。
共享资源是可以实现的,比如共享的打印机。
②:消除保持和请求条件
就是一个进程一次性请求完所有的资源,不再请求一点资源后,再去执行一些任务。
这样做的缺点就是资源太过浪费,有些进程只有在最后的时候才请求所需的资源,如果一开始就占用,非常影响效率。
③:消除非抢占条件
就是运行进程对别的进程资源的抢占。这也是cpu和内存调度的一个关键。
缺点是,如果在抢占资源时,将一个死锁资源抢占过来,则后果很严重。
④:消除循环等待时间
就是我们设定请求资源的顺序,不再让进程随机无序的请求资源。
- 操作系统--死锁应对的有关问题(1)
- 死锁的有关问题
- 操作系统--进程调度的有关问题(1)
- 软考中有关死锁的问题
- SQLSERVER2008 死锁有关问题
- 操作系统--死锁问题
- 操作系统--锁的实现的有关问题
- 有关死锁的讨论
- 操作系统--进程调度的有关问题(2)
- 有关万向节死锁(Gimbal Lock)的问题
- 操作系统的死锁
- 操作系统---进程的死锁
- 操作系统之死锁与死锁的处理
- 有关操作系统的基本知识
- 进程死锁的解决 操作系统
- 【操作系统】处理死锁的方法
- 有关《自己动手写操作系统》的问题请在此回复
- 面试中有关操作系统的问题,持续更新中,,,
- DBGridEh的前两列需要固定内容
- JS精华入门之【二】
- 《TCP-IP详解 卷1:协议》学习笔记(二)
- hdu 4035 Maze
- oracle sql日期比较
- 操作系统--死锁应对的有关问题(1)
- android Notification 的使用
- 英语月份的缩写
- 设计模式之迭代器模式
- Sublime Text实用技巧
- 【C++】第 1 章:C++基础知识
- java程序中三种OutOfMemory异常
- Code Fragment-使用代码块
- python的memcache使用如果对key设置了一个int型