21道并发编程口试题(6)

      在早期的时间片轮转法中,系统将所有的停当历程按先来先处事的原则排成一个行列,每次调治时,把CPU 分派给队首历程,并令其执行一个时间片。时间片的巨细从几ms 到几百ms。当执行的时间片用完时,由一个计时器发出时钟间断请求,调治措施便据此信号来遏制该历程的执行,并将它送往停当行列的末端;然后,再把处理惩罚机分派给停当行列中新的队首历程,同时也让它执行一个时间片。这样就可以担保停当行列中的所有历程在一给定的时间内均能得到一时间片的处理惩罚机执行时间。换言之,系统能在给定的时间内响应所有用户的请求。

    12.4.2 多级反馈行列调治算法

      前面先容的各类用作历程调治的算法都有必然的范围性。如短历程优先的调治算法,仅照顾了短历程而忽略了上历程,并且假如并未指明历程的长度,则短历程优先和基于历程长度的抢占式调治算法都将无法利用。而多级反馈行列调治算法例不必事先知道各类历程所需的执行时间,并且还可以满意各类范例历程的需要,因而它是今朝被公认的一种较好的历程调治算法。在回收多级反馈行列调治算法的系统中,调治算法的实施进程如下所述。
      (1) 应配置多个停当行列,并为各个行列赋予差异的优先级。第一个行列的优先级最高,第二个行列次之,其余各行列的优先权逐个低落。该算法赋予各个行列中历程执行时间片的巨细也各不沟通,在优先权愈高的行列中,为每个历程所划定的执行时间片就愈小。譬喻,第二个行列的时间片要比第一个行列的时间片长一倍,……,第i+1个行列的时间片要比第i个行列的时间片长一倍。
      (2) 当一个新历程进入内存后,首先将它放入第一行列的末端,按FCFS原则列队期待调治。当轮到该历程执行时,如它能在该时间片内完成,便可筹备撤离系统;假如它在一个时间片竣事时尚未完成,调治措施便将该历程转入第二行列的末端,再同样地按FCFS原则期待调治执行;假如它在第二行列中运行一个时间片后仍未完成,再依次将它放入第三行列,……,如此下去,当一个长功课(历程)从第一行列依次降到第n行列后,在第n 行列便采纳定时间片轮转的方法运行。
      (3) 仅当第一行列空闲时,调治措施才调治第二行列中的历程运行;仅当第1~(i-1)行列均空时,才会调治第i行列中的历程运行。假如处理惩罚机正在第i行列中为某历程处事时,又有新历程进入优先权较高的行列(第1~(i-1)中的任何一个行列),则此时新历程将抢占正在运行历程的处理惩罚机,即由调治措施把正在运行的历程放回到第i行列的末端,把处理惩罚机分派给新到的高优先权历程。

  12.5 电梯调治算法

    高层修建中电梯请求不绝地到来,节制电梯的计较性可以或许很容易地跟踪顾主按下请求的顺序。假如利用先来先处事算法调治,同时假如电梯负载很重,那么大部门时间电梯将逗留在电梯的中部区域,而电梯两头区域的请求将不得不期待,直到负载中的统计颠簸使得中部区域没有请求位置,这样导致远离中部区域的请求获得的处事很差。因此得到最小响应时间的方针和公正性之间存在着斗嘴。
大大都电梯利用电梯算法来协调效率和公正性这两个彼此斗嘴的方针。电梯算法电梯保持按一个偏向移动,直到在谁人偏向上没有请求位置,然后改变偏向。
电梯算法(elevation algorithm)需要软件维护一个二进制位,即当前偏向位:向上(up)或向下(down)。当一个请求处理惩罚完成之后,电梯的驱动措施查抄该位,假如是up,电梯移至下一个更高的未完成的请求。假如更高的位置没有未完成的请求,则偏向位取反。当偏向位配置为down时,同时存在一个低位置的请求,则移向该位置。

    此刻我们大白了,电梯的上下箭头按钮是为了汇报电梯你想向上照旧向下去),而不是让电梯向上照旧向下。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wsdjff.html