操作系统中的优先级思想

在学习操作系统时,每一章几乎都会存在优先级这个概念

,例如:管态和用户态,进程调度策略,内存调度策略,外存调度策略,I/O设备调度策略等。这些策略都围绕着操作系统的资源调度优先级的概念而展开的。而这产生的原因到底是什么呢?

排队

干货|操作系统中的优先级思想

生活当中,在进行购物时,看病挂号,银行取钱时往往会产生一种现象:排队。排队这种方式维护了大部分社会活动的应有秩序,使得整个社会活动井然有序的执行,但是产生排队的根本原因是什么?自然是商品不足,人力不足,物资不足等现实原因。试问,如果商品足够丰富,买家必然无需排队先到先得式的抢购商品;如果银行客服充足,客户也不必排队进行交易;医院资源丰富,用户也没必要进行排队挂号。也就是在资源足够丰富并且资源都一致高品质的情况下,每一位用户在发出需求之后,都可以立即接受到一对一的服务,这样的情况下必然不会产生排队。所以从客观角度来说是资源不足导致排队这一现象的现实原因。

先到先得

既然是排队,必定会产生被服务的先后顺序,即意味着优先级的概念,一般来说,排于前列的客户优先级更高,排于后者的优先级更低,而前后顺序在日常生活中大多数依赖根据是时间顺序,也就是先到先得。先到先得是一种优秀的资源分配方式,是基于时间成本的公平调度策略,但是

先到先得这种方式就可以满足所有情况吗

抢占式调度

干货|操作系统中的优先级思想

答案显然是否定的。在很多情况下,总会有优先级特别高的事件出现,在医院中有急诊病例,交通道路中有应急车道等,这些情况发生时,事件优先级会提升到“极高”,并且可能直接抢占正在使用相关资源的用户,这就是抢占式调度,抢占式调度直接回将现有的资源让给另一位用户给使用,被抢占的用户只能用其他的方式重新排队。

非抢占式排队

如果所有排队优先级改变时,都必须使用抢占式调度的方式,排队将会变成一个引发骚乱的事件,比如当前正在手术的病人,不可能说新的急诊病人来到医院,就必须把当前病人挤下手术台,这是十分可怕的。因此非抢占式排队应运而生,当新的急诊病人来到时,只能把其放置在正在手术的病人的后续,保证能最快的帮助该病人治疗病情,优先级拉到最高但是不抢占已有的位置。类似VIP客户也利用相关方式,当然某些情况VIP权利也存在抢占式。

目的

生活中的排队方式除了按照先来先得,应急提高优先级的方式之外,往往有更多更好的策略,但是都是在相对公平的情况下保证

能以最快的时间和最少的资源完成相关事件为目的。

总结

操作系统中对CPU,内存,外存,设备的调度,如何让以上资源得到最好最快的使用,让这些资源按照自己的要求在排队序列里面找到相应的位置,这就是操作系统设定优先级主要原因。

那操作系统在进行优先级设定的时候

到底都有些什么策略呢?

未完待续


分享到:


相關文章: