社区
Linux_Kernel
帖子详情
Linux中普通进程调度选择红黑树结构的理由是什么?
astrid_l
2014-03-23 06:35:16
Linux中的调度延迟机制保证了在一个调度延迟内每个进程至少运行一次。而且,我在看Linux内核源码的时候,觉得在每一个周期延迟后,进程的虚拟时间推进的值都是一样的。
在看网上的一篇文章时,它说“每到了系统调度周期的末尾,所有进程的虚拟时钟vruntime得到归一,换句话说就是所有进程的vruntime将相同”。
既然如此,有使用红黑树结构的必要吗?
...全文
455
3
打赏
收藏
Linux中普通进程调度选择红黑树结构的理由是什么?
Linux中的调度延迟机制保证了在一个调度延迟内每个进程至少运行一次。而且,我在看Linux内核源码的时候,觉得在每一个周期延迟后,进程的虚拟时间推进的值都是一样的。 在看网上的一篇文章时,它说“每到了系统调度周期的末尾,所有进程的虚拟时钟vruntime得到归一,换句话说就是所有进程的vruntime将相同”。 既然如此,有使用红黑树结构的必要吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
一根烂笔头
2014-04-03
打赏
举报
回复
使用红黑树主要是减小选择下一个可运行进程,以及插入一个进程的开销
inurlcn
2014-04-03
打赏
举报
回复
xuexi 学习下,正好通过linux内核学习数据结构
lucky-lucky
2014-03-24
打赏
举报
回复
红黑树主要是为了降低进程创建和删除的复杂度,进程调度与这个不相关的
Linux
内核使用
红黑树
的场景
在
Linux
内核
中
,TCP 和 UDP 协议
中
都使用了
红黑树
来管理端口号和连接状态等信息,以支持快速的连接建立和数据传输。为了高效地管理虚拟机和物理机之间的关系和状态,内核使用
红黑树
来维护不同虚拟机和物理机之间的映射关系。因此,内核使用
红黑树
作为查找和管理
进程调度
队列的数据
结构
,以支持快速的查找、插入和删除操作。为了高效地管理模块和内核之间的关系和状态,内核使用
红黑树
来维护不同模块和内核之间的依赖关系。为了高效地管理设备和驱动程序之间的关系和状态,内核使用
红黑树
来维护不同设备和驱动程序之间的映射关系。
Linux
进程的调度
目录调度策略与调度类实时调度策略
普通
调度策略调度类sched_class有几种实现:完全公平调度算法调度队列与调度实体调度类是如何工作的?在
Linux
里面,进程大概可以分成两种。 一种称为实时进程,也就是需要尽快执行返回结果的那种。另一种是
普通
进程,大部分的进程其实都是这种。在task_struct数据结论里面有一个成员变量,叫做调度策略: 他有以下的几个定义: 配合调度策略的,还有优先级,也在task_struct
中
: 优先级其实就是一个数值,对于实时进程,优先级的范围是0~99;对于
普通
进程
Linux
进程调度
策略
文章目录1.CFS2.实时调度3.CFS性能4.CFS与
红黑树
1.CFS 在内核 V2.6.23 的发布
中
,完全公平调度程序(CFS)成为默认的
Linux
调度算法。
Linux
系统的调度基于调度类。 每个类都有一个特定优先级。 内核针对不同的调度类,采用不同的调度算法,以便满足系统与进程的需要。 例如,用于
Linux
服务器的调度准则,也许不同于移动设备的。为了确定应运行哪个进程,调度程序从最高优先级调度类
中
选择
具有最高优先级的任务。
Linux
标准内核实现两个调度类:采用 CFS 调度算法
红黑树
的用途和实现
一、
红黑树
用途在哪里? 1 map–> 2 nginx–> 3 定时器–> 4 cfs (
进程调度
的集合 )(操作系统
中
用
红黑树
存储的集合)(查找速度快,有顺序) 5 内存管理(
红黑树
的平衡关系); 问题:典型的malloc的内存碎片? 解答:一块内存对应一个key; key指向的内存的地址 加上长度就是对内存碎片的管理, key value -->查找。 问题:
红黑树
有什么应用呢? 1>大多数自平衡BST(self-balancing BST) 库函数都是用
红黑树
实现的,比如
Linux
-
Linux
内核-
进程调度
/////
Linux
调度器是以模块的方式提供的,这允许不同类型的进程可以针对型的
选择
调度算法。调度器类提供不同的调度算法,像CFS就是一个针对
普通
进程的调度器类(定义在kernel/sched_fair.c
中
),在
Linux
中
称之为SCHED_NORMAL(在POSIX
中
称为SCHED_OTHER)。每个调度器都有一个优先级,内核会
选择
优先级最高的调度器,然后由该调度器调度进程并执行。...
Linux_Kernel
4,436
社区成员
17,460
社区内容
发帖
与我相关
我的任务
Linux_Kernel
Linux/Unix社区 内核源代码研究区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章