操作系统---第二章进程管理---处理机调度---选择题

1时间片轮转调度算法是为了

时间片轮转的主要目的是,使得多个交互的用户能够得到及时响应,使得用户以为“独占”计算机的使用,因此它并没有偏好,也不会对特殊进程做特殊服务。时间片轮转增加了系统开销,所以不会使得系统高效运转,吞吐量和周转时间均不如批处理。但其较快速的响应时间使得用户能够与计算机进行交互,改善了人机环境,满足用户需求。
时间片轮转相较于I/O中断方式是提高了效率的。

2CPU繁忙型作业和I/O繁忙型作业

所谓CPU繁忙型作业,是指该作业需要大量的CPU时间进行计算,而很少请求I/O操作。
I/O繁忙型的作业是指CPU处理时,需频繁的请求I/O操作。
先来先服务调度算法有利于CPU繁忙,而不利于I/O繁忙,可能这就是简单的就是最好的。

3优先级调度算法

(1)系统进程>用户进程

系统进程作为系统的管理者,理应拥有更高的优先级

(2)交互型进程>非交互型进程(或前台进程>后台进程)

比如我们平常玩手机的时候,在前台和我进行交互的进程应当更快速的响应我

(3)I/O型进程>计算型进程

因为I/O设备的处理速度比CPU慢得多,因此若将I/O型进程的优先级设置得更高,就更有可能让I/O设备尽早开始工作,进而提升系统的整体效率。
这可能就是木桶原理吧,木桶能装的水取决于最短的那块木板,同样,系统的整体效率取决于最低的那一个。

4 周转时间

关于这个知识点,总是记不清,还是举例子好。
我今天上午要完成两个任务,一个是408,另一个是英语,408要花2h,英语要花1h。408先执行,408得周转时间是2,英语的周转时间是2+1=3。
平均周转时间是(2+3)/2=2.5。
这是因为周转时间=作业等待时间+在就绪队列中排队+在处理机上运行时间+进行输入输出操作所花费时间

5 时间片轮转与高响应比优先

(1)

对于高响应比优先算法,作业的等待时间相同时,要求服务时间越短,响应比越高,有利于短作业。
而时间片轮转到时间了就要进行轮换,并不偏好短进程或者长进程。

(2)

时间片轮转与高响应比优先算法都不会发生饥饿现象。

6 为什么先来先服务调度算法对短进程不利?

在先来先服务调度算法中,若一个长作业先到达系统,则会使后面的许多短进程等待很长的时间,因此对短作业不利。

7 分时系统

分时系统是实现人机交互的系统,它有一个特性,即响应时间与时间片和用户数成正比。
UNIX是一个强大的多用户,多任务操作系统,支持多种处理器架构,按照操作系统分类,属于分时操作系统。

8 中断为什么由硬件保护并完成?

这是为了保证系统运行可靠,正确。

9 进程处于临界区

当进程处于临界区时,说明进程正在占用处理机,只要不破坏临界资源的使用规则,就不会影响处理机的调度。

10为什么多级反馈队列调度算法能较好地满足各类用户的需要?

对终端型作业用户而言,由于它们提交的作业大多属于交互型作业,作业通常比较短小,系统只要能使这些作业在第一级队列所规定的时间片内完成,便可使终端型作业用户感到满意;
对于短批处理作业用户而言,它与终端型作业一样的响应时间,对于稍长的作业,通常也只需要在第2级队列和第3级队列中各执行一个时间片即可完成,其周转时间仍然较短;
对于长批处理作业用户而言,它们的长作业将依次在第1,2,………………n级队列中运行,然后按照时间片轮转方式运行,用户不必担心其作业长期得不到处理

11甘特图的画法

(1)

设某计算机系统有一个CPU,一台输入设备,一台打印机。现有两个进程同时进入就绪态,且进程A先得到CPU运行,进程后运行。进程A的运行轨迹为:计算50ms,打印信息100ms,再计算50ms,打印信息100ms,结束。
进程B的运行轨迹为:计算50ms,输入数据80ms,再计算100ms,结束。
这种题不画甘特图别想做出来。
操作系统---第二章进程管理---处理机调度---选择题_第1张图片
从图中可以看出来,开始运行后,CPU在100-150这里是处于空闲等待状态的,CPU的利用率为5/6。
这种题可以很清楚的看出各个部件的使用情况,但比较难看出进程的等待时间。
有一点很容易错,就是利用率,比如求CPU的利用率,分子为CPU的使用时间,这没有任何问题。要认真记住分母是所有进程从开始到结束的时间,这一点往往会犯错,要非常小心。

