亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫
12下一頁
最近訪問板塊 發(fā)新帖
查看: 4181 | 回復(fù): 10
打印 上一主題 下一主題

[進(jìn)程管理] 如何理解內(nèi)核線程執(zhí)行在用戶模式下,什么樣的情景會(huì)用到? [復(fù)制鏈接]

論壇徽章:
1
技術(shù)圖書徽章
日期:2013-09-17 09:11:51
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2014-10-29 16:19 |只看該作者 |倒序?yàn)g覽
文檔上的一段話
  1. “A kernel thread runs in user mode environment when executing user functions or library calls”
復(fù)制代碼
,這里應(yīng)該怎么理解,哪種情形會(huì)用到,是在系統(tǒng)初始化的時(shí)候,內(nèi)核調(diào)用init來初始化用戶數(shù)據(jù)?


在用戶模式要訪問內(nèi)核數(shù)據(jù)是通過系統(tǒng)調(diào)用這個(gè)中轉(zhuǎn),那么系統(tǒng)調(diào)用能作為內(nèi)核到用戶的中轉(zhuǎn)嗎?(使內(nèi)核再次陷入內(nèi)核態(tài)?)

論壇徽章:
12
寅虎
日期:2013-12-04 20:37:4915-16賽季CBA聯(lián)賽之廣東
日期:2017-08-22 19:23:1215-16賽季CBA聯(lián)賽之上海
日期:2016-06-18 23:05:05操作系統(tǒng)版塊每日發(fā)帖之星
日期:2016-06-06 06:20:00操作系統(tǒng)版塊每日發(fā)帖之星
日期:2016-06-05 06:20:00操作系統(tǒng)版塊每日發(fā)帖之星
日期:2016-06-03 06:20:002015年辭舊歲徽章
日期:2015-03-03 16:54:152015年亞洲杯之巴勒斯坦
日期:2015-02-10 21:38:08卯兔
日期:2014-10-31 20:42:23申猴
日期:2014-06-11 17:15:10處女座
日期:2014-05-22 09:00:1815-16賽季CBA聯(lián)賽之廣夏
日期:2017-09-25 23:37:46
2 [報(bào)告]
發(fā)表于 2014-10-29 21:18 |只看該作者

就是系統(tǒng)調(diào)用的時(shí)候。

論壇徽章:
1
技術(shù)圖書徽章
日期:2013-09-17 09:11:51
3 [報(bào)告]
發(fā)表于 2014-10-30 09:41 |只看該作者
是說內(nèi)核里的線程也可以使用系統(tǒng)調(diào)用嗎?
還是說用戶使用系統(tǒng)調(diào)用,當(dāng)在內(nèi)核的時(shí)候相當(dāng)于內(nèi)核線程來執(zhí)行用戶的function或者lib,但這時(shí)候的內(nèi)核線程執(zhí)行的環(huán)境應(yīng)該是內(nèi)核態(tài),不是用戶態(tài)。存疑。

能否詳解下!
回復(fù) 2# wait_rabbit


   

論壇徽章:
0
4 [報(bào)告]
發(fā)表于 2014-10-30 11:57 |只看該作者
回復(fù) 1# jonas_mao
ksoftirqd 就是一個(gè)內(nèi)核線程
負(fù)責(zé)維護(hù)軟件中斷重新觸發(fā)的軟中斷  和 用戶進(jìn)程之間的調(diào)度。保證軟中斷過多時(shí),用戶進(jìn)程也能得到調(diào)度

只所以ksoftirqd運(yùn)行在 進(jìn)程上下文,是因?yàn)檫M(jìn)程才有調(diào)度的概念。中斷沒有調(diào)度的概念。比如你在一個(gè)中斷中發(fā)生調(diào)度了,那么就回不去了。因?yàn)橹袛酄顟B(tài)cpu沒有保存任何id相關(guān)信息。但進(jìn)程調(diào)度前 會(huì) 保存進(jìn)程id以及寄存器等環(huán)境狀態(tài)

只所以運(yùn)行在內(nèi)核態(tài)而不是用戶態(tài)。是因?yàn)橹挥羞\(yùn)行在內(nèi)核態(tài)才能訪問 內(nèi)核空間。用戶態(tài)無法訪問內(nèi)核空間
但與一般進(jìn)程通過系統(tǒng)調(diào)用進(jìn)入內(nèi)核態(tài)不一樣的是。進(jìn)程通過系統(tǒng)調(diào)用進(jìn)入內(nèi)核態(tài)后,可以訪問用戶空間和內(nèi)核空間。
但是內(nèi)核態(tài)線程僅僅只能訪問內(nèi)核空間

   

論壇徽章:
1
技術(shù)圖書徽章
日期:2013-09-17 09:11:51
5 [報(bào)告]
發(fā)表于 2014-10-30 17:03 |只看該作者
抱歉現(xiàn)在才看到,你說的進(jìn)程通過系統(tǒng)調(diào)用進(jìn)入內(nèi)核態(tài),可以訪問用戶數(shù)據(jù)和內(nèi)核數(shù)據(jù),這里是通過哪種方式訪問用戶數(shù)據(jù)的,是系統(tǒng)調(diào)用所帶的參數(shù)?

你說的ksoftirqd 是在調(diào)度用戶進(jìn)程的時(shí)候進(jìn)入user mode 嗎?
回復(fù) 4# yimeng4a309


   

