亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? linu家園-linux kernel核心中文手冊.htm

?? Linux內(nèi)核完全注解
?? HTM
?? 第 1 頁 / 共 5 頁
字號:
<P> </P>
<P></P>
<P>3.1.5 Access Control(訪問控制)</P>
<P> </P>
<P>頁表條目也包括訪問控制信息。當(dāng)處理器使用頁表條目將進(jìn)程的虛擬地址映射到物理地址的時候,它很容易利用訪問控制信息控制進(jìn)程不要用不允許的方式進(jìn)行訪問。</P>
<P> </P>
<P>有很多原因你希望限制對于內(nèi)存區(qū)域的訪問。一些內(nèi)存,比如包含執(zhí)行代碼,本質(zhì)上是只讀的代碼,操作系統(tǒng)應(yīng)該禁止進(jìn)程寫它的執(zhí)行代碼。反過來,包括數(shù)據(jù)的頁可以寫,但是如果試圖執(zhí)行這段內(nèi)存應(yīng)該失敗。大多數(shù)處理器有兩種執(zhí)行狀態(tài):核心態(tài)和用戶態(tài)。你不希望用戶直接執(zhí)行核心態(tài)的代碼或者存取核心數(shù)據(jù)結(jié)構(gòu),除非處理器運行在核心態(tài)。 
 </P>
