时间片轮转的主要目的是,使得多个交互的用户能够得到及时响应,使得用户以为“独占”计算机的使用,因此它并没有偏好,也不会对特殊进程做特殊服务。时间片轮转增加了系统开销,所以不会使得系统高效运转,吞吐量和周转时间均不如批处理。但其较快速的响应时间使得用户能够与计算机进行交互,改善了人机环境,满足用户需求。
时间片轮转相较于I/O中断方式是提高了效率的。
所谓CPU繁忙型作业,是指该作业需要大量的CPU时间进行计算,而很少请求I/O操作。
I/O繁忙型的作业是指CPU处理时,需频繁的请求I/O操作。
先来先服务调度算法有利于CPU繁忙,而不利于I/O繁忙,可能这就是简单的就是最好的。
系统进程作为系统的管理者,理应拥有更高的优先级
比如我们平常玩手机的时候,在前台和我进行交互的进程应当更快速的响应我
因为I/O设备的处理速度比CPU慢得多,因此若将I/O型进程的优先级设置得更高,就更有可能让I/O设备尽早开始工作,进而提升系统的整体效率。
这可能就是木桶原理吧,木桶能装的水取决于最短的那块木板,同样,系统的整体效率取决于最低的那一个。
关于这个知识点,总是记不清,还是举例子好。
我今天上午要完成两个任务,一个是408,另一个是英语,408要花2h,英语要花1h。408先执行,408得周转时间是2,英语的周转时间是2+1=3。
平均周转时间是(2+3)/2=2.5。
这是因为周转时间=作业等待时间+在就绪队列中排队+在处理机上运行时间+进行输入输出操作所花费时间
对于高响应比优先算法,作业的等待时间相同时,要求服务时间越短,响应比越高,有利于短作业。
而时间片轮转到时间了就要进行轮换,并不偏好短进程或者长进程。
时间片轮转与高响应比优先算法都不会发生饥饿现象。
在先来先服务调度算法中,若一个长作业先到达系统,则会使后面的许多短进程等待很长的时间,因此对短作业不利。
分时系统是实现人机交互的系统,它有一个特性,即响应时间与时间片和用户数成正比。
UNIX是一个强大的多用户,多任务操作系统,支持多种处理器架构,按照操作系统分类,属于分时操作系统。
这是为了保证系统运行可靠,正确。
当进程处于临界区时,说明进程正在占用处理机,只要不破坏临界资源的使用规则,就不会影响处理机的调度。
对终端型作业用户而言,由于它们提交的作业大多属于交互型作业,作业通常比较短小,系统只要能使这些作业在第一级队列所规定的时间片内完成,便可使终端型作业用户感到满意;
对于短批处理作业用户而言,它与终端型作业一样的响应时间,对于稍长的作业,通常也只需要在第2级队列和第3级队列中各执行一个时间片即可完成,其周转时间仍然较短;
对于长批处理作业用户而言,它们的长作业将依次在第1,2,………………n级队列中运行,然后按照时间片轮转方式运行,用户不必担心其作业长期得不到处理
设某计算机系统有一个CPU,一台输入设备,一台打印机。现有两个进程同时进入就绪态,且进程A先得到CPU运行,进程后运行。进程A的运行轨迹为:计算50ms,打印信息100ms,再计算50ms,打印信息100ms,结束。
进程B的运行轨迹为:计算50ms,输入数据80ms,再计算100ms,结束。
这种题不画甘特图别想做出来。
从图中可以看出来,开始运行后,CPU在100-150这里是处于空闲等待状态的,CPU的利用率为5/6。
这种题可以很清楚的看出各个部件的使用情况,但比较难看出进程的等待时间。
有一点很容易错,就是利用率,比如求CPU的利用率,分子为CPU的使用时间,这没有任何问题。要认真记住分母是所有进程从开始到结束的时间,这一点往往会犯错,要非常小心。
我发现对于这种题目而言,上面那种甘特图很难用,需要用另一种甘特图。
假定要在一台处理机上执行下表所示的作业,且假定这些作业在时刻0以1,2,3,4,5的顺序到达。说明分别使用FCFS,RR(时间片为1),SJF及非剥夺式优先级调度算法时,这些作业的执行情况(优先级的高低顺序依次为1到5)。
针对上述每种调度算法,给出平均周转时间和平均带权周转时间。
对于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
我这道题不会写就不会在了没有理解
什么是两道作业的批处理系统,正因为是两道作业,所以调作业进入内存的时候看的是运行时间,内存中的两道作业抢占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。
假设某计算机系统有4个进程,各进程的预计运行时间和到达就绪队列的时刻见下表。试用可抢占式短进程优先调度算法和时间片轮转调度算法进行调度(时间配额为2).分别计算各个进程的调度次序及平均周转时间。
这里我犯的错误就是想当然的以为进程执行的顺序就是P1,P2,P3,P4但是忽略了在时刻2时,P1的时间片耗尽,然后执行顺序变为P2,P3,P1,在时刻3P4才到达就绪队列,因此进程的执行顺序就是P2,P3,P1,P4。
这是错误的甘特图,正确的甘特图应该是这样子的:
(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的时间比为(36400us + 1us+2us)/(1/100*36)
我这里犯了一个错误,我以为高响应比优先调度是抢占式的,但题目中既然没有说是抢占式的,那就顺序执行就好。
执行顺序是J1,J3,J2,J4
高级调度又称作业调度,它是内存与辅存之间的调度,对于每个作业只调入一次只调出一次。
多道批系统中大多配有作业调度,而其他系统中不需要配置作业调度
多级反馈队列调度算法不适合作业调度
中级调度又称内存调度,其目的是提高内存利用率和系统吞吐量,它是将不能运行的进程挂起
作业调度与内存调度的区别似乎是一个调入一个调出
低级调度负责分配处理及,进程频率很高