题目:(北京大学1993考研)算法
一个批处理系统中,有两个做业进程。有一个做业序列,到达时间和估计服务时间以下。系统采用最高响应比优先的做业调度算法,做业进程的调度采用短做业优先的抢占式调度算法。请列出各做业的执行状况表。spa
====================================================================blog
进程调度分为队列
长程调度,又称做业调度,用于决定把外存上处于后备队列中的哪些做业调入内存,并为它们建立进程、分配必要的资源,而后,再将新建立的进程排在就绪队列上,准备执行进程
短程调度,又称进程调度,用来决定就绪队列中的哪一个进程应得到处理机,而后再由分派程序把处理机分配给该进程的具体操做内存
中程调度,从就绪挂起到就绪,从阻塞挂起到阻塞,引入中程调度的主要目的,是为了提升内存利用率和系统吞吐量(这里不谈)资源
进程调度图:程序
一个做业到达时首先被放进后备队列。并行
做业调度按必定的算法从后备队列中选择到达的资源能获得知足的做业装入内存,使做业有机会去占用处理器执行。im
所谓的有机会,是由于此后还须要进程调度程序来进行调度,决定哪一个进程优先得到CPU,何时得到CPU,分配多少CPU时间片,能不能抢占等等,也就是说,调度程序才是大脑,CPU只是一个执行部件而已。
因而,做业调度选中了一个做业且把它装入内存时,就会为该做业建立一个进程,如有多个做业被装入内存,则内存中同时存在多个进程,这些进程的初始状态为就绪状态,放在就绪队列中,而后,由进程调度程序根据本身的调度算法来选择当前可占用处理器的进程,进程运行中会出现各类状态,有如下些状态会引发调度程序的从新调度决策:
1.在建立一个新进程时以后,须要决定运行父进程仍是子进程
2.在一个进程运行结束让出CPU使用权的时候,须要从新调度一个进程给CPU
3.当一个进程阻塞在I/O信号或者信号量或其余上面时,必须选择另一个进程运行。
4.在一个I/O中断发生时,某些被阻塞的等待该I/O的程序可能已经进入就绪态,须要从新决策。
调度算法分为抢占式和非抢占式算法两类,这里区分一下:
非抢占式:意味着调度程序调度某进程运行,分配时间片,直到时间片完或者该进程本身因为某些缘由阻塞才回打断其执行,不然调度程序不能由于优先级等缘由强行调度另外一个进程来抢占原有进程的CPU资源。
抢占式:意味着调度程序虽然调度了某个进程运行,可是此后调度程序随时能够根据其算法让另外一个符合优先执行的进程强制剥夺其CPU资源。
如此,做业调度与进程调度相互配合实现多道做业的并行执行。
那么为何要制定做业调度算法呢?为何要搞一个后备队列呢?一个做业到来后直接把它扔到就绪队列中不就行了?实际上咱们不这样作的缘由是就绪队列的空间多是有限的。好比题目说的有两个做业进程,说明就绪队列的容量是2,一个做业运行,一个做业就绪。因为不是每一个做业都能迅速达到就绪态,因此就须要做业调度来选择进入系统(就绪态)的做业。
解以下:
10:00 做业A到达,因为就绪队列空,做业调度进系统,进程调度执行
10:10 做业B到达,就绪队列未满,做业调度进系统,因为B此时是最短做业,因此进程调度A到就绪态,调度B执行
做业A已运行10分钟,剩余25分钟
10:15 做业C到达,响应比为1,等待做业调度进系统
做业B继续执行,已运行5分钟,剩余25分钟
做业A剩余25分钟,位于就绪队列
10:20 做业D到达,响应比为1,等待做业调度进系统
做业C等待5分钟,响应比R=1+5/45 = 1.11
做业B继续执行,已运行10分钟,剩余20分钟
做业A剩余25分钟,位于就绪队列
10:30 做业E到达,响应比为1,等待做业调度进系统
做业D等待10分钟,响应比R=1+10/20 = 1.5
做业C等待15分钟,响应比R=1+15/45 = 1.3
做业B继续执行,已运行20分钟,剩余10分钟
做业A剩余25分钟,位于就绪队列
10:40 做业E等待10分钟,响应比R=1+10/30 = 1.3
做业D等待20分钟,响应比R=1+20/20 = 2.0
做业C等待25分钟,响应比R=1+25/45 = 1.6
做业D具备最高响应比,D被做业调度进系统,因为是最短做业,进程调度D执行
做业B运行结束
做业A剩余25分钟,位于就绪队列
11:00 做业E等待30分钟,响应比R=1+30/30 = 2.0
做业C等待45分钟,响应比R=1+45/45 = 2.0
二者响应比相同,因为C先到达,因此做业调度C进系统
做业D运行20分钟,运行结束
做业A剩余25分钟,服务时间比C小,进程调度A执行
11:25 做业E等待55分钟,响应比R=1+55/30 = 2.8,做业调度进系统
做业C剩余45分钟,位于就绪队列
做业A运行25分钟,运行结束
由于C服务时间比E长,因此进程调度E执行
11:55 做业C剩余45分钟,位于就绪队列
做业E运行30分钟,运行结束
12:40 做业C运行结束
各做业运行时间段为:
A 10:00-10:10 11:00-11:25
B 10:10-10:40
C 11:55-12:40
D 10:40-11:00
E 11:25-11:55