論壇徽章:
3
雙魚座
日期:2013-09-04 19:47:39天蝎座
日期:2013-12-11 20:30:532015年亞洲杯之澳大利亞
日期:2015-04-20 00:28:02
6 [報(bào)告]
發(fā)表于 2014-10-30 18:10 |只看該作者
回復(fù) 1# jonas_mao


    內(nèi)核線程可以通過call_usermodehelper()函數(shù)調(diào)用應(yīng)用層的程序,有一個(gè)場景是cgroup需要調(diào)用應(yīng)用層程序cgroup release agent程序

論壇徽章:
0
7 [報(bào)告]
發(fā)表于 2014-10-31 10:15 |只看該作者
回復(fù) 5# jonas_mao
你說的進(jìn)程通過系統(tǒng)調(diào)用進(jìn)入內(nèi)核態(tài),可以訪問用戶數(shù)據(jù)和內(nèi)核數(shù)據(jù),這里是通過哪種方式訪問用戶數(shù)據(jù)的,是系統(tǒng)調(diào)用所帶的參數(shù)?
很多系統(tǒng)調(diào)用是封裝好的。具體的方式可以自己上網(wǎng)搜索下。關(guān)鍵看你的需求。如insmod 就可以通過參數(shù)傳遞給內(nèi)核
一般自己傳遞數(shù)據(jù)給內(nèi)核常用的系統(tǒng)調(diào)用有,socket 和ioctl。ioctl是同步通信方式,應(yīng)用層和內(nèi)核交互時(shí)需阻塞,對應(yīng)的數(shù)據(jù)傳遞接口是在內(nèi)核 使用 copy_from_user和copy_to_user
來訪問用戶空間數(shù)據(jù)
當(dāng)然現(xiàn)在內(nèi)核普遍喜歡使用的 傳遞方式是基于socket的netlink。netlink可以實(shí)現(xiàn)內(nèi)核主動(dòng)通知 應(yīng)用,和應(yīng)用主動(dòng)通知內(nèi)核的異步通信方式,而且接口跟socket編程差不多。經(jīng)過實(shí)測netlink內(nèi)核端使用的鎖跟進(jìn)程上下文使用的鎖一致。不過netlink雖然工作在進(jìn)程上下文,但應(yīng)該不屬于系統(tǒng)調(diào)用。這個(gè)還好等后面有空詳細(xì)研究下


你說的ksoftirqd 是在調(diào)度用戶進(jìn)程的時(shí)候進(jìn)入user mode 嗎?
ksoftirqd 一直工作在 核心態(tài)。不過屬于進(jìn)程上下文。這個(gè)你必須搞清楚。
用戶態(tài) 和 核心態(tài) 是一個(gè)對應(yīng)關(guān)系。
中斷上下文 和 進(jìn)程上下文是一個(gè)關(guān)系。
應(yīng)用通過系統(tǒng)調(diào)用進(jìn)入核心態(tài)。但屬于進(jìn)程上下文
中斷-軟中斷-啟動(dòng)內(nèi)核線程(常見的為工作隊(duì)列) 。內(nèi)核線程就工作在核心態(tài) 但屬于進(jìn)程上下文。只不過它的進(jìn)程表示符為NULL
一般情況下 要區(qū)分的是 中斷上下文 和 進(jìn)程上下文。因?yàn)?中斷上下文不會(huì)被打斷,所以不允許睡眠,萬一睡眠了內(nèi)核就死在這里了,cpu不會(huì)讓權(quán)啊。所以使用鎖要特別注意。如mutex 和 down等是無法在中斷上下文使用的。中斷上下文使用kmalloc必須使用GTP_ATOMIC而非可能導(dǎo)致隨眠的GTP_KERNEL

   
可以看下
深入Linux內(nèi)核架構(gòu)(中文版)
這個(gè)有電子版講的還不錯(cuò)

論壇徽章:
1
技術(shù)圖書徽章
日期:2013-09-17 09:11:51
8 [報(bào)告]
發(fā)表于 2014-10-31 14:03 |只看該作者
3Q回復(fù) 6# kiongf


   

論壇徽章:
1
技術(shù)圖書徽章
日期:2013-09-17 09:11:51
9 [報(bào)告]
發(fā)表于 2014-10-31 14:08 |只看該作者
非常感謝,最近一直在看內(nèi)核有關(guān)的文檔,以前主要是偏應(yīng)用,所以內(nèi)核不是太熟悉,有些概念因?yàn)闆]有去看源碼,沒用過比較難理解回復(fù) 7# yimeng4a309


   

論壇徽章:
0
10 [報(bào)告]
發(fā)表于 2014-10-31 15:42 |只看該作者
回復(fù) 9# jonas_mao
還是要以源碼為主。理解為主,F(xiàn)在別說你網(wǎng)上搜索的資料了,即便是源碼中的東西,不同版本之間。很多概念都是模糊的。比如下半部,軟中斷,異常 這些概念很多時(shí)候是混淆的。只能以實(shí)際代碼的效果為主
后來也搜索了下你發(fā)的那句英文。最后定位到IBM的  
kernel thread, kernel-only thread, user thread
其實(shí)我理解的標(biāo)準(zhǔn)linux里面的概念上應(yīng)該沒這么清晰的劃分的。就分 用戶線程(user thread)和 內(nèi)核線程(這個(gè)應(yīng)該對應(yīng)你提到的kernel only thread)。用戶線程通過系統(tǒng)調(diào)用陷入核心態(tài),這個(gè)時(shí)候的狀態(tài)應(yīng)該對應(yīng)你說的kernel thread

   
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP