当前位置: 技术问答>linux和unix
关于LINUX内核调度个人一些思索
来源: 互联网 发布时间:2016-10-13
本文导语: O(1)调度就是完全以优先级作为依据,在优先级位图中查找 存在进程的最高优先级队列。 优点可以 在可预计时间内找出优先级最高的就绪进程 予以调度。缺点是导致低优先级任务饥饿 O(1)调度就是完全以优先级作...
O(1)调度就是完全以优先级作为依据,在优先级位图中查找 存在进程的最高优先级队列。
优点可以
在可预计时间内找出优先级最高的就绪进程 予以调度。缺点是导致低优先级任务饥饿
O(1)调度就是完全以优先级作为依据,在优先级位图中查找 存在进程的最高优先级队列。
优点可以
在可预计时间内找出优先级最高的就绪进程 予以调度。缺点是导致低优先级任务饥饿
SD调度利用电梯理论,将高优先级任务用完单位时间片就一次一次的“下电梯”。直到降
到最低优先级的优先级队列。摒弃了0(1)冗长的优先级计算代码,取消了过期数组
RSDL 将SD调度进一步优化。采取粗时间片,当前优先级队列用完该层规定的粗时间片则不
论剩余进程是否被调度 全部给我下电梯。
CFS感觉 变化特大。
首先没有了复杂的优先级,时间片跟新代码。
其次将之前调度算法中基于优先级的调度 完全改变为:
键值为虚拟运行时间的红黑二叉树。只需查找红黑二叉树最左子树。
感觉设计内核调度的人 真TM天才。将操作系统内核中 对进程的调度 改变为 对某个数据
结果的操作(如0(1)的位图查找,红黑二叉树的最左子树查找)。
但我个人感觉CFS调度的出现,在一定程度上有悖 操作系统,特别是 嵌入式 实时操作系
统 中 任务调度的设计宗旨:区分普通进程和实时进程。实时操作系统内核的设计 就是要
将普通进程 和 实时进程 进行区分。Thread-X, UC-OSII ,VXWORKS 感觉在“区分”这点
上就做的很明显。为啥LINUX要独树一帜咧?CFS的出现,完全无视 实时进程和普通进程,完全进行统一化处理。
优点可以
在可预计时间内找出优先级最高的就绪进程 予以调度。缺点是导致低优先级任务饥饿
O(1)调度就是完全以优先级作为依据,在优先级位图中查找 存在进程的最高优先级队列。
优点可以
在可预计时间内找出优先级最高的就绪进程 予以调度。缺点是导致低优先级任务饥饿
SD调度利用电梯理论,将高优先级任务用完单位时间片就一次一次的“下电梯”。直到降
到最低优先级的优先级队列。摒弃了0(1)冗长的优先级计算代码,取消了过期数组
RSDL 将SD调度进一步优化。采取粗时间片,当前优先级队列用完该层规定的粗时间片则不
论剩余进程是否被调度 全部给我下电梯。
CFS感觉 变化特大。
首先没有了复杂的优先级,时间片跟新代码。
其次将之前调度算法中基于优先级的调度 完全改变为:
键值为虚拟运行时间的红黑二叉树。只需查找红黑二叉树最左子树。
感觉设计内核调度的人 真TM天才。将操作系统内核中 对进程的调度 改变为 对某个数据
结果的操作(如0(1)的位图查找,红黑二叉树的最左子树查找)。
但我个人感觉CFS调度的出现,在一定程度上有悖 操作系统,特别是 嵌入式 实时操作系
统 中 任务调度的设计宗旨:区分普通进程和实时进程。实时操作系统内核的设计 就是要
将普通进程 和 实时进程 进行区分。Thread-X, UC-OSII ,VXWORKS 感觉在“区分”这点
上就做的很明显。为啥LINUX要独树一帜咧?CFS的出现,完全无视 实时进程和普通进程,完全进行统一化处理。
|
2.4的内核是那样的,但2.6调度算法变了,抢占优先级和时间片实时性很大加强主要是为了pc桌面。
|
有加强仍属于不强
|
没有无视,他调度的综合几种调度算法,左后得到一个count来选择。
|
linux实时性不强,本来就不是为实时性设计的,实时性是要降低平均性能为代价