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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? -+

?? linux informations
??
?? 第 1 頁 / 共 3 頁
字號:
Table of Contents, Show Frames, No Frames 

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


第三章 存儲管理

存儲管理子系統時操作系統中最重要的組成部分之一。在早期計算時代,由于人們所需要的內存數目遠遠大于物理內存,人們設計出了各種各樣的策略來解決此問題,其中最成功的是虛擬內存技術。它使得系統中為有限物理內存競爭的進程所需內存空間得到滿足。 

虛擬內存技術不僅僅可讓我們可以使用更多的內存,它還提供了以下功能: 

巨大的尋址空間 

操作系統讓系統看上去有比實際內存大得多的內存空間。虛擬內存可以是系統中實際物理空間的許多倍。每個進程運行在其獨立的虛擬地址空間中。這些虛擬空間相互之間都完全隔離開來,所以進程間不會互相影響。同時,硬件虛擬內存機構可以將內存的某些區域設置成不可寫。這樣可以保護代碼與數據不會受惡意程序的干擾。 

內存映射 

內存映射技術可以將映象文件和數據文件直接映射到進程的地址空間。在內存映射中,文件的內容被直接連接到進程虛擬地址空間上。 

公平的物理內存分配 

內存管理子系統允許系統中每個運行的進程公平地共享系統中的物理內存。 

共享虛擬內存 

盡管虛擬內存允許進程有其獨立的虛擬地址空間,但有時也需要在進程之間共享內存。 例如有可能系統中有幾個進程同時運行BASH命令外殼程序。為了避免在每個進程的虛擬內存空間內都存在BASH程序的拷貝,較好的解決辦法是系統物理內存中只存在一份BASH的拷貝并在多個進程間共享。動態庫則是另外一種進程間共享執行代碼的方式。共享內存可用來作為進程間通訊(IPC)的手段,多個進程通過共享內存來交換信息。 Linux支持SYSTEM V的共享內存IPC機制。 

3.1 虛擬內存的抽象模型



圖3.1 虛擬地址到物理地址映射的抽象模型 


在討論Linux是如何具體實現對虛擬內存的支持前,有必要看一下更簡單的抽象模型。 

在處理器執行程序時需要將其從內存中讀出再進行指令解碼。在指令解碼之前它必須向內存中某個位置取出或者存入某個值。然后執行此指令并指向程序中下一條指令。在此過程中處理器必須頻繁訪問內存,要么取指取數,要么存儲數據。 

虛擬內存系統中的所有地址都是虛擬地址而不是物理地址。通過操作系統所維護的一系列表格由處理器實現由虛擬地址到物理地址的轉換。 

為了使轉換更加簡單,虛擬內存與物理內存都以頁面來組織。不同系統中頁面的大小可以相同,也可以不同,這樣將帶來管理的不便。Alpha AXP處理器上運行的Linux頁面大小為8KB,而Intel X86系統上使用4KB頁面。每個頁面通過一個叫頁面框號的數字來標示(PFN) 。 

頁面模式下的虛擬地址由兩部分構成:頁面框號和頁面內偏移值。如果頁面大小為4KB,則虛擬地址的 11:0位表示虛擬地址偏移值,12位以上表示虛擬頁面框號。處理器處理虛擬地址時必須完成地址分離工作。在頁表的幫助下,它將虛擬頁面框號轉換成物理頁面框號,然后訪問物理頁面中相應偏移處。 

圖3.1給出了兩個進程X和Y的虛擬地址空間,它們擁有各自的頁表。這些頁表將各個進程的虛擬頁面映射到內存中的物理頁面。在圖中,進程X的虛擬頁面框號0被映射到了物理頁面框號4。理論上每個頁表入口應包含以下內容: 


有效標記,表示此頁表入口是有效的 
頁表入口描敘的物理頁面框號 
訪問控制信息。用來描敘此頁可以進行哪些操作,是否可寫?是否包含執行代碼? 
虛擬頁面框號是為頁表中的偏移。虛擬頁面框號5對應表中的第6個單元(0是第一個)。 

