(跨考408,学操作系统调度算法想到一些有趣记忆方法,写下来只为放松一下,总结很水,纯粹为了写一下多级反馈队列调度算法和巩固一下记忆)
1、先来先服务调度算法(FCFS)
顾名思义,正常排队,简单低效,但对短作业不利。
不会饥饿,vip取钱也得排队。
2、短作业优先算法(SJF)
还是顾名思义,执行时间短则优先,不过这里分为“抢占式”和“非抢占式”。
(抢占式更为高效,但实现复杂,被抢占后执行时间与开始不同,类似我要取100万,取了60万时有人要来取1万,我退出给他取,我此时只要40万,有人新来取50万的话还是我先取)
默认非抢占,执行结束才看下一个谁时间短执行谁,不比抢占式的话平均等待时间周转时间最低。
会饥饿甚至饿死,普通人取的钱少可以插队,vip随便插队。
3、高响应比优先调度算法(HRRN)
响应比=(等待时间+要服务时间)/要服务时间
默认不抢占,响应比高的先执行。
不会饥饿,vip就算插队,但等待时间足够大时,自身相当于VIP
4、时间片轮转调度算法
一个程序一点时间,但不用平均分。时间片很大相当于FCFS,
5、优先级调度算法
分剥夺不剥夺(可否被打断),每个人有自己优先级,按优先级来,优先级也分为静态和动态,关于优先级的设定有一些原则要注意。
6、多级反馈队列调度算法(包含所有优点)
(主要想写这个!)
公司分东西,每人有定额(每个进程有自己所需要的时间),本着见者有份(不会饥饿),先到先得(公平性FCFS)原则,设置了ABC三条队伍(三个优先级不同的队列)。
来人即去A领1(第一次分少一点,保证后面有人来可以分的到)个,领完没领够去B排队。
当且仅当A队没人来时,给B队每人2个(第二序列时间片翻倍),领完去C队排队,若有人刚领了1个A队来人,让此人回B队尾,先去处理A队,则此人下次还会在B队领2个。(若有老板关系户(优先级很高,需要提前处理),想早点领完自己的份额,就不去C排队,B领完继续在B排)
AB没人,C队每人发4个,若还没领够,继续到C队尾(队列有限)反复领4个至够为止。
会饥饿,你领了一次到B队,A队一直来人轮不到你。