模型的重要性_第1頁
模型的重要性_第2頁
模型的重要性_第3頁
模型的重要性_第4頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、模型的重要性網(wǎng)絡算法學的一個中心難題是,它要求跨領域的知識,包括協(xié)議、硬件、體系架構、操作系統(tǒng)、 算法等。 但是一個人不可能對所有這些領域都非常了解,因此需要不同領域的專家協(xié)作才能設計出高效的網(wǎng)絡系統(tǒng)。不同領域的專家之間如何進行有效的對話呢?這時模型就很有用了,模型既可以把問題講清楚,又不涉及不必要的細節(jié)。最低程度, 模型應能定義所需要的術語,這樣不同領域的專家就能交流了(能聽懂對方的話了)。最好情況:領域外的專家可以根據(jù)模型進行設計,并可由領域內(nèi)的專家對設計進行檢驗。 比如,算法設計者雖然不懂得硬件,但能夠根據(jù)硬件專家給出的模型設計出與硬件相匹配的算法,并在硬件上進行驗證。這正是本章的目的。

2、下面給出幾個與網(wǎng)絡計算機系統(tǒng)性能有關的抽象模型。2.1 協(xié)議抽象模型協(xié)議是網(wǎng)絡的核心,各種網(wǎng)絡功能都是通過執(zhí)行協(xié)議來實現(xiàn)的。協(xié)議定義了對等實體之間通信的規(guī)則, 對等實體之間通過交換報文來實現(xiàn)通信。 網(wǎng)絡協(xié)議定義了報文的格式和交換次序, ,協(xié)議還定義了調(diào)用接口。因此,可將協(xié)議看成是一個加上了接口和報文格式的狀態(tài)機。 所有協(xié)議都可以抽象為圖中的狀態(tài)機模型: 。常見而耗時的功能這門課關注的是系統(tǒng)性能,而TCP/IP 協(xié)議是因特網(wǎng)的核心,所以我們把基于TCP/IP的協(xié)議狀態(tài)機需要經(jīng)常執(zhí)行而又非常耗時的功能抽象出來,這些功能正是我們優(yōu)化實現(xiàn)的重點。圖示的模型將貫穿于整個課程中。圖的中部是協(xié)議處理部分(傳

3、輸層、網(wǎng)絡層);圖的下部是與網(wǎng)絡的接口部分,涉及數(shù)據(jù)包的收發(fā);圖的上部是應用程序部分,涉及應用數(shù)據(jù)的交付。在圖的下部 ( Data Manipulation ):協(xié)議狀態(tài)機必須從網(wǎng)絡接收和發(fā)送數(shù)據(jù)包。這涉及到數(shù)據(jù)操作, 即必須讀或?qū)憯?shù)據(jù)包中的每一個字節(jié)(當操作時間與數(shù)據(jù)長度成正比時,通常認為這是一個高開銷的操作)。在此過程中需要分配資源,如分配緩沖區(qū)、CPU 時間等(緩沖區(qū)分配、任務調(diào)度都需要操作系統(tǒng)參與)。圖的中部 ( Protocol processing )描述了許多協(xié)議都需要的一些功能,協(xié)議處理開銷隨著包數(shù)量的增加而增大:( 1)很多協(xié)議允許將大塊數(shù)據(jù)分成小段傳輸,因而需要重組功能。(

4、 2)協(xié)議都需要查找或者修改一些狀態(tài)。例如,每個TCP 包到來都會導致TCP 去查找 TCP 連接表并修改連接狀態(tài),每個IP 包到來都會導致 IP 去查找轉(zhuǎn)發(fā)表等。( 3)協(xié)議都需要設置定時器。( 4)如果協(xié)議模塊需要處理多個不同的客戶程序,它需要有效地調(diào)度這些客戶,例如TCP 必須調(diào)度對不同連接的處理。在圖的上部:協(xié)議狀態(tài)機必須將數(shù)據(jù)包交付(Demultiplex )給某個客戶程序。在某些情況下,客戶程序程序需被激活,產(chǎn)生開銷較大的控制切換(control transfer )。比如,當TCP收到一個web 頁時,根據(jù)端口號將數(shù)據(jù)包交給web 瀏覽器程序,并可能需要喚醒運行瀏覽器的進程。當目

5、標程序很多的時候,解復用和控制切換都會產(chǎn)生很大的開銷。本課程的主要內(nèi)容就是仔細研究這些功能的實現(xiàn)。我們會看到, 盡管這些常見功能一般來說開銷很大,但是通過正確的技術是可以降低它們的開銷的。重要的性能度量網(wǎng)絡中兩個最重要的性能指標:吞吐量,延遲。我們比較熟悉比特速率這個指標,但在某些情況下我們更關注包速率這個指標。比如,對于路由器來說,每個包的處理開銷是差不多的,包括包頭檢查、IP 地址表查找等。包的長度越短, 單位時間內(nèi)包的數(shù)量就越多,路由器的負擔就越重,因此包速率是更能夠反映路由器處理能力的指標。因此在做路由器壓力測試時,輸入的都是最小長度的包。當然,如果我們關注與數(shù)據(jù)處理有關的功能,比如內(nèi)

6、容掃描、加密/解密等,那么長包的處理壓力大,這時我們會采用比特速率這個指標。線速處理是網(wǎng)絡系統(tǒng)優(yōu)化的重要目標之一。為滿足線速處理要求(當前數(shù)據(jù)包必須在下一個包到來前處理完) ,必須限制最壞情況下數(shù)據(jù)包的處理時間。所以,往往我們對最壞情況延遲更感興趣。性能測量分為全局性能測量(如端到端延遲和帶寬)和本地性能測量 (如路由器查找速度)。盡管全局性能測量對于整個網(wǎng)絡的性能很重要,但本課程只關注本地性能測量。大多數(shù)網(wǎng)絡管理工具(如HP 的 OpenView )用于全局測量,本地測量需要的工具是在計算機內(nèi)部測量性能的工具,比如英特爾的VTune 。因特網(wǎng)環(huán)境的特點當我們優(yōu)化任何一個系統(tǒng)時,都要考慮它的運

7、行環(huán)境。不要試圖做出一個在各種情況下都最優(yōu)的系統(tǒng),因為通用和最優(yōu)也是一對矛盾。就像我們前面介紹過的DIR24-8算法,它充分利用了因特網(wǎng)中絕大多數(shù)路由表項的前綴不超過24 位、24 位索引表消耗內(nèi)存空間不大這個特點設計的,對于長度為128 位的 IPv6 地址就不適用。(將來你們做研究時也要注意這個問題)因此,我們要設計因特網(wǎng)中的高效網(wǎng)絡系統(tǒng),那么一定要了解因特網(wǎng)環(huán)境的特點。因此鏈路速度:鏈路速度高意味著包的最大處理時間在縮短。TCP 占主導:傳統(tǒng)應用主要使用TCP,P2P 文件共享等也使用TCP 優(yōu)化很重要。TCP(要求可靠傳輸) ,小包:研究表明,路由器收到的包中大約一半為最小長度(40

8、字節(jié))的TCP 響應包。在移動互聯(lián)網(wǎng)應用中,大量的都是小包。延遲很長: 網(wǎng)絡中的實際來回延遲遠遠超過光的傳輸延遲。測量發(fā)現(xiàn), 數(shù)據(jù)包穿過美國的延遲時間平均為 241ms,而光的傳輸延遲不超過 30ms。延遲增大可能是由追求高吞吐量造成的,比如在調(diào)制解調(diào)器上的批量壓縮和在路由器中的流水處理,也可能因為擁塞造成。局部性很差: 骨干網(wǎng)上的流量研究表明,在一個非常短的時間內(nèi)大約有一百萬個并發(fā)流(具有不同的<源,目的 >對)經(jīng)過一個路由器,因此局部性很小。也就是說,在一個包上執(zhí)行的計算在未來短時間內(nèi)重用到另一個包上的可能性很小, 因此路由緩存不奏效。 正因為如此,路由緩存在現(xiàn)在的高速路由器中

9、已經(jīng)不用了,轉(zhuǎn)而使用高速的 IP 地址查找技術,如硬件實現(xiàn)的 DIR24-8 算法。從因特網(wǎng)環(huán)境的特點,我們可以看到網(wǎng)絡系統(tǒng)面臨的挑戰(zhàn):高速高速 +大規(guī)模并發(fā)流量=局部性差, cache 用不上; TCP 很重要,但+ 小包 =包速率很快; TCP 開銷大、處理復雜。2.2 存儲器在現(xiàn)代計算機系統(tǒng)結構中,訪存是最大的性能瓶頸,因為訪存延遲比指令執(zhí)行時間長很多,而且處理器速度和訪存速度之間的鴻溝越來越寬,使得訪存瓶項問題更加突出。在端節(jié)點和路由器中,數(shù)據(jù)包、狀態(tài)信息、指令等都是保存在內(nèi)存中,因此,訪存構成了端節(jié)點和路由器的主要性能瓶頸。許多的系統(tǒng)優(yōu)化工作都是圍繞該問題的解決而展開的。為了優(yōu)化訪存

