Linux內(nèi)存系統(tǒng)

維基百科——虛擬內(nèi)存定義

虛擬內(nèi)存是計(jì)算機(jī)內(nèi)存管理的一種技術(shù)。它使得應(yīng)用程序認(rèn)為它擁有連續(xù)可用的內(nèi)存(一個(gè)連續(xù)完整的地址空間)而實(shí)際上,它通常被分割為多個(gè)物理內(nèi)存的碎片,還有部分暫時(shí)存儲(chǔ)在外部磁盤存儲(chǔ)器上,在需要時(shí)進(jìn)行數(shù)據(jù)交換。與沒有使用虛擬內(nèi)存技術(shù)的系統(tǒng)相比,使用這種技術(shù)的系統(tǒng)使得大型程序的編寫更加容易,對(duì)真正的物理內(nèi)存(例如RAM)的使用也更有效率。
注意:虛擬內(nèi)存不只是“用磁盤空間來擴(kuò)展物理內(nèi)存”的意思——這只是內(nèi)存級(jí)別以使其包含硬盤驅(qū)動(dòng)器而已。把內(nèi)存擴(kuò)展到磁盤只是使用虛擬內(nèi)存的一個(gè)結(jié)果,它的作用也可以通過覆蓋或者把處于不活動(dòng)狀態(tài)的程序以及他們的數(shù)據(jù)全部交換到磁盤上等方式來實(shí)現(xiàn)。
對(duì)虛擬內(nèi)存的定義:基于對(duì)地址空間的重定義的,即把地址空間定義為“連續(xù)的虛擬內(nèi)存地址”,以借此“欺騙”程序,使它們以為自己正在使用一大塊的“連續(xù)”地址。

虛擬內(nèi)存

All about Linux swap space

Linux將物理RAM(Random Access Memory)劃分為稱為頁(yè)面的內(nèi)存塊。交換是將一頁(yè)內(nèi)存復(fù)制到硬盤上的預(yù)配置空間(稱為交換空間)以釋放改內(nèi)存頁(yè)面上的過程。物理內(nèi)存和交換空間的組合就是可用的虛擬內(nèi)存量。

虛擬內(nèi)存的那點(diǎn)事兒

進(jìn)程是與其他進(jìn)程共享CPU和內(nèi)存資源的。為了有效的管理內(nèi)存并減少出錯(cuò),現(xiàn)代操作系統(tǒng)提供了一種對(duì)主存的抽象概念,即:虛擬內(nèi)存(Virtual Memory)。虛擬內(nèi)存為每個(gè)進(jìn)程提供一個(gè)一致的,私有的地址空間,每個(gè)進(jìn)程擁有一片連續(xù)完整的內(nèi)存空間。

正如維基百科所說,虛擬內(nèi)存不只是“使用硬盤空間來擴(kuò)展內(nèi)存”的技術(shù)。虛擬內(nèi)存的重要意義是它定義了一個(gè)連續(xù)的虛擬地址空間,使得程序編寫難度降低。并且,把內(nèi)存擴(kuò)展到硬盤空間只是使用虛擬內(nèi)存的必然結(jié)果,虛擬內(nèi)存空間會(huì)存在硬盤中,并且會(huì)被全部放入內(nèi)存中緩沖(按需),有的操作系統(tǒng)還會(huì)在內(nèi)存不夠的情況下,將一進(jìn)程的內(nèi)存全部放入硬盤空間中,并在切換到進(jìn)程時(shí)再?gòu)挠脖P讀取(這也是Windows會(huì)經(jīng)常假死的原因...)。

虛擬內(nèi)存主要提供了如下三個(gè)重要的能力:

  1. 把主存看作一個(gè)存儲(chǔ)在硬盤上的虛擬地址空間的高速緩存,并且只在主存中緩存活動(dòng)區(qū)域(按需緩存)。
  2. 為每個(gè)進(jìn)程提供了一個(gè)一致的地址空間,降低程序員對(duì)內(nèi)存的管理的復(fù)雜性。
  3. 保護(hù)了每個(gè)進(jìn)程的地址空間不被破壞。

2. 虛擬內(nèi)存如何運(yùn)作

2.1 CPU尋址

內(nèi)存通常被組織為一個(gè)由M個(gè)連續(xù)的字節(jié)大小的單元組成的數(shù)組。每個(gè)字節(jié)都有一個(gè)唯一的物理地址(Physical Address PA),作為到數(shù)組的索引。

