操作系统实验_Spooling技术.doc

操作系统实验_Spooling技术.doc

ID:48514828

大小:319.32 KB

页数:13页

时间:2020-02-06

操作系统实验_Spooling技术.doc_第1页
操作系统实验_Spooling技术.doc_第2页
操作系统实验_Spooling技术.doc_第3页
操作系统实验_Spooling技术.doc_第4页
操作系统实验_Spooling技术.doc_第5页
资源描述:

《操作系统实验_Spooling技术.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、......学号P1514032专业计算机科学与技术姓名实验日期2017.12.21教师签字成绩实验报告【实验名称】Spooling系统模拟【实验目的】体会操作系统中spooling假脱机输入输出的过程,以及缓冲区,输入井,输出井,输出缓冲区间的关系,井管理程序的作用。【实验原理】Spooling技术实质上是利用一个共享设备的一个存储区,并不是真正占有这一设备,用户进程把要完成的任务以及文件的形式存入存储区,在存储区中排队并等待SPOOLING系统调度,只有被SPOOLING系统调度并输入,此项任务才真正完成,通过SPOOLING技术可以使独占设备成为共享设备,由此大大提高了设备的使

2、用率,节约了硬件资源。Spooling系统主要有以下三部分组成:.专业.专注.......(1)输入井和输出井。这是在磁盘上开辟的两个大存储空间。输入井是模拟脱机输入时的磁盘设备,用于暂存I∕O设备输入的数据;输出井是模拟脱机输出时磁盘,用于暂存用户程序的输出数据。(2)输入缓冲区和输出缓冲区。为了缓和CPU和磁盘之间速度不匹配的矛盾,在内存中要开辟两个缓冲区:输入缓冲区和输出缓冲区。输入缓冲区用于暂存由输入设备送来的数据,以后再传送到输入井。输出缓冲区用于暂存从输出井送来的数据,以后在传送给输出设备。(3)输入进程SPi和输出进程SP0。这里利用两个进程来模拟脱机I∕O时的外围控制

3、机。其中,进程SPi模拟脱机输入时的外围控制机,将用户要求的数据从输入机通过输入缓冲区再送到输入井,当CPU需要输入数据时,直接从输入井读入内存;进程SP0模拟脱机输出时的外围控制机,把用户要求输出的数据先从内存送到输出井,待输出设备空闲时,再将输出井中的数据经过输出缓冲区送到输出设备上【实验内容】.专业.专注.......数据结构:#defineN1000//设置缓冲区最大为100intbuffer_num;//缓冲区实际大小intinput_nums[N];//设置输入数组intinput_num;//io设备输入大小doubletime=0;//需求时间intread_time

4、;//每个字符读取到缓冲区的时间intread_time2;//缓冲区输入到#管理主要函数:voidinit()//初始化缓冲区,初始化输入voidset_time()//设置时间voidinput_process()//Spooling模拟voidoutput_runtime()//输出时间函数流程图:.专业.专注........专业.专注.......实验源代码:#include#include#defineN1000//设置缓冲区最大为100intbuffer_num;//缓冲区实际大小intwell[N];intpos=0;intinp

5、ut_nums[N];intinput_num;//io设备输入大小doubletime=0;intread_time;intread_time2;voidset_time()//设置时间{printf("输入读取一个字符的时间");scanf("%d",&read_time);printf("输入缓冲区到#管理的时间");scanf("%d",&read_time2);}voidinit()//初始化缓冲区,初始化输入{.专业.专注.......printf("输入缓冲区大小");scanf("%d",&buffer_num);printf("输入io设备要输入的数字量

6、");scanf("%d",&input_num);for(inti=1;i<=input_num;i++)input_nums[i]=i;}voidinput_process()//输入进程{inti,j=0;printf("缓冲区的内容为:");if(input_num<=buffer_num){j=0;for(i=0;i

7、k++).专业.专注.......{Sleep(read_time2*20);//模拟缓冲区到输入#时间printf(".");}printf("");Sleep(read_time2*20);//模拟缓冲区到输入#时间time+=read_time*j+(j*1.0/buffer_num)*read_time2;return;}for(i=0;i

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

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

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