操作系统先来下服务器,先来先服务

如果早就绪的进程排在就绪队列的前面,迟就绪的进程排在就绪队列的后面,那么先来先服务(FCFS: first come first service)总是把当前处于就绪队列之首的那个进程调度到运行状态。也就说,它只考虑进程进入就绪队列的先后,而不考虑它的下一个CPU周期的长短及其他因素。FCFS算法简单易行,是一种非抢占式策略,但性能却不大好。

中文名

先来先服务

外文名

first-come first-service

优    势

简单,易于编码实现分    类

准则

优    点

有利于长作业以及CPU繁忙的作业

缺    点

不利于短作业以及I/O繁忙的作业

缩    写

FCFS

先来先服务基本思想

编辑

语音

先来先服务的调度算法:最简单的调度算法,既可以用于作业调度 ,也可以用于程序调度,当作业调度中采用该算法时,系统将按照作业到达的先后次序来进行调度,优先从后备队列中,选择一个或多个位于队列头部的作业,把他们调入内存,分配所需资源、创建进程,然后放入“就绪队列”,直到该进程运行到完成或发生某事件堵塞后,进程调度程序才将处理机分配给其他进程。[1]

先来先服务关键要领

编辑

语音

按照进程进入就绪队列的先后顺序调度并分配处理机执行。先来先服务调度算法是一种非抢占式的算法,先进入就绪队列的进程,先分配处理机运行。一旦一个进程占有了处理机,它就一直运行下去,直到该进程完成工作或者因为等待某事件发生而不能继续运行时才释放处理机。

(1)系统只要有按FIFO规则建立的后备作业队列或就绪进程队列即可,就是一个作业控制块JCB或进程控制块PCB加入队列时加在相应队列末尾。

(2)调度退出队列时从相应队列首开始顺序扫描,将相关的JCB或PCB调度移出相应队列。

先来先服务系统模型

编辑

语音

设处理机或系统资源为服务器,一个进程或一个作业为享受该服务器服务的顾客.这些顾客按 FCFS 方式排队享受服务的系统模型为:

855f2758bb0a8c8d954ccedc3951982a.png

这里 ,我们假定该系统模型中只有一个服务器 S.设新顾客到达等待队列的时间与系统的当前状态、以前的顾客到达时间都无关,也就是新顾客到达系统的时间是服从泊松分布的.同时设服务器 S为顾客提供服务的概率也服从泊松分布.[2]

先来先服务响应时间计算

编辑

语音

(1) 单位时间顾客到达的平均值和顾客被服务的平均值

因顾客到达系统的时间服从泊松分布,设 λ为到达率 ,

单位时间内顾客到达的期望值 ,即算术平均值为 :

7706f9ee638eeb2566b64a1ba93cc08d.png

即单位时间内顾客到达的平均值等于其到达率 .

同理,被服务器 S服务的顾客个数的平均值也等于其服务率 .[2]

(2)两个连续到达的顾客之间的平均时间间隔和服务器服务时间的平均值

将上述单位时间换成任意时间 t,可得到在已知时间 t内 x个顾客到达的概率,从而 ,t时间内至少到达一个顾客的概率也可知。

如果把时间 t看成是固定的时间间隔 ,则有在任何时间间隔 t内至少有一个顾客到达的概率和t时间内至少到达一个顾客的概率相等,这个概率和上一次顾客到达的时刻无关,这个特性称为无记忆特性或马尔可夫性质.

根据概率P(x) , 可知其密度函数和t 的期望值。

即两个连续到达的顾客之间的平均时间间隔为 1/ λ.同理,可得服务器服务时间的平均值为1/ μ.显然,只有当 1/ μ<1/ λ也就是λ

(3)系统在稳定状态下响应时间的计算

设 Si为系统的一个状态,表示等待服务的队列中有 i-1个顾客,服务器中有 1个顾客存在.再设系统在 t时间内处于状态Si的概率为Pi(t).

系统在稳定状态下,系统内不存在顾客的概率为 1 -ρ,而系统内存在顾客的概率为ρ.系统内顾客的算术平均值是:

207881ba556ba5ebf443cf1efb90dee5.png

上述按FCFS方式排列和调度 ,并只有一个服务器的系统称为M/M/1系统 .第一个字母M表示顾客到达时间间隔是指数分布 ,具有马尔可夫性质 ,第二个字母 M表示从服务器离开的顾客的时间间隔服从指数分布 ,具有马尔可夫性质 ,第三个数字 1表示只有一个服务器.

设响应时间 R为从顾客到达等待队列后开始到离开服务器的时间.系统进入稳定状态之后 ,系统中的顾客数 n和平均响应时间 R 之间存在一个非常简单的关系:n =λR , λ为顾客的平均到达率.可以求出M/M/1系统的平均响应时间为:

R=n/λ=46ff15c32ff4e58b994ea2d0e0d78cc6.svg ·(1/λ)=1/μ(1-ρ)

由此可以看出 ,M/M/1系统的服务性能是由 ρ决定的.如果 ρ趋近 1,即 λ趋近 μ,则响应时间急剧增大 ,系统性能变差.而当 ρ小于 1/2时 ,等待队列中为空的可能性较大 ,因为平均响应时间小于平均服务时间的2倍 .[2]

先来先服务对短作业影响

编辑

语音

设短作业的到达率和服务率分别为(λ1, μ1),长作业的到达率和服务率为(λ2, μ2),且两者都服从泊松分布 ,则 二者的合成仍是泊松过程 ,

一般来说,短作业的服务时间1/μ1远小于长作业1/μ2,先来先服务调度策略的响应时间R为:

R=n/λ=46ff15c32ff4e58b994ea2d0e0d78cc6.svg·(1/λ)=1/μ(1-ρ),其中λ=λ1+λ2,μ=μ1+μ2.

由于 λ和ρ中包含了λ1, λ2, μ1, μ2,所有作业的平均响应时间相同 ,从而,短作业在系统中的驻留平均时间与长作业的驻留平均时间相同 , 这对短作业是不利的.[2]

先来先服务优缺点

编辑

语音

有利于长作业(进程)而不利于短作业(进程)

有利于CPU繁忙型作业(进程)而不利于I/O繁忙型作业(进程)

参考资料

1.

汤小丹,梁红兵,哲凤屏,汤子瀛.计算机操作系统.西安:西安电子科技大学出版社,2014:89-90

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值