QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1584|回复: 10

读内核发现一个有趣的问题,所谓的FIFO...呵呵

[复制链接]
发表于 2004-10-29 11:28:19 | 显示全部楼层 |阅读模式
每次新创建进程,都插入到内核就绪队列的头部,而遍历时从头开始找优先级高的进程,就是说后插入的优先级相同的进程要先于先插入的同优先级的进程运行。这明明是后进先出嘛,真不知道FIFO的意义何在。欢迎讨论!
发表于 2004-11-4 21:06:33 | 显示全部楼层
新创建的进程有较高的优先级。你也不希望刚启动的程序半天都没有反应吧:-(。
回复

使用道具 举报

发表于 2004-11-4 21:36:41 | 显示全部楼层
呵呵,解释的好
回复

使用道具 举报

发表于 2004-11-4 22:30:23 | 显示全部楼层
不对吧,不管是往阻塞对列还是就绪队列插入,都应该是插入到队尾啊,不然就不叫进程队列,应该叫进程堆栈了
回复

使用道具 举报

发表于 2004-11-5 10:01:02 | 显示全部楼层
队列肯定是FIFO的
后边的插到队尾
回复

使用道具 举报

 楼主| 发表于 2004-11-5 10:10:24 | 显示全部楼层
后来的插入的是队列的头部,怎么能是FIFO?请看看代码。
回复

使用道具 举报

发表于 2004-11-5 10:22:00 | 显示全部楼层
那只能这么说

后来的插入的是**的头部,**不能称为队列了,应该有其他叫法吧
回复

使用道具 举报

 楼主| 发表于 2004-11-5 10:59:48 | 显示全部楼层
代码上写的是runqueue_head,也就是就绪队列。见sched.c
回复

使用道具 举报

发表于 2004-11-5 11:11:34 | 显示全部楼层

没深入读过,不太明白了也
回复

使用道具 举报

发表于 2004-11-5 11:12:52 | 显示全部楼层
我的sched.c中没发现runqueue_head
我的kernel version:2.6.9
回复

使用道具 举报

 楼主| 发表于 2004-11-5 11:22:23 | 显示全部楼层
哦,我的是2.4。2.6变了很多,她变成了优先级队列,每个优先级一个队列。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-16 08:40 , Processed in 0.058854 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表