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

  免費注冊 查看新帖 |

Chinaunix

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

linux內(nèi)核問題(存儲管理/進程切換),求賜教 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2010-07-22 15:14 |只看該作者 |倒序瀏覽
本帖最后由 gqbfree 于 2010-07-26 10:12 編輯

有幾個問題不懂,請大家?guī)兔獯。查了很多資料,但前篇一律,中間很多疑點只能靠自己理解,怕有誤:

(1)內(nèi)核線性映射是896M,而且對應(yīng)的物理地址已經(jīng)確定,是0-896M。 那么用戶進程空間分配地址的時候是不是優(yōu)先考慮大于896M的物理地址頁面?
     
(2)有沒有大俠幫忙把一個進程可能有的vm_area_struct結(jié)構(gòu)對應(yīng)的段列舉一下,比如堆棧對應(yīng)一個vm_area_struct(是不是只對應(yīng)一個?)堆對應(yīng)一個,代碼段對應(yīng)一個,還有mmap啥的 等等。還有malloc時,是否有新的vm_area_struct生成呢?還是擴展堆對應(yīng)的vm結(jié)構(gòu)?
     
(3)發(fā)生缺頁異常時,如果需要從磁盤上把相應(yīng)的內(nèi)容讀進內(nèi)存,那么如何定位需要讀入哪些內(nèi)容?我知道vm_area_struct結(jié)構(gòu)里有對應(yīng)文件的句柄和offsize,需要把整個都讀進來嗎?還是只讀一個頁面?如何確定讀多少?
     
(4)能不能提供以下情形: 只有preem_disable能實現(xiàn),而信號量無法實現(xiàn)的情形。(premm_disable主要用在哪里)

(5)幫忙確認(rèn)一下我自己理解的觀點是否正確:

     1. 用戶空間 切 內(nèi)核空間,壓當(dāng)前的用戶空間的ss,sp入內(nèi)核棧,然后取值TSS中的ss0/sp0賦給SS,ESP,完成切換; 然后把返回值cs/eip和其它一些現(xiàn)場寄存器壓入內(nèi)核棧(即pt_regs)。(很多資料都寫先賦值SS,SP,然后壓用戶空間的ss,sp入內(nèi)核棧, 我疑問此時的ss/sp從哪里來啊,還有pt_regs是不是只是用來存儲用戶空間時寄存器內(nèi)容的?有沒有情況是對內(nèi)核現(xiàn)場存儲?)
        
     2. 我認(rèn)為的TSS是這樣的:linux沒有按照X86設(shè)計,采用了一個CPU使用一個的方式。這樣只要變換里面的SS,SP,就可以完成進程的堆棧切換。而其它寄存器現(xiàn)場信息,在task_struct->thread_info里存儲。(請補充和批判)    TSS和thread_info的關(guān)系,和寄存器的關(guān)系是什么?     
       請幫忙列出tread_info全部作用,謝謝;
   這個問題不用回答了。

論壇徽章:
1
天蝎座
日期:2013-10-23 21:11:03
2 [報告]
發(fā)表于 2010-07-22 15:59 |只看該作者
(1)內(nèi)核線性映射是896M,而且對應(yīng)的物理地址已經(jīng)確定,是0-896M。 那么用戶進程空間分配地址的時候是不是優(yōu)先考慮大于896M的物理地址頁面?

這個不是用戶進程決定的,是內(nèi)核決定的
而且一般是NORMAL ZONE范圍的(低于896M)

論壇徽章:
0
3 [報告]
發(fā)表于 2010-07-22 17:23 |只看該作者
回復(fù) 2# openspace

請問為什么先考慮896M嗎? 我老覺得896M優(yōu)先給內(nèi)核使用更合理,用戶空間先使用高端內(nèi)存。(因為畢竟這896M還是比較特殊的,是線性映射可以得到)


其它的問題也幫忙回答一下哈!

論壇徽章:
0
4 [報告]
發(fā)表于 2010-07-22 18:12 |只看該作者
內(nèi)核可以直接訪問0-896M的內(nèi)存,內(nèi)核不可能全部用到。

論壇徽章:
0
5 [報告]
發(fā)表于 2010-07-23 00:10 |只看該作者
最好說下什么版本的LINUX, 從 0.11 到 2.6.31 變化大了去了. LINUX 版本是個大問題, 這個和WINDOWS差別很大.

關(guān)于 (5).2  老的 LINUX 用TSS, 后來新的已經(jīng)不用了,我記得.

論壇徽章:
0
6 [報告]
發(fā)表于 2010-07-23 09:11 |只看該作者
本帖最后由 gqbfree 于 2010-07-23 09:12 編輯

回復(fù) 5# accessory


    就先說說2.4的吧。 我原理清楚后,2.6的可以自己去琢磨。   當(dāng)然如果有人只研究2.6的,也可以講出來。謝謝各位!。。

論壇徽章:
0
7 [報告]
發(fā)表于 2010-07-23 10:59 |只看該作者
那學(xué)習(xí) 0.11 ,和 0.12 有什么作用

論壇徽章:
0
8 [報告]
發(fā)表于 2010-07-23 12:12 |只看該作者
樓上兄弟說詳細(xì)點啊,不懂啥意思?
我剛剛開始看linux內(nèi)核的東西,所以很多東西不是很明白。 是不是我一口氣說的問題太多,大家不想耐心看。
那我分成5.6個帖子?

論壇徽章:
0
9 [報告]
發(fā)表于 2010-07-23 22:54 |只看該作者
回復(fù) 7# 0vk0

有些東西沒變.不過還得自己找出來到底哪些變了. 所以我懶得看老的版本.....

論壇徽章:
59
2015年亞洲杯之約旦
日期:2015-01-27 21:27:392015年亞洲杯之日本
日期:2015-02-06 22:09:41拜羊年徽章
日期:2015-03-03 16:15:432015年辭舊歲徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015元宵節(jié)徽章
日期:2015-03-06 15:50:392015年亞洲杯之阿聯(lián)酋
日期:2015-03-19 17:39:302015年亞洲杯之中國
日期:2015-03-23 18:52:23巳蛇
日期:2014-12-14 22:44:03雙子座
日期:2014-12-10 21:39:16處女座
日期:2014-12-02 08:03:17天蝎座
日期:2014-07-21 19:08:47
10 [報告]
發(fā)表于 2010-07-24 09:53 |只看該作者
回復(fù) 1# gqbfree
沒看內(nèi)核代碼,能回答的回答吧

    有幾個問題不懂,請大家?guī)兔獯。查了很多資料,但前篇一律,中間很多疑點只能靠自己理解,怕有誤:

(1)內(nèi)核線性映射是896M,而且對應(yīng)的物理地址已經(jīng)確定,是0-896M。 那么用戶進程空間分配地址的時候是不是優(yōu)先考慮大于896M的物理地址頁面?
     >>Windows 98將內(nèi)核Map到所有進程中,但這不表示所有的OS都會這樣做,內(nèi)核并不從用戶程序更加特別(從CPU的角度看),CPU甚至不會知道當(dāng)前運行的是用戶代碼或是內(nèi)核代碼(當(dāng)然,一般來說,內(nèi)核可以執(zhí)行特權(quán)指令,而用戶代碼不可以,不過,如果OS的設(shè)計者喜歡的話...)。
(2)有沒有大俠幫忙把一個進程可能有的vm_area_struct結(jié)構(gòu)對應(yīng)的段列舉一下,比如堆棧對應(yīng)一個vm_area_struct(是不是只對應(yīng)一個?)堆對應(yīng)一個,代碼段對應(yīng)一個,還有mmap啥的 等等。還有malloc時,是否有新的vm_area_struct生成呢?還是擴展堆對應(yīng)的vm結(jié)構(gòu)?
     >>沒看過內(nèi)核,無法回答,從系統(tǒng)設(shè)計的角度看,這種結(jié)構(gòu)應(yīng)當(dāng)只有一個。
(3)發(fā)生缺頁異常時,如果需要從磁盤上把相應(yīng)的內(nèi)容讀進內(nèi)存,那么如何定位需要讀入哪些內(nèi)容?我知道 vm_area_struct結(jié)構(gòu)里有對應(yīng)文件的句柄和offsize,需要把整個都讀進來嗎?還是只讀一個頁面?如何確定讀多少?
     >>一般的OS都會有預(yù)讀功能,所以會一般也會讀入相鄰的頁面,讀交換頁是通過文件系統(tǒng)進行的,如果把整個分頁文件都讀進入,內(nèi)存足不足夠不用說,分頁的意義也沒有了。
(4)能不能提供以下情形: 只有preem_disable能實現(xiàn),而信號量無法實現(xiàn)的情形。(premm_disable主要用在哪里)
    >>PV信號量、Spin_lock、或是Preem_disable的任何一種互斥方式,都可單獨實現(xiàn)所有功能(區(qū)別僅是代價和實現(xiàn)難度)。
(5)幫忙確認(rèn)一下我自己理解的觀點是否正確:

     1. 用戶空間 切 內(nèi)核空間,壓當(dāng)前的用戶空間的ss,sp入內(nèi)核棧,然后取值TSS中的ss0/sp0賦給SS,ESP,完成切換; 然后把返回值cs/eip和其它一些現(xiàn)場寄存器壓入內(nèi)核棧(即pt_regs)。(很多資料都寫先賦值SS,SP,然后壓用戶空間的ss,sp入內(nèi)核棧, 我疑問此時的ss/sp從哪里來啊,還有pt_regs是不是只是用來存儲用戶空間時寄存器內(nèi)容的?有沒有情況是對內(nèi)核現(xiàn)場存儲?)
     >>當(dāng)前的SS,SP沒有入內(nèi)核棧的必要的,不過,非要這樣做也可以
     >>用戶態(tài)的ss/sp本來就有的...據(jù)說Linux不使用X86CPU的TSS,如何還有TSS,不懂中,什么時候看代碼去吧
     >>內(nèi)核現(xiàn)場沒有存儲的價值,因為內(nèi)核不會從“上次的執(zhí)行點”開始執(zhí)行,如果非要說有(可能被其它內(nèi)核部件中斷),那么無論被中斷多少次,現(xiàn)場保存在當(dāng)前的用戶進程的內(nèi)核線程中...(就像是80x86是單程序環(huán)境中一樣),當(dāng)然,前提是內(nèi)核態(tài)代碼不應(yīng)當(dāng)被Swtch中斷(這樣也未必不可,只是系統(tǒng)變得更復(fù)雜了)。
您需要登錄后才可以回帖 登錄 | 注冊

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

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP