LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 606|回复: 4

大家一起進來討論一下內核可搶占的問題

[复制链接]
发表于 2009-4-29 19:12:07 | 显示全部楼层 |阅读模式
內核可搶占到底指的是什麼呢,用戶態核心態指的是什麼?


比如我的頻率為100HZ,tick為10ms,slice為幾個tick,如果內核不可搶占的話可以在一個tick裡面進行主動式搶占cpu嗎(指不是進程A主動放棄CPU)?


``````|<--------- slice --------->|

```````<-tick->

A:````|...........|...........|...........|``````````````````|..........|.........

B:``````````````````````|...........|...........|............|```````````




因為我看了很多 說內核可搶占是指運行在內核態時(比如系統調用 )可以被優先級更高的進程搶先,而並不是說一個tick內,另一方面,一個tick內也可以有用戶態和內核態,如果說一個tick內只有核心態的話那兩者的概念指的什麼?

另一方面,我把2.6內核編譯成可搶占的,但為什麼還是在每次tick完成時才schedule?見附圖一。(下面的為實時進程上面 的為普通進程)。如果編譯內核時選上ACPI後就可以在一個tick內主動搶占了,難到這就是指的內核可搶占嗎?好像有些不對啊,一個tick可以有用戶態也可以有核心態,為什麼以前不可以呢,linux2.4可以在一個tick內進行主動搶占嗎? 第二,選了ACPI後,不管處理器下是否是編譯成內核可搶占還是傳統服務器模式,都可以在一個tick內主動被更高優先級進程搶占(比如實時進程),那麼內核可搶占究竟指的是什麼?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
 楼主| 发表于 2009-4-29 19:15:33 | 显示全部楼层
ACPI又有什麼關係呢,想不通一個電源的選項都會對實時性影響重大
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-4-29 19:17:20 | 显示全部楼层
如果在編譯內核時選上ACPI選項,一個tick內可以被主動搶占:


```````````````````|-- tick --|

A:````|...........|...........|...```````````````````|..........|.........|...........|

B:``````````````````|...........|...........|...........|(sleep)``````````````
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-4-29 19:21:40 | 显示全部楼层
如果一個tick內可以被搶占的話那麼內核可搶占指的是什麼。linux2.4可以在一個tick內被主動搶占嗎,我曾經做過粗劣的測試好像是不行的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-4-29 19:23:48 | 显示全部楼层
那麼很多資料指的可搶占是指 運行在核心態時可以被搶占是說什麼呢?因為一個tick內可以不都是核心態吧。附圖一就是兩個用戶態(綠色),一個普通進程一個實時進程
回复 支持 反对

使用道具 举报

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

本版积分规则

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