CPU訪問內(nèi)存最簡(jiǎn)單直接的方法就是使用物理地址,這種尋址方式稱為物理尋址。

現(xiàn)代計(jì)算機(jī)使用的是一種被稱為虛擬尋址(Virtual Addressing)的尋址方式。使用虛擬尋址,CPU需要將虛擬地址翻譯成物理地址,這樣才能訪問到真實(shí)的物理內(nèi)存。

虛擬尋址需要硬件與操作系統(tǒng)之間相互合作。CPU中含有一個(gè)被稱為內(nèi)存管理單元(Memory Management Unit,MMU)的硬件,它的功能是將虛擬地址轉(zhuǎn)換稱為物理地址,MMU需要借助存放在內(nèi)存中的頁(yè)表來動(dòng)態(tài)翻譯虛擬地址,該頁(yè)表由操作系統(tǒng)管理。

2.2 頁(yè)表

分頁(yè)表是一種數(shù)據(jù)結(jié)構(gòu),它用于計(jì)算機(jī)操作系統(tǒng)中虛擬內(nèi)存系統(tǒng),其存儲(chǔ)了虛擬地址到物理地址之間的映射。虛擬地址在訪問進(jìn)程中是唯一的,而物理地址在硬件(比如內(nèi)存)中是唯一的。

在操作系統(tǒng)中使用虛擬內(nèi)存,每個(gè)進(jìn)程會(huì)認(rèn)為使用一塊大的連續(xù)的內(nèi)存,事實(shí)上,每個(gè)進(jìn)程的內(nèi)存散布在物理內(nèi)存的不同區(qū)域?;蛘呖赡鼙徽{(diào)出到備份存儲(chǔ)中(一般是硬盤)。當(dāng)一個(gè)進(jìn)程請(qǐng)求自己的內(nèi)存,操作系統(tǒng)負(fù)責(zé)把程序生成的虛擬地址,映射到實(shí)際存儲(chǔ)的物理內(nèi)存上。操作系統(tǒng)在分頁(yè)表中存儲(chǔ)虛擬地址到物理地址的映射。每個(gè)映射被稱為分頁(yè)表項(xiàng)(page table entry ,PTE)

簡(jiǎn)單的尋址空間方案

在一個(gè)簡(jiǎn)單的地址空間方案中,由虛擬地址尋址的頁(yè)與物理內(nèi)存中的幀之間的關(guān)系。物理內(nèi)存可以包含屬于許多進(jìn)程的頁(yè)。如果不經(jīng)常使用,或者物理內(nèi)存已滿,可以將頁(yè)面分頁(yè)到磁盤。在上圖中,并非所有頁(yè)面都在物理內(nèi)存中。

2.3 內(nèi)存管理單元

內(nèi)存管理單元(memory management unit,MMU),是一種負(fù)責(zé)CPU的內(nèi)存訪問請(qǐng)求的計(jì)算機(jī)硬件。通常,操作系統(tǒng)會(huì)為每個(gè)程序分配虛擬內(nèi)存空間。

2.3.1 MMU的功能

虛擬地址到物理地址的轉(zhuǎn)換(即虛擬內(nèi)存的管理)、內(nèi)存保護(hù)、CPU高速緩存的控制。

2.3.2 MMU工作機(jī)制

現(xiàn)代的內(nèi)存管理單元是以頁(yè)的方式,分割虛擬地址空間(處理器使用的地址范圍)的;頁(yè)的大小是2的n次方,通常為幾KB(字節(jié))。地址尾部的n位(頁(yè)大小的2的次方數(shù))作為頁(yè)內(nèi)的偏移量保持不變。其余的地址位(address)為(虛擬)頁(yè)號(hào)。

2.3.3 MMU頁(yè)表?xiàng)l目

內(nèi)存管理單元通常借助一種叫做轉(zhuǎn)譯旁觀緩沖器(Translation Lookaside Buffer,TLB)和相聯(lián)高速緩存來將虛擬頁(yè)號(hào)轉(zhuǎn)換為物理頁(yè)號(hào)。當(dāng)后備緩沖器中沒有轉(zhuǎn)換記錄時(shí),則使用一種較慢的機(jī)制,其中包括專用硬件的數(shù)據(jù)結(jié)構(gòu)或軟件輔助手段。這個(gè)數(shù)據(jù)結(jié)構(gòu)稱為分頁(yè)表,頁(yè)表中的數(shù)據(jù)叫做分頁(yè)表項(xiàng)(page table entry PTE)。物理頁(yè)號(hào)結(jié)合頁(yè)偏移量便提供了完整的物理地址。

