最短作业优先调度算法(SJF算法)的C++实现.doc

最短作业优先调度算法(SJF算法)的C++实现.doc

ID:56778237

大小:17.00 KB

页数:4页

时间:2020-07-09

最短作业优先调度算法(SJF算法)的C++实现.doc_第1页
最短作业优先调度算法(SJF算法)的C++实现.doc_第2页
最短作业优先调度算法(SJF算法)的C++实现.doc_第3页
最短作业优先调度算法(SJF算法)的C++实现.doc_第4页
资源描述:

《最短作业优先调度算法(SJF算法)的C++实现.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、在作业调度中,该算法每次从后备作业队列中挑选估计服务时间最短的一个或几个作业,将他们调入内存,分配必要的资源,创建进程并放入就绪队列。与在进程调度中的原理类似。假设有n项作业位于就绪队列中,这些作业的请求时间用数组requestTimes按照提交时间的先后顺序存储,对应的作业服务时间(也称持续时间)用数组durations存储。当每个作业被完成后,接下来优先选择服务时间(持续时间)短的,如果多个服务时间一样,则优先选择请求时间最先的。采用SJF算法,计算n项作业的平均等待时间。所有要执行的任务的请求时间必须在上一个任务完成的时间内。假设0<=n<=100。测试用

2、例:requestTimes={0,2,4,5};durations={7,4,1,4};可以理解为一定首先执行第一个任务,请求时间为0,执行了7个时间单位;接下来在服务时间最短的中选择,显然是任务3,请求时间为4,执行1个时间单位;再接下来发现2和4这两个任务服务时间一样短,则优先选择请求时间最先的,显然是选择任务2,执行4个时间单位最后是任务4(并且只有任务4了),请求时间为5,执行4个时间单位等待时间:任务1是0,任务3是3,任务2是5,任务4是7,所以平均等待时间是4。intfindmin_duration(vector&a,int*b,int

3、end_time,intn){intmin=INT_MAX;intpos=0;for(inti=1;idurate(n,0);vectorstartTime(n,0);vectorendTime(n,0);vectorwaitTime(

4、n,0);inti;for(i=0;i

5、me[minIndex]=endTime[lastIndex];endTime[minIndex]=durations[minIndex]+startTime[minIndex];waitTime[minIndex]=startTime[minIndex]-requestTimes[minIndex];lastIndex=minIndex;}ints=0;for(i=0;i

6、v[]){intrequestTimes[4]={0,1,3,9};intdurations[4]={2,1,7,5};//intrequestTimes[]={0,2,4,5};//intdurations[]={7,4,1,4};cout<

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。