电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本
换一换
首页 金锄头文库 > 资源分类 > DOC文档下载
分享到微信 分享到微博 分享到QQ空间

操作系统实验处理机调度算法实现

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

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
1、金锄头文库是“C2C”交易模式,即卖家上传的文档直接由买家下载,本站只是中间服务平台,本站所有文档下载所得的收益全部归上传人(卖家)所有,作为网络服务商,若您的权利被侵害请及时联系右侧客服;
2、如你看到网页展示的文档有jinchutou.com水印,是因预览和防盗链等技术需要对部份页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有jinchutou.com水印标识,下载后原文更清晰;
3、所有的PPT和DOC文档都被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;下载前须认真查看,确认无误后再购买;
4、文档大部份都是可以预览的,金锄头文库作为内容存储提供商,无法对各卖家所售文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;
5、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据;
6、如果您还有什么不清楚的或需要我们协助,可以点击右侧栏的客服。
下载须知 | 常见问题汇总

操作系统实验处理机调度算法实现

天津理工大学计算机与通信工程学院实验报告2011 至 2012 学年 第 二 学期课程名称操作系统实验( 1 )实验名称处理机调度算法的实现实验时间 2012 年 5月 5日 第 1 节 至 第 6 节学号姓名*专业主讲教师辅导教师 软件环境VC+6硬件环境PC机实验目的 了解操作系统处理机调度的基本概念,处理机调度程序的功能,常用的处理机调度算法。C或C+编程方法与语句格式,提前初步编好实验程序。实验内容(应包括实验题目、实验要求、实验任务等)实验题目:处理机调度算法的实现实验要求:学生应正确地设计有关的数据结构与各个功能模块,画出程序的流程图,编写程序,程序执行结果应正确。实验任务:1.设定系统中有五个进程,每一个进程用一个进程控制块表示。2. 输入每个进程的“优先数”和“要求运行时间”,3.为了调度方便,将五个进程按给定的优先数从大到小连成就绪队列。用一单元指出队列首进程,用指针指出队列的连接情况。4. 处理机调度总是选队首进程运行。采用动态优先数算法,进程每运行一次优先数就减“1”,同时将运行时间减“1”。5.若要求运行时间为零,则将其状态置为“结束”,且退出队列。6.运行所设计程序,显示或打印逐次被选中进程的进程名以及进程控制块的动态变化过程实验过程与实验结果(可包括实验实施的步骤、算法描述、流程、结论等)实验步骤:1. 根据实验任务,先进行算法构思。因为是采取高优先权调度算法,因此在编写程序之前,先构思算法。具体算法见下面算法描述。2. 根据上一步骤写好的算法。3. 编写程序。4. 采用VC+进行程序的编写,并对编写的程序进行测试(1)初始化进程信息。(2)将各个进程按优先数从高到低排列成就绪队列。(3)检查所有队列是否为空,若空则结束,否则将队首进程调入执行。(4)检查该运行进程是否运行完毕,若运行完毕,将此进程状态改为完成,插入另一个完成进程队列;否则,将该进程的优先数减1,然后重新对它进行排序,插入就绪队列适当位置后等待CPU。(5)重复步骤(3)、(4),直到就绪队列为空。 算法描述:将每个进程抽象成一个控制块PCB, PCB用一个结构体描述。构建一个进程调度类。将进程调度的各种算法分装在一个类中。类中存在三个容器,一个保存正在或未进入就绪队列的进程,一个保存就绪的进程,另一个保存已完成的进程。还有一个PCB实例。主要保存正在运行的进程。类中其他方法都是围绕这三个容器可以这个运行中的PCB展开。主要用到的技术是STL中的vector以维护和保存进程容器、就绪容器、完成容器。当程序启动时,用户可以选择不同的调度算法。然后用户从控制台输入各个进程的信息,这些信息保存到进程容器中。进程信息输入完毕后,就开始了进程调度,每调度一次判断就绪队列是否为空,若为空则系统时间加一个时间片。判断进程容器中是否有新的进程可以加入就绪队列。函数描述: struct proc /*定义结构体内部包含进程的信息*/ char name5; /*定义进程名*/ int num; /*定义运行时间*/int pri; /*定义优先权*/;Void main()/*主函数:掌控整个程序的运行过程,是程序的主体部分*/struct proc prn; /*声明结构体数组*/for(i=0;i<n;i+) /*for 函数定义输入进程数*/for(k=1;k<n;k+) /*for 函数判断优先权大小并进行排序*/while(pr0.num!=0) /*while进程运行循环*/附实验代码:#include<stdio.h>#include<string>#define n 5struct proc /定义进程结构体 char name5; int num; int pri;void main()/主函数 char ch; struct proc prn;/声明结构体数组 int i,k,j; int count=n; for(i=0;i<n;i+)/输入5个进程 printf("第%d个进程:n",i+1); printf("名称:"); scanf("%s",&pri.name); printf("运行时间:"); scanf("%d",&pri.num); printf("优先级:"); scanf("%d",&pri.pri); /按进程优先级大小排序 for(k=1;k<n;k+)for(j=0;j<n-1;j+) if(prj.pri<prj+1.pri) struct proc temp; temp=prj; prj=prj+1; prj+1=temp; while(pr0.num!=0)/进程运行循环; ch=getchar(); pr0.pri=pr0.pri-1; pr0.num=pr0.num-1; printf("此次执行的进程数据属性:n"); printf("名称-%s,执行时间-%d,优先权-%dn",pr0.name,pr0.num,pr0.pri); if(pr0.num=0) printf("进程%s结束!n",pr0.name);count=count-1;printf("还有%d个进程在等待执行.n",count);for(i=0;i<count;i+)pri=pri+1;/排除掉运行完的进程 for(k=1;k<count;k+)/再排序for(j=0;j<count-1;j+) if(prj.pri<prj+1.pri) struct proc temp; temp=prj; prj=prj+1; prj+1=temp; 试验结果:1.执行结果2. 结果分析 当程序启动时,用户可以选择不同的调度算法。然后用户从控制台输入各个进程的信息,这些信息保存到进程容器中。进程信息输入完毕后,就开始了进程调度,每调度一次判断就绪队列是否为空,若为空则系统时间加一个时间片。判断进程容器中是否有新的进程可以加入就绪队列。

注意事项

本文(操作系统实验处理机调度算法实现)为本站会员(公****)主动上传,金锄头文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即阅读金锄头文库的“版权提示”【网址:https://www.jinchutou.com/h-59.html】,按提示上传提交保证函及证明材料,经审查核实后我们立即给予删除!

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




关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.