為了將虛擬地址轉換為物理地址,處理器首先必須得到虛擬地址頁面框號及頁內偏移。一般將頁面大小設為2的次冪。將圖3.1中的頁面大小設為0x2000字節(十進制為8192)并且在進程Y的虛擬地址空間中某個地址為0x2194,則處理器將其轉換為虛擬頁面框號1及頁內偏移0x194。 

處理器使用虛擬頁面框號為索引來訪問處理器頁表,檢索頁表入口。如果在此位置的頁表入口有效,則處理器將從此入口中得到物理頁面框號。如果此入口無效,則意味著處理器存取的是虛擬內存中一個不存在的區域。在這種情況下,處理器是不能進行地址轉換的,它必須將控制傳遞給操作系統來完成這個工作。 

某個進程試圖訪問處理器無法進行有效地址轉換的虛擬地址時,處理器如何將控制傳遞到操作系統依賴于具體的處理器。通常的做法是:處理器引發一個頁面失效錯而陷入操作系統核心,這樣操作系統將得到有關無效虛擬地址的信息以及發生頁面錯誤的原因。 

再以圖3.1為例,進程Y的虛擬頁面框號1被映射到系統物理頁面框號4,則再物理內存中的起始位置為 0x8000(4 * 0x2000)。加上0x194字節偏移則得到最終的物理地址0x8194。 

通過將虛擬地址映射到物理地址,虛擬內存可以以任何順序映射到系統物理頁面。例如,在圖3.1中,進程X的虛擬頁面框號0被映射到物理頁面框號1而虛擬頁面框號7被映射到物理頁面框號0,雖然后者的虛擬頁面框號要高于前者。這樣虛擬內存技術帶來了有趣的結果:虛擬內存中的頁面無須在物理內存保持特定順序。 

  

3.1.1 請求換頁
在物理內存比虛擬內存小得多的系統中,操作系統必須提高物理內存的使用效率。節省物理內存的一種方法是僅加載那些正在被執行程序使用的虛擬頁面。比如說,某個數據庫程序可能要對某個數據庫進行查詢操作,此時并不是數據庫的所有內容都要加載到內存中去,而只加載那些要用的部分。如果此數據庫查詢是一個搜索查詢而無須對數據庫進行添加記錄操作,則加載添加記錄的代碼是毫無意義的。這種僅將要訪問的虛擬頁面載入的技術叫請求換頁。 

當進程試圖訪問當前不在內存中的虛擬地址時,處理器在頁表中無法找到所引用地址的入口。在圖3.1中,對于虛擬頁面框號2,進程X的頁表中沒有入口,這樣當進程X試圖訪問虛擬頁面框號2內容時,處理器不能將此地址轉換成物理地址。這時處理器通知操作系統有頁面錯誤發生。 

如果發生頁面錯的虛擬地址是無效的,則表明進程在試圖訪問一個不存在的虛擬地址。這可能是應用程序出錯而引起的,例如它試圖對內存進行一個隨機的寫操作。此時操作系統將終止此應用的運行以保護系統中其他進程不受此出錯進程的影響。 

如果出錯虛擬地址是有效的,但是它指向的頁面當前不在內存中,則操作系統必須將此頁面從磁盤映象中讀入到內存中來。由于訪盤時間較長,進程必須等待一段時間直到頁面被取出來。如果系統中還存在其他進程,操作系統就會在讀取頁面過程中的等待過程中選擇其中之一來運行。讀取回來的頁面將被放在一個空閑的物理頁面框中,同時此進程的頁表中將添加對應此虛擬頁面框號的入口。最后進程將從發生頁面錯誤的地方重新開始運行。此時整個虛擬內存訪問過程告一段落,處理器又可以繼續進行虛擬地址到物理地址轉換,而進程也得以繼續運行。 

