@AquariusGX

QQ:651572770 加我请注明来意。 twitter: @aquariusgx

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

先打条广告,这是我的新博客,www.aqugx.com , 会经常更新,欢迎大家光顾~

先看高程中的一道题目:

一个有两个作业管理进程的批处理系统,作业调度采用最高响应比优先的算法,  
  进程调度采用基于优先数(优先数大者优先)的算法,有以下作业序列。  
  作业名     到达时间             估计运行时间(分)         优先数  
  A               10:00                     50                                     5  
  B               10:20                     60                                     7  
  C               10:50                     40                                     3  
  D               11:20                     80                                     8  
  E               11:40                     30                                     6  
  F               12:00                     70                                     9        

计算每个作业的完成时间。

CSDN讨论帖:http://topic.csdn.net/t/20020906/08/1000588.html

先大概了解下:

作业调度(响应比)按一定的算法从磁盘上的“输入井”中选择资源能得到满足的作业装入内存,使作业有机会去占用处理器执行。但是,一个作业能否占用处理器,什么时间能够占用处理器,必须由进程调度来决定。所以,作业调度选中 了一个作业且把它装入内存时,就应为该作业创建一个进程,若有多个作业被装入内存,则内存中同时存在多个进程,这些进程的初始状态为就绪状态,然后,由进程调度(优先数)来选择当前可占用处理器的进程,进程运行中由于某种原因状态发生变化,当它让出处理器时,进程调度就再选另一个作业的进程运行。 因此,作业调度与进程调度相互配合才能实现多道作业的并行执行。

简单来说:比如两个作业管理进程的批处理系统。内存中一个作业运行,一个作业就绪。不是每个作业都有就绪的机会,想等到这个机会,等待的几个作业必须比较一下。

打个比方:小诊所里面补牙,一个人补着,几个人在屋子里等着,几个人在门口等着。

屋外的想进去,大家先来争(响应比:Rp=1+(已经等的时间) / 拔牙大概需要的时间),比完后,几个幸运儿进屋了,谁先补呢?再来比。这些人里面有个医生认识的领导,那领导先来,送红包的第二个,其他人等着(这就是优先数,大者享受优先待遇)。

 

接下来研究这道题,不着急,慢慢想,借用一段CSDN前辈的分析过程:

  10:00   作业A到达,被作业调度程序调度进入系统,被进程调度程序调度开始运行

   
  10:20   作业A运行20分钟,剩余30分钟,由于A的优先数小于B的优先数,被进程调度程序调度处于就绪状态。  
                作业B到达,被作业调度程序调度进入系统,被进程调度程序调度开始运行。  

  10:50   作业A等待30分钟,剩余30分钟。  
                作业B运行30分钟,剩余30分钟。  
                作业C到达,等待作业调度进程调度。  


  11:20   作业A等待60分钟,剩余30分钟,由于A的优先数大于C优先数,被进程调度程序调度运行。    
                作业B运行60分钟,运行结束。  
                作业C等待30分钟,响应比=1+30/40=1.75,被作业调度程序调度进入系统,被进程调度程序调度处于就绪状态。  
                作业D到达,响应比   =1+0/80=1,响应比低于作业C,等待作业调度进程调度。  


  11:40   作业A运行40分钟,剩余10分钟,由于A的优先数大于C优先数,被进程调度程序调度运行。  
                作业C等待20分钟,剩余40分钟。  
                作业D等待20分钟,响应比=1+20/80=1.25。  
                作业E到达,等待作业调度进程调度。    
 

  11:50   作业A运行50分钟,运行结束。  
                作业C等待30分钟,剩余40分钟,由于C的优先数小于D的优先数,被进程调度程序调度处于就绪状态。  
                作业D等待30分钟,响应比   =1+30/80=1.375,响应比高于作业E,被作业调度程序调度进入系统,被进程调度程序调度运行。  
                作业E等待10分钟,响应比=1+10/30=1.33,等待作业调度进程调度。  


  12:00   作业C等待40分钟,剩余40分钟。  
                作业D运行10分钟。  
                作业E等待20分钟,等待作业调度进程调度。  
                作业F到达,等待作业调度进程调度。

  
  13:10   作业C等待110   分钟,剩余40分钟,由于C的优先数小于E的优先数,被进程调度程序调度处于就绪状态。  
                作业D等待80分钟,运行结束。    
                作业E等待70分钟,响应比=1+70/30=3.33,响应比高于作业F,被作业调度程序调度进入系统,被进程调度程序调度运行。    
                作业F等待70分钟,响应比=1+70/70=2,等待作业调度进程调度。  


  13:40   作业C等待140分钟,剩余40分钟,由于   C的优先数小于F的优先数,被进程调度程序调度处于就绪状态。    
                作业E运行30分钟,运行完成。  
                作业F等待100分钟,被作业调度程序调度进入系统,被进程调度程序调度运行 

 
  14:50   作业C等待180分钟,剩余40分钟。  
                作业F运行70分钟,运行完成。  


  15:30   作业C运行40分钟,运行完成。  


  各作业的执行时间序列为:  
  作业A(50分钟)10:00-10:20, 11:20-11:50  
  作业B(60分钟)10:20-11:20  
  作业C(40分钟)14:50-15:30  
  作业D(80分钟)11:50-13:10  
  作业E(30分钟)13:10-13:40  
  作业F(70分钟)13:40-14:50

CSDN讨论帖:http://topic.csdn.net/t/20020906/08/1000588.html

转帖请注明出处:博客园及CSDN,欢迎拍砖,谢谢~    

 

这是我的新博客,www.aqugx.com , 会经常更新,欢迎大家光顾~

posted on 2010-05-19 04:12  aquariusgx  阅读(9702)  评论(2编辑  收藏  举报