頁(yè)表 或 轉(zhuǎn)換后備緩沖器數(shù)據(jù)項(xiàng)應(yīng)該包括的信息有:

  1. 臟位(頁(yè)面重寫標(biāo)志位,dirty bit),表示該頁(yè)是否被寫過;
  2. 訪問位(accessed bit),表示該頁(yè)最后使用于何時(shí),以便最近最少使用頁(yè)面置換算法的實(shí)現(xiàn);
  3. 哪種進(jìn)程可以讀寫該頁(yè)的信息,利用用戶模式進(jìn)程還是特權(quán)模式進(jìn)程;
  4. 該頁(yè)是否應(yīng)被高速緩沖的信息。

有時(shí)候,TLB和PTE會(huì)禁止對(duì)虛擬頁(yè)訪問,這可能是因?yàn)闆]有RAM與虛擬頁(yè)相關(guān)聯(lián)。如果是這種情況,MMU將向CPU發(fā)出頁(yè)錯(cuò)誤的信號(hào),操作系統(tǒng)將進(jìn)行處理,也許會(huì)尋找RAM的空白幀,同時(shí)建立一個(gè)新的PTE將之映射到所請(qǐng)求的虛擬地址。如果沒有空閑的RAM,可能必須關(guān)閉一個(gè)已經(jīng)存在的頁(yè)面,使用一些替換算法,將之保存到磁盤中(這被稱為頁(yè)面調(diào)度)。

2.3.4 MMU優(yōu)點(diǎn)

  • 內(nèi)存保護(hù):頁(yè)錯(cuò)誤的錯(cuò)誤可能存在軟件錯(cuò)誤,進(jìn)程的MMU可以使用內(nèi)存保護(hù)特性避免非法訪問其他進(jìn)程內(nèi)存。
  • 減少內(nèi)存碎片化:進(jìn)程分配并釋放內(nèi)存塊后,可能導(dǎo)致內(nèi)存碎片化。導(dǎo)致最大連續(xù)可用的內(nèi)存塊遠(yuǎn)小于要分配的內(nèi)存總量。在虛擬內(nèi)存實(shí)現(xiàn)后,虛擬內(nèi)存可以將多個(gè)不連續(xù)的物理內(nèi)存塊映射為一個(gè)連續(xù)區(qū)塊。

2.4 轉(zhuǎn)換過程

CPU的內(nèi)存管理單元(MMU)存儲(chǔ)最近用過的分頁(yè)表的映射緩存。被稱為轉(zhuǎn)移后備緩沖器(TLB),TLB是一個(gè)索引緩存。

當(dāng)需要將虛擬地址轉(zhuǎn)換為物理地址時(shí),首先搜索TLB,如果找到匹配(TLB)命中,則返回物理地址并繼續(xù)存儲(chǔ)器訪問。然而,如果沒有匹配(稱為TLB未命中),則MMU或操作系統(tǒng)TLB未命中處理器通常會(huì)查找頁(yè)表中的地址映射以查看是否存在映射(頁(yè)面遍歷),如果存在,則將其寫回TLB(這必須完成,因?yàn)橛布ㄟ^虛擬存儲(chǔ)器系統(tǒng)中的TLB訪問存儲(chǔ)器),并且重啟錯(cuò)誤指令(這也可以并行發(fā)生)。此后續(xù)轉(zhuǎn)換找到TLB命中,并且內(nèi)存訪問將繼續(xù)。

虛擬地址轉(zhuǎn)換過程

虛擬地址到物理地址的轉(zhuǎn)換過程,如果虛擬內(nèi)存不存在與TLB,轉(zhuǎn)換會(huì)被重置并通過分頁(yè)表和硬件尋找。

