① 【我的筆記】內存管理(二)分區方法(靜態、動態、夥伴、Slab)
由操作系統或系統管理員預先將內存劃分成若干個分區。在系統運行過程中,分區的邊界不再改變。分配時,找一個空閑且足夠大的分區。如沒有合適的分區:①讓申請者等待。②先換出某分區的內容,再將其分配出去。
為申請者分配指定的分區或任選一個分區。如果沒有空閑分區,可將一個分區的內容換出。可能需要重定位。
會出現內部碎片,無法滿足大內存的需求。
可減少內部碎片。減少對大內存需求的限制。
①固定分配:只分配某種尺寸的特定分區,如分區已被使用,申請者必須等待。
可能出現不公平等待:雖有更大尺寸的空閑分區,卻必須等待。
②最佳適應分配:分配能滿足需要的最小尺寸的空閑分區,只有當所有分區都已用完時,申請者才需要等待。靈活,但可能產生較大的內部碎片。
3、靜態分區:內存利用率低,產生內部碎弊悶亂片;尺寸和分區數量難以確定。
1、不預先確定分區的大小和數量,將分區工作推遲到實際分配內存時進行。 Lazy
初始情況下,把所有的空閑內存看成一個大分區。分配時,按申請的尺寸,找一塊足夠大的空閑內存分區,臨時從中劃出一塊構成新分區。新分區的尺寸與申請的大小相等,不租檔會出現內部碎片。回收時,盡可能與鄰近的空閑分區合並。在內存緊缺時,可將某個選定的分區換出。
2、會產生外部碎片,如下圖(內部碎片是指 eg:要 1M,分了 8M,產生 7M 的碎片):
移動內存中的進程,將碎片集中起來,重新構成大的內存塊。需要運行時的動態重定位,費時。
(1)緊縮方向:向一頭緊縮,向兩頭緊縮。
(2)緊縮時機:①在釋放分區時,如果不能與空閑分區合並,則立刻進行緊縮。
好處是不存在外部碎片,壞處是費時。
②在內存分配時,如果剩餘的空閑空間總量能滿足要求但沒有一個獨立的空閑塊能滿足要求,則進行緊縮。
好處是減少緊縮次數。Lazy。
①最先適應演算法(First fit):從頭開始,在滿足要求的第一個空閑塊中分配。
分區集中在內存的前部,大內存留在後面,便於釋放後的合並。
②最佳適應演算法(Best fit):遍歷空閑塊,在滿足要求的最小空閑塊中分配。
留下的碎片最小,基本無法再用,需要更頻繁地緊縮。
③下一個適應演算法(Next fit):從上次分配的位置開始,在滿足要求的下一個空閑塊中分配。
對內存的使用較平均,不容易留下大的空閑塊。
④最差適應演算法(Worst Fit):遍歷空閑塊,在滿足要求的最大空閑塊中分配。
留下的碎片較大,但不會剩餘大內存。
最先適應演算法較優,最佳適應演算法較差。
夥伴演算法:將動態分區的大小限定為 2^k 位元組,分割方式限定為平分,分區就會變得較為規整,分割與合並會更容易,可以減少一些外部碎片。平分後的兩塊互稱夥伴。
1、
分配時可能要多次平分,釋放時可能要多次合並。舉例:
記錄大小不同的空閑頁:
示意圖:
2、
夥伴演算法是靜態分區和動態罩棚分區法的折中,比靜態分區法靈活,不受分區尺寸及個數的限制;比動態分區法規范,不易出現外部碎片。會產生內部碎片,但比靜態分區的小。
Linux、Windows、Ucore等都採用夥伴演算法管理物理內存。
一般情況下,將最小尺寸定為 2^12 位元組(1頁,4K=4096B),最大尺寸定為1024頁,11個隊列。
Linux、Windows、Ucore 等都將夥伴的最小尺寸限定為1頁。
ucore 用 page,在內存初始化函數 page_init 中為系統中的每個物理頁建立一個 page 結構。
頁塊(pageblock)是一組連續的物理頁。
5、
(1)判斷夥伴關系/尋找夥伴
最後兩行是指,B1和B2隻有第i位相反。
(2)判斷夥伴是否空閑:
ucore 用 free_area[ ]數組定義空閑頁塊隊列。
(3)確定夥伴是否在 order 隊列中:
7、
(1)解決內部碎片過大問題(eg:申請5頁,分配8頁,浪費3頁):
ucore 在前部留下需要的頁數,釋放掉尾部各頁。每次釋放1頁,先劃分成頁塊,再逐個釋放。
(2) 解決切分與合並過於頻繁的問題:
用得較多的是單個頁。位於處理器Cache中頁稱為熱頁(hot page),其餘頁稱為冷頁(cold page)。處理器對熱頁的訪問速度要快於冷頁。
可建一個熱頁隊列(per_cpu_page),暫存剛釋放的單個物理頁,將合並工作向後推遲 Lazy。總是試圖從熱頁隊列中分配單個物理頁。分配與釋放都在熱頁隊列的隊頭進行。
(3)解決內存碎化(有足夠多的空閑頁,但是沒有大頁塊)問題:①將頁塊從一個物理位置移動到另一個物理位置,並保持移動前後邏輯地址不變(拷貝頁塊內容);②邏輯內存管理器。
(4)滿足大內存的需求:
(5)物理內存空間都耗盡的情況:
在任何情況下,都應該預留一部分空閑的物理內存以備急需。定義兩條基準線low和high,當空閑內存量小於low時,應立刻開始回收物理內存,直到空閑內存量大於high。
(6)回收物理內存:
法一:啟動一個守護進程,專門用於回收物理內存。周期性啟動,也可被喚醒。
法二:申請者自己去回收內存。實際是由內存分配程序回收。回收的方法很多,如釋放緩沖區、頁面淘汰等。
1、
夥伴演算法最小分配內存為頁,對於更小的內存的管理 --> Slab 演算法
內和運行過程中經常使用小內存(小於1頁)eg:建立數據結構、緩沖區
內核對小內存的使用極為頻繁、種類繁多、時機和數量難以預估。所以難以預先分配,只能動態地創建和撤銷
2、
Slab 向夥伴演算法申請大頁塊(批發),將其劃分成小對象分配出去(零售);將回收的小對象組合成大頁塊後還給夥伴演算法。
Slab 採用等尺寸靜態分區法,將頁塊預先劃分成一組大小相等的小塊,稱為內存對象。
具有相同屬性的多個Slab構成一個Cache,一個Cache管理一種類型(一類應該是指一個大小)的內存對象。當需要小內存時,從預建的Cache中申請內存對象,用完之後再將其還給Cache。當Cache中缺少對象時,追加新的Slab;當物理內存緊缺時,回收完全空閑的Slab。
Slab 演算法的管理結構:
① Cache 管理結構:管理Slab,包括Slab的創建和銷毀。
② Slab 管理結構:管理內存對象,包括小對象的分配與釋放。
(Cache結構和Slab結構合作,共同實現內存對象的管理)
3、
(1)描述各個內存對象的使用情況
可以用點陣圖標識空閑的內存對象。也可以將一個Slab中的空閑內存對象組織成隊列,並在slab結構中記錄隊列的隊頭。
早期的Linux在每個內存對象的尾部都加入一個指針,用該指針將空閑的內存對象串聯成一個真正的隊列。(對象變長、不規范,空間浪費)
改進:將指針集中在一個數組中,用數組內部的鏈表模擬內存對象隊列。
再改進:將數組中的指針換成對象序號,利用序號將空閑的內存對象串成隊列。序號數組是動態創建的。
序號數組可以位於 Slab 內部,也可以位於 Slab 外部
(2)一個Cache會管理多個Slab,可以將所有Slab放在一個隊列中。
Ucore為每個Cache准備了兩個slab結構隊列:全滿的和不滿的。Linux為每個Cache准備了三個slab結構隊列:部分滿的、完全滿的和完全空閑的。
Linux允許動態創建Cache,Ucore不許。Ucore預定了對象大小,分別是32、64、128、256、512、1K、2K(4K、8K、16K、32K、64K、128K)。為每一種大小的對象預建了Cache。
(3)Slab是動態創建的,當Cache中沒有空閑的內存對象時,即為其創建一個新的Slab。
Slab所需要的內存來自夥伴演算法,大小是 2^page_order 個連續頁。
4、小對象的尺寸
如按處理器一級緩存中緩存行(Cache Line)的大小(16、32位元組)取齊,可使對象的開始位置都位於緩存行的邊界處。
在將頁塊劃分成內存對象的過程中,通常會剩餘一小部分空間,位於所有內存對象之外,稱為外部碎片。
Slab演算法選用碎片最小的實現方案。
5、
(1)對象分配 kmalloc
① 根據size確定一個Cache。
② 如果Cache的slabs_notfull為空,則為其創建一個新的Slab。
③ 選中slabs_notfull中第一個Slab,將隊頭的小對象分配出去,並調整隊列。
④ 對象的開始地址是:objp = slabp->s_mem + slabp->free * cachep->objsize;
(2)對象釋放 kfree
① 算出對象所在的頁號,找到它的 Page 結構。
② 根據 Page 找到所屬的 Cache 和 Slab。
③ 算出對象序號:objnr = (objp - slabp->s_mem) / cachep->objsize;
④將序號插入Slab的free隊列。
⑤整Slab所屬隊列。
② 電腦內存要怎麼分配
內存的大小是無法手動分配的,你所說的內存應該是在硬碟上劃出的虛擬緩存。虛擬緩存的大小是可以手動劃分的,每個分區的上限一般是4095K(如果你的硬碟剩餘空間足夠的話)。虛擬緩存並不是越大越好,搜嫌埋是根據你的物理內存的大小來決定的。正常情況(內存小於256M)下是物理者首內存的1.5倍,當你的內存超過256M後,應當適當減少虛擬緩存的大小。應為內存的讀寫速度要遠遠超過硬碟的讀寫速度,當內存足世螞夠大的時候,減小虛擬緩存是有益於提高系統運行速度的。當然,如上所說,都是針對普通用戶的,當你經常從事圖像處理,影音編輯和運行大型游戲時,往往再大的物理內存都顯得力不從心,這時就需要分配大一些的虛擬緩存,最好不要分配在C:盤上。
虛擬緩存的分配方法如下:滑鼠右鍵點擊我的電腦,選<屬性>→<高級>,點擊<性能>里的<設置>→<高級>,點擊<虛擬內存>里的<更改>,這時 你就可以更改你的虛擬緩存了。建議將虛擬緩存設置在你不經常使用的分區上。
③ 電腦硬碟內存如何重新分配
1、右擊【我的電腦】,選擇【管理】命令,打開「計算機管理」。
2、打開的「計算機管理」窗口中,依次展開【存儲】【磁碟管理】項。在右側窗格中即可看到當前硬碟的分區情況。
3、這時我們就可以自由分配空間了!以分配G盤為例:右鍵【G盤】-【壓縮卷】在彈出的框里輸入要分配空間的大小。然後點擊【壓縮】。
4、然後右擊剛分配出來的可用空間,選擇【新建簡單卷】。
5、好了,分配就完成了。
④ CPU集成顯卡如何分配內存
1、首先登錄系統後,從程序內打開「vmware worksation」虛擬機程序。
⑤ 電腦虛擬內存的當前已分配怎麼設置
一、分配方法
將升坦正初信正始大小和最大值同時設置為電腦物理內存的1-2倍,比如1G設置為2048MB(1G內存是2倍),2G設置為3072-4096MB(2G內存是1.5-2倍),3G設置為3072-4608MB(3G內存是1-1.5倍),4G內存先設置為吵悔4096MB(4G的1倍不夠在加),如果用戶的物理內存小於2G或是2G,可以升級一下電腦 的物理內存(初始大小和最大值設置要一致)。
二、設置虛擬內存方法
右擊我的電腦/屬性/高級/性能中的設置/高級/虛擬內存中的更改/選自定義大小,在初始大小和最大值,同時設為用戶的物理內存的1-2倍。如果你的內存是1G,就將初始大小和最大值同時設置為2048MB。設置後需按「設置」按鈕,然後再按確定和應用,重新啟動電腦設置生效。
⑥ 如何設置電腦內存大小
問題一:電腦內存怎麼調小 一般只能設置設置虛擬內存的大小。
步驟如下:
1、在桌面上右鍵「我的電腦」--選擇「屬性」。
2、在跳出的「系統屬性」窗口上選擇「高級」。
3、在性能框中選點擊「設置」。
4、在跳出的「性能選項」窗口上選擇「高級」。
5、在虛擬內存框中點擊「更改」。
6、接下來就可以自己調整虛擬內存大小了。
問題二:怎麼查看自己電腦的內存大小? 1、你買的電腦實際內存都有數值的,一般是256M或512M,右鍵我的電腦――屬性――就可看到。這個就叫物理內存。物理內存大小直接決定你電腦的運轉速度,越大約好。與它相對的是虛擬內存,那是當物理內存不夠時,暫時以硬碟作內存用,速度遠不及物理內存(所以有時運行多了程序速度就慢了)。虛擬內存系統設有默認值,也可以自定義虛擬內存――當系統提示虛擬內存太小(程序佔用內存太多)時。
2、右鍵「我的電腦」――屬性――高級」――點「性能」下面的「設置」――點「高級」――點「虛擬內存」下方的「更改」――點「自定義大小」――根據你的實際情況設置最大值和最小值(我內存256,設的最小值512M,最大值1024M),也可以把它們都設成實際內存的2――3倍(假使實際內存=或小於256M)――3次確定――重啟。
問題三:怎麼調電腦的內存上限? 因為你的電腦太老,但是你又沒說清楚到底是什麼主板,所以不好說,不過任何主板都有最大支持內存的限制,比如現在一般主板最大支持內存是16G,那它最大就能用16G的內存(其中可以包跨物理內存和虛擬內存),我想你的主板可能最大就支持512M的內存,所以建議你把128的內存取下,就用512內存就好了,你這么老電腦也玩不了太大型的耿戲什麼的,有512內存也將就夠用.如果內存不夠用,系統會自動擴張虛擬內存,就怕你的主板最大支持512M內存,那就沒辦法,想要更大隻好換主板,不過你那麼老的電腦沒什麼價值再換主板了,將就用吧,實在不能用了只好更新換代了.........
問題四:怎麼設置電腦里各個盤的存儲大小? 要重新分區,網上查一下吧。。。。如果你不會的話,建議你找專業士幫一下,因為有重做系統的可能,也在數據丟失的風險!慎重!專業人士的話很容易就給你弄好了,或者自己弄之前做好重要數據的備份,記得備份到外置的磁碟,不要備份到自己的電腦上!
問題五:電腦內存怎麼調大點? 是不是把內存和硬碟搞混了~~~
問題六:怎麼把電腦的硬碟容量設置成運行內存 右擊我的電腦(或計算機),選擇屬性。
選擇高級系統設置。
選擇高級,看到虛擬內存的選項選擇更改,選擇自定義大小。
問題七:怎麼修改電腦虛擬內存大小,多少合適 修改電腦虛擬內存方法
1、右擊「計算機」,選擇「屬性」。
2、在打開的「系統」界面中,單擊左側的「高級系統設置」。
3、在打開的「系統屬性」界面中,切換到「高級」標簽,單擊性能選項框裡面的「設置」按鈕。
4、在打開的「性能選項」的窗口中,選擇「高級」標簽,然後選擇「更改」。
5、去掉「自動管理所有驅動器的分頁文件大小」的「√」,選擇一個盤符,不建議放到系統盤,可以找一個空間比較大的盤符,自定義大小即可,如果不知道設置為多少,可以設置成
6、設置完成以後,重啟計算機即可。
虛擬內存通常設置為物理內存的1.5倍或2倍,推薦固定大小。過大的頁面文件不僅佔用磁碟空間,而且對性能沒有什麼幫助,因為硬碟的讀寫速度十分有限。物理內存3GB,虛擬內存設置為1G就可以罰,日常的應用佔用內存不會超過3GB,設置太大沒有什麼意義
問題八:怎麼在BIOS里設置內存大小? 不能設置的,內存只是做為緩存,越大電腦運行速度也就快。也影響點網速,藍屏你就拿下來兩個內存,用橡皮擦擦他們的金手指,再裝上去,如果還是不行 就不是兼容,只能拿下一個來了。
問題九:電腦內存要怎麼分配 內存的大小是無法手動分配的,你所說的內存應該是在硬碟上劃出的虛擬緩存。虛擬緩存的大小是可以手動劃分的,每個分區的上限一般是4095K(如果你的硬碟剩餘空間足夠的話)。虛擬緩存並不是越大越好,是根據你的物理內存的大小來決定的。正常情況(內存小於256M)下是物理內存的1.5倍,當你的內存超過256M後,應當適當減少虛擬緩存的大小。應為內存的讀寫速度要遠遠超過硬碟的讀寫速度,當內存足夠大的時候,減小虛擬緩存是有益於提高系統運行速度的。當然,如上所說,都是針對普通用戶的,當你經常從事圖像處理,影音編輯和運行大型游戲時,往往再大的物理內存都顯得力不從心,這時就需要分配大一些的虛擬緩存,最好不要分配在C:盤上。
虛擬緩存的分配方法如下:滑鼠右鍵點擊我的電腦,選→,點擊里的→,點擊里的,這時 你就可以更改你的虛擬緩存了。建議將虛擬緩存設置在你不經常使用的分區上。
問題十:電腦怎麼優化內存 你好
以下膽本人整理的電腦優化、電腦加速的方法,請參考。
1 定期的,對電腦內的灰塵進行清理,關機後打開機箱,用吹風機,冷風吹!!
2 平時要常用 360 衛士 、金山衛士等工具清理系統垃圾和上網產生的臨時文件(ie 緩存),查殺惡意軟體。
3 電腦配置差,盡量把虛擬內存設置大點,(xp)右擊我的電腦 屬性 高級 性能…… 那裡 設置 高級 更改
在自定義那裡 設置為 2000 - 4000
(win7) 計算機-屬性-高級系統設置-性能設置-「高級」選項卡-虛擬內存-更改-選擇要設置的驅動器c盤,選擇系統管理大小或者根據需要選擇自定義大小-設置-確定。
4 殺毒軟體裝種占資源小的,如 nod32,或只裝一個輔助殺毒軟體。
5 盡量設置ip 為靜態ip ,可以減少電腦開機啟動時間和進入桌面後的反映時間。
6 電腦桌面不要放太多文件和圖標,會使電腦反應變慢的,軟體盡量不要安裝在c盤。
7 關閉一些啟動程序。開始-運行-輸入msconfig―確定-在「系統配置實用程序」窗口中點選「啟動」-啟動 ,除輸入法(Ctfmon)、殺毒軟體外,一般的程序都可以關掉。也可以用360等軟體,智能優化開機加速。
8 建議只裝一個主殺毒軟體,裝多個會占電腦資源,會使電腦更慢。
9 定期的對整理磁碟碎片進行整理,打開我的電腦 要整理磁碟碎片的驅動器―屬性―工具--選擇整理的磁碟打開「磁碟碎片整理程序」窗口―分析―碎片整理―系統即開始整理。
10 安裝個優化大師或超級兔子等 電腦優化軟體,優化下,電腦也會快很多!!
11 現在的系統,占內存也比較大,有必要的話,加多條內存,也會快很多。
12 電腦硬碟用久了,也會使電腦變慢,重新分區安裝可以修復邏輯壞,電腦也會快點,硬碟物理讀寫速度慢,也只能是換個好點的!!!
希望能幫到你!!!!
不明白hi我!!!!
⑦ 電腦內存怎麼分區
使用電腦自帶的「磁碟管理」工具進行分區即可,具體操作步驟如下:
1、右擊電腦上的「計算機」,點擊「管理」;
⑧ 內存為程序分配空間的四種分配方式
存儲器是個寶貴但卻有限的資源。一流的操作系統,需要能夠有效地管理及利用存儲器。
內存為程序分配空間有四種分配方式:
1、連續分配方式
2、基本分頁存儲管理方式
3、基本分段存儲管理方式
4、段頁式存儲管理方式
首先講連續分配方式。 連續分配方式 出現的時間比較早,曾廣泛應用於20世紀60~70年代的OS中,但是它至今仍然在內存管理方式中佔有一席之地,原因在於它 實現起來比較方便,所需的硬體支持最少 。連續分配方式又可細分為四種: 單一連續分配、固定分區分配、動態分區分配和動態重定位分區分配 。
其中固定分區的分配方式,因為分區固定,所以缺乏靈活性,即 當程序太小時,會造成內存空間的浪費( 內部碎片 ) ; 程序太大時,一個分區又不足以容納,致使程序無法運行( 外部碎片 ) 。但盡管如此,當一台計算機去控制多個相同對象的時候,由於這些對象內存大小相同,所以完全可以採用這種內存管理方式,而且是最高效的。這里我們可以看出存儲器管理機制的多面性:沒有那種存儲器管理機制是完全沒有用的,在適合的場合下,一種被認為最不合理的分配方案卻可能稱為最高效的分配方案。 一切都要從實際問題出發,進行設計。
為了解決固定分區分配方式的缺乏靈活性,出現了 動態分配方式 。動態分配方式採用一些 尋表(Eg: 空閑鏈表 ) 的方式,查找能符合程序需要的空閑內存分區。但代價是增加了系統運行的開銷,而且內存空閑表本身是一個文件,必然會佔用一部分寶貴的內存資源,而且有些演算法還會增加內存碎片。
可重定位分區分配通過對程序實現成定位,從而可以將內存塊進行搬移,將小塊拼成大塊,將小空閑「緊湊」成大空閑,騰出較大的內存以容納新的程序進程。
連續分配方式 會形成許多「碎片」,雖然可以通過「緊湊」方式將許多碎片拼接成可用的大塊空間,但須為之付出很大開銷。所以提出了「 離散分配方式 」的想法。如果 離散分配的基本單位是頁 ,則稱為 分頁管理方式 ;如果離散分配的基本單位是段,則稱為 分段管理方式 。
分頁存儲管理是將一個進程的邏輯地址空間分成若干個大小相等的片,稱為頁面或頁,並為各頁加以編號,從0開始,如第0頁、第1頁等。相應地,也把內存空間分成與頁面相同大小的若干個存儲塊,稱為(物理)塊或頁框(frame),也同樣為它們加以編號,如0#塊、1#塊等等。在為進程分配內存時,以塊為單位將進程中的若干個頁分別裝入到多個可以不相鄰接的物理塊中。由於進程的最後一頁經常裝不滿一塊而形成了不可利用的碎片,稱之為「 頁內碎片 」。
在分頁系統中,允許將進程的各個頁離散地存儲在內存不同的物理塊中(所以能實現離散分配方式) ,但系統應能保證進程的正確運行,即能在內蠢好拆存中找到每個頁面所對應的物理塊。為此,系統又為每個進程建立了一張頁面映像表,簡稱 頁表 。在進程地址空間內的所有頁,依次在頁表中有一頁表項,其中記錄了相應頁在內存中對應的物理塊號。在配置了頁表後,進程執行時,通過查找該表,即可找到每頁在內存中的物理塊號。可見, 頁表的作用是實現從頁號到物理塊號的地址映射 。
為了能夠將用戶地址空襪喊間中的 邏輯地址,變換為內存空間中的物理地址 ,在系統中必須設置 地址變換機構 。地址變換任務是借帶棗助於頁表來完成的。
頁表 的功能可由一組專門的寄存器來實現。由於寄存器成本較高,且大多數現代計算機的頁表又很大,使頁表項總數可達幾千甚至幾十萬個,顯然這些頁表項不可能都用寄存器來實現,因此,頁表大多駐留在內存中。因為一個進程可以通過它的PCB來時時保存自己的狀態,等到CPU要處理它的時候才將PCB交給寄存器,所以,系統中雖然可以運行多個進程,但也只需要一個頁表寄存器就可以了。
由於 頁表是存放在內存中 的,這使得 CPU在每存取一個數據時,都要兩次訪問內存 。為了提高地址變換速度,在地址變化機構中增設了一個 具有並行查詢能力的高速緩沖寄存器 ,又稱為「聯想寄存器」(Associative Lookaside Buffer)。
在單級頁表的基礎上,為了適應非常大的邏輯空間,出現了兩級和多級頁表,但是,他們的原理和單級頁表是一樣的,只不過為了適應地址變換層次的增加,需要在地址變換機構中增設外層的頁表寄存器。
分段存儲管理方式 的目的,主要是為了滿足用戶(程序員)在編程和使用上多方面的要求,其中有些要求是其他幾種存儲管理方式所難以滿足的。因此,這種存儲管理方式已成為當今所有存儲管理方式的基礎。
分段管理方式和分頁管理方式在實現思路上是很相似的,只不過他們的基本單位不同。分段有 段表 ,也有 地址變換機構 ,為了提高檢索速度,同樣增設 聯想寄存器(具有並行查詢能力的高速緩沖寄存器) 。所以有些具體細節在這個不再贅述。
分頁和分段的主要區別:
1、兩者相似之處:兩者 都採用離散分配方式,且都要通過地址映射機構來實現地址變換 。
2、兩者的不同之處:
(1)頁是信息的 物理單位 ,分頁是為實現離散分配方式,以消減內存的外零頭,提高內存的利用率。或者說,分頁僅僅是由於 系統管理的需要 而不是用戶的需要。段則是信息的 邏輯單位 ,它含有一組其意義相對完整的信息。 分段的目的是為了能更好地滿足用戶的需要 。
(2) 頁的大小固定 且由系統決定,而 段的長度卻不固定 。
(3)分頁的作業地址空間是 一維 的,即單一的線性地址空間;而分段的作業地址空間則是 二維 的。
前面所介紹的分頁和分段存儲管理方式都各有優缺點。 分頁系統能有效地 提高內存利用率 ,而分段系統則能很好地 滿足用戶需求 。 我們希望能夠把兩者的優點結合,於是出現了段頁式存儲管理方式。
段頁式系統的基本原理,是分段和分頁原理的結合,即 先將用戶程序分成若干個段,再把每個段分成若干個頁 ,並為每一個段賦予一個段名。在段頁式系統中,地址結構由段號、段內頁號和頁內地址三部分組成。
和前兩種存儲管理方式相同,段頁式存儲管理方式同樣需要增設聯想寄存器。
離散分配方式 基於將一個進程直接分散地分配到許多不相鄰的分區中的思想,分為分頁式存儲管理,分段式存儲管理和段頁式存儲管理. 分頁式存儲管理旨在提高內存利用率,滿足系統管理的需要,分段式存儲管理則旨在滿足用戶(程序員)的需要,在實現共享和保護方面優於分頁式存儲管理,而段頁式存儲管理則是將兩者結合起來,取長補短,即具有分段系統便於實現,可共享,易於保護,可動態鏈接等優點,又能像分頁系統那樣很好的解決外部碎片的問題,以及為各個分段可離散分配內存等問題,顯然是一種比較有效的存儲管理方式。
更多Linux內核視頻教程文檔資料免費領取【 內核 】自行獲取。
內核學習網站:
Linux內核源碼/內存調優/文件系統/進程管理/設備驅動/網路協議棧-學習視頻教程-騰訊課堂
⑨ 電腦內存怎麼分盤
1、點擊我的電腦,點擊滑鼠右鍵,選擇管理項。 2、打開後選擇磁碟管理項。 3、接下來,選擇你需要分割的盤。點擊滑鼠右鍵,選擇壓縮卷。(這一步是為了騰出可分割空間用的) 4、輸入需要騰出的空間大小,可進行換算。(1G=1024M)例:如果你要增添一個10G的盤,在壓縮這一步輸入10240即可。點擊壓縮。 5、壓縮完畢後,你會發現多了一塊綠盤,這一部分空間就是新盤區域了。右擊新建簡單卷。 6、按照向導程序,一步步安裝。選擇大小、硬碟名稱、確認是否格式化。 7、操作好後,你會發現已經增添了新盤。 電腦分離出新磁碟內存空間的方法 1、首先在如下如中我們可以看到我電腦中是擁有6個磁碟空間的,它們分別是C盤D盤E盤F盤H盤I盤,當然了,這里我是自己新分離出來的H盤和I盤,我是如何來進行分離的呢,下面為大家詳細的說一下步驟 2、首先,在」我的電腦「上右擊,選擇「管理「,打開 3、彈出如下的一個應用窗體,在這個窗體中選擇磁碟管理,點擊 4、打開之後,是如下圖的一個窗體,我們可以清楚的看到,我們的磁碟管理 5、隨後選擇一個你想要分離的磁碟,這里我選擇的'是D盤,然後右擊選擇壓縮卷 6、彈出如下的界面,就表示操作正確,在這里我們可以看到你想要壓縮的空間大小以及你需要壓縮的大小 這里我給它分配一個10000,隨後點擊下一步、然後我們可以看到一個顏色和其它磁碟不同的磁碟空間,但是上面卻沒有出現,不要著急,我們還沒有弄完呢! 在這個綠色的磁碟上,右擊一下,選擇新建壓縮卷,然後點擊下一步,離成功不遠了,仍舊是下一步,我們可以給我們的新磁碟,取一個名字,這里我選擇了O,然後下一步,仍舊是我們的下一步,到了這一步你就可以點擊完成了。 隨後我們的磁碟分配就完成了,關閉之後,打開我的電腦,可以看到我們新分離出來的磁碟O哦!⑩ 如何分配內存到顯存
一般情況下進入BIOS後「Advanced chipset setup」-「ONBOARD VGA SHARE MERNORY」應該就是調整顯存
但是各個主板情況是不同的
一、優化BIOS設置提高顯示性能
顯示性能是洞賣集成主板發揮性能最主要的瓶徑,尤其是在運行3D游戲等考驗顯卡性能的程序時,集成顯卡就會暴露出自己的缺點。而BIOS的設置與集成顯卡的性能關系密切,留意並調校好以下幾個BlOS選項就能為集成顯卡帶來更高的性能和穩定性。
1、AGP Date Rote
對於一般的主板,其顯卡的AGP速率越高越好,但對集成顯卡卻未必是這樣,因為目前的集成顯卡只會用AGP通道傳送少量指令數據,真正吃帶寬的圖形數據早已走「顯示核心一內存」專用通道.所以AGP速率的高低不會成為集成顯卡的性能瓶頸,但過高的AGP速率卻會給系統帶來不穩定的因素.所以建議還是保持默認值為納帆逗好。
2、AGP Fast Write
Fast Wrtte是快速寫入的意思,這個選項能提高集成顯卡的性能.但它也可能有負作用,對系統的穩定性有一定影響。根據使用經驗,目前很多的集成顯卡都能正常使用Fast Write選項。
3、Grapphic Window WR Combine
這個選項在基於SiS晶元組的集成主板比較多見,它可以起到優化圖形系統的讀\寫性能,對集成顯卡的性能有一定的提升,因此建議大家開啟此選項。
4、Video BIOS Cacheble
它的作用是決定是否將VGA BIOS和RAM緩沖指至內存的某個地址段,雖然開啟後能提高一些集成顯卡的性能,可一旦有程序向該地址段寫入數據,電腦就會出現死機現象。所以建議關閉該選項.因為Video BIOS Cachable給集成顯卡性能的提高很有限.但卻給電腦帶來了不穩定的隱患。
5、AGP Aperture Size
AGP Aperture Size選項的含義是AGP有效空間的大小,即劃拔內存為顯存的大小。顯存容量如何分配一直是集成主板使用者左右為難的問題,顯存容量劃大了,內存容量就會減少,影響整體性能,顯存容量劃小了,對顯卡的性能又有影響。應根據自己機器的內存容量來確定,通過實際使用,AGP Aperture Size 選項在64MB顯存和128MB顯存下,一般的應用性能差別並不明顯。實際上,64MB的顯存即可滿足多數新型集成顯卡的需求,而類似sis630這類幾年前的集成顯卡僅需16MB的顯存。
Intel晶元組集成顯卡有自己的一套顯存分配法。早期Intel的整合顯卡無須人工調整顯存容量,而是自動分配,後來Intel又為Intel Extreme Graphics及其後續產品加入了「分級顯存」功能,所謂分級顯存就是「額定內存+動態顯存」。額定內存規定了顯存的最小分配值,當最小分配值不夠用時,就會向操作系統請求更多的內存劃為顯存(動態顯存)。所以,如果你不怎麼玩大型游戲的話,那麼盡可以將額定顯存設置得小一些(如1MB),這既能滿足游戲的需求,又能節省不少的內存。反之,最好將「額定顯存」設為8MB以上,這雖會浪費一些內存.但卻能獲得更好的游戲兼容性。
另外,顯存劃拔的大小與內存大小密切相關(Intel 81X等集成主板除外),如果你的內存為 256MB,建轎肢議設置顯存容量為64MB以內,如果你的內存為 128MB以,建議設置顯存容量為32MB以內。