操作系统课程设计报告 指导老师: 潘煜 学号: 070603115 姓名: 张鑫 班级: 070603 学期:2025 至 2025 学年 1 学期1、概述一、设计目的1
对死锁避开中的银行家算法作进一步理解
加深理解死锁的概念
加深理解安全序列和安全状态的概念
通过编写和调试一个系统动态分配资源的简单模拟程序,观察死锁产生的条件,并采纳适当的算法,有效地防止和避开死锁地发生
二、开发环境 操作系统 Windows xp编译环境 VC++6
0生成文件 银行家算法
cpp2、需求分析一、死锁概念:是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推动下去
此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程
由于资源占用是互斥的,当某个进程提出申请资源后,使得有关进程在无外力协助下,永远分配不到必需的资源而无法继续运行,这就产生了死锁
二、关于死锁的一些结论:1
参加死锁的进程最少是两个(两个以上进程才会出现死锁) 2
参加死锁的进程至少有两个已经占有资源 3
参加死锁的所有进程都在等待资源 4
参加死锁的进程是当前系统中所有进程的子集 假如死锁发生,会浪费大量系统资源,甚至导致系统崩溃
三、资源分类:永久性资源: 可以被多个进程多次使用(可再用资源) 1) 可抢占资源 2) 不可抢占资源 临时性资源: 只可使用一次的资源;如信号量,中断信号,同步信号等(可消耗性资源) “申请--分配--使用--释放”模式 四、产生死锁的四个必要条件:1、互斥使用(资源独占) 一个资源每次只能给一个进程使用 2、不可强占(不可剥夺) 资源申请者不能强行的从资源占有者手中夺取资源,资源只能由占有者自愿释放 3、请求和保持(部分分配,占有申请) 一个进程在申请新的资源的同时保持对原有资源的占有(只有这