资源分配

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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无序分配产生死锁

相关文档
最新文档