2.5 轉(zhuǎn)換失敗

  1. 如果該地址沒有可用的轉(zhuǎn)換,這意味該虛擬地址的存儲(chǔ)器訪問是無效的。這通常是程序錯(cuò)誤導(dǎo)致的,操作系統(tǒng)需要處理這個(gè)問題。現(xiàn)代操作系統(tǒng)會(huì)發(fā)送一個(gè)段錯(cuò)誤信息給出錯(cuò)程序。

  2. 當(dāng)物理內(nèi)存中不存在這個(gè)頁(yè),也會(huì)引起分頁(yè)表查找失敗。如果請(qǐng)求的頁(yè)面沒被調(diào)出物理內(nèi)存,給其他頁(yè)騰出空間,會(huì)引起這個(gè)錯(cuò)誤。這種情況下,頁(yè)被分配到存儲(chǔ)在介質(zhì)上的輔助存儲(chǔ),例如硬盤(這種輔助存儲(chǔ),或叫備用存儲(chǔ),如果是一個(gè)硬盤分區(qū)或者交換文件,經(jīng)常稱之為交換分區(qū),如果是文件,叫做分區(qū)文件或頁(yè)文件)。這時(shí)候,分頁(yè)需要從硬盤放回到物理內(nèi)存中,這類操作通常會(huì)導(dǎo)致系統(tǒng)抖動(dòng)的情況,通過局部性原理來預(yù)測(cè)將來可能會(huì)訪問的塊,避免出現(xiàn)系統(tǒng)抖動(dòng)。

  3. 當(dāng)物理內(nèi)存沒滿的時(shí)候,這是一個(gè)簡(jiǎn)單操作。頁(yè)被寫回物理內(nèi)存,頁(yè)表和轉(zhuǎn)換備用緩沖會(huì)更新,指令重啟。然而,當(dāng)物理內(nèi)存已滿,一個(gè)或多個(gè)頁(yè)面要被調(diào),為請(qǐng)求的頁(yè)面騰出空間時(shí)候。頁(yè)表需要更新。標(biāo)識(shí)出那些在物理內(nèi)存被調(diào)出的頁(yè),然后標(biāo)識(shí)那些從硬盤調(diào)用物理內(nèi)存的頁(yè)。TLB也需要更新,包括去掉調(diào)出的頁(yè),重啟指令。

段錯(cuò)誤:存儲(chǔ)器區(qū)塊錯(cuò)誤(Segmentation fault)也稱訪問權(quán)限沖突(access violation),是一種程序錯(cuò)誤。它出現(xiàn)在當(dāng)程序企圖訪問CPU無法定址的存儲(chǔ)器區(qū)塊時(shí)。當(dāng)發(fā)生錯(cuò)誤時(shí),硬件會(huì)通知操作系統(tǒng)產(chǎn)生了存儲(chǔ)器訪問權(quán)限沖突的狀況。通常該錯(cuò)誤是由于調(diào)用一個(gè)地址,而該地址為空(NULL)導(dǎo)致的。例如鏈表中調(diào)用一個(gè)未分配地址的空鏈表單元的元素,數(shù)組訪問越界也可能產(chǎn)生這個(gè)錯(cuò)誤。

2.6 頁(yè)缺失

頁(yè)缺失(page fault)指的是當(dāng)軟件試圖訪問已映射在虛擬地址空間中,但是當(dāng)前未被加載在物理內(nèi)存中的一個(gè)分頁(yè)時(shí),由CPU的內(nèi)存管理單元所發(fā)出的中斷。

通常情況下,用于處理此中斷的程序是操作系統(tǒng)的一部分。如果操作系統(tǒng)判斷此次訪問有效,那么操作系統(tǒng)會(huì)嘗試將相關(guān)的分頁(yè)從硬盤上的虛擬內(nèi)存文件調(diào)入內(nèi)存。而如果訪問是不被允許的,那么操作系統(tǒng)通常會(huì)結(jié)束相關(guān)的進(jìn)程。

雖然叫做“頁(yè)缺失”錯(cuò)誤,但實(shí)際上這并不一定是一種錯(cuò)誤。而且這一機(jī)制是利用虛擬內(nèi)存來增加程序可用內(nèi)存空間。

2.6.1 軟性頁(yè)缺失

軟性頁(yè)缺失指頁(yè)缺失發(fā)生時(shí),相關(guān)的頁(yè)已經(jīng)被加載進(jìn)內(nèi)存,但是沒有向MMU注冊(cè)的情況。操作系統(tǒng)只需要在MMU中注冊(cè)相關(guān)頁(yè)對(duì)應(yīng)的物理地址即可。

