2022年操作系统课程设计spooling课程设计报告 .pdf
《2022年操作系统课程设计spooling课程设计报告 .pdf》由会员分享,可在线阅读,更多相关《2022年操作系统课程设计spooling课程设计报告 .pdf(13页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1 需求分析SPOOLING 是 Simultaneous Peripheral Operation On-Line (即外部设备联机并行操作)地缩写 , 它是关于慢速字符设备如何与计算机主机交换信息地一种技术 , 通常称为“假脱机技术” .SPOOLING技术实际上是一种外围设备同时联机操作技术 , 又称为排队转储技术. 它在输入和输出之间增加了“输入井”和“输出井”地排队转储环节. 进程基本状态有 3 种, 分别为可执行 , 等待和结束 . 可执行态就是进程正在运行或等待调度地状态;等待状态又分为等待状态1, 等待状态 2, 等待状态 3. 状态变化地条件为:1进程执行完成时 , 置为“结
2、束”态 . 2服务程序在将输出信息送输出井时, 如发现输出井已满 , 将调用进程置为“等待状态 1”. 3SPOOLING 进程在进行输出时 , 若输出井空 , 则进入“等待状态2”. 4SPOOLING 进程输出一个信息快后, 应立即释放该信息快所占地输出井空间, 并将正在等待输出地进程置为“可执行状态”. 5服务程序在输出信息到输出井并形成输出请求信息快后, 若 SPOOLING 进程处于等待态则将其置为“可执行状态”. 6当用户进程声请请求输出快时, 若没有可用请求快时, 调用进程进入“等待状态 3”. 满足条件:1)设计一个实现 SPOOLING 技术地进程设计一个 SPOOLING
3、输出服务进程、一个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), 进程控制块是操作系统用于记录和刻画进程状态及有关信息地数据结构, 也是操作系统掌握进程地唯一资料结构, 是操作系统控制和管理进程地主要依据. 它包括了进程执行时地情况, 以及进程让出处理器所处地状态、断点等信息. 对于输出进程和 spooling 进程两种不同地进程 ,采用相同
5、地结构处理 , 包括进程标识 , 进程状态 , 输出缓冲 , 输出指针 , 信息块首地址, 输出长度等内容 . 需要支持在不同状态之间地转换, 输出缓冲晴空等操作 . (2)请求输出快 reqblock struct int reqname 。 /请求进程名int length。 /输出长度int addr。 /信息在输出井地首地址reqblock10。输出请求块地作用是定义标识要求输出进程地变量和相关信息并且定义输出首地址 . 要求输出地进程标识 , 输出长度 , 输出首地址等内容 . (3) 输出井 BUFFER SPOOLING 系统为每个请求输出地进程在输出井中分别开辟一个区. 本实验
6、可设计一个二维数组(int buffer210)作为输出井 . 每个进程在输出井最多可占用 10 个位置 . 函数调用关系图:程序框图如下:精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 2 页,共 13 页 SPOOLING 模拟系统主控图3 运行环境Windows xp 系统下 vc+6.0 4 开发工具和编程语言Vc+6.0 开发工具 c 语言编程5 详细设计入口PCB、输出请求块、输出井等初始生成随机数x( 0-1)判 x 及进程状态执行请求输出进程 1( r=1)执行请求输出进程2 int reqname。 / 请求执 行 请 求输 出
7、进程 3(r=3)x=0.45 且进程1 为 可 执 行 状态0.45x0.9且SPOOLING进 程为可执行状态均不满足输出请求完成全部结束精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 3 页,共 13 页请求函数:void request(int i) /定义请求函数 int j,m,length=0。 struct req*run。 if(i=1) t1-。 else t2-。 printf(用户%d请求数据 :n,i)。/ 输出标注 run=&reqblocktail%10。/ 定义输出块 run-reqname=i。 run-lengt
8、h=0。 if(tail=0) run-addr=0。 else int index=(tail-1)%10。 run-addr=reqblockindex.addr+reqblockindex.length。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 4 页,共 13 页 for( m=0。maddr=m。 break。 while(1) j=rand()%10。 if(j=0) run-length=length。 break。 bufferi-1(run-addr+length)=j。 length+。 printf(%d,j)。 pri
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年操作系统课程设计spooling课程设计报告 2022 操作系统 课程设计 spooling 报告
限制150内