<P>訪問控制信息放在PTE(page table entry)中,而且和具體處理器相關(guān)。圖3.2顯示了Alpha AXP的PTE。各個位意義如下:</P>
<P> </P>
<P>V 有效,這個PTE是否有效</P>
<P>FOE “Fault on Execute” 試圖執(zhí)行本頁代碼時,處理器是否要報告page fault,并將控制權(quán)傳遞給操作系統(tǒng)。</P>
<P>FOW “Fault on Write” 如上,在試圖寫本頁時產(chǎn)生page fault</P>
<P>FOR “fault on read” 如上,在試圖讀本頁時產(chǎn)生page fault</P>
<P>ASM 地址空間匹配。用于操作系統(tǒng)清除轉(zhuǎn)換緩沖區(qū)中的部分條目</P>
<P>KRE 核心態(tài)的代碼可以讀本頁</P>
<P>URE 用戶態(tài)的代碼可以讀本頁</P>
<P>GII 間隔因子,用于將一整塊映射到一個轉(zhuǎn)換緩沖條目而非多個。</P>
<P>KWE 核心態(tài)的代碼可以寫本頁</P>
<P>UWE 用戶態(tài)的代碼可以寫本頁</P>
<P>Page frame number 
對于V位有效的PTE,包括了本PTE的物理頁編號;對于無效的PTE,如果不是0,包括了本頁是否在交換文件的信息。</P>
<P> </P>
<P>以下兩位由Linux定義并使用</P>
<P>_PAGE_DIRTY 如果設(shè)置,本頁需要寫到交換文件中。</P>
<P>_PAGE_ACCESSED Linux 使用,標(biāo)志一頁已經(jīng)訪問過</P>
<P> </P>
<P>3.2 Caches(高速緩存)</P>
<P>如果你用以上理論模型來實現(xiàn)一個系統(tǒng),它可以工作,但是不會太高效率。操作系統(tǒng)和處理器的設(shè)計師都盡力讓系統(tǒng)性能更高。除了使用更快的處理器、內(nèi)存等,最好的方法是維護(hù)有用信息和數(shù)據(jù)的高速緩存,這會使一些操作更快。Linux使用了一系列和高速緩存相關(guān)的內(nèi)存管理技術(shù):</P>
<P> </P>
<P>Buffer Cache: Buffer cache 
包含了用于塊設(shè)備驅(qū)動程序的數(shù)據(jù)緩沖區(qū)。這些緩沖區(qū)大小固定(例如512字節(jié)),包括從塊設(shè)備讀出的數(shù)據(jù)或者要寫到塊設(shè)備的數(shù)據(jù)。塊設(shè)備是只能通過讀寫固定大小的數(shù)據(jù)塊來訪問的設(shè)備。所有的硬盤都是塊設(shè)備。塊設(shè)備用設(shè)備標(biāo)識符和要訪問的數(shù)據(jù)塊編號作為索引,用來快速定位數(shù)據(jù)塊。塊設(shè)備只能通過buffer 
cache存取。如果數(shù)據(jù)可以在buffer cache中找到,那就不需要從物理塊設(shè)備如硬盤上讀取,從而使訪問加快。</P>
<P>參見fs/buffer.c</P>
<P>Page Cache 
用來加快對磁盤上映像和數(shù)據(jù)的訪問。它用于緩存文件的邏輯內(nèi)容,一次一頁,并通過文件和文件內(nèi)的偏移來訪問。當(dāng)數(shù)據(jù)頁從磁盤讀到內(nèi)存中時,被緩存到page 
cache中。</P>
<P>參見mm/filemap.c</P>
<P>Swap Cache 
只有改動過的(或臟dirty)頁才存在交換文件中。只要它們寫到交換文件之后沒有再次修改,下一次這些頁需要交換出來的時候,就不需要再寫到交換文件中,因為該頁已經(jīng)在交換文件中了,直接廢棄該頁就可以了。在一個交換比較厲害的系統(tǒng),這會節(jié)省許多不必要和高代價的磁盤操作。</P>
<P>參見mm/swap_state.c mm/swapfile.c</P>
<P> </P>
<P> </P>
<P></P>
<P>Hardware 
Cache:硬件高速緩存的常見的實現(xiàn)方法是在處理器里面:PTE的高速緩存。這種情況下,處理器不需要總是直接讀頁表,而在需要時把頁轉(zhuǎn)換表放在緩存區(qū)里。CPU里有轉(zhuǎn)換表緩沖區(qū)(TLB 
Translation Look-aside Buffers),放置了系統(tǒng)中一個或多個進(jìn)程的頁表條目的緩存的拷貝。</P>
<P> </P>
<P>當(dāng)引用虛擬地址時,處理區(qū)試圖在TLB中尋找。如果找到了,它就直接將虛擬地址轉(zhuǎn)換到物理地址,進(jìn)而對數(shù)據(jù)執(zhí)行正確的操作。如果找不到,它就需要操作系統(tǒng)的幫助。它用信號通知操作系統(tǒng),發(fā)生了TLB 
missing。一個和系統(tǒng)相關(guān)的機(jī)制將這個異常轉(zhuǎn)到操作系統(tǒng)相應(yīng)的代碼來處理。操作系統(tǒng)為這個地址映射生成新的TLB條目。當(dāng)異常清除之后,處理器再次嘗試轉(zhuǎn)換虛擬地址,這一次將會成功因為TLB中該地址有了一個有效的條目。</P>
<P> </P>
<P>高速緩存的副作用(不管是硬件或其他方式的)在于Linux必須花大量時間和空間來維護(hù)這些高速緩存區(qū),如果這些高速緩存區(qū)崩潰,系統(tǒng)也會崩潰。</P>
<P> </P>
<P>3.3 Linux Page Tables(Linux頁表)</P>
<P> </P>
<P>Linux假定了三級頁表。訪問的每一個頁表包括了下一級頁表的頁編號。圖3.3顯示了一個虛擬地址如何分為一系列字段:每一個字段提供了在一個頁表中的偏移量。為了將虛擬地址轉(zhuǎn)換為物理地址,處理器必須取得每一級字段的內(nèi)容,轉(zhuǎn)換為包括該頁表的物理頁內(nèi)的偏移,然后讀取下一級頁表的頁編號。重復(fù)三次直到包括虛擬地址的物理地址的頁編號找到為止。然后用虛擬地址中的最后一個字段:字節(jié)偏移量,在頁內(nèi)查找數(shù)據(jù)。</P>
<P> </P>
<P>Linux運行的每一個平臺都必須提供轉(zhuǎn)換宏,讓核心處理特定進(jìn)程的頁表。這樣,核心不需要知道頁表條目的具體結(jié)構(gòu)或者如何組織。通過這種方式,Linux成功地使用了相同的頁表處理程序用于Alpha和Intel 
x86處理器,其中Alpha使用三級頁表,而Intel使用二級頁表。</P>
<P>參見include/asm/pgtable.h</P>
<P> </P>
<P>3.4 Page Allocation and Deallocation (頁的分配和回收)</P>
<P> </P>
<P>系統(tǒng)中對于物理頁有大量的需求。例如,當(dāng)程序映像加載到內(nèi)存中的時候,操作系統(tǒng)需要分配頁。當(dāng)程序結(jié)束執(zhí)行并卸載時需要釋放這些頁。另外為了存放核心相關(guān)的數(shù)據(jù)結(jié)構(gòu)比如頁表自身,也需要物理頁。這種用于分配和回收頁的機(jī)制和數(shù)據(jù)結(jié)構(gòu)對于維護(hù)虛擬內(nèi)存子系統(tǒng)的效率也許是最重要的。</P>
<P> </P>
<P>系統(tǒng)中的所有的物理頁都使用mem_map數(shù)據(jù)結(jié)構(gòu)來描述。這是一個mem_map_t結(jié)構(gòu)的鏈表,在啟動時進(jìn)行初始化。每一個mem_map_t(容易混淆的是這個結(jié)構(gòu)也被稱為page 
結(jié)構(gòu))結(jié)構(gòu)描述系統(tǒng)中的一個物理頁。重要的字段(至少對于內(nèi)存管理而言)是:</P>
<P>參見include/linux/mm.h</P>
<P> </P>
<P>count 本頁用戶數(shù)目。如果本頁由多個進(jìn)程共享,計數(shù)器大于1。</P>
<P>Age 描述本頁的年齡。用于決定本頁是否可以廢棄或交換出去。</P>
<P>Map_nr mem_map_t描述的物理頁編號。  </P>
<P>頁分配代碼使用free_area向量來查找空閑的頁。整個緩沖管理方案用這種機(jī)制來支持。只要用了這種代碼,處理器使用的頁的大小和物理頁的機(jī)制就可以無關(guān)。</P>
<P> </P>
<P>每一個free_area單元包括頁塊的信息。數(shù)組中的第一個單元描述了單頁,下一個是2頁大小的塊,下一個是4頁大小的塊,以此類推,依次向上都是2的倍數(shù)。這個鏈表單元用作隊列的開頭,有指向mem_map數(shù)組中頁的數(shù)據(jù)結(jié)構(gòu)的指針。空閑的頁塊在這里排隊。Map是一個跟蹤這么大小的頁的分配組的位圖。如果頁塊中的第N塊空閑,則位圖中的第N位置位。</P>
<P> </P>
<P>圖3.4顯示了free_area結(jié)構(gòu)。單元0有一個空閑頁(頁編號0),單元2有2個4頁的空閑塊,第一個起始于頁編號4,第二個起始于頁編號56。</P>
<P> </P>
<P>3.4.1 Page Allocation (頁分配)</P>
<P>參見mm/page_alloc.c get_free_pages()</P>
<P> </P>
<P>Linux使用Buddy算法有效地分配和回收頁塊。頁分配代碼試圖分配一個由一個或多個物理頁組成的塊。頁分配使用2的冪數(shù)大小的塊。這意味著可以分配1頁大小,2頁大小,4頁大小的塊,依此類推。只要系統(tǒng)有滿足需要的足夠的空閑頁(nr_free_pages 
&gt; 
min_free_pages),分配代碼就會在free_area中查找滿足需要大小的一個頁塊。Free_area中的每一個單元都有描述自身大小的頁塊的占用和空閑情況的位圖。例如,數(shù)組中的第2個單元擁有描述4頁大小的塊的空閑和占用的分配圖。</P>
<P> </P>
<P>這個算法首先找它請求大小的內(nèi)存頁塊。它跟蹤free_area數(shù)據(jù)結(jié)構(gòu)中的list單元隊列中的空閑頁的鏈表。如果請求大小的頁塊沒有空閑,就找下一個尺寸的塊(2倍于請求的大?。?。繼續(xù)這一過程一直到遍歷了所有的free_area或者找到了空閑頁塊。如果找到的頁塊大于請求的頁塊,則該塊將被分開成為合適大小的塊。因為所有的塊都是2的冪次的頁數(shù)組成,所以這個分割的過程比較簡單,你只需要將它平分就可以了??臻e的塊則放到適當(dāng)?shù)年犃?,而分配的頁塊則返回給調(diào)用者。</P>
<P> </P>
<P></P>
<P> </P>
<P>例如在圖3.4中,如果請求2頁的數(shù)據(jù)塊,第一個4頁塊(起始于頁編號4)將會被分為兩個2頁塊。起始于頁號4的第一個2頁塊將會被返回給調(diào)用者,而第二個2頁塊(起始于頁號6)將會排在free_area數(shù)組中的單元1中2頁空閑塊的隊列中。</P>
<P> </P>
<P>3.4.2 Page Deallocation(頁回收)</P>
<P> </P>
<P>分配頁塊的過程中將大的頁塊分為小的頁塊,將會使內(nèi)存更為零散。頁回收的代碼只要可能就把頁聯(lián)成大的頁塊。其實頁塊的大小很重要(2的冪數(shù)),因為這樣才能很容易將頁塊組成大的頁塊。</P>
<P> </P>
<P>只要一個頁塊回收,就檢查它的相鄰或一起的同樣大小的頁塊是否空閑。如果是這樣,就把它和新釋放的頁塊一起組成以一個新的下一個大小的空閑頁塊。每一次兩個內(nèi)存頁塊組合成為更大的頁塊時,頁回收代碼都要試圖將頁塊合并成為更大的塊。這樣,空閑的頁塊就會盡可能的大。</P>
<P>例如,在圖3.4,如果頁號1釋放,那么它會和已經(jīng)空閑的頁號0一起組合并放在free_area的單元1中空閑的2頁塊隊列中。</P>
<P> </P>

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕精品三区| 久久精品二区亚洲w码| 亚洲国产aⅴ成人精品无吗| 另类专区欧美蜜桃臀第一页| 本田岬高潮一区二区三区| 7777精品伊人久久久大香线蕉超级流畅| 国产日韩精品一区| 麻豆国产欧美日韩综合精品二区| 91久久奴性调教| 国产精品视频第一区| 九九热在线视频观看这里只有精品| 欧美午夜寂寞影院| 日韩久久一区二区| 国产精品一二三区在线| 日韩欧美国产一区二区三区| 亚洲成av人片| 在线视频综合导航| 国产精品成人免费精品自在线观看| 麻豆91精品91久久久的内涵| 在线观看免费成人| 亚洲美女免费视频| 99精品视频一区| 国产精品久久二区二区| 不卡视频免费播放| 国产精品国产三级国产普通话三级| 韩国v欧美v亚洲v日本v| 精品国产一区二区精华| 蜜臀91精品一区二区三区| 色女孩综合影院| 一区二区三区波多野结衣在线观看 | 亚洲日本在线天堂| 波多野结衣一区二区三区| 久久精品一区二区三区不卡牛牛| 狠狠色丁香久久婷婷综| 欧美成人免费网站| 国产老肥熟一区二区三区| 久久一区二区三区四区| 国产一区二区中文字幕| 国产区在线观看成人精品| 国产成人午夜精品5599| 国产精品嫩草99a| 99精品在线免费| 一区二区三区精密机械公司| 欧美视频日韩视频| 天堂一区二区在线| 日韩欧美中文字幕公布| 国产一区 二区| 亚洲日本电影在线| 日本国产一区二区| 五月天中文字幕一区二区| 欧美精品日韩一本| 久久国产精品区| 国产精品网站在线播放| 一本色道久久综合狠狠躁的推荐 | 91女厕偷拍女厕偷拍高清| 亚洲自拍另类综合| 日韩一区二区电影在线| 国产精品一级在线| 一区二区三区在线免费观看 | 91在线观看免费视频| 亚洲一二三四区不卡| 欧美一级片在线| 国产xxx精品视频大全| 亚洲少妇30p| 欧美一卡在线观看| 成人av网站免费观看| 亚洲成人精品影院| 国产清纯在线一区二区www| 在线国产亚洲欧美| 精品一二三四在线| 亚洲色图制服诱惑| 亚洲精品一区二区三区精华液| 不卡av电影在线播放| 天堂一区二区在线免费观看| 国产日本亚洲高清| 欧美精品免费视频| 高清成人免费视频| 日韩国产一区二| 亚洲精品视频在线观看网站| 欧美成人一区二区三区片免费| 一本色道久久加勒比精品| 久久99精品久久久久久动态图 | 日本一区免费视频| 7878成人国产在线观看| 97精品国产露脸对白| 国产美女一区二区| 日韩精品一区第一页| 亚洲欧美另类小说| 2017欧美狠狠色| 欧美一区二区啪啪| 色综合久久久久久久久久久| 国产在线精品一区在线观看麻豆| 亚洲福利视频导航| 中文字幕在线不卡视频| 日韩精品一区二区三区在线| 欧美三级日韩三级| 91老师片黄在线观看| 成人免费视频播放| 国产高清在线观看免费不卡| 美国十次了思思久久精品导航| 亚洲一区二区欧美| 亚洲激情自拍偷拍| 亚洲精品国产视频| 成人欧美一区二区三区白人| 国产三级一区二区三区| 久久久激情视频| 久久久蜜桃精品| 26uuu另类欧美| 国产午夜精品一区二区| 精品1区2区在线观看| 久久综合久久综合亚洲| 欧美日韩国产经典色站一区二区三区| 91在线精品一区二区| hitomi一区二区三区精品| 国产69精品久久99不卡| 国产成人啪午夜精品网站男同| 国产又粗又猛又爽又黄91精品| 精品在线播放免费| 国产一区福利在线| 成人免费黄色在线| av亚洲产国偷v产偷v自拍| 99视频国产精品| 在线视频亚洲一区| 欧美日韩激情在线| 日韩欧美中文字幕精品| 国产夜色精品一区二区av| 国产欧美精品在线观看| 最新欧美精品一区二区三区| 亚洲免费av网站| 五月激情综合色| 久久精品国产77777蜜臀| 国产精品亚洲一区二区三区妖精 | 色狠狠桃花综合| 欧美色视频一区| 日韩欧美国产电影| 国产精品视频在线看| 亚洲精品视频在线观看免费| 青青草国产成人av片免费| 国内精品国产成人国产三级粉色| 国产精品一区专区| 91网址在线看| 精品少妇一区二区三区日产乱码 | 国产精品剧情在线亚洲| 依依成人精品视频| 免费三级欧美电影| 韩国一区二区三区| 91麻豆精东视频| 日韩女优电影在线观看| 国产精品你懂的在线欣赏| 国产一区二区三区在线观看免费视频| 亚洲国产va精品久久久不卡综合| 久久99国产乱子伦精品免费| 国产成人无遮挡在线视频| 成人成人成人在线视频| 91久久线看在观草草青青| 中文一区一区三区高中清不卡| 欧美视频三区在线播放| 99精品久久只有精品| 成人黄色免费短视频| 久久精品99国产精品| 精品91自产拍在线观看一区| 国产精品自产自拍| 日韩欧美电影在线| 亚洲国产精品一区二区久久 | 亚洲成人在线观看视频| 99国产麻豆精品| 精品久久久久久久久久久久久久久久久 | 成人午夜免费视频| 久久久久久久综合色一本| 丝袜亚洲另类丝袜在线| 国产二区国产一区在线观看| 欧洲国内综合视频| 亚洲美女偷拍久久| 欧洲中文字幕精品| 午夜不卡在线视频| 欧美精品日韩一区| 麻豆国产精品一区二区三区 | 亚洲国产精品ⅴa在线观看| 日韩在线卡一卡二| 91精品午夜视频| 懂色av一区二区在线播放| 国产亚洲短视频| 成人一区二区三区在线观看| 久久久亚洲综合| 国产一区二区三区黄视频 | 色婷婷综合激情| 一区二区三区国产精品| 日韩一区二区影院| 这里只有精品视频在线观看| 青青草伊人久久| 久久人人97超碰com| 成人99免费视频| 精品一区免费av| 亚洲精品一卡二卡| 久久午夜电影网| 这里是久久伊人| 97se亚洲国产综合自在线不卡| 午夜电影网亚洲视频| 国产日韩av一区二区| 在线精品视频小说1|