操作系统课程设计:spooling假脱机输入输出技术模拟

操作系统课程设计:spooling假脱机输入输出技术模拟

ID:18441455

大小:264.50 KB

页数:16页

时间:2018-09-18

操作系统课程设计:spooling假脱机输入输出技术模拟_第1页
操作系统课程设计:spooling假脱机输入输出技术模拟_第2页
操作系统课程设计:spooling假脱机输入输出技术模拟_第3页
操作系统课程设计:spooling假脱机输入输出技术模拟_第4页
操作系统课程设计:spooling假脱机输入输出技术模拟_第5页
资源描述:

《操作系统课程设计:spooling假脱机输入输出技术模拟》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、课程设计报告(2012--2013年度第二学期)课程名称:操作系统课程设计课设题目:SPOOLING假脱机输入输出技术模拟院系:控制与计算机工程学院班级:信安1101班姓名:陈立翼指导教师:贾静平设计周数:一周成绩:2013年7月5日目录一、需求分析3二、整体功能及设计31.功能划分3Ⅰ.主函数(main)3Ⅱ.用户请求输出进程(askOutput)3Ⅲ.SPOOLING输出进程(Output)32.流程图4Ⅰ.主函数流程图4Ⅱ.用户请求输出进程流程图5Ⅲ.SPOOLING输出进程流程图6三、编程实现71.数据结构7Ⅰ.输出井7Ⅱ.请求输出块72.

2、代码实现7四、使用说明141.打开142.运行14五、结果分析14需求分析设计一个实现SPOOLING技术的进程。要求设计一个SPOOLING输出进程和两个请求输出的用户进程,以及一个SPOOLING输出服务程序。当请求输出的用户进程希望输出一系列信息时,调用输出服务程序,由输出服务程序将该信息送入输出井。待遇到一个输出结束标志时,表示进程该次的输出文件输出结束。之后,申请一个输出请求块(用来记录请求输出的用户进程的名字、信息在输出井中的位置、要输出信息的长度等),等待SPOOLING进程进行输出。SPOOLING输出进程工作时,根据请求块记录的各

3、进程要输出的信息,将其实际输出到打印机或显示器。这里,SPOOLING输出进程与请求输出的用户进程可并发运行。二、整体功能及设计1.功能划分Ⅰ.主函数(main)主函数负责界面的设计,每个进程将要请求的文件数目的读取和进程的调度。每个用户进程请求输出文件的个数由用户从键盘输入而定。当用户进程将其所有文件输出完时,终止运行。进程调度采用随机算法,这与进程输出信息的随机性相一致。两个请求输出的用户进程的调度概率各为45%,SP00LING输出进程为10%,这由随机数发生器产生的随机数来模拟决定。进程基本状态有3种,分别为可执行、等待和结束。可执行态就是

4、进程正在运行或等待调度的状态;等待状态又分为等待状态1、等待状态2和等待状态3。状态变化的条件为:①进程执行完成时,置为“结束”态。②服务程序在将输出信息送输出井时,如发现输出井已满,将调用进程置为“等待状态1”。③SP00LING进程在进行输出时,若输出井空,则进入“等待状态2”。④SP00LING进程输出一个信息块后,应立即释放该信息块所占的输出井空间,并将正在等待输出的进程置为“可执行状态”。⑤服务程序在输出信息到输出井并形成输出请求信息块后,若SP00LING进程处于等待态,则将其置为“可执行状态”。⑥当用户进程申请请求输出块时,若没有可用

5、请求块时,调用进程进人“等待状态3”。Ⅱ.用户请求输出进程(askOutput)用户请求输出进程输出一系列信息,本程序中,信息由随机数产生,然后将该信息送入输出井。待遇到一个输出结束标志时,即信息为0时,表示进程该次的输出文件输出结束。之后,申请一个输出请求块,并在其中记录请求输出的用户进程的名字、信息在输出井中的位置、要输出信息的长度等,等待SPOOLING进程进行输出。Ⅲ.SPOOLING输出进程(Output)根据请求块记录的各进程要输出的信息,将其实际输出到打印机或显示器。本程序采用对应的文本区代替打印机和显示器,显示要输出的信息。2.流程

6、图Ⅰ.主函数流程图图1主函数流程图Ⅱ.用户请求输出进程流程图图2用户请求输出进程流程图Ⅲ.SPOOLING输出进程流程图图3SPOOLING输出进程流程图三、编程实现1.数据结构Ⅰ.输出井①整型数组buffer[2][100]:分别存储两个输出井的内容,SP00LING系统为每个请求输出的进程在输出井中分别开辟一个区。本实验可设计一个二维数组作为输出井。每个进程在输出井最多可占用100个位置。②整型数组c1[2]:分别存储两个输出井的剩余可使用空间③整型数组c2[2][2]:分别存储两个输出井的第一个空缓冲指针和第一个满缓冲指针Ⅱ.请求输出块①类p

7、ublicclassreqblock{intreqname;//请求进程名intlength;//本次输出信息长度intaddr;//信息在输出井的首地址}:存储请求输出块的内容②整型c3:存储剩余可用的请求输出块数③整型Ptr1:存储要输出的第一个请求输出块指针,初值为0④整型Ptr2:存储空闲请求输出块的指针,初值为0Ⅲ.进程控制块PCBpublicclasspcb{intid;//进程标识数intstatus;//进程状态intcount;//要输出的文件数intx;//进程输出时的临时变量}其中,status=0为可执行态;1为等待状态1,

8、表示输出井满,请求输出的用户进程等待;2为等待状态2,表示请求输出井空,SP00LING输出进程等待;3为等待状态3,表示

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。