發(fā)生這種情況的可能性:

  • 一塊物理內(nèi)存被兩個(gè)或者多個(gè)程序共享,操作系統(tǒng)已經(jīng)為其中一個(gè)轉(zhuǎn)載并注冊(cè)了相關(guān)的頁(yè),但是沒有為另一個(gè)程序注冊(cè)。
  • 該頁(yè)已被從CPU的工作集中移除,但是尚未被交換到磁盤上。比如Open VMS使用次級(jí)頁(yè)緩存的系統(tǒng),就有可能會(huì)在工作集過大的情況下,將某頁(yè)從工作集中刪除,但是不寫入硬盤也不擦除(比如這一頁(yè)被讀出硬盤后沒被修改過),只是放入空閑頁(yè)表。除非有其他程序需要,導(dǎo)致這一頁(yè)被分配出去,不然這一頁(yè)的內(nèi)容也不會(huì)被修改。

當(dāng)原程序再次需要該頁(yè)內(nèi)的數(shù)據(jù)時(shí),如果這一頁(yè)確實(shí)沒有被分配出去,那么系統(tǒng)只需要重新為該頁(yè)在MMU內(nèi)注冊(cè)映射即可。

2.6.2 硬性頁(yè)缺失

與軟性頁(yè)缺失相反,硬性頁(yè)缺失是指相關(guān)的頁(yè)在頁(yè)缺失發(fā)生時(shí)未被加載進(jìn)內(nèi)存的情況。

操作系統(tǒng)需要:

  1. 尋找一個(gè)空閑的頁(yè)。或者把另外一個(gè)使用的頁(yè)寫到磁盤上(如果其在最后一次寫入后發(fā)生了變化的話),并注銷MMU內(nèi)的記錄;
  2. 將數(shù)據(jù)讀入被選定的頁(yè);
  3. 向MMU注冊(cè)該頁(yè);

硬性頁(yè)缺失導(dǎo)致的性能損失是很大的。
另外,有些操作系統(tǒng)會(huì)將程序的一部分延遲到需要使用的時(shí)候再加載入內(nèi)存執(zhí)行,以此提升性能。這一特性也是通過捕獲硬性頁(yè)缺失達(dá)到的。

當(dāng)硬性頁(yè)缺失過于頻繁發(fā)生時(shí),稱發(fā)生系統(tǒng)顛簸。

2.6.3 無效頁(yè)缺失

當(dāng)程序訪問的虛擬地址是不存在與虛擬地址空間內(nèi)的時(shí)候,則發(fā)生無效頁(yè)缺失。一般來說這是個(gè)軟件問題,但也不排除硬件可能,比如因?yàn)閮?nèi)存故障而損壞了一個(gè)正確的指針。

具體動(dòng)作與所使用的操作系統(tǒng)有關(guān),比如Windows會(huì)使用異常機(jī)制向程序報(bào)告,而類Unix系統(tǒng)則使用信號(hào)機(jī)制。

3. 分頁(yè)

分頁(yè)(Paging),是一種操作系統(tǒng)里存儲(chǔ)器管理的一種技術(shù),可以使計(jì)算機(jī)的主存使用存儲(chǔ)在輔助存儲(chǔ)器的數(shù)據(jù)。操作系統(tǒng)會(huì)將輔助存儲(chǔ)器(通常是磁盤)中的數(shù)據(jù)分割成固定大小的區(qū)塊,稱為“頁(yè)”(pages)。當(dāng)不需要時(shí),當(dāng)不需要時(shí),將分頁(yè)由主存(通常是內(nèi)存)移到輔助存儲(chǔ)器;當(dāng)需要時(shí),再將數(shù)據(jù)取回,加載主存中。相對(duì)于分段,分頁(yè)允許存儲(chǔ)器存儲(chǔ)于不連續(xù)的區(qū)塊以維持文件系統(tǒng)的整齊。分頁(yè)是磁盤和內(nèi)存之間傳輸數(shù)據(jù)塊的最下單位。

3.1 命中和缺頁(yè)

  • 虛擬存儲(chǔ)器系統(tǒng)中,DRAM緩存命中,稱讀取了一個(gè)地址。命中過程不需要程序再?gòu)拇疟P中緩慢讀取數(shù)據(jù)。

  • 相對(duì)的,DRAM不命中稱為缺頁(yè)(page fault)。由于頁(yè)幀(MMU中頁(yè)表的組成單位 分頁(yè)表項(xiàng) PTE)有效位物理頁(yè)號(hào)(或磁盤地址)構(gòu)成,當(dāng)有效位標(biāo)記為0時(shí),即表明該地址未在緩存中,調(diào)用該地址會(huì)引起缺頁(yè)異常。從磁盤中拷貝需要的內(nèi)容,覆蓋內(nèi)存中的一個(gè)犧牲頁(yè),從而能夠命中。過多缺頁(yè)會(huì)導(dǎo)致反復(fù)的磁盤讀取和寫入,非常耗費(fèi)時(shí)間。

