进程调度网络项飞.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文档。上传文档
查看更多
进程调度网络项飞

淮海工学院计算机工程学院 实验报告书 课程名: 《操作系统原理》 题 目: 进程调度 班 级: 网络101 学 号: 111002131 姓 名: 项飞 一、实验目的 进程是操作系统最重要的概念之一,进程调度是操作系统内核的重要功能,本实验要求用语言编写一个进程调度模拟程序,使用所学过的调度算法模拟实现进程调度。本实验可加深对进程调度算法的理解。 二、实验内容 1、设计有5个进程并发执行的模拟调度程序,每个程序由一个PCB表示。 2、用FCFS和SJF两种调度算法实现模拟调度程序。 3、程序执行中应能在屏幕上显示出各进程的状态变化,以便于观察调度的整个过程。 三、实验过程 流程图 数据结构 PCB:先来先服务算法中,设PCB的结构如下图所示,其中各数据项的含义如下: ID arrtime sertime fintime turntime status ID:进程标识符号,取值1—5。 arrtime:进程到达时间,随机产生,范围1—5。 sertime:进程的服务时间,随机产生,范围5-10。 fintime:进程运行结束的时间,即完成时间 Status:进程状态R(运行),J(就绪),F(完成);初始时都处于就绪状态。 turntime:进程周转时间。 3、实验环境 Jdk 1.6 四、实验结果: 1:FCFS算法 2:SJF算法: 程序代码 import java.util.*; import java.util.Queue; import java.util.LinkedList; import java.awt.*; import java.awt.event.*; import javax.swing.Timer; @SuppressWarnings(unchecked) class process implements Comparable { static boolean bo=false; int arrtime;//到达时间 int sertime;//服务时间 int fintime;//结束时间 int turntime;//周转时间 int ID;//编号 String status;//状态 process(int a,int b,int ID,String status)//构造函数初始化对象 { arrtime=a; sertime=b; this.ID=ID; this.status=status; } public int compareTo(Object a)//重写Comparable接口中的方法 { process f=(process)a; if(bo) { return arrtime-f.arrtime; } else { return sertime-f.sertime; } } public static process[] FCFS(process a[])//FCFS { bo=true; Arrays.sort(a);//将五个作业按照到达时间排序 for(int i=0;ia.length;i++) { if(i==0) { a[i].fintime=a[i].arrtime+a[i].sertime;//第一个作业的结束时间为到达时间+服务时间 } else { a[i].fintime=a[i-1].fintime+a[i].sertime;//起一个作业之后的作业结束时间为前一作业的结束时间+当前作业的服务时间 } a[i].turntime=a[i].fintime-a[i].arrtime;//计算周转时间 } return a; } public static process[] S

文档评论(0)

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

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

1亿VIP精品文档

相关文档