简单模拟高响应优先调度算法
来源:互联网 发布:手机淘宝怎么投诉买家 编辑:程序博客网 时间:2024/05/17 20:32
高响应比优先调度算法
在批处理系统中,用作作业调度的短作业优先算法是一个比较好的算法。其主要缺点是作业的运行得不到保证。如果我们能为每个作业引入前面所述的动态优先权机制,并使以速率a增加,则长作业在等待一定的时间后,必须有机会分配到处理机。该优先权的变化可描述为: 优先权=(等待时间+要求服务时间)/要求服务时间 由于等待时间加上要求服务时间,就是系统对该作业的响应时间,故该优先权又相当于响应比Rp=等待时间加要求服务时间/要求服务时间=响应时间/要求服务时间
由上式可以看出:
(1)如果作业的等待时间相同,则要求服务的时间愈短,其优先权愈高,因而该算法有利于短作业;
(2)当要求服务的时间相同时,作业的优先权决定于其等待时间,因而实现了先来先服务;
(3)对于长作业,当其等待时间足够长时,其优先权便可升到很高,从而也可获得处理机
public class Task { public int start; public int length; public Task(int start, int length) { super(); this.start = start; this.length = length; } public String toString(){ return start+" "+length; } }
public class HRRN { double P=0.0001; ArrayList<Task> array=new ArrayList<Task>(); public Task find(int start,ArrayList<Task> array){ Task returntask =null; double maxparameter =0; for(Task task:array){ if(task.start<=start){ double temp=(start-task.start)+P/task.length+1; if(temp>maxparameter){ maxparameter=temp; returntask=task; } } } array.remove(returntask); return returntask; } public void createTask(){ Scanner sc = new Scanner (new BufferedInputStream(System.in)); int m=sc.nextInt(); for(int i=0;i<m;i++ ){ Task task=new Task(sc.nextInt(),sc.nextInt()); array.add(task); } } public void Print(){ int start=1; while(array.size()!=0){ Task task=find(start,array); System.out.println(task); start=start+task.length; } } public static void main(String [] args){ HRRN hrrn=new HRRN(); hrrn.createTask(); hrrn.Print(); } }
在这里为了使:在开始的时候:task1(1,4),task2(1,3),task3(1,5)使得在调度时,使task2先调度,所以,在计算动态优先权时,添加了一个参数p使得,在如果作业的等待时间都为0的时候,服务时间最短的先执行;所以这个P要很小才行。
0 0
- 简单模拟高响应优先调度算法
- 高响应比优先调度算法
- 高响应比优先调度算法(HRRN)
- 高响应比优先调度算法以及其优缺点
- 非抢占的高响应比优先调度算法
- 采取高响应比优先模拟批处理操作系统中的作业调度
- 高响应比优先算法
- Java模拟操作系统进程调度算法—先来先服务、短作业优先、高响比优先
- Java模拟操作系统进程调度算法—先来先服务、短作业优先、高响比优先
- 模拟实现进程调度——采用高优先数优先和先来服务算法
- 高响应比调度算法
- 以高响应比优先为基础的轮转调度算法
- 先来先服务和高响应比优先调度算法C语言实现
- 高响应比优先算法c++版
- 简单电梯调度算法模拟
- Java模拟最短作业优先、时间片轮转、最高响应比三种进程调度算法
- C语言模拟最高优先数优先进程调度算法
- 【课设】模拟优先数调度算法-非抢占式
- CDMA码分多址
- HDU 1513 Palindrome(LCS)
- HHU暑期第三弹——数据结构进阶(线段树+树状数组+并查集)
- OC作业の歌词
- 浅谈EXTJS开发的学习1
- 简单模拟高响应优先调度算法
- hdu 1074 Doing Homework(dp)
- Android 你应该知道的学习资源-转载自鸿洋_大神博客
- [更新设计]跨平台物联网通讯框架ServerSuperIO 2.0 ,功能、BUG、细节说明,以及升级思考过程!
- ios 对于AFNetworking3.0的基本使用
- 存储过程
- Android将第三方apk文件编译生成到system.img中
- EXECUTORSERVICE线程池讲解
- 高压缩空间占用的 Hyper LogLog 算法