死锁的学习笔记
来源:互联网 发布:php网页爬虫 编辑:程序博客网 时间:2024/06/05 23:03
一、什么是死锁?如何避免死锁?
所谓死锁:就是指两个或两个以上的进程在执行过程中,因为争夺资源而造成的一种互相等等待的现象,若无外力作用,他们将无法进行下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程成为死锁进程。由于资源占用是互斥的,当摸个进程提出申请资源后,使得有关进程在无外力的刺耳住下,永远分配不到必须的资源而无法继续运行,这就产生了一种特殊现象死锁。死锁的发生具备以下4个必要条件
1、互斥条件:指进程对所分配到的资源进行排他性使用,即在一段时间内某资源只由一个进程占用。如果此时还有其他进程请求资源,则请求者只能等待,直至占有资源的进程用毕释放。
2、请求和保持条件:值进程已经保持至少一个资源,但又提出了新的资源请求,而该资源已被其他进程占有,此时请求进程阻塞,但又对自己获得的其他资源保持不放。
3、不剥夺条件:指进程已获得资源,在未使用完之前,不能被剥夺,只能在使用完时由自己释放。
4、只在发生死锁时,必然存在一个进程--资源的环形链。指的是p0等待p1的资源,p1等待p2的资源,pn等待p0的资源,形成了死循环
所谓死锁:就是指两个或两个以上的进程在执行过程中,因为争夺资源而造成的一种互相等等待的现象,若无外力作用,他们将无法进行下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程成为死锁进程。由于资源占用是互斥的,当摸个进程提出申请资源后,使得有关进程在无外力的刺耳住下,永远分配不到必须的资源而无法继续运行,这就产生了一种特殊现象死锁。死锁的发生具备以下4个必要条件
1、互斥条件:指进程对所分配到的资源进行排他性使用,即在一段时间内某资源只由一个进程占用。如果此时还有其他进程请求资源,则请求者只能等待,直至占有资源的进程用毕释放。
2、请求和保持条件:值进程已经保持至少一个资源,但又提出了新的资源请求,而该资源已被其他进程占有,此时请求进程阻塞,但又对自己获得的其他资源保持不放。
3、不剥夺条件:指进程已获得资源,在未使用完之前,不能被剥夺,只能在使用完时由自己释放。
4、只在发生死锁时,必然存在一个进程--资源的环形链。指的是p0等待p1的资源,p1等待p2的资源,pn等待p0的资源,形成了死循环
阅读全文
0 0
- 死锁的学习笔记
- 操作系统学习笔记:死锁
- oracle学习笔记(阻塞、死锁)
- 线程学习笔记(九)-死锁
- OS学习笔记八:死锁
- Java 死锁的实现 -Java学习笔记(28)
- 学习笔记——JAVA线程<5>线程的死锁
- [JAVA学习笔记-84]关于死锁故障的反思
- Java学习笔记之线程(四):线程的死锁现象
- java的死锁学习
- 操作系统学习笔记(12) 死锁问题
- 操作系统之死锁——学习笔记
- IOS学习笔记之十二:Dispatch_sync死锁
- Java 线程同步与死锁 学习笔记
- 线程学习笔记(十)-解决死锁
- 死锁相关知识的学习
- 死锁笔记
- Java学习笔记——面试常客:写出一个死锁的例子
- 【技能篇】python读取文件、实体抽取
- [py]web框架本质-自动动手实现一个mvc框架
- 让指针不再困扰你
- C++容器---pair
- 将本地已有项目 添加到 git管理中去
- 死锁的学习笔记
- 【USACO】青铜莲花池[2]
- PHP小爬虫
- 致橡树
- MapReduce计算模型
- 《SpringMvc中的适配器模式》
- 抽象代数学习笔记(8)循环群
- prim+dfs 藏宝图
- MYSQL学习笔记(十八)使用视图