操作系统实验报告
一、 实验内容简要描述
1. 实验目标:
加深了解有关资源申请、避免死锁等概念,并体会和了解死锁和避免
死锁的具体实施方法。
要求编写和调试一个系统动态分配资源的简单模拟程序,观察死锁产
生的条件,并采用银行家算法,有效的防止和避免死锁的发生。
2. 实验要求:
银行家算法是避免死锁的一种重要方法,本实验要求用高级语言编写
和调试一个简单的银行家算法程序。
用银行家算法实现资源分配。
设 计 五 个 进 程 {p0,p1,p2,p3,p4} 共 享 三 类 资 源 {A,B,C} 的 系 统 ,
{A,B,C}的资源数量分别为 10,5,7。进程可动态地申请资源和释放资源,
系统按进程的申请动态地分配资源,要求程序具有显示和打印各进程的某一
个时刻的资源分配表和安全序列;显示和打印各进程依次要求申请的资源号
以及为某进程分配资源后的有关资源数据。
二、 报告主要内容
1. 设计思路
A、设计进程对各在资源最大申请表示及初值确定。
B、设定系统提供资源初始状态。
C、设定每次某个进程对各类资源的申请表示。
D、编制程序,依据银行家算法,决定其申请是否得到满足。
2. 主要数据结构
假设有 M 个进程 N 类资源,则有如下数据结构:
MAX[M*N] M 个进程对 N 类资源的最大需求量
AVAILABLE[N] 系统可用资源数
ALLOCATION[M*N] M 个进程已经得到 N 类资源的资源量
NEED[M*N] M 个进程还需要 N 类资源的资源量
3. 主要代码结构