欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    操作系统实验报告(共9页).docx

    • 资源ID:14027260       资源大小:51.28KB        全文页数:9页
    • 资源格式: DOCX        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    操作系统实验报告(共9页).docx

    精选优质文档-倾情为你奉上操作系统实验报告实验名称: I/O管理 评分: 班级: 计科1602班 学号: 姓名: 王岩 一实验目的: 通过设计并运行一个简单的SPOOLing系统来模拟SPOOLing输入/出过程,以掌握这种有用的技术,从而熟悉基本的;加深对输入输出管理的了解;二实验要求:要求将SPOOLing输入/出处理程序编成一个独立的进程模块并与其他请求输入/出的进程并发运行;SPOOLing进程负责把从输入设备读入的信息送到外存输入井中,或把外存输入井中的信息送到打印机等输出设备上输出。其余进程只要求编写输入出部分程序。三实验题目和内容:1问题描述本系统利用内存来模拟SPOOLing输出过程。管理系统包括一个SPOOLing输出进程模块spoolout和一个SPOOLing输出请求服务程序spoolserver。Spoolserver负责接收并处理用户进程的输出请求;spoolout完成实际的输出。另外,系统中设计了3个请求SPOOLing输出的用户进程。它们共享用户进程模块userpro。2数据结构进程控制块PCB,内容含有:id 进程标识数;status 进程运行状态,可为“e”(执行)或“c”(完成);bufflag 输出缓冲区空闲标志,FALSE为空闲;filec 输出文件计数。本系统赋予spoolout进程和3个用户进程的标识数分别为0,1,2,3。程序启动后,在完成必要的初始化工作后便显示命令选择菜单,根据输入命令调用相应的功能模块。系统每完成一次请求即输出执行结果,直至键入“Quit”命令(命令码“4”)。系统退出运行为止。输出请求块reqblock,内容含有:reqid 请求进程标识数;size 输出文件长度;addr 输出文件在输出井中的首地址。输出井,用数组well 表示。输出缓冲区,用二维数组userbuf3 表示。每个用户进程分别使用各自的输出缓冲区。此外,系统中还安排了下列管理数据(均属全程量):ebc 空闲reqblock计数,初值为10;ebp 当前空闲reqblock指针,初值为0;cbp 当前非空reqblock指针,初值为0;wellsize 输出井当前可用空间的大小;wellptr 输出井环形指针,指初当前空区首地址;n 用户的输出请求总数,用以控制系统的运行结束。算法进程调度采用随机调度法。3个用户进程的调度概率各为30%,spoolout进程为10%。这由产生随机数来模拟。用户进程在各自的缓冲区中形成输出信息序列,而后调用服务程序spoolserver请求输出。Spoolserver接受输出请求,从相应输出缓冲区中取出信息序列送输出井,并构造一个reqblock,提交spoolout进程使用,然后返回用户进程继续执行。Spoolout进程执行时,根据取出的某reqblock的内容将输出井中的相应输出文件送实际输出设备,如打印机或CRT,随之释放相应井区。四实验程序 #include<stdio.h>#include<cstring>#include<cstdlib>#include<ctime>struct info_PCBlong ID; /进程标识 long status; /状态 long po; /输出指针 long head;/信息块首地址 long count;/输出长度 long wait1000;/输出缓冲 PCB4;struct info_blocklong ID; /要求输出的进程 long len;/输出长度 long head;/输出首地址 block128;struct info_walllong num10000;/输出内容 long open,closed;/队列指针 wall3;long K3,L1,L23;long n;void input() /输入函数printf("input the times of user1s output file:"); scanf("%ld",&K1);printf("input the times of user2s output file:"); scanf("%ld",&K2); void init() /初始化函数 L1=10;L21=L22=100;memset(PCB,0,sizeof(PCB);PCB1.ID=1;PCB2.ID=2;PCB3.ID=3;PCB3.status=2;memset(wall,0,sizeof(wall);n=0;void work()/模拟进程调度 long r;long k;long a,b;long i,j;while(PCB1.status!=3|PCB2.status!=3|PCB3.status!=3) r=rand()%100+1;/用随机数模拟进程执行概率 if(r<=45)k=1; elseif(r<=90)k=2;elsek=3;if(PCBk.status!=0)continue;switch(k)case 1:case 2:/输入进程ka=rand()%10;+PCBk.po;PCBk.waitPCBk.po=a;if(a=0)b=wallk.closed+1;for(i=1;i<=PCBk.po;i+)wallk.num+wallk.closed=PCBk.waiti;PCBk.po=0;PCBk.count+;if(PCBk.count=Kk) /进程执行完毕后应置成“结束状态” PCBk.status=3; if(PCB3.status=2) /要求输出进程在输出信息到输出井并形成信息快后,应将spooling进程置成“可运行状态 ”PCB3.status=0; if(L2k=0 && PCBk.status=0) /如果输出井满,将进程置为“不可运行状态1” PCBk.status=1; n+;blockn.ID=k;blockn.head=b;blockn.len=wallk.closed-b+1;printf("Process %ld produces a block %ld !n",k,n); break;case 3: /Spooling 进程PCB3.po+;a=PCB3.po;printf("Output block %ld :(ID=%ld)n",a,blocka.ID);for(i=1;i<=blocka.len;i+)printf("%ld ",wallblocka.ID.numi+blocka.head-1);printf("n");if(PCB3.po=n)PCB3.status=2; /Spooling 进程在输出井空时置成“不可运行状态2”if(PCB1.status=3 && PCB2.status=3)PCB3.status=3; break; int main()srand(time(NULL);input();init();work();return 0;五 实验结果首先进行输入产生结果如下图:六 实验总结 通过本次实验,加深了对与设备管理的连接和认识,了解了各种数据结构在设备管理中的作用和操作系统进行设备管理的原理,而SPOOLing技术就是在内核外运行的系统I/O软件,采用预输入、缓输出和井管理技术,是多道程序设计系统中处理独占型设备的一种方法,创建守护进程和特殊目录解决独占型设备的空占问题。 专心-专注-专业

    注意事项

    本文(操作系统实验报告(共9页).docx)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

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

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

    收起
    展开