10、性能,必須了解不同類型存儲器的特性。存儲器的種類(1)寄存器寄存器由一組有序的觸發(fā)器構成。大多數(shù)現(xiàn)代處理器中都有一組片上寄存器。一個電路邏輯訪問同一個片上的寄存器是很快的,大約為0.5-1ns。( 2) SRAM靜態(tài)隨機訪問存儲器( SRAM )由一組寄存器組成。如果有 N 個寄存器,則使用 log2N 個地址位進行尋址。由于地址解碼延遲,訪問片上 SRAM 只比訪問片上寄存器慢一點點。一般情況下,片上 SRAM 的訪問時間為 1-2ns,片外 SRAM 的訪問時間為 5-10ns?,F(xiàn)在的高端多核處理器的 cache 可以達到三級,每個核擁有獨立的 L1 和 L2 cache,一個芯片內(nèi)的所有

11、核共用一個 L3 cache,它們的訪存延遲要看產(chǎn)品手冊。(3) DRAMDRAM 內(nèi)部將存儲單元組成成行、列二維結構,先提供行地址,再提供列地址,因此,DRAM 的訪問速度比SRAM 低。另外,由于預充電的需要,DRAM 連續(xù)讀之間需要一點延遲,所以連續(xù)讀的延遲要大一些。以上三種存儲器,容量依次增大, 但訪存速度依次降低?,F(xiàn)在又出現(xiàn)了許多新型的存儲器,如非易失性存儲器,即當電源關閉后所存儲的數(shù)據(jù)不會消失。ROM/EPROM也是非易失型存儲器, 但它們一旦寫入數(shù)據(jù)后不可更改,新型非易失性存儲器是允許動態(tài)讀寫的。這類存儲器中有的只能順序讀寫、有的可以隨機讀寫,有的讀快寫慢等,在使用時需要了解這些

12、存儲器的新特性。在這里我們大致有個量級的概念就可以了,即片外 SRAM 比寄存器慢10 倍,片外 DRAM又比片外SRAM 慢 10 倍。( 4)快頁內(nèi)存( page-mode DRAM )頁模式 DRAM(快頁內(nèi)存) 使用 DRAM 的結構特點來優(yōu)化對相鄰存儲單元的連續(xù)訪問。DRAM 控制器先提供行地址,再提供列地址。當提供行地址時,選中的那一行數(shù)據(jù)(4字節(jié))進入到 row buffer 中;再提供列地址,選中要讀取的字節(jié)。( DRAM 的做法)快頁內(nèi)存的做法:如果要訪問的4 個字節(jié)剛好位于同一行 (頁)中, 則提供行地址后這些數(shù)據(jù)就全部進入了row buffer 中,不需要再給出列地址,因

13、此可以加快對局部性好的數(shù)據(jù)的連續(xù)訪問(不需要讀4 次)。知道快頁內(nèi)存具有這個特性后,我們就可以有意識地組織數(shù)據(jù),讓那些要被讀取的數(shù)據(jù)保存在連續(xù)位置,這樣可以顯著加快訪問速度。( 5)交織內(nèi)存( Interleaved DRAM )假定 DRAM的讀寫周期為100ns,即在地址線上輸出地址后,將在 100ns 后得到要訪問的數(shù)據(jù)。假定輸出一個地址只需要10ns,那么在等待數(shù)據(jù)到來的過程中,可以在地址線上輸出其它bank 中的地址。 當輸出了10 個 bank 中的地址后, 在數(shù)據(jù)線上將依次出現(xiàn)這10 個bank 中要訪問的數(shù)據(jù)。如果一個 DRAM 的字長為 32 位,讀寫周期為 100ns,則單

