; S9 n( ~. o. n* @( _. j进程调度算法(全网最细) A2 ?& \/ M) E. _0 }
w8 Z1 r) |. b写在前面:我是【程序员宝藏】的宝藏派发员,致力于创作原创干货。我热爱技术、热爱开源与分享,创作的【计算机基础面试问题】系列文章和【计算机基础主干知识】系列文章广受好评!后期会创作更多优质原创系列文章!如果您对计算机基础知识、编程等感兴趣,可以关注我,我们一起成长! 9 ^) y/ |: t, M) n7 a) s * d/ K$ D Z; q; h0 i. ~% N' o3 v" q本人力荐:如果觉得CSDN排版不够美观,欢迎来我的个人原创公zong号【程序员宝藏】(号如其名,诚不欺你!)查看有红色重点标记和排版美观的全系列文章(不细你来找我要红包)& a) f# H4 l9 Z% y. Z, ?: ~
参考链接:TCP三次握手四次挥手4 q( j. ^. |" K0 v" E3 S O
' k/ \/ n# X& J好多同学问我要pdf版,我干脆把全部文章都整理成了pdf直接打印版,在公zong号后台回复关键字【宝藏】即可免费带回家慢慢看!. z# N" ]% m5 e9 @1 P
' a4 |. z8 l+ R0 P+ `
相关系列文章: % j8 Q9 Y0 P6 Y+ [ & z- p# }) U% M1 M6 ITCP三次握手和四次挥手加拓展面试题(全网最细)0 }5 h5 W0 [+ t, E
介质访问控制全网最细没有之一 4 C! E; t3 L. C% a路由算法(全网最细) 6 L& L$ Z3 t& g! e# T2 T d* q各层网络协议加面试拓展(全网最细) + D l& d4 g# F各层网络设备加拓展(全网最细)1 [7 s! b1 S( @* y# C
线程|进程|程序比较总结(全网最细) & _! Y+ S7 K. O0 z* \0 O/ y' x; `死锁加拓展问题(全网最细)2 k# K1 W7 }" Z. L+ m& }
文章目录 , A1 V$ P9 E& U@[toc]7 u' x0 R7 O* f+ N9 p
正文开始 - y6 M1 n8 y; U. M3 ]1.前导知识简述' n. D7 O0 e2 C) J/ N% S- L
调度的基本评价准则9 |5 z& }3 {; `" U! a
2.先来先服务调度算法(FCFS) % @0 Z% s1 [. d1 L @3.短进程优先调度算法(SPF)7 ?7 V% X, C4 n9 G0 E+ H; I
4.优先级调度算法( Q& v, P; V, j" Y" x' d# h* G
5.时间片轮转调度算法5 B5 u" ~' ^/ f! t3 B/ S0 W
6.高响应比优先调度算法 ' {7 z# c/ \# t7.多级反馈队列调度算法 3 Y. G( p6 Q9 C7 @3 C正文开始 . W" d; A5 C4 @7 Y- K5 M; }4 X3 ^1.前导知识简述! Z# N, ]5 C# g3 ~2 X
【问】:为什么要进行处理机调度?/ e$ n; v% Q2 N) P& B0 q7 `
若没有处理机调度,同意味着要等到当前运行的进程执行完毕后,下一个进程才能执行,而实际情况中,进程时常需要等待一些外部设备的输入,而外部设备的速度与处理机相比是非常缓慢的,若让处理机总是等待外部设备,则对处理机的资源是极大的浪费。而引进处理机调度后,可在运行进程等待外部设备时,把处理机调度给其他进程,从而提高处理机的利用率。用一句简单的话说,就是为了合理地处理计算机的软/硬件资源。1 x: H1 i* i+ _5 V4 }
- e5 Y, {, m! ^所谓进程调度方式,是指当某个进程正在处理机上执行时,若有某个更为重要或紧迫的进程需要处理,即有优先权更高的进程进入就绪队列,此时应如何分配处理机。通常有以下两种进程调度方式:. R0 l a/ D+ a6 z
1 D5 y; \$ J" E: r
非剥夺调度方式,又称非抢占方式。非剥夺调度方式是指当一个进程正在处理机上执行时,即使有某个更为重要或紧迫的进程进入就绪队列,仍然让正在执行的进程继续执行,直到该进程完成或发生某种事件而进入阻塞态时,才把处理机分配给更为重要或紧迫的进程。1 C$ i W. n7 V) D% |) K% j! n
这种方式的优点是实现简单、系统开销小,适用于大多数的批处理系统,但它不能用于分时系统和大多数的实时系统。2 f( N3 _" I- ~" n( [( S, i
9 ~# l. n# u- T4 W1 K( R
剥夺调度方式,又称抢占方式。剥夺调度方式是指当一个进程正在处理机上执行时,若有某个更为重要或紧迫的进程需要使用处理机,则立即暂停正在执行的进程,将处理机分配给这个更为重要或紧迫的进程。采用剥夺式的调度,对提高系统吞吐率和响应效率都有明显的好处。 3 L) W% ]2 T2 {. E; i但“剥夺”不是一种任意的行为,必须遵循一定的原则,主要有优先权、段进程优先和时间片原则等 / h; m/ g4 D r" r0 ?3 i! J' n) Y+ W0 a3 f" J% A T. g1 n: p- s* p" k
调度的基本评价准则# }4 j4 h* c W( u
CPU利用率 ( G! e, d: R& s! r8 |系统吞吐量:单位时间内CPU完成作业的数量0 E' H0 `: n8 \ F8 H
周转时间:作业完成时间 - 作业提交时间 3 Y/ p) k+ p. i/ {6 n等待时间:等待时间指进程处于等处理机状态的时间之和,等待时间越长,用户满意度越低。处理机调度算法实际上并不影响作业执行或输入/输出操作的时间,只影响作业在就绪队列中等待所花的时间。因此,衡量一个调度算法的优劣,常常只需简单地考察等待时间。6 T+ D1 y; j0 q: l' o
响应时间:响应时间指从用户提交请求到系统首次产生响应所用的时间。在交互式系统中,周转时间不可能是最好的评价准则,一般采用响应时间作为衡量调度算法的重要准则之一。从用户角度来看,调度策略应尽量降低响应时间,使响应时间处在用户能接受的范围之内。 + p! u( ^2 B$ {3 {& i2.先来先服务调度算法(FCFS) - i/ ?0 R+ v: g) v# qFCFS 调度算法是一种最简单的调度算法,它既可用于作业调度,又可用于进程调度。在作业调度中,算法每次从后备作业队列中选择最先进入该队列的一个或儿个作业,将它们调入内存,分配必要的资源,创建进程并放入就绪队列。 * E4 C. E' g% H% W- G6 X" v- J% X1 m X/ ?* l3 L* [
在过程调度中, FCFS调度算法每次从就绪队列中选择最先进入该队列的进程,将处理机分配给它,使之投入运行,直到完成或因某种原因而阻塞时才释放处理机。6 o, w$ u& G. G% O8 a M. I9 b