3.2 系統(tǒng)顛簸

盡管在整個(gè)運(yùn)行過程中,程序引用不同的頁(yè)面總數(shù)(也就是虛擬內(nèi)存大?。┛赡艹隽宋锢泶鎯?chǔ)器(DRAM)總大小,但是程序常常在較小的活動(dòng)頁(yè)面上活動(dòng),這個(gè)集合叫做工作集或者常駐集。在工作集被緩存后,對(duì)它的反復(fù)調(diào)用會(huì)使程序命中提高,從而提高性能。

大部分的程序都可以在存儲(chǔ)器獲取數(shù)據(jù)和讀取中達(dá)到穩(wěn)定的狀態(tài),當(dāng)程序達(dá)到穩(wěn)定狀態(tài)時(shí),存儲(chǔ)器的使用量通常都不會(huì)太大。虛擬內(nèi)存雖然可以有效率控制存儲(chǔ)器的使用,但是大量的頁(yè)缺失還是造成了系統(tǒng)遲緩的主要因素。當(dāng)工作集的大小超過物理存儲(chǔ)器大小,程序?qū)?huì)發(fā)生一種不幸的情況,這種情況稱為“顛簸”,頁(yè)面將不停的寫入、釋放、讀取,由于大量的丟失(而非命中)而損失極大性能。用戶可以增加隨機(jī)存取存儲(chǔ)器的大小或是減少同時(shí)在系統(tǒng)里運(yùn)行程序的數(shù)量來降低系統(tǒng)顛簸的記錄。

3.3 系統(tǒng)調(diào)度

  • 當(dāng)需要用到數(shù)據(jù)時(shí)再向系統(tǒng)請(qǐng)求,使得系統(tǒng)將數(shù)據(jù)由輔助設(shè)備傳入到存儲(chǔ)器上,這叫做“需求分頁(yè)”。使得系統(tǒng)不需要將全部的程序都放在存儲(chǔ)器上,減少了所需要的存儲(chǔ)器的數(shù)量。
  • 當(dāng)系統(tǒng)查看分頁(yè)表時(shí)認(rèn)為某些數(shù)據(jù)可能需要用到,而先將數(shù)據(jù)傳到存儲(chǔ)器上的行為,就叫做“先行分頁(yè)”,當(dāng)存儲(chǔ)器夠大的話通常采取這種方式。
  • Unix系統(tǒng)會(huì)定期使用sync程序來清理所有經(jīng)過變更的幀,他會(huì)將所有被變更的幀存到輔助存儲(chǔ)器(硬盤)上。windows系統(tǒng)有時(shí)也會(huì)進(jìn)行類似的操作,使得新程序打開時(shí)更加快速。

推薦閱讀:

操作系統(tǒng)--分頁(yè)(一)

操作系統(tǒng)實(shí)現(xiàn)(二):分頁(yè)和物理內(nèi)存管理

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1. 基礎(chǔ)知識(shí) 1.1、 基本概念、 功能 馮諾伊曼體系結(jié)構(gòu)1、計(jì)算機(jī)處理的數(shù)據(jù)和指令一律用二進(jìn)制數(shù)表示2、順序執(zhí)...
    yunpiao閱讀 5,769評(píng)論 1 22
  • 1 內(nèi)存尋址 1.1 物理地址、虛擬地址以及線性地址 物理地址: 物理內(nèi)存的內(nèi)存單元地址 虛擬地址: 程序員看到的...
    瘋狂小王子閱讀 3,123評(píng)論 3 21
  • 本文轉(zhuǎn)載自 https://juejin.im/post/59f8691b51882534af254317 參考:...
    xingdong閱讀 2,884評(píng)論 0 3
  • 在linux下,使用top,free等命令查看系統(tǒng)或者進(jìn)程的內(nèi)存使用情況時(shí),經(jīng)??吹絙uff/cache meme...
    analanxingde閱讀 758評(píng)論 0 2
  • 原創(chuàng) 2017-6-16 二月 旋轉(zhuǎn)木馬 http://2012.yy987.com/0816/13.wma...
    旋轉(zhuǎn)木馬二月閱讀 519評(píng)論 0 0

友情鏈接更多精彩內(nèi)容