(2)

操作系统---第二章进程管理---处理机调度---选择题_第2张图片
我发现对于这种题目而言,上面那种甘特图很难用,需要用另一种甘特图。

12平均周转时间和平均带权周转时间

假定要在一台处理机上执行下表所示的作业,且假定这些作业在时刻0以1,2,3,4,5的顺序到达。说明分别使用FCFS,RR(时间片为1),SJF及非剥夺式优先级调度算法时,这些作业的执行情况(优先级的高低顺序依次为1到5)。
针对上述每种调度算法,给出平均周转时间和平均带权周转时间。
操作系统---第二章进程管理---处理机调度---选择题_第3张图片
对于FCFS算法,其总周转时间为 10+(10+1)+(10+ 1+2)+(10+1+2+1)+(10+1+2+1+5)=67
平均周转时间为67/5=13.4
其总带权周转时间为10/10+(10+1)/1+(10+1+2)/2+(10+1+2+1)/1+(10+1+2+1+5)/5=
1+11+6.5+14+3.8=36.3
36.3/5=7.26

对于RR,即时间片轮转算法而言。内部应该是按照FCFS来的。
作业1的周转时间:10+1+2+1+5=19
作业2的周转时间:1+1=2
作业3的周转时间:5+1+1+1=8
作业3的周转时间为:5+1+1=7
作业4的周转时间:1+1+1+1=4
作业5的周转时间:5+3+2+2+2=14
平均周转时间为(19+2+8+4+14)/5=11.4
平均带权周转时间为(19+2+7+4+14)/5=9.2
作业1的带权周转时间为:19/10=1.9
作业2的带权周转时间为:2/1=2
作业3的带权周转时间为:8/2=4
作业3的带权周转时间为:7/2=3.5
作业4的带权周转时间为:4/1=4
作业5的带权周转时间为:14/5=2.8
平均带权周转时间为(1.9+2+4+4+2.8)/5=2.95
平均带权周转时间为(1.9+2+3.5+4+2.8)/5=2.84

对于SLJ算法而言,
作业1的周转时间:1+1+2+5+10=19
作业2的周转时间:1
作业3的周转时间:1+1+2=4
作业4的周转时间:1+1=2
作业5的周转时间:1+1+2+5=9
其平均周转时间为(19+1+4+2+9)/5=7
作业1的带权周转时间为:19/10=1.9
作业2的带权周转时间为:1/1=1
作业3的带权周转时间为:4/2=2
作业4的带权周转时间为:2/1=2
作业5的带权周转时间为:9/5=1.8
平均带权周转时间为(1.9+1+2+2+1.8)/5=1.74

对于非剥夺式优先级调度算法而言,
作业1的周转时间:1+5+10=16
作业2的周转时间:1
作业3的周转时间:17+2=19
作业4的周转时间:16+1=17

作业3的周转时间为:16+2=18
作业4的周转时间为:18+1=19
作业5的周转时间:1+5=6
其平均周转时间为(16+1+19+17+6)/5=11.8
其平均周转时间为:(16+1+18+19+6)/5=12
作业1的带权周转时间为:16/10=1.6
作业2的带权周转时间为:1/1=1
作业3的带权周转时间为:19/2=9.5
作业4的带权周转时间为:17/1=17

作业3的带权周转时间为:18/2=9
作业4的带权周转时间为:19/1=19
作业5的带权周转时间为:6/5=1.2
其平均带权周转时间为(1.6+1+9.5+1.7+1.2)/5=3
其平均带权周转时间为(1.6+1+9+19+1.2)/5=6.36

13有一个具有两道作业的批处理系统,作业调度采用短作业优先调度算法,进程调度采用抢占式优先级调度算法。作业的运行情况见下表,其中作业的优先级即进程的优先数,优先数越小,优先级越高。

操作系统---第二章进程管理---处理机调度---选择题_第4张图片