Linux使用請求換頁將可執行映象加載到進程的虛擬內存中。當命令執行時,可執行的命令文件被打開,同時其內容被映射到進程的虛擬內存。這些操作是通過修改描敘進程內存映象的數據結構來完成的,此過程稱為內存映射。然而只有映象的起始部分被調入物理內存,其余部分仍然留在磁盤上。當映象執行時,它會產生頁面錯誤,這樣Linux將決定將磁盤上哪些部分調入內存繼續執行。 

3.1.2 交換 
如果進程需要把一個虛擬頁面調入物理內存而正好系統中沒有空閑的物理頁面,操作系統必須丟棄位于物理內存中的某些頁面來為之騰出空間。 

如果那些從物理內存中丟棄出來的頁面來自于磁盤上的可執行文件或者數據文件,并且沒有修改過則不需要保存那些頁面。當進程再次需要此頁面時,直接從可執行文件或者數據文件中讀出。 

但是如果頁面被修改過,則操作系統必須保留頁面的內容以備再次訪問。這種頁面被稱為dirty頁面, 當從內存中移出來時,它們必須保存在叫做交換文件的特殊文件中。相對于處理器和物理內存的速度,訪問交換文件的速度是非常緩慢的,操作系統必須在將這些dirty頁面寫入磁盤和將其繼續保留在內存中做出選擇。 

選擇丟棄頁面的算法經常需要判斷哪些頁面要丟棄或者交換,如果交換算法效率很低,則會發生"顛簸"現象。在這種情況下,頁面不斷的被寫入磁盤又從磁盤中讀回來,這樣一來操作系統就無法進行其他任何工作。以圖3.1為例,如果物理頁面框號1被頻繁使用,則頁面丟棄算法將其作為交換到硬盤的侯選者是不恰當的。一個進程當前經常使用的頁面集合叫做工作集。高效的交換策略能夠確保所有進程的工作集保存在物理內存中。 

Linux使用最近最少使用(LRU)頁面衰老算法來公平地選擇將要從系統中拋棄的頁面。這種策略為系統中的每個頁面設置一個年齡,它隨頁面訪問次數而變化。頁面被訪問的次數越多則頁面年齡越年輕;相反則越衰老。年齡較老的頁面是待交換頁面的最佳侯選者。 

  

3.1.3  共享虛擬內存
虛擬內存讓多個進程之間可以方便地共享內存。所有的內存訪問都是通過每個進程自身的頁表進行。對于兩個共享同一物理頁面的進程,在各自的頁表中必須包含有指向這一物理頁面框號的頁表入口。 

圖3.1中兩個進程共享物理頁面框號4。對進程X來說其對應的虛擬頁面框號為4而進程Y的為6。這個有趣的現象說明:共享物理頁面的進程對應此頁面的虛擬內存位置可以不同。 

  

3.1.4  物理與虛擬尋址模式
操作系統自身也運行在虛擬內存中的意義不大。如果操作系統被迫維護自身的頁表那將是一個令人惡心的方案。多數通用處理器同時支持物理尋址和虛擬尋址模式。物理尋址模式無需頁表的參與且處理器不會進行任何地址轉換。Linux核心直接運行在物理地址空間上。 

Alpha AXP處理器沒有特殊的物理尋址模式。它將內存空間劃分為幾個區域并將其中兩個指定為物理映射地址。核心地址空間被稱為KSEG地址空間,它位于地址0xfffffc0000000000以上區域。為了執行位于KSEG的核心代碼或訪問那里的數據,代碼必須在核心模式下執行。Alpha上的Linux核心從地址0xfffffc0000310000開始執行. 

  

3.1.5  訪問控制
頁表入口包含了訪問控制信息。由于處理器已經將頁表入口作為虛擬地址到物理地址的映射,那么可以很方便地使用訪問控制信息來判斷處理器是否在以其應有的方式來訪問內存。 

