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

    操作系统实验一.docx

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

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

    操作系统实验一.docx

    精品文档,仅供学习与交流,如有侵权请联系网站删除学号E11614051 专业计算机科学与技术 姓名施飞宇实验日期2018/10/25 教师签字 成绩实验报告【实验名称】 进程调度【实验目的】巩固和加深处理机调度的概念。设计调度算法,模拟实现处理机的调度【实验原理】先来先服务(FCFS)调度算法FCFS是最简单的调度算法,该算法既可用于作业调度,也可用于进程调度。 当在作业调度中采用该算法时,系统将按照作业到达的先后次序来进行调度,或者说它是优先考虑在系统中等待时间最长的作业,而不管该作业所需执行时间的长短,从后备作业队列中选择几个最先进入该队列的作业,将它们调入内存,为它们分配资源和创建进程,然后把它放入就绪队列。【实验内容】本次实验进程的数据结构如下:typedef struct pcbchar pnameN;/进程名int runtime;/运行时间int arrivetime;/到达时间int starttime;/开始运行时间 float avgtime;/带权周转时间char state;/进程状态 struct pcb *next;/链表指针PCB;1. 设计先来先服务调度算法FCFS测试数据:算法流程图(图1):图1源代码:/*2018/10/26 施飞宇 笃行南楼a202*/#define N 20#include <iostream>#include <stdlib.h>using namespace std;typedef struct pcbchar pnameN;/进程名int runtime;/运行时间int arrivetime;/到达时间int starttime;/开始运行时间 float avgtime;/带权周转时间char state;/进程状态 struct pcb *next;/链表指针PCB;PCB headinput;PCB headrun;PCB * pcbinput;void inputprocess();/建立进程函数int readydata()return 1;/判断进程是否进入就绪函数void runprocess();/运行进程函数void inputprocess()PCB *p1,*p2;cout<<"输入进程数目"<<endl;int num;cin>>num;int i=0;p1=&headinput;p2=p1;for(i=0;i<num;i+)cout<<"输入第"<<i+1<<"进程名,运行时间,到达时间"<<endl; scanf("%s",p1->pname);cin>>p1->runtime;cin>>p1->arrivetime;p1->next=new PCB;p2=p1;p1=p1->next;delete p1;p1=NULL;p2->next=NULL;void runprocess()PCB *p1;int time=0;/时间p1=&headinput;printf("进程名到达时间服务时间开始执行时间完成时间周转时间带权周转时间n");while(p1!=NULL)if(time<p1->starttime)time=p1->starttime;p1->starttime=time; p1->avgtime=(p1->starttime+p1->runtime-p1->arrivetime)*1.0/p1->runtime;time=p1->starttime+p1->runtime; printf("%s %10d %10d %10d %10d %10d %5fn",p1->pname,p1->arrivetime,p1->runtime,p1->starttime,p1->starttime+p1->runtime,p1->starttime+p1->runtime-p1->arrivetime,p1->avgtime); p1=p1->next;int main()inputprocess(); runprocess();return 0;运行截图:2. 设计按短进程优先调度算法SJF测试数据:算法流程图(图2):是否图2源代码:/*2018/10/26 施飞宇 笃行南楼a202*/#define N 20#include <iostream>#include <stdlib.h>#include <stdio.h>using namespace std;typedef struct pcbchar pnameN;/进程名int runtime;/运行时间int arrivetime;/到达时间int starttime;/开始运行时间 float avgtime;/带权周转时间char state;/进程状态 struct pcb *next;/链表指针PCB;PCB headinput;PCB headrun;PCB * pcbinput;void inputprocess();/建立进程函数int readydata()return 1;/判断进程是否进入就绪函数void runprocess();/运行进程函数void inputprocess()PCB *p1,*p2;cout<<"输入进程数目"<<endl;int num;cin>>num;int i=0;p1=&headinput;p2=p1;for(i=0;i<num;i+)cout<<"输入第"<<i+1<<"进程名,到达时间,运行时间"<<endl; scanf("%s",p1->pname); cin>>p1->arrivetime;cin>>p1->runtime; p1->state='a'p1->next=new PCB;p2=p1;p1=p1->next;delete p1;p1=NULL;p2->next=NULL;void runprocess() int b;PCB *p1,*p2;int time=0;/时间int runtime=0;/存储运行最短时间int label;printf("进程名到达时间服务时间开始执行时间完成时间周转时间带权周转时间n");while(1) runtime=100; p1=&headinput; label=1; while(p1!=NULL) if(p1->state!='a') p1=p1->next; continue; else/ cin>>b; if(runtime>p1->runtime)&&(time>=p1->arrivetime) p2=p1; runtime=p1->runtime;/ printf("%s %dn",p1->pname,runtime); label=0; p1=p1->next; if(label) break; p2->state='b'p2->starttime=time; p2->avgtime=(p2->starttime+p2->runtime-p2->arrivetime)*1.0/p2->runtime;time=p2->starttime+p2->runtime; printf("%s %10d %10d %10d %10d %10d %15.5fn",p2->pname,p2->arrivetime,p2->runtime,p2->starttime,p2->starttime+p2->runtime,p2->starttime+p2->runtime-p2->arrivetime,p2->avgtime);int main()inputprocess();PCB *p2=&headinput;/while(p2)/ printf("%s %10d %10d %10d %10d %10d %5fn",p2->pname,p2->arrivetime,p2->runtime,p2->starttime,p2->starttime+p2->runtime,p2->starttime+p2->runtime-p2->arrivetime,p2->avgtime);/ p2=p2->next; runprocess();return 0;运行截图:【小结或讨论】在SJF算法设计时,程序总在指针操作的过程正出错。后来在程序中添加输入中断程序,调试发现错误后才得到正确的算法。【精品文档】第 10 页

    注意事项

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

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




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

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

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

    收起
    展开