14、個 DRAM bank 的最大吞吐量約為 40MB 。采用以上的交織內(nèi)存,如果能夠合理安排讀操作,則內(nèi)存吞吐量可以達到400MB 。盡管很早就有了使用多個內(nèi)存bank 的想法,但是直到 2000 年左右才有這樣的產(chǎn)品出現(xiàn)。在每個 bank 內(nèi)還允許快頁訪問?;谶@些核心思想的內(nèi)存技術有很多,不同在于容量大小、讀寫協(xié)議、bank 數(shù)等,典型的例子包括具有2 個 bank 的 SDRAM 和具有 16 個 bank 的 RDRAM 。舉例:流ID 的流水化查找下面舉一個例子,說明如何利用存儲器的特點設計高效的算法。設計方案考慮由于有線速處理的要求,我們必須限制最壞情況下的查找時間(查找流ID 的最

15、長時間不能超過128ns),考慮使用一個平衡二叉樹。遍歷一棵樹的邏輯是很簡單的,關鍵是把樹保存在什么地方?為了獲得高速度,理想情況下流 ID 和計數(shù)器應保存在SRAM 中。然而,當前的核心路由器中大約有100 萬條并發(fā)的網(wǎng)絡流,在SRAM 中保持 100 萬條流的狀態(tài)是很昂貴的。(假設計數(shù)器為16 比特,則100萬條流至少需求(96+16) *1M=14MB )如果使用普通的DARM實現(xiàn)分支因子為2的二叉樹,查找一個流ID需要log 21000000=20 次訪存。 即使按照最樂觀的 DRAM 訪存周期 50ns 來計算, 整個的查找時間為1微秒。使用 RDRAM實現(xiàn)二分查找為了縮短查找時間,

16、 可以考慮使用交織內(nèi)存,多個包一起查。 RDRAM 集成了 16 個 bank,可以使用 RDRAM實現(xiàn)一棵高度為16 的二叉樹。講課時畫一個圖。RDRAM 一次讀操作的時間約為60ns。盡管一個流ID 的查找需要16*60ns 的時間,但查找芯片可以同時查找 16 個包,使得總的查找性能為每個數(shù)據(jù)包 60ns,可以滿足查找時間的要求。但是,層次為 16 的二叉樹只能有 216=64K 個流 ID ,不能滿足規(guī)模的要求!需要增加每個節(jié)點保存的流 ID 。網(wǎng)絡存儲子系統(tǒng)設計技術流 ID 查找使用了在網(wǎng)絡芯片的存儲子系統(tǒng)設計中經(jīng)常使用的一些技術(前2 項)。( 1)交錯內(nèi)存和流水線:類似的技術也可

17、用于IP 查找、包分類和包調(diào)度等。多個bank 可以用多個外部存儲來實現(xiàn)。( 2)寬字并行:為了一次讀入更多的數(shù)據(jù),使用可并行處理的寬內(nèi)存字。這可以使用 DRAM ,并利用其快頁模式;或者使用SRAM ,并使得每個內(nèi)存字更寬。( 3)組合 DRAM和 SRAM :由于 SRAM 快而貴,而DRAM 便宜卻慢,因此將這兩種技術組合起來可以得到一個最佳的平衡。將SRAM 作為 DRAM數(shù)據(jù)庫的緩存是很經(jīng)典的做法。2.3 端節(jié)點架構本課程關注端節(jié)點, 因此我們看一下端節(jié)點的架構。 端節(jié)點就是通用計算機, 由處理器、存儲器、總線、 I/O 設備組成。如果處理器的狀態(tài)只保存在DRAM 中,則一條指令將花

18、費60ns 去讀或?qū)懸淮蝺?nèi)存,這會非常慢。事實上,處理器使用cache 來提高速度。Cache 的使用效果與局部性由于每個包最多只經(jīng)過 I/O 總線兩次(收和發(fā)) ,而包處理過程中需要訪存很多次,所以我們關注訪存瓶頸。為了填補處理速度和訪存速度的鴻溝,現(xiàn)代計算機系統(tǒng)充分利用是, cache 的使用效果與應用的時空局部性有關。cache 來提高性能。但時間局部性:一個存儲位置在短時間內(nèi)被再次訪問。由于數(shù)據(jù)被訪問時會進入cache,當短時間內(nèi)再次訪問該數(shù)據(jù)時,該數(shù)據(jù)很大可能仍在cache 中,從而可以顯著減少訪存時間??臻g局部性: 一個存儲位置被訪問后,其鄰近位置在短時間內(nèi)被訪問。X86 處理器基

