进程调度实报.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验报告 名称: 进程调度 姓名: 学号:___________________ 课程: 操作系统 指导老师:_______________ 2010-11-4 【实验名称】进程调度 【实验目的】 通过用高级语言编写进程调度程序而进一步加深对进程调度以及进程概念的理解,体会进程调度状态的变化。 【实验要求】 用高级语言编写和调试进程调度算法,且至少选用先来先服务算法,短进程优先算法,高优先级优先调度算法中的两种。 【算法描述及主要数据结构】 一﹑算法描述 在操作系统中,进程调度实际就是给进程分配内存资源,然而随着计算机系统的发展,为了更充分的利用系统资源以及提高计算机的运行效率,因此在不同的环境下采用不同的调度算法,使得系统具有合理的响应时间。 本实验采取先来先服务算法和高优先级优先算法。 1.先来先服务算法描述 每次提交作业都是从后备队列的队首作业。每一个进程用一个结构体表示,结构体可包括如下信息:进程名,进程到达时间和进程运行时间。这些信息都可人为的制定,也可由随机数随机产生(本实验在输入进程信息时人为指定),进程到达时间为进程输入时间。 当进程输入后,系统会按照输入时间对进程排序,将进程按atime进行排序,然后进入fcs f[n]中,而每次调度都是从f[n]中选择最先到达的进程(两个进程同时到达时以屏幕的输入顺序为准),当最早到达的进程到达时开始执行,并计算该作业的相关信息: 计算周转时间:f[i+1].atime-t[i]; 计算带权周转时间:(float)(f[i+1].atime-t[i])/f[i].runtime(t[i]=f[i].atime);并输出相关信息。以此类推,直到f[n]为空。 2.高优先级优先算法描述 采用最高优先数优先的调度算法(即把处理机分配给优先数最高的进程)。 每个进程有一个进程控制块( PCB)表示。进程控制块可以包含如下信息:进程名、优先数、到达时间、需要运行时间、已用CPU时间、进程状态等等。    进程的优先数及需要的运行时间可以事先人为地指定(也可以由随机数产生)。进程的到达时间为进程输入的时间。 进程的运行时间以时间片为单位进行计算。    每个进程的状态可以是就绪 W(Wait)、运行R(Run)、或完成F(Finish)三种状态之一。    就绪进程获得 CPU后都只能运行一个时间片。用已占用CPU时间加1来表示。    如果运行一个时间片后,进程的已占用 CPU时间已达到所需要的运行时间,则撤消该进程,如果运行一个时间片 后进程的已占用CPU时间还未达所需要的运行时间,也就是 进程还需要继续运行,此时应将进程的优先数减1(即降低一级),然后把它插入就绪队列等待CPU。    每进行一次调度程序都打印一次运行进程、就绪队列、以及各个进程的 PCB,以便进行检查。    重复以上过程,直到所有进程都完成为止。   “最高优先数优先”调度算法的基本思想是把CPU分配给就绪队列中优先数最高的进程。静态优先数是在创建进程时确定的,并在整个进程运行期间不再改变。动态优先数是指进程的优先数在创建进程时可以给定一个初始值,并且可以按一定原则修改优先数。例如:在进程获得一次CPU后就将其优先数减少1。 二﹑主要数据结构 1.Fcfs数据结构 typedef struct { char id; //进程名 int atime; //进程到达时间 int runtime; //进程运行时间 }fcs; 2、FPF算法数据结构 typedef struct node { char name[20]; //进程的名字 int prio; //进程的优先级 int atime; int cputime; //CPU执行时间 int needtime; //进程执行所需要的时间 char state; //进程的状态,W——就绪态,R——执行态,F——完成态 int endtime; struct node *next; //链表指针 }PCB; 【课程设计总结】 FCFS算法是一中简单的调度算法,实

文档评论(0)

mv2323 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档