我这道题不会写就不会在了没有理解
什么是两道作业的批处理系统,正因为是两道作业,所以调作业进入内存的时候看的是运行时间,内存中的两道作业抢占CPU的时候用的是优先级。

8:00,作业1来到,此时内存和处理机空闲,作业1进入内存并占用处理机;
8:20,作业2到来,内存仍有一个位置空闲,因此将作业2调入内存,又因为作业2的优先数高,相应的进程抢占处理机。
8:30作业3到来,但内存此时已无空闲,因此等待。
8:50,作业2执行完毕,此时作业3,4竞争空出的一道内存空间,作业4的运行时间更短,因此先调入,但它的优先数低于作业1,因此作业1先执行。
9:10,作业1执行完毕,再将作业3调入内存,且由于作业3的优先数高而占用CPU。

14我对于时间片轮转算法的理解还不到位

假设某计算机系统有4个进程,各进程的预计运行时间和到达就绪队列的时刻见下表。试用可抢占式短进程优先调度算法和时间片轮转调度算法进行调度(时间配额为2).分别计算各个进程的调度次序及平均周转时间。

操作系统---第二章进程管理---处理机调度---选择题_第5张图片
这里我犯的错误就是想当然的以为进程执行的顺序就是P1,P2,P3,P4但是忽略了在时刻2时,P1的时间片耗尽,然后执行顺序变为P2,P3,P1,在时刻3P4才到达就绪队列,因此进程的执行顺序就是P2,P3,P1,P4。
操作系统---第二章进程管理---处理机调度---选择题_第6张图片
这是错误的甘特图,正确的甘特图应该是这样子的:

15假设一个计算机系统具有如下性能特征:处理一次中断平均需要500us,一次进程调度平均需要花费1ms,进程的切换平均需要花费2ms。若该计算机系统的定时器每秒发出120次时钟中断,忽略其他I/O中断的影响,请问:

(1)操作系统将百分之几的CPU时间分配给时钟中断处理程序?
120500us=60000us=60ms=0.06s,也就是6%的CPU时间分配给时钟中断处理程序。
(2)若系统采用时间片轮转调度算法,24个时钟中断为一个时间片,操作系统每进行一次时钟的切换,需要花费百分之几的CPU时间?
一次时钟切换,就是一个时间片耗尽了,一个时间片就是0.2s就是200ms,一次进程调度需要花费1ms,一个时间片可以进行200次进程调度,一个进程的切换需要2ms,200个进程的切换需要400ms,所以是40%?
我这里犯错了,原来一个时间片只进行一次进程调度与进程切换的。
3ms/200ms =1.5%
(3)为提高CPU的效率,一般情况下要尽量减少时钟中断的次数,如由每秒120次降低到100次,以延长中断的时间间隔。或将每个时间片的中断数量(时钟数)加大,如由24个中断加大到36个。也可优化中断处理程序,减少中断处理开销,如将每次500us降低到400us。若能这样,则时钟中断和进程切换的总开销占CPU的时间比为(36
400us + 1us+2us)/(1/100*36)

16设有4个作业J1,J2,J3,J4,他们的到达时间和计算时间见下表。若这四个作业在一台处理器上按单道方式运行,采用高响应比优先调度算法,试写出各作业的执行顺序,各作业的执行时间及平均周转时间。

操作系统---第二章进程管理---处理机调度---选择题_第7张图片
我这里犯了一个错误,我以为高响应比优先调度是抢占式的,但题目中既然没有说是抢占式的,那就顺序执行就好。
操作系统---第二章进程管理---处理机调度---选择题_第8张图片
执行顺序是J1,J3,J2,J4

17高级调度,中级调度,低级调度

高级调度又称作业调度,它是内存与辅存之间的调度,对于每个作业只调入一次只调出一次。
多道批系统中大多配有作业调度,而其他系统中不需要配置作业调度
多级反馈队列调度算法不适合作业调度
中级调度又称内存调度,其目的是提高内存利用率和系统吞吐量,它是将不能运行的进程挂起
作业调度与内存调度的区别似乎是一个调入一个调出
低级调度负责分配处理及,进程频率很高

你可能感兴趣的:(王道操作系统,408)