19、于空間局部性假設實現(xiàn)了預?。好慨斪x取一個32 比特的字時, 處理器預取連續(xù)的128 比特(一個 cache 行)到 cache 中,這樣訪問其余的96 比特將不會產(chǎn)生cache miss。高速數(shù)據(jù)包流基本不呈現(xiàn)時間局部性:一方面,數(shù)據(jù)包本身不會被反復處理;另一方面,同一個流的數(shù)據(jù)包往往被大量其它的流隔開,前一個包的查找結果(如下一跳、 分類 ID 等)很快被踢出cache,無法重用。提高算法及數(shù)據(jù)結構的空間局部性端節(jié)點網(wǎng)絡功能的高效實現(xiàn)通常將重點放在提高算法及數(shù)據(jù)結構的空間局部性上。比如, 1)設計緊湊的數(shù)據(jù)結構,使其能夠常駐cache 不被換出; 2)將隨機訪問(鏈表、樹)變?yōu)轫樞蛟L問 (數(shù)

20、組),如 DHash 的工作; 3)對相同 /相近位置的數(shù)據(jù)操作盡可能放在一起;4)將經(jīng)常要被一起訪問的數(shù)據(jù)放在連續(xù)位置,且與cache 行對齊,如數(shù)據(jù)結構中成員的長度及存放位置。這些措施很簡單,但是往往會有顯著的效果。舉別體偉(相同位置的操作放在一起)和王燕飛(用戶態(tài)驅(qū)動中包緩沖區(qū)長度定義, 1518B vs 2KB ,跨頁)的例子。有經(jīng)驗的程序員會非常注意這些問題, 他們通常不會使用復雜的算法, 但寫出的程序非常高效。 我們的學生一遇到性能問題,往往就會從算法上找原因,但其實是不得要領。順便說一下學生在優(yōu)化 checksum 時遇到的問題: 用了較多的 if-else 語句,代碼行數(shù)少,但

21、運行慢。原因:增加了指令 cache miss。因此,以代碼行數(shù)(指令數(shù))來衡量代碼效率是不準確的,關鍵是訪存是否高效。以上例子說明, 體系結構知識對于編寫高質(zhì)量的軟件是非常有用的。 沒有體系結構背景的人,根本不知道這里面有這么多的陷阱。2.4 操作系統(tǒng)對端節(jié)點上的應用性能進行優(yōu)化, 一定要了解操作系統(tǒng)對應用性能的影響, 因為它是很大一部分開銷的來源。為什么要設計操作系統(tǒng)呢?操作系統(tǒng)是為了解決在裸機上編程困難而設計的。好的抽象提高了程序員的生產(chǎn)效率,但卻帶來了兩個代價。 ( 1)實現(xiàn)抽象的機制是有代價的,比如,調(diào)度進程會產(chǎn)生開銷,管理虛擬內(nèi)存會產(chǎn)生開銷。( 2)抽象阻礙程序員對資源的充分利用,

22、比如,操作系統(tǒng)不允許程序員將查找數(shù)據(jù)結構一直保持在cache 中。下面我們給出這三種抽象的底層機制與代價的模型。( 1) 依靠進程實現(xiàn)不間斷計算的抽象由于外部中斷的頻繁到來, 處理器上的程序運行不了多久就會被打斷。 但是,操作系統(tǒng)通過進程提供給程序員不間斷、順序計算的抽象。進程抽象是通過三個機制實現(xiàn)的:上下文切換,調(diào)度,保護。圖 2.11 給出了上下文切換和調(diào)度的示意圖。在進程 P1 的運行過程中遇到一個中斷;P1的狀態(tài)(上下文)被保存到內(nèi)存中,運行中斷程序;然后調(diào)度器程序運行,選擇進程P2 運行; P2 的狀態(tài)被恢復,P2 運行,;最后,調(diào)度器又調(diào)度P1 運行。在此過程中,P1 覺得自己一直

