2022年操作系统课程设计spooling课程设计报告 .docx

上传人:C****o 文档编号:64032561 上传时间:2022-11-28 格式:DOCX 页数:20 大小:297.39KB
返回 下载 相关 举报
2022年操作系统课程设计spooling课程设计报告 .docx_第1页
第1页 / 共20页
2022年操作系统课程设计spooling课程设计报告 .docx_第2页
第2页 / 共20页
点击查看更多>>
资源描述

《2022年操作系统课程设计spooling课程设计报告 .docx》由会员分享,可在线阅读,更多相关《2022年操作系统课程设计spooling课程设计报告 .docx(20页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精选学习资料 - - - - - - - - - 1 需求分析SPOOLING是 Simultaneous Peripheral Operation On-Line (即外部设备联机并行操作)地缩写 , 它是关于慢速字符设备如何与运算机主机交换信息地一种技术 , 通常称为“ 假脱机技术”机操作技术 , 又称为排队转储技术“ 输出井” 地排队转储环节 . .SPOOLING技术实际上是一种外围设备同时联 . 它在输入和输出之间增加了“ 输入井” 和进程基本状态有 3 种, 分别为可执行 , 等待和终止 . 可执行态就是进程正在运行或等待调度地状态;等待状态又分为等待状态 状态变化地条件为:1进程

2、执行完成时 , 置为“ 终止” 态 . 1, 等待状态 2, 等待状态 3. 2服务程序在将输出信息送输出井时 , 如发觉输出井已满 , 将调用进程置为“ 等待状态 1” . 3SPOOLING进程在进行输出时 , 如输出井空 , 就进入“ 等待状态 2” . 4SPOOLING进程输出一个信息快后, 应立刻释放该信息快所占地输出井空间, 并将正在等待输出地进程置为“ 可执行状态”. 5服务程序在输出信息到输出井并形成输出恳求信息快后 , 如 SPOOLING进程处于等待态就将其置为“ 可执行状态”. 6当用户进程声请恳求输出快时 , 如没有可用恳求快时 , 调用进程进入“ 等待状态 3” .

3、 满意条件:1 设计一个实现 SPOOLING技术地进程设计一个 SPOOLING输出服务进程、一个SPOOLING输出进程、两个用户请求进程 . 用户进程恳求输出一系列信息 , 调用输出服务进程 , 由输出服务进程将该信息送入输出井 . 等待 SPOOLING进程进行输出 .SPOOLING输出进程工作时 , 依据恳求块记录地各进程要输出地信息将其输出 . 2)设计进程调度算法进 程 调 度 采 用 随 机 算 法 , 两 个 请 求 输 出 地 用 户 进 程 地 调 度 概 率 各 为45%,SPOOLING 输出进程为 10%,这由随机数发生器产生地随机数来模拟打算 .2 概要设计数据

4、结构:名师归纳总结 - - - - - - -第 1 页,共 13 页精选学习资料 - - - - - - - - - 1 进程掌握块( PCB)Struct pcb int id;/ 进程标示 int status; / 进程状态 int firstaddr; int length;/ 输出长度 int outbufword;*PCB3 ;PCB(Process Control Block), 进程掌握块是操作系统用于记录和刻画进程状态及有关信息地数据结构 , 也是操作系统把握进程地唯独资料结构 , 是操作系统掌握和治理进程地主要依据 . 它包括了进程执行时地情形 , 以及进程让出处理器所处

5、地状态、断点等信息 . 对于输出进程和 spooling 进程两种不同地进程 ,采纳相同地结构处理 , 包括进程标识 , 进程状态 , 输出缓冲 , 输出指针 , 信息块首地址, 输出长度等内容 . 需要支持在不同状态之间地转换(2)恳求输出快 reqblock struct int reqname ; / 恳求进程名int length; / 输出长度int addr; / 信息在输出井地首地址reqblock10;, 输出缓冲晴空等操作 . 输出恳求块地作用是定义标识要求输出进程地变量和相关信息并且定义输出首地址 . 要求输出地进程标识 , 输出长度 , 输出首地址等内容 . 3 输出井

6、BUFFER SPOOLING系统为每个恳求输出地进程在输出井中分别开创一个区 . 本试验可设计一个二维数组 int buffer210 作为输出井 . 每个进程在输出井最多可占用 10 个位置 . 函数调用关系图:程序框图如下:名师归纳总结 - - - - - - -第 2 页,共 13 页精选学习资料 - - - - - - - - - 入口PCB、输出恳求块、输出井等初始生成随机数 x ( 0-1)判 x 及进程状态均不满意x=0.45 且进程0.45x0.9且 进 程1 为 可 执 行 状程 1 为可执行SPOOLING态状态为可执行状态执行恳求输出进执行恳求输出进执 行 请 求输 出

7、 进程 1( r=1)程2 int 程 3(r=3)reqname; / 恳求输出恳求完 成全部终止 SPOOLING 模拟系统主控图 3 运行环境 Windows xp 系统下 vc+6.0 4 开发工具和编程语言 Vc+6.0 开发工具 c 语言编程 5 具体设计名师归纳总结 - - - - - - -第 3 页,共 13 页精选学习资料 - - - - - - - - - 恳求函数:void requestint i / 定义恳求函数 int j,m,length=0; struct req*run; ifi=1 t1-; else t2-; printf 用户 %d恳求数据 :n,i;

