4+SPOOLing技术

4+SPOOLing技术

ID:44170396

大小:79.01 KB

页数:9页

时间:2019-10-19

4+SPOOLing技术_第1页
4+SPOOLing技术_第2页
4+SPOOLing技术_第3页
4+SPOOLing技术_第4页
4+SPOOLing技术_第5页
资源描述:

《4+SPOOLing技术》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、SPOOLing技术一、实验内容SPOOLing假脱机输入/输出技术广泛应用于各种计算机的I/O。该技术通过采用预输入和缓输出的方法,使用共享设备的一部分空间来模拟独占设备,以提高独占设备的利用率。为了理解该技术,设计一个SPOOLing假脱机输出的模拟程序。二、实验目的由于系统配备的设备数量远远小于系统中并发运行的进程数目,为了使并发进程能更好地共享系统设备,操作系统提供了SPOOLing技术,通过设计一个SPOOLing假脱机输出的模拟程序,使学生更好地理解和掌握该技术。三、实验题目SPOOLing假脱机输入输出技术模拟1.设计一个

2、实现SPOOLing技术的进程要求设计一个SPOOLing输出进程和两个请求输出的用户进程,以及一个SPOOLing输出服务程序。当请求输出的用户进程希望输出一系列信息时,调用输出服务程序,由它将该信息送入输出井。待遇到一个输出结束标志时,表示进程该次的输出文件输出结束。之后,申请一个输出请求块(用来记录请求输出的用户进程的名字、信息在输出井中的位置、要输出信息的长度等),等待SPOOLing进程进行输出。2.设计进程调度算法进程调度采用随机算法,这与进程输出信息的随机性相一致。两个请求输出的用户进程的调度概率各为45%,SPOOLin

3、g输出进程为10%,这由随机数发生的随机数来模拟决定。3.进程状态进程基本状态有3种,分别为可执行、等待和结束。可执行状态就是进程正在或等待调度的状态;等待状态又分为等待状态1、等待状态2、等待状态3。状态变化的条件为:(1)进程执行完成时,置为“结束”态;(2)服务程序在将输出信息送输出井时,如发现输出井已满,将调用进程置为“等待状态1”;(3)SPOOLing进程在进行输出时,若输出井空,则进入“等待状态2”;(4)SPOOLing进程输出一个信息块后,应立即释放该信息块所占的输出井空间,并将正在等待输出的进程置为“可执行状态”;(

4、5)服务程序在输出信息到输出井并形成输出请求信息块后,若SPOOLing进程处于等待态,则将其置为“可执行状态”;(6)当用户进程申请请求输出块时,若没有可用请求块时,调用进程进入“等待状态3”。4.数据结构(1)进程控制块PCBstructpcb{intid;/*进程标识数*/intstatus;/*进程状态*/intcount;/*要输出的文件数*/intx;/*进程输出时的临时变量*/}PCB[3];status=其中,0为可执行状态;1为等待状态12为等待状态23为等待状态34为结束状态。(1)请求输出块reqblockstru

5、ct{intreqname;/*请求进程名*/intlength;/*本次输出信息长度*/intaddr;/*信息在输出井的首地址*/}reqblock[10];(2)输出井BUFFERSPOOLing系统为每个请求输出的进程在输出井中分别开辟一个区。本实验可设计一个二维数组(intbuffer[2][100])作为输出井。每个进程在输出井最多可占用100个位置。1.编程说明为两个请求输出的用户进程设计两个输出井。每个输出井可存放100个信息,即buffer[2][100]。为此,设计两个计数器,使用数组C1[2],分别表示两个用户进程

6、可使用的输出井的空间。其初值C1[0],C1[1]都为100。用C2[2][2]二维指针数组表示输出井使用情况。C2[0][0]代表buffer[0]的第一个可用空缓冲指针,C2[0][1]代表buffer[0]的第一个满缓冲指针;C2[1][0]代表buffer[1]的第一个可用空缓冲指针,C2[1][1]代表buffer[1]的第一个满缓冲指针。每个用户进程请求输出文件的个数由用户从键盘输入而定。当用户进程将其所有文件数出完毕时,终止运行。为简单起见,用户进程简单地设计成:每运行一次,随机数输出数字0~9之间的一个数,且用0作为文件

7、结束的标志。当输出值为0时,就形成一个请求信息块,填入请求输出信息块reqblock结构中。这个输出请求块结构也有一个计数器C3,表示当前系统剩余的请求输出信息块的个数,初值为10。另外,再设两个指针Ptr1和Ptr2表示请求输出块使用情况。Ptr1是要输出的第一个请求输出块指针,初值为0;Ptr2是空闲请求输出块指针,初值0。两个指针按模10进行变化,即把请求输出块结构数组看成是一个环形数组。根据Ptr1和Ptr2的变化,确定请求输出块的使用情况。主程序包括调度程序。调度程序中包括一个随机数函数,以该函数值为依据,按照如图1所示框图调

8、用3个进程。完成对各数据结构的初始化。2.程序框图(1)SPOOLing输出模拟系统主控流程图如图1所示。结束返回X≤0.45,且进程1为执行状态开始对各进程的PCB、输出请求块、输出井初始化生成(0~1)

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

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

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