23、獨占CPU 在運行。但是我們看到, 處理器的時間線包含了進程之間的上下文切換(狀態(tài)保存及恢復)以及調(diào)度器的運行,這些就是進程抽象帶來的開銷。另外,操作系統(tǒng)的保護機制確保應用進程不會對操作系統(tǒng)內(nèi)核產(chǎn)生影響,以及確保進程隔離。 比如,操作系統(tǒng)使用保護環(huán)來規(guī)定不同進程的最高權限,對于應用進程無權訪問的資源,可以向操作系統(tǒng)發(fā)送一個請求,請求通過調(diào)用系統(tǒng)服務來處理。這種保護機制也會引入開銷。進程的三種類型作為計算代理,進程有三種常見的類型:( 1)中斷處理程序是非常短小的程序,只用于處理緊急請求,比如數(shù)據(jù)包的到來。中斷處理程序只使用少量的狀態(tài),典型地只使用幾個寄存器,因此開銷最小(上下文最?。?。( 2)

24、用戶進程使用計算機的全部狀態(tài),比如內(nèi)存和寄存器,因此,在用戶進程之間切換的代價是很高的。 (上下文最大)( 3)線程是輕量級的進程,只需要較少的狀態(tài)。另外,由于同一個進程內(nèi)的線程是共享內(nèi)存的(即相同的變量) ,因此,線程切換不需要重新映射。以上三種類型的進程,其開銷依次增大。舉例:接收端活鎖下面我們用一個例子說明進程優(yōu)先級不同產(chǎn)生的問題。圖示為數(shù)據(jù)包在BSD UNIX中的處理過程。數(shù)據(jù)包的到來產(chǎn)生一個硬件中斷,CPU 響應中斷,保存當前正在運行的進程的狀態(tài),例如一個java 程序,然后CPU 執(zhí)行中斷處理程序(為快速響應繞過了調(diào)度器)。中斷處理程序?qū)?shù)據(jù)包描述符拷貝到一個內(nèi)核IP 隊列(數(shù)據(jù)包

25、已通過DMA傳輸?shù)絻?nèi)存),調(diào)用一個軟中斷(請求一個操作系統(tǒng)線程)后返回。中斷處理程序一般只做最少的、必需的事情。假定隨后沒有硬件中斷產(chǎn)生,則控制權會交給調(diào)度器。調(diào)度器一般會調(diào)度CPU 執(zhí)行軟中斷,因為軟中斷的優(yōu)先級高于用戶進程。內(nèi)核線程對數(shù)據(jù)包進行TCP 和 IP 處理,然后將數(shù)據(jù)包放入相應的應用隊列,稱socket隊列。 假定該應用程序是一個瀏覽器,瀏覽器正在等待數(shù)據(jù)包的到來。軟中斷退出后, 控制權重新交給調(diào)度器。調(diào)度器可能決定運行瀏覽器,而不是早先的java 程序。現(xiàn)在假設網(wǎng)絡負載很高,一系列的包連續(xù)到來,這時只有最高優(yōu)先級的中斷處理程序能夠運行,很可能沒有多少時間留給軟中斷,當然更沒有時

26、間留給瀏覽器程序。這樣,最終IP 包隊列或socket 隊列會填滿,導致這些數(shù)據(jù)包在消耗了資源之后被丟棄,我們稱這時計算機進入接收端活鎖:即計算機將所有的時間都用來處理中斷、協(xié)議處理等較高優(yōu)先級的任務,卻因為沒有時間運行較低優(yōu)先級的應用程序,導致這些已被處理的數(shù)據(jù)包被丟棄。這個現(xiàn)象在高速網(wǎng)絡環(huán)境下很常見。( 2)通過虛擬內(nèi)存實現(xiàn)無限存儲的抽象在虛擬內(nèi)存系統(tǒng)中, 程序員使用的內(nèi)存抽象是一個線性的存儲空間, 存儲空間的大小只受指令地址長度的限制,而不受物理內(nèi)存大小的限制。任何一個對虛擬地址的訪問必須映射到一個物理地址上。 現(xiàn)代計算機系統(tǒng)使用基于頁的映射方法。 .頁表映射可以避免分配很大的連續(xù)內(nèi)存空間, 請求調(diào)頁可以使程序員可以使用的虛擬內(nèi)存空間不受物理內(nèi)存大小的限制,只受磁盤大小以及指令地址長度的限制。虛擬內(nèi)存抽象帶來的開銷采用虛擬內(nèi)存后,到虛擬地址的訪問可能涉及到兩次內(nèi)存訪問:。為降低訪問延遲, 現(xiàn)代處理器將最近使用過的虛擬地址到物理地址的映射緩存在處理器的一個片上cache(稱 TLB )中,實際的地址轉(zhuǎn)換由稱為MMU 的硬件完成。TLB miss和調(diào)頁是最影響內(nèi)存訪問速度的兩個因素。頁表映射也提供了進程之間的一種保護機制。當進程

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論