资源分配
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
操作系统课程设计报告
(学院)系:
专业:
姓名:
班级:
学号:
指导教师:
2012年6 月xx 日
图3 银行家算法流程图
{
cout<<"您的输入有误!请重新选择: ";
cin>>choice;
}
switch(choice)
{
case 1 : ORDER(b); break;
case 2 : DISORDER(b); break;
}
}
}
(2)银行家算法程序运行及结果:
A. 运行界面:
图1 打开后的界面
B. 测试1
输入:输入1进行初始化进程链表,输入进程个数3和3个进程的进程号,资源需求量,已占有的资源量
输出:资源占用情况:3个进程名、资源需求量、已占用资源量、尚需资源量、状态
结果:初始化进程链表后的各个进程显示状况
图2初始化3个进程,及其显示情况
C.测试2
输入;输入2选择用银行家算法,输入要申请资源的进程名和申请资源个数
输出:试分配后的结果、安全性算法、安全序列分配成功及分配后的资源占用情况
结果说明:找到一个安全序列为安全状态一定是没有死锁发生,按a b c 顺序分配可以成功
图3用银行家算法试分配成功
d.测试3
输入;初始化进程链表、选择银行家算法、输入要申请资源的进程名和申请资源个数
输出:试分配后的结果、安全性算法、没有找到安全序列说明资源分配不合理及分配后的资源占用情况
结果说明:找不到一个安全序列,资源不能合理分配给各个进程,无法完成资源分配
图4试分配失败,没有找到安全序列
e.测试4
输入;初始化进程链表、输入3选择随机算法、输入要申请资源的进程名和申请资源个数
输出:系统可以利用的资源个数、资源分配情况进程名、已分配资源量、尚需要资源量、状态结果说明:对进程a分配2个资源完成
图5对进程a分配2个资源完成
f.测试5
输入;输入3选择随机算法、输入要申请资源的进程名和申请资源个数
输出:系统可以利用的资源个数、资源分配情况进程名、已分配资源量、尚需要资源量、状态结果说明:对进程b分配2个资源完成
图6对进程b分配2个资源完成
g.测试6
输入;输入3选择随机算法、输入要申请资源的进程名和申请资源个数
输出:系统可以利用的资源个数、资源分配情况进程名、已分配资源量、尚需要资源量、状态结果说明:用随机算法所有资源分配完成
图7对进程c分配5个资源完成
h.测试7
输入;初始化进程链表、选择随机算法、输入要申请资源的进程名和申请资源个数
输出:出现死锁系统不能完成分配、资源占用情况进程名、已分配资源量、尚需要资源量、状态
结果说明:当申请的资源个数大于系统可分配的个数时提示出错重新输入,当系统中没有资源可以分配出现死锁
图8用随机算法出现死锁(3)按序分配程序运行及结果:
A. 运行界面:
图9 打开后的界面
B. 测试1
输入:各个进程号对应的资源需求总量,输入1进行按序分配算法,按提示输入进程申请的资源号输出:把分配结果打印出来,显示进程占用的资源个数
结果:进程3申请进程1已经申请的资源号3进入等待态,进程1申请进程2已经申请的资源号4进入等待态
图10用按序分配算法,进程3和1等待状态
图7所有进程都完成分配
图8进程1完成分配
图9 无序算法没有死锁
图10
图11无序分配产生死锁