- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
假脱机技术实验报告实验名称假脱机技术实现实验二、实验目标假脱机(SPOOLING)技术是广泛应用于各种计算机系统的一种行之有效的输入输出手段。这种技术使用比较简单的方法,缓和了高速处理机与低速输入输出设备速度不匹配的矛盾,提高了设备的利用率。为了更好地掌握这种技术,使用高级语言编写一个SPOOLING程序模拟假脱机输入输出过程,三、实验环境要求:1.PC机。2.Windows。3.Visual Studio 2017。四、实验基本原理1本实验编制一个SPOOLING输出进程,与另外两个要求输出的进程并发执行。输出进程每运行一次只输出一项信息到输出井,待输出到一个结束标志时,表示一批信息输出完成,在输出井中形成一输出信息块,再由SPOOLING进程把整个信息块实际输出到打印机或CRT。因此,进程运行考虑到了同步问题。采用进程的随机调度法模拟SPOOLING输出,因为各进程的输出是随机的。2.进程调度采用随机调度法,假设两个要求输出进程的调度概率各为45%,SPOOLING进程的调度概率为10%。3.进程设置三种工作状态:可运行状态、不可运行状态和结束状态。为了区分要求输出的进程和SPOOLING进程处于不可运行状态的不同原因,又把不可运行状态分称不可运行状态1和2,分别叙述如下:1)进程执行完毕后应设置成“结束状态”。2)要求输出进程在输出信息时,如果发现输出井已满,应设置成“不可运行状态1”。3)SPOOLING进程在输出井空时应设置成“不可运行状态2”。4)SPOOLING进程输出一个信息块后,应释放该信息块所占的输出井位置,并将正在等待输出的进程置成“可运行状态”。5)要求输出进程把信息输出到输出井并形成信息块后,应将SPOOLING进程置成“可运行状态”。五、数据结构设计1.进程控制块typedefstructpcb {int id;long status;long po;long head;long length;long buffer[1000];}PCB;2.输出请求块typedefstructblock {int id;long len;long head;}BLOCK;3.输出井typedefstructwall {long num[10000];long st, ed;}WALL;六、流程图 1)假脱机输出系统如图1,该进程由函数init和scheduler实现。2)请求输出进程如图2,该进程由函数userproc实现。3)SPOOLING进程,该进程由函数SPOOLING实现。七、源代码// 假脱机技术.cpp: 定义控制台应用程序的入口点。//#includestdafx.h#includestdafx.h#includestdio.h#includeiostreamusingnamespace std;#defineREADY 0 /*CAN RUNING STATE*/#defineWAIT1 1 /*CAN NOT RUNNING STATE,OUTPUTPOOL IS FULL;*/#defineWAIT2 2 /*CAN NOT RUNNING STATE;NO FREE IOBLOK;*/#defineFINISH 3 /*FINISH STATE */typedefstructpcb {int id;long status;long po;long head;long length;long buffer[1000];}PCB;PCB pcbs[4];typedefstructblock {int id;long len;long head;}BLOCK;BLOCK blocks[100];typedefstructwall {long num[10000];long st, ed;}WALL;WALL walls[3];int L1;//空闲输出(freeioblkunm)int L2[3];//两个输出井的计数器(freeollen)int count[2];int K[3];//totaliotimesint blocks_num = 0;void init() {L1 = 10;L2[1] = L2[2] = 100;memset(pcbs, 0, sizeof(pcbs));for (int i = 1; i 4; i++) {pcbs[i].id = i;}pcbs[3].status = WAIT2;memset(walls, 0, sizeof(walls));cout input the times of user1s output file:;cin K[1];cout input the times of user2s output f
您可能关注的文档
最近下载
- 牛奶过敏的诊断、管理和预防意见书(2024).pdf VIP
- 西安2初一新生分班(摸底)数学模拟考试(含答案).doc VIP
- 2025年新版人教版四年级上册英语 四上Unit 4 Helping in the community单元整体教学设计.pdf VIP
- 中国碳化钨项目创业投资方案.docx VIP
- 内能的利用的学案.doc VIP
- 建筑与市政工程防水通用规范试题(含答案).doc
- 《中国儿童生长激素使用情况研究》.pdf VIP
- 万华化学经营分析报告.docx VIP
- 2025年中国PVB中间膜项目商业计划书.docx VIP
- 政府间国际科技创新合作重点专项2017年第二批项目.doc VIP
文档评论(0)