欢迎来到冰豆网! | 帮助中心 分享价值,成长自我!
冰豆网
全部分类
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • 党团工作>
  • ImageVerifierCode 换一换
    首页 冰豆网 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    实验一 进程调度实验报告.docx

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

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

    实验一 进程调度实验报告.docx

    1、实验一 进程调度实验报告广东技术师范学院实验报告学院:计算机科学学院专业:计算机科学与技术(师范)班级:成绩:姓名:学号:组别:组员:实验地点:实验日期:指导教师签名:预习情况操作情况考勤情况数据处理情况实验名称: 实验一、进程调度实验 一、实验目的用高级语言编写和调试一个进程调度程序,以加深对进程的概念及进程调度算法的理解二、实验类别综合性实验。综合高级语言编程、进程调度模型、进程调度算法及数据结构等多方面的知识三、实验内容和步骤 1。编写并调试一个模拟的进程调度程序,采纳“最高优先数优先”调度算法对五个进程进行调度、 “最高优先数优先”调度算法的基本思想是把CPU分配给就绪队列中优先数最高

    2、的进程。 静态优先数是在创建进程时确定的,并在整个进程运行期间不再改变。 动态优先数是指进程的优先数在创建进程时能够给定一个初始值,同时能够按一定原则修改优先数。例如:在进程获得一次CPU后就将其优先数减少。或者,进程等待的时间超过某一时限时增加其优先数的值,等等该题依照老师给的代码用Viul C+运行,结果以及分析如下:结果分析:依照上述输入的三个进程的信息能够得到:优先级最高的是进程c最先调度进程cc的状态为运行态,需要执行的时间为当前就绪队列状态为:进程a先级比较高,处于就绪队列前面,而进程bb先级是三者中最低的,因此处于就绪队列的最后。而此时这两个进程的状态都为就绪态。结果分析:当进程

    3、cc了一个时间片之后而它已占用CP时间已达到所需要的运行时间,则将它的优先级减之后,再将三个进程按优先级的大小排列,从中选择优先级大的进程进入运行状态,则该次进入运行态的是进程aa依照这种方式一直运行下去:直到:结果分析:当进程bb的PU占用时间等于它需要的执行时间时,进程bb度完成。则这时进程调度中还有两个进程:进程a进程c结果分析:当调度进程中只剩下进程aa程cc这时依照进程优先级的大小,进程aa入运行态。当进程aa调度时,进程调度程序中直剩下进程cc这时进程cc进入运行态,而当前就绪队列将为空。直到:结果分析:当进程i的CP占用时间等于所需要的执行时间时,进程c调度完成,则这时进程调度中

    4、差不多没有需要调度的进程了,则整个进程调度完成、编写并调试一个模拟的进程调度程序,采纳“轮转法调度算法对五个进程进行调度。 轮转法能够是简单轮转法、可变时间片轮转法,或多队列轮转法、 简单轮转法的基本思想是:所有就绪进程按FCFS排成一个队列,总是把处理机分配给队首的进程,各进程占用CPU的时间片相同。假如运行进程用完它的时间片后还为完成,就把它送回到就绪队列的末尾,把处理机重新分配给队首的进程。直至所有的进程运行完毕、将老师给的源程序修改成简单的时间片轮转法流程图如下:时间片轮转法icuesio。hnludesb、#icludeconio、hdneec(tpe) (yp)maloc(sief

    5、(ype)die NUL 0#define IM 2/时间片长度/typed struct pcb /进程管理块 char nme10;/进程名字 caate; /进程状态 it qeue; /进程所在的队列 int nime; /进程需要运行的时间 int tme; /进程差不多运行的时间 nt etime; /进程在本队列可运行的时间片 truct pb *nk;C;PCB*ready NULL, pinsert NLL, pend = NL,NULL; /*就绪队列,进程插入位置的变量/it gei() /使用户仅能输入整数 char ;in i =; ffush(stdn);ch ge

    6、tar(); hle(ch= ) pif(”tf输入不能为空。请重新输入n); fflush(stdi); c= char(); whie(ch != ) if(ch 9|h 0) printf(t输入有误!输入只能为正整数,请重新输入、。n); fflus(stdn); i 0; h= gcar();elei = i10 (ch- );ch =gehar(); retrni;voidfnps()/更新状态量PC *p pfen; if(!ps | !ps link|(s-link-queue- sqee) 1) inert ps;ele whe (slink & ikueue ! (pfen

    7、d quee +) pslink; pinsert = ps; o nset()/插入进程i(!redy ) ead = ; pe =p; pinsert = p; ese if(ready quee= 1) /第一队列存在 plink = pfendlink; pfend-link = ; pfend = p; finpo();Els link redy;rady=; findo(); voi inp()/建立进程控制块函数*/ int i,u;prinf(”请输入进程的个数:); num = gti(); for(i=; iame); print(n输入进程运行时间:); p -ntim

    8、geti(); prit(n); prime=0;p-state=w; pqueue =1; eti = TIM; p-link=NULL; iset();/调用inert函数*/ oid dis(PCB pr)/建立进程现实函数,用于显示当前进程/prnt(namet staet quuntimet tme在队列可停留时间 n); rnt(”|s”,pname); pintf(”|%”,ste); pif( |%t”,rueue);prinf( |dt”,p-ntime); pinf( |dt”,prtime);prit(%t,retm);rit(”n);vod chc()/建立进程查看函数

    9、/ PCB *pr; prin(n *当前正在运行的进程是:s,eadynme);/显示当前运行的进程/ isp(rady); pr=eay -ik; prinf(”n*当前就绪队列状态为:n”);/显示就绪队列状态hile(pr!=NLL) ds(r); pr=prlnk; voi st()/调整进程队列 if(!radylnkready-queureadyinkquee) eturn; p = y -link;ready lnk = pinsert ln; pnser lk = ready; pinsert = edy; reay = p;if (eady & ready -queu =

    10、pisrt ue) findpo(); void addnew()/添加新的进程f(ready -qeue != )(eay qeue)+;ad-ete 2; redy - te=w; sort();/调用sort函数/inpu(); ele t(); void destry()/建立进程撤销函数(进程运行结束,撤销进程)/ prntf(n进程%s已完成、n,rady-name);p = ready;ready= ry-lik; free();f (rad & ady - qeu = insert -queue) findps();voruni()建立进程就绪函数(进程运行时间到,置就绪状态)

    11、/ (redy-rime)+;radetime-;i(reayrte =eyntie) destro(); retun;se f(ready eme =0)int tme 2; (dy quee)+; for(int i = 2;i!=redyqueue; +i) time *= 2; re-tme = tme;y stte=w; sort();调用sot函数/void min() char c; inu();whl(read !=NLL) ptf(The exeute name:%sn,rady name); ready -te =R; ceck();rig(); pritf(”n按i键添加

    12、新进程、。、按其他任意键接着运行、。、”);flush(stdin); ch= gethar(); if(c = | h=)addew(); prf(nn 进程差不多完成n); getchar();运行结果如下:依照题意输入五个进程按任意键接着四、实验问题及原因(1)本次试验,思路设计不难在这个多级反馈的实验中,我采取了用一条实际上的链表队列来模拟多个逻辑上的队列,通过维护几个链表的状态信息来找到每个进程运行完后应该插入的地方,还有一个标志位Fnd用来表明新插入的队列的位置。(2)在建立优先数就绪队列时主要运用,链表插入模型、然而由于本题是从建立、到完成一个就绪对列,因此必须分多种情况讨论。五、实验体会和收获(1)本次试验后对优先数调度算法和时间片轮转调度算法实现的过程,有了特别清楚的认识、理解。设计计数器来对进程执行状态的时间分析,使得进程调度这一抽象模型得到具体化。之后,便是对进程的插入(执行完,插入到完成队列,否则插入到就绪)和再次调度(当改进程再次满足条件时,从就绪队列调度到执行队列)重复过程。(2)通过设计PCB结构,模拟进程调度,加深了对进程的理解。(3)提高了C语言编程动手能力


    注意事项

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

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




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2022 冰点文档网站版权所有

    经营许可证编号:鄂ICP备2022015515号-1

    收起
    展开