调度系统设计精要
调度系统解决的就是资源和需求供给不平衡的问题。
需求调研
- 调研应用场景,深入调研场景中待执行的任务(work)和能用来执行任务的资源)(resource)的特性。
- 分析调度系统的目的,成本优先,质量优先,最大化资源利用率等等
应用场景
了解任务的特性:
- 任务是否有截至日期,必须在某个时间以前完成;
- 任务是否支持抢占,抢占的具体规则是什么;
- 任务是否包含前置条件;
- 任务是否能在制定的资源上运行;
复杂性在于资源可能不平衡,不同资源处理任务的速度可能不一致。
linux调度例子
linux的进程调度器中,待调度的就是线程,线程只会处于执行或未执行状态。资源就是cpu(除cpu外系统不会为线程分配内存),同一个cpu在同一时间只能执行一个任务(进程中的线程),分配cpu时间给进程 ,上下文切换