从Linux的进程调度机制中想到的

Linux持续维护相关的数据结构(诸如runqueueprio_array),不断更新进程的动态优先级,并相应的调整时间片,从而实现了O(1)复杂度的进程调度算法,可以在常量时间内调度新进程上台运行,而不受系统中进程总数的影响。

我觉得这至少能佐证三个道理:

1)效益可以来自于平时点点滴滴地积累(功夫都在平时,而并非只针对schedule()函数本身做天才的设计);

2)维持秩序固然需要成本,却可以带来可观的收益(如果不是一直维护着井然有序的队列,进程调度算法的复杂度恐怕很难优于O(N));

3)世上没有免费的午餐(O(1)复杂度不是0成本的),但不断努力,不断积累就可能吃到实惠的午餐。

你可能感兴趣的:(从Linux的进程调度机制中想到的)