欢迎来到天天文库
浏览记录
ID:35340213
大小:84.35 KB
页数:11页
时间:2019-03-23
《山东建筑大学信计专业操作系统实验报告》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实验一、进程管理与进程同步实验目的:了解进程管理的实现方法,理解和掌握处理进程同步问题的方法。实验内容:实现银行家算法和读者•写者问题的写者优先算法。实验步骤:银行家算法:(1)针对3类资源、5个进程的情况,设计相应的数据结构,分别表示每个进程占用各类资源的情况;(2)编程实现安全性算法函数,编制主函数,动态输入资源的占用情况,进程的资源申请,调用安全性函数,实现银行家算法;(3)测试:输入可分配和不可分配的请求,测试系统的正确性读者■写者问题的写者优先算法:(1)首先建立各种资源文件,即四个类文件(Reader、Writer>Source、ReadWrite)(2)使用java提供的管程来模
2、拟实现进程之间的同步关系。总结:本次实验提高了我们的编程能力,我们利用了程序模拟了操作系统的进程同步机制和安全性算法,很好的掌握了银行家算法的思想,以及利用银行家算法找安全序列,利用安全序列不免处理机死锁。本次实验在开始吋我们准备还存在一些问题,没有很好的充分准备,以至于在实验中出现一些问题,实验进度比较缓慢,机会是留给有准备的人的,让我们在这里真正理解到了这个道理,但在老师的细心辅导下,我们都成功的完成了本次实验。附录:银行家算法代码:publicBanker(){Scanners=newScanner(System.in);System.out.println(H初始化中的【进程数】和【资
3、源类型数】:”);m=s-nextlnt();n=s.nextlnt();max=newintfmjfn];maxbak=newintfm]fn];allocation=newint[m][n];allocationbak=newint[m][n];银行家(Banker):importjava.util.Scanner;publicclassBanker{intm;intn;int[][]max;int[][]maxbak;//备份用int[][]allocation;int[J[]allocationbak;//备份用int[Hlneed;intfinneedbak;//备份用int[]av
4、ailable;int[]availablebak;//备份用need=newintfml[n];needbak=newint[m][n];available=newint[n];availablebak=newint[n];for(inti=0;i5、em.out.print("请依次输入第"+i+”进程中已分配资源的数量:“);for(intj=0;j6、j];needbak[i][j]=need[i][j];}1for(inti=0;i7、th;i++){System.out.print(u请输入系统中第“+i+”种资源的剩余量:”);availablefi]=s.nextlnt();availablebak[i]=available[i];1System.out.println("初始化结果=============H);System.out.println("MAXALLOCATIONNEEDAVAILABLE");for(inti=0;i9){//如果是两位数,控制格式,在数字前少输出—8、个”System.out.print(max[i][j]+'*“);)else{System.out.print(H”+max[i][j]+”“);}}System.out.print(H");for(intj=0;j9){System.out.print(allocation[i]9、j]+"");}else{System.out.print
5、em.out.print("请依次输入第"+i+”进程中已分配资源的数量:“);for(intj=0;j6、j];needbak[i][j]=need[i][j];}1for(inti=0;i7、th;i++){System.out.print(u请输入系统中第“+i+”种资源的剩余量:”);availablefi]=s.nextlnt();availablebak[i]=available[i];1System.out.println("初始化结果=============H);System.out.println("MAXALLOCATIONNEEDAVAILABLE");for(inti=0;i9){//如果是两位数,控制格式,在数字前少输出—8、个”System.out.print(max[i][j]+'*“);)else{System.out.print(H”+max[i][j]+”“);}}System.out.print(H");for(intj=0;j9){System.out.print(allocation[i]9、j]+"");}else{System.out.print
6、j];needbak[i][j]=need[i][j];}1for(inti=0;i7、th;i++){System.out.print(u请输入系统中第“+i+”种资源的剩余量:”);availablefi]=s.nextlnt();availablebak[i]=available[i];1System.out.println("初始化结果=============H);System.out.println("MAXALLOCATIONNEEDAVAILABLE");for(inti=0;i9){//如果是两位数,控制格式,在数字前少输出—8、个”System.out.print(max[i][j]+'*“);)else{System.out.print(H”+max[i][j]+”“);}}System.out.print(H");for(intj=0;j9){System.out.print(allocation[i]9、j]+"");}else{System.out.print
7、th;i++){System.out.print(u请输入系统中第“+i+”种资源的剩余量:”);availablefi]=s.nextlnt();availablebak[i]=available[i];1System.out.println("初始化结果=============H);System.out.println("MAXALLOCATIONNEEDAVAILABLE");for(inti=0;i9){//如果是两位数,控制格式,在数字前少输出—
8、个”System.out.print(max[i][j]+'*“);)else{System.out.print(H”+max[i][j]+”“);}}System.out.print(H");for(intj=0;j9){System.out.print(allocation[i]
9、j]+"");}else{System.out.print
此文档下载收益归作者所有