零声企业级业golang项目实战课程从0带实你现ChatGPT项目
2023-06-10 11:00 作者:一起学习fee1024 | 我要投稿
调度是什么?
计算机的资源是有限的,像 CPU,内存都是固定的。但是同一时间可能会有多个任务要去完成,比如操作系统的定时监控,用户程序的运行等。
怎么让资源最大化的完成任务,这是调度需要考虑的关键点。
调度可以理解为一个指挥员,指导我们的程序按照一定的规则去获取资源,然后去执行里面的指令。

那么,一般的规则有哪些呢?
常见的调度策略有 2 种,一种是协作式调度,会让程序顺利的完成自己的任务,再把资源腾出来给其他程序使用。
另一种是抢占式调度,也就是让程序按一定的时间去占有这些资源,时间到了就被迫让出现有资源,给其他的程序轮流使用。
协作式调度有利于程序专注的完成自己的任务,但也可能会造成其他程序一直饿死,得不到执行。

抢占式调度有利于程序在资源的利用上雨露均沾,但是在不断的切换过程中,将会使得程序原本 10 ms 能完成的事,不得不延迟多几 ms。
