短作业优先调度算法
来源:互联网 发布:windows安装jdk1.7 编辑:程序博客网 时间:2024/05/05 06:15
短作业优先(SJF, Shortest Job First)又称为“短进程优先”SPN(Shortest Process Next);是对FCFS算法的改进,其目标是减少平均周转时间。
短作业优先调度算法基于这样一种思想:
运行时间短的优先调度;
如果运行时间相同则调度最先发起请求的进程。
等待时间:一个进程从发起请求到开始执行的时间间隔。
现在有n个进程请求cpu,每个进程用一个二元组表示:(p,q),p代表该进程发起请求的时间,p代表需要占用cpu的时间。
请计算n个进程的平均等待时间。
输入描述:
输入包含多组测试数据。
对于每组测试数据,第一行为一个整数n。
然后有n行,每行两个整数,代表上述的二元组(p,q).
保证:
2<=n<=2000,1<=p<=300,1<=q<=100.
import java.util.*;public class Main{ public static class Job implements Comparable{ public int request; public int cpu; public int compareTo(Object o) { // TODO Auto-generated method stub Job job=(Job)o; if(job.request==request) if(cpu<job.cpu) return -1; else if(cpu>job.cpu) return 1; else return 0; else if(request<job.request){ return -1; }else return 1; } } public float avgWait(int n, ArrayList<Job> jobs){ Collections.sort(jobs); float wait=0; int now=jobs.get(0).request; while(jobs.size()>0){ int i=0,j=0; Job job=jobs.get(i++); if(now<=job.request) {now+=job.cpu; jobs.remove(0); continue;} else{ while(i<jobs.size()){ Job jb=jobs.get(i++); if(jb.request<=now&&jb.cpu<job.cpu) { job=jb; j=i-1; } } wait=wait+now-job.request; now+=job.cpu; jobs.remove(j); } } return wait/n; } public static void main(String[] args){ Scanner scan=new Scanner(System.in); while(scan.hasNext()){ int n=scan.nextInt(); ArrayList<Job> jobs=new ArrayList<Job>(); for(int i=0;i<n;i++){ Job job=new Job(); job.request=scan.nextInt(); job.cpu=scan.nextInt(); jobs.add(job); } System.out.println((new Main()).avgWait(n,jobs)); } }}
0 1
- 短作业优先调度算法
- 短作业优先调度算法
- 最短作业优先调度算法
- 进程调度算法 短作业优先 SJF
- 算法/调度算法/ShortJobFirst(SJF)短作业优先调度算法
- 短作业优先调度算法(C++代码)
- 调度算法——短作业优先(java实现)
- 操作系统短作业优先(SJF)调度算法
- 抢占式短作业优先调度算法(SJF)
- 短作业调度算法
- 作业优先调度算法 先来先服务、短作业调度算法(c语言描述)
- Java模拟操作系统进程调度算法—先来先服务、短作业优先、高响比优先
- Java模拟操作系统进程调度算法—先来先服务、短作业优先、高响比优先
- 最短作业优先算法
- 短作业优先算法-SJF
- 短作业优先(SJF)算法
- java短作业优先算法
- 计算机操作系统调度算法——短作业优先算法简单实现
- ant 打包时,软件包 javax.servlet.http 不存在解决方法
- AndroidException -Unable to add window -- token null is not valid;
- Android中简单实现选择图片并裁剪
- (4.2.32)各大热补丁方案分析和比较
- TF-IDF值和文本向量化
- 短作业优先调度算法
- activity生命周期
- hdu 1012
- Effective Java(Java的反射机制)
- Clob转换
- 安卓开发配置环境变量
- java(JDBC连接数据库)[完整版封装]
- 常用CSS缩写语法总结
- 21.windows下连接mongodb错误