8、/ 输出标注 run=&reqblocktail%10;/ 定义输出块 run-reqname=i; run-length=0; iftail=0 run-addr=0; else int index=tail-1%10; run-名师归纳总结 addr=reqblockindex.addr+reqblockindex.length;第 4 页,共 13 页- - - - - - -精选学习资料 - - - - - - - - - for m=0;maddr=m; break while1 j=rand%10; ifj=0 run-length=length; break; bufferi-1

9、run-addr+length=j; length+; printf%d,j; 名师归纳总结 printfn;第 5 页,共 13 页- - - - - - -精选学习资料 - - - - - - - - - PCBi-1-length+=length; length=0; ifPCB2-status=2 PCB2-status=0; tail+; Spooling 函数:void spooling int i,j; struct req*run; printf 调用 SPOOLING输出服务程序输出数据 :n; run=&reqblockhead%10; printf%d ,run-reqn

10、ame; fprintff,%d ,run-reqname; fori=0;ilength;i+ printf%d,bufferrun-reqname-1run-addr+i ; fprintff,%d,bufferrun-reqname-1run-名师归纳总结 addr+i ;第 6 页,共 13 页 printfn fprintff,n;- - - - - - -精选学习资料 - - - - - - - - - head+; for j=0;jstatus=1 PCBj-status=0; 主函数:void main int i,n;f=fopenresult.txt,w; fori=0;

11、i2 ;i+ forn=0;n100;n+ bufferin=0; fori=0;iid=i; tmpPcb-status=0 ; tmpPcb-firstaddr=0; tmpPcb-length=0 ; tmpPcb-outbufword=1;PCBi=tmpPcb;名师归纳总结 printfHow many work do p1 want to do.;第 7 页,共 13 页 fprintff,How many work do p1 want to do.- - - - - - -精选学习资料 - - - - - - - - - scanf%d,&t1; fprintff,%dn,t1

12、;printfHow many work do p2 want to do.; fprintff,How many work do p2 want to do. scanf%d,&t2; fprintff,%dn,t2; srandunsignedtimeNULL; while1 i=rand%100; / 用随机数模拟进程执行概率 ifistatus=0&t10 request1; else ifi0/执行恳求输出用户进程2 ifPCB1-status=0 request2; else spooling;/ 执行 SPOOLING进程 ift1=0&t2=0&head=tail 名师归纳总结

13、 break;第 8 页,共 13 页- - - - - - -精选学习资料 - - - - - - - - - fori=0;i3 ;i+ freePCBi; PCBi=NULL;/PCB 值为空 fclosef; / 主函数终止6 调试分析1.该试验中花费了我不少时间去摸索如何更加明显地把两个用户分别地调 度进程更好地显示出来 ,由于进程个数地不一样 ,所以就摸索了动态地实现进程地 数目 ,更加便利利用是 spooling 技术.从而更加直观地调度便利地显示了信息 .2. 摸索将结果用文件地势式储存 , 但是对于函数 fprint 地运用错误 , 忽视了 最基本地定义 , 耗费了好多地时间

14、 , 仍是显现了一个错误:桌面 liuhaoliu.cpp99 : error C2440: = : cannot convert from struct _iobuf * to int 桌面 liuhaoliu.cpp83 : error C2065: f : undeclared identifier 最终在前面定义了一个 FILE *f ;3.C:Documents and 桌 面 liuhaoliu.cpp85 : error C2065: reqname : undeclared identifier之类地错误地显现由于已经给结构体stuct req通过 struct req*run

15、;所以必需在用指针指向run地变量 . 7 测试结果.1.提示输入进程个数:名师归纳总结 - - - - - - -第 9 页,共 13 页精选学习资料 - - - - - - - - - 2 回车后显示虚脱机工作:名师归纳总结 - - - - - - -第 10 页,共 13 页精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 11 页,共 13 页精选学习资料 - - - - - - - - - 参考文献 1 边肇祺 ,模式识别(其次版) ,北京:清华高校出版社 ,1988,2535 2 李永忠 ,几种小波变换地图像处理技术 版) ,2001.6

16、,22(3),1518 , 西北民族学院学报(自然科学1 汤子瀛 ,梁红兵运算机操作系统(第三版)西安电子科技高校出版社 2007 2 任满杰操作系统原理有用教程电子工业出版社 2006 3 张丽芬 刘利雄操作系统试验教程北京;清华高校出版社 2006 4 张尧杰 史美林运算机操作系统教程试验指导 北京;清华高校出版社 2000 名师归纳总结 5 罗宇操作系统课程设计机械工业出版社 2006 第 12 页,共 13 页- - - - - - -精选学习资料 - - - - - - - - - 心得体会在这几天地操作系统课程设计中, 我地题目是 :SPOOLING技术模拟实现 , 这两周课程设计中 , 通过该题目地设计过程 , 学会如何把学到地学问用于解决实际 问题 , 锤炼了自己动手地才能 . 通过这两天地上机试验 , 我也遇到了许多地麻烦 , 原先以为 spooling 技术很简洁 , 但是真正地去实践地时候才发觉自己地水平是多么地差啊 , 纸上得来终觉 浅, 绝知此事要躬行 , 这句话说地一点也没错 . 在以后地学习中我们要学到嵌入式操作系统, 我想在一开头学地是时候我就应当自觉地去实践 , 然后达到自觉性 , 作为一名运算机学科地同学 , 我在这里真地是感到无比地压力 , 不过压力才能产生动力 . 名师归纳总结 - - - - - - -第 13 页,共 13 页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