来源:操作系统_清华大学(向勇、陈渝)
1.死锁问题
死锁:一组阻塞的进程(两个或多个),持有一种资源,等待获取另一个进程所占有的资源,而导致谁都无法执行。
一组阻塞的进程持有一种资源等待获取另一个进程所占有的一个资源。
例子:系统有2个磁带驱动器,P1和P2各有一个,都需要另外一个。
由于进程的并发执行引起了死锁。
2.系统模型
死锁模型:
1.资源类型:比如CPU cycles , memory space , I/O devices,某个进程运行中的共享变量
2.资源个数可以有n个
3.每个进程可以怎么使用资源:
request/get ——-free resource
use/hold ————requested/used resource, other processes cannot get
release ———–free resource
可重复使用的资源:
1.在一个时间只能一个进程使用,且不能被删除。OS避免杀死拥有资源的进程。
2.进程使用资源后要释放,让其他进程重用
3.有物理资源(cpu, I/O通道,主和副存储器),也有抽象的资源(设备和数据结构,如文件,数据库和信号量)
4.如果每个进程拥有一个资源并请求其他资源,可能导致死锁</