諸多因素使得有必要嚴格控制對內存區域的訪問。有些內存,如包含執行代碼的部分,顯然應該是只讀的,操作系統決不能允許進程對此區域的寫操作。相反包含數據的頁面應該是可寫的, 但是去執行這段數據肯定將導致錯誤發生。多數處理器至少有兩種執行方式:核心態與用戶態。任何人都不會允許在用戶態下執行核心代碼或者在用戶態下修改核心數據結構。 

  



圖3.2 Alpha AXP頁表入口 


頁表入口中的訪問控制信息是處理器相關的;圖3.2是Alpha AXP處理器的PTE(Page Table Entry)。這些位域的含義如下: 


V 
有效,如果此位置位,表明此PTE有效 
  
FOE 
“執行時失效”,無論合時只要執行包含在此頁面中的指令,處理器都將報告頁面錯誤并將控制傳遞 
FOW 
“寫時失效”, 除了頁面錯誤發生在對此頁面的寫時,其他與上相同。 
FOR 
“讀時失效”,除了頁面錯誤發生在對此頁面的讀時,其他與上相同。 
ASM 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人av网站免费观看| 韩国精品主播一区二区在线观看 | 久久精品人人做人人爽人人| 欧美日韩不卡在线| 欧美日韩免费视频| 欧美午夜理伦三级在线观看| 色激情天天射综合网| 色综合久久88色综合天天免费| 91一区在线观看| 色综合久久久久久久久| 在线精品视频一区二区三四 | 亚洲一区二区偷拍精品| 一区二区在线观看视频| 亚洲一区二区三区在线看| 亚洲二区视频在线| 日本系列欧美系列| 国内国产精品久久| 成人免费看片app下载| 北岛玲一区二区三区四区| 91色九色蝌蚪| 51精品国自产在线| 久久久天堂av| 亚洲天堂精品视频| 日韩精品视频网| 精品一区二区三区在线播放视频 | 亚洲三级在线观看| 亚洲综合成人在线视频| 风流少妇一区二区| 99久久99久久免费精品蜜臀| 在线视频一区二区免费| 91麻豆精品国产| 中文字幕+乱码+中文字幕一区| 亚洲精品国产精华液| 久草热8精品视频在线观看| 国产成人啪午夜精品网站男同| 色8久久精品久久久久久蜜| 制服丝袜中文字幕亚洲| 国产精品第一页第二页第三页| 一区二区三区成人在线视频| 久久99在线观看| 91碰在线视频| 久久精品日韩一区二区三区| 亚洲国产wwwccc36天堂| 国产成人综合在线观看| 欧美日韩国产小视频在线观看| 国产三级精品三级在线专区| 亚洲午夜久久久久久久久久久 | 中文字幕av一区二区三区高 | 国产欧美日韩三级| 婷婷六月综合网| av激情亚洲男人天堂| 久久这里只有精品首页| 亚洲成人动漫在线观看| 99久久精品99国产精品| 精品伦理精品一区| 婷婷综合另类小说色区| 91麻豆文化传媒在线观看| 欧美精彩视频一区二区三区| 五月天激情小说综合| 91久久人澡人人添人人爽欧美 | 99久久er热在这里只有精品66| 精品美女在线观看| 日韩电影在线观看网站| 91丨porny丨国产| 欧美韩国日本不卡| 国产又黄又大久久| 欧美一区二区三区精品| 亚洲第四色夜色| 欧美日韩另类一区| 亚洲一区二区成人在线观看| 色999日韩国产欧美一区二区| 欧美韩国日本一区| 成人免费观看av| 国产精品久久久久久久蜜臀| 国产成人精品一区二区三区四区| 日韩一区二区精品| 卡一卡二国产精品| 欧美大胆一级视频| 精品一区二区三区免费毛片爱| 欧美xxxxxxxx| 国内一区二区在线| 国产网红主播福利一区二区| 丁香激情综合五月| 国产精品初高中害羞小美女文| 成人99免费视频| 尤物av一区二区| 欧美日韩三级一区| 免费观看久久久4p| 久久久99免费| 成人免费看黄yyy456| 亚洲欧美视频在线观看视频| 欧美性猛片xxxx免费看久爱| 午夜电影网一区| 久久综合九色综合97婷婷女人 | 欧美丝袜丝交足nylons图片| 亚洲一区在线播放| 777午夜精品免费视频| 裸体健美xxxx欧美裸体表演| 久久综合久色欧美综合狠狠| 成人激情小说网站| 一卡二卡欧美日韩| 欧美成人精精品一区二区频| 成人综合在线网站| 亚洲综合一区在线| 2021国产精品久久精品| 99精品欧美一区二区三区小说 | 韩日欧美一区二区三区| 亚洲国产高清不卡| 欧美午夜理伦三级在线观看| 久久99精品久久久久婷婷| 国产精品丝袜一区| 欧美日韩成人在线| 成人蜜臀av电影| 日韩电影在线观看一区| 中文字幕av一区 二区| 欧美剧情片在线观看| 福利视频网站一区二区三区| 亚洲成人精品一区| 亚洲国产高清aⅴ视频| 日韩一区二区三区视频| 91女厕偷拍女厕偷拍高清| 久久国产人妖系列| 国产在线精品一区二区夜色| 国产精品久久久久久久久免费丝袜 | 91在线视频观看| 美腿丝袜在线亚洲一区| 亚洲人成网站在线| 精品日韩欧美一区二区| 欧美日韩国产小视频| 99精品视频在线免费观看| 韩国女主播一区| 麻豆中文一区二区| 亚洲高清久久久| 最新热久久免费视频| 国产日韩影视精品| 日韩欧美国产一区二区三区| 欧美日韩久久一区二区| 一本大道久久精品懂色aⅴ| 国产精品 欧美精品| 精品在线观看免费| 麻豆精品一区二区综合av| 亚洲自拍偷拍欧美| 亚洲欧美日韩中文播放| 亚洲欧洲日韩在线| 国产精品久久久久久妇女6080| 久久久青草青青国产亚洲免观| 日韩欧美亚洲另类制服综合在线| 欧美日韩高清一区二区不卡| 日本道色综合久久| 99久久国产免费看| aaa国产一区| eeuss影院一区二区三区| 国产成人精品亚洲日本在线桃色 | 精品日韩av一区二区| 欧美一区二区福利在线| 日韩欧美国产综合一区| 日韩欧美美女一区二区三区| 日韩欧美一区二区视频| 日韩欧美电影一区| wwww国产精品欧美| 亚洲国产高清在线| ●精品国产综合乱码久久久久| 亚洲视频一区二区免费在线观看| 国产精品九色蝌蚪自拍| 亚洲欧美另类综合偷拍| 亚洲国产中文字幕| 日韩精品一级二级| 激情丁香综合五月| 成人黄色小视频| 在线区一区二视频| 制服丝袜亚洲播放| 欧美mv日韩mv| 中文字幕一区二| 亚洲成人av资源| 国精产品一区一区三区mba视频 | 亚洲视频中文字幕| 亚洲国产毛片aaaaa无费看| 午夜伦理一区二区| 国产一区二区网址| 色婷婷久久久综合中文字幕| 91麻豆精品国产91| 国产日本欧洲亚洲| 伊人婷婷欧美激情| 久久国产麻豆精品| 成人午夜激情在线| 欧美伦理电影网| 中文一区一区三区高中清不卡| 亚洲在线观看免费视频| 狠狠色丁香婷婷综合久久片| 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | 日韩欧美你懂的| 18成人在线观看| 久久精品国产99国产| 91色|porny| 国产亚洲女人久久久久毛片| 亚洲中国最大av网站| 国产福利精品导航| 欧美日韩精品一区视频| 国产精品毛片久久久久久久| 日日嗨av一区二区三区四区|