日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

Solaris內(nèi)核目錄( 四 )



除了VFS和vnode結(jié)構(gòu),procfs實(shí)現(xiàn)中主要定義了兩個(gè)數(shù)據(jù)結(jié)構(gòu)用于描述/proc目錄下文件對象 。第一個(gè)是prnode結(jié)構(gòu)(/usr/include/sys/proc/prdata.h),描述那些最終鏈接到vnode的文件系統(tǒng)相關(guān)數(shù)據(jù) 。內(nèi)核UFS實(shí)現(xiàn)定義了一個(gè)inode做為描述一個(gè)UFS文件的文件系統(tǒng)相關(guān)數(shù)據(jù)結(jié)構(gòu),類似的,內(nèi)核procfs實(shí)現(xiàn)定義了一個(gè)prnode描述一個(gè)procfs文件 。/proc目錄下的每個(gè)文件有一個(gè)vnode和prnode對應(yīng) 。

第二個(gè)是prcommon結(jié)構(gòu),遍布整個(gè)/proc目錄結(jié)構(gòu),換句話說,每個(gè)/proc/
和/proc//lwp/目錄本身都對應(yīng)一個(gè)prcommon結(jié)構(gòu),但是這些目錄下的
文件對象并沒有對應(yīng)一個(gè)prcommon結(jié)構(gòu),因?yàn)樵L問這些文件對象時(shí)必然與一個(gè)確定的進(jìn)程或者LWP相關(guān) 。prcommon結(jié)構(gòu)對這些目錄下的文件對象共性進(jìn)行抽象 。prnode和prcommon結(jié)構(gòu)定義在/usr/include/sys/proc/prdata.h文件中 。參看圖2 。

--------------------------------------------------------------------------

/proc

prnode prcommon
----
---------------------------------| | | |
| |----
| |
|------------------------------------------------------
| prnode prcommon | prnode prnode prnode per-process |
lwp----| as--cred--psinfo--... file objects |
/ | | | | | | | | | | | |
/----|------|
/ prnode prcommon------------------------------------------------------
----
| | | |
----

-------------------------------------------------------------------------------
| prnode prnode prnode prnode per-lwp |
| lwpctl--lwpinfo--lwpstatus--lwpusage--... file objects |
| | | | | | | | | |
|--------|
-------------------------------------------------------------------------------

圖2. prnode和prcommon結(jié)構(gòu)定義

--------------------------------------------------------------------------

每個(gè)進(jìn)程有自己的主/proc vnode(就是說這個(gè)vnode對應(yīng)/proc/文件),進(jìn)程中
每個(gè)LWP有自己的vnode對應(yīng)/proc//lwp/文件,參看圖3 。

--------------------------------------------------------------------------

回指到proc結(jié)構(gòu)
<-------------
prnode prcommon |
--------------> --------------> ----------procdir |
| proc | | | pr_next ----|--| | prc_slot ----> ---------|
| structure | /proc | | pr_common --|--|-----------| pe_proc --
|---------| /| | pr_files ---|--|----------------| pe_next |
| | | | vnode | | pr_vnode | | |---------
一 | | p_trace --------------> ---------| | | | pe_proc |
| | p_plist | | | | |vnode | | | | | pe_next |
個(gè) | | | | | | |structure| | | |---------
|---------| | | | | | | | | pe_proc |
多 | |--|-|v_data | | | | | pe_next |
| kthread LWP | /proc |---------| | |---------
線 |---------| /-------------| | | pe_proc |
| | | | /lwp/ vnode | | | pe_next |
程 | | t_trace -----prnode | |---------
| | | | |-> ------------- <-| | pe_proc |
進(jìn) |---------| | | | pr_next ----|--prcommon | | pe_next |
| | | | | pr_common --|--|---> ---------- |---------
程 | kthread LWP | | | | pr_files | | | prc_slot || | |
|---------| | | | pr_vnode | |---------- | | |
| | | |--------> ---------| | | | |
| | t_trace -----| | |vnode | | | |
| | | | | | | |structure| | | |
|---------| | | | | | | |--> ---array of
-------------|--|-|v_data | | | | | pointers
| |---------| |---to vnodes
|-------------| | | for all files
/proc//lwp | |---within the
/ vnode | prnode | | | Directory
|-> ------------- <-.....
| | | pr_next | prcommon | |
| | | pr_common --|------> -------------
| | | pr_files | | prc_slot | | |
| | | pr_vnode |-------------
--------> ---------|
| | |vnode | |
| | |structure| |
| | | | |
--|-|v_data | |
|---------|
-------------

圖3. 一個(gè)多線程進(jìn)程所涉及結(jié)構(gòu)之間的關(guān)聯(lián)

--------------------------------------------------------------------------

下面是在我的Sun工作站上找到的相應(yīng)頭文件內(nèi)容:

推薦閱讀