GeekPlux

GeekPlux

马上订阅 GeekPlux RSS 更新: https://geekplux.com/atom.xml

算法优化人生之 —— 调度算法

2019年3月19日 04:20

原文地址:https://geekplux.com/2019/03/18/schedule-algorithm-and-life

电脑就是人脑的复刻,这是我大学时学《操作系统》这门课时的感受。最近在复习调度算法,又重拾了这种感觉,他俩太像了,电脑就是模仿人脑的机制制造出来的,但现在我们可以反过来从它身上学习一些优秀的算法,反哺自身(可能早已遗忘的)做事方法。

什么是调度算法

调度,你就理解成安排吧,大家应该都懂,懂的同学,这一节就直接跳过吧。

我来举个常见的栗子——电梯。据说每个程序员坐电梯的时候都会想电梯调度算法,我也不例外……

最简单的调度方法是什么呢?当然是“谁先按的谁先坐”,这个在计算机里叫先来先服务(FCFS-First Come First Serve)算法,不管你是在几楼按的电梯,电梯都是按顺序去接人、送人。你可以想象一下,一个人在 1 楼按了去 20 楼,然后第 2 个人在 2 楼按了去 5 楼,第 3 个人在 21 楼按了要去 1 楼。这时候电梯它首先会跑去 1 楼把第 1 个人送到 20 楼,再跑去 2 楼把第 2 个人送到 5 楼,最后再跑去 21 楼把第 3 个人送到 1楼。

是不是很蠢?它明明可以在送完第 1 个人之后去 21 楼接上第 3 个人,把他送到 1 楼后再去 2 楼接第 2 个人,这一下子能省多少电费啊!😳

所以有了第二种调度算法:最短寻找楼层时间优先(SSTF-Shortest Seek Time First) 算法,用人话说就是优先停到最近的楼层。...

Continue to read