linux中cpu給出虛擬位址轉換到實體地址的過程以及訪存次數
快表存在時邏輯位址到實體地址的轉換過程
1. 在cpu給出有效位址後,由位址變換機構自動地將頁號p送入高速緩衝暫存器(也會使用到段號),並將此頁號與快取記憶體中的所有頁號進行比較,若其中有與此相匹配的的頁號,便表示所要訪問的頁表項在快表中;
2. 直接從快表中讀出該頁所對應的物理塊號,並送到實體地址暫存器中。如果在快表中未找到對應的頁表項,則還需在訪問記憶體中的頁表,找到後,把從頁表項中讀出的物理塊號送位址暫存器;
3. 將此頁表項存入快表的乙個暫存器單元中,重新修改快表。但如果聯想暫存器已滿,則作業系統必須找到乙個老的且被認為不在需要的頁表項換出;
具體的流程如下圖:
段頁式管理的優缺點
優點:1. 因為以頁為單位分配記憶體,所以無緊湊問題也無外部碎片
2. 便於處理變化的資料結構,段可以動態增長
3. 便於共享,只需要將程式的段表相應表項指向該共享段在記憶體中的頁表起始位址即可;
4. 因具有段的特點,所以便於提供動態鏈結,也便於控制訪問訪問
缺點:1. 需要更複雜的硬體支援
2. 增加了系統開銷和軟體程式設計的複雜度
3. 空間浪費比單純的分頁管理多,因為各段分配的最後以頁很有可能部分空間被浪費;另外段表和頁表所佔的空間都比單純分頁和分段儲存管理多
對於段頁式記憶體管理的理解
所以段頁式記憶體管理每讀取一資料,要訪問三次記憶體。第一次是由段表暫存器得到段表始址後訪問段表,由此取出對應段的頁表在記憶體中的位址 第二次是訪問頁表得到所需訪問的實體地址 第三次才能訪問真正需要訪問的物理單元。附 mmu是一種硬體電路,它包含兩個部件,乙個是分段部件,乙個是分頁部件,通過分段機制 ...
基本分段和段頁式記憶體管理
分段儲存管理方式的引入是為了滿足使用者的要求。方便程式設計 通常乙個作業是由多個程式段和資料段組成的,一般情況下,使用者希望按邏輯關係對作業分段,並能根據名字來訪問程式段和資料段。資訊共享 資訊保護 動態增長 實際應用中,某些段 資料段 會不斷增長,前面的儲存管理方法均難以實現。為什麼分段中整個作業...
linux 程序記憶體管理 資料段
所有程序 執行的程式 都必須占用一定數量的記憶體,它或是用來存放從磁碟載入的程式 或是存放取自使用者輸入的資料等等。對任何乙個普通程序來講,它都會涉及到5種不同的資料段。段 這個區域儲存著被裝入執行的二進位制機器 處理器會到這個區域取指並執行。段需要防止在執行時被非法修改,所以只准許讀取操作,而不允...