OS学习笔记一
来源:互联网 发布:python 读取 csv 编辑:程序博客网 时间:2024/05/18 22:13
死锁的条件
参考资料
1、互斥。即某个资源在一段时间内只能由一个进程占有,不能同时被两个或两个以上的进程占有。这种独占资源如CD-ROM驱动器,打印机等等,必须在占有该资源的进程主动释放它之后,其它进程才能占有该资源。这是由资源本身的属性所决定的。如独木桥就是一种独占资源,两方的人不能同时过桥。
2、不可抢占。进程所获得的资源在未使用完毕之前,资源申请者不能强行地从资源占有者手中夺取资源,而只能由该资源的占有者进程自行释放。如过独木桥的人不能强迫对方后退,也不能非法地将对方推下桥,必须是桥上的人自己过桥后空出桥面(即主动释放占有资源),对方的人才能过桥。
3、占有且申请。进程至少已经占有一个资源,但又申请新的资源;由于该资源已被另外进程占有,此时该进程阻塞;但是,它在等待新资源之时,仍继续占用已占有的资源。还以过独木桥为例,甲乙两人在桥上相遇。甲走过一段桥面(即占有了一些资源),还需要走其余的桥面(申请新的资源),但那部分桥面被乙占有(乙走过一段桥面)。甲过不去,前进不能,又不后退;乙也处于同样的状况。
4、循环等待。存在一个进程等待序列{P1,P2,…,Pn},其中P1等待P2所占有的某一资源,P2等待P3所占有的某一源,……,而Pn等待P1所占有的的某一资源,形成一个进程循环等待环。就像前面的过独木桥问题,甲等待乙占有的桥面,而乙又等待甲占有的桥面,从而彼此循环等待。
死锁的处理
参考资料
预防死锁:破坏产生死锁的4个必要条件中的一个或者多个;实现起来比较简单,但是如果限制过于严格会降低系统资源利用率以及吞吐量
避免死锁:在资源的动态分配中,防止系统进入不安全状态(可能产生死锁的状态)-如银行家算法
检测死锁:允许系统运行过程中产生死锁,在死锁发生之后,采用一定的算法进行检测,并确定与死锁相关的资源和进程,采取相关方法清除检测到的死锁。实现难度大
解除死锁:与死锁检测配合,将系统从死锁中解脱出来(撤销进程或者剥夺资源)。对检测到的和死锁相关的进程以及资源,通过撤销或者挂起的方式,释放一些资源并将其分配给处于阻塞状态的进程,使其转变为就绪态。实现难度大。
线程与进程的区别
线程是cpu调度的最小单元,进程是最小的执行单元。Android中一个进程就是一个APP。
- OS学习笔记一
- STM32 + RT Thread OS 学习笔记[一]
- Cent OS 学习笔记(一)
- UC/OS II 学习笔记(一)
- OS学习笔记一: 中断与异常
- os笔记一 进程
- os学习笔记一(从启动扇区中加载)
- 《嵌入式实时操作系统µC/OS-II》学习笔记(一)
- µC/OS-II学习笔记(一) 基本知识
- uC/OS-III 学习笔记(一)——uC/OS-III移植
- OS学习笔记
- OS 学习笔记导航
- OS学习笔记
- uc/os-II笔记(一)
- Python OS模块学习(一)
- python 系统学习笔记(十二) -- ---os os.path os.walk
- Symbian OS Internals学习笔记
- uC/OS学习笔记1
- storm集群安装配置
- c#连接mysql数据库,增删查改命令执行
- 拦截器(19)
- 适用于各个版本的File转Uri,Uri转File
- 面试题---数值的整数次方
- OS学习笔记一
- iMX6开发板—SABER Lite评估板-imx.6评估板学习qnx
- 洛谷 小A点菜
- c#获取网页源码全解
- 随笔
- 关于对象属性行为configurable的问题
- c#文件操作xml、ini、txt、excel、csv操作全解
- BZOJ 1001 [BeiJing2006]狼抓兔子
- SDUT_3039 迷之好奇 【字典树】