記憶體,毫無疑問是最重要的資源,顯然,作業系統對記憶體的管理我必須清楚。這裡主要介紹了分頁管理和分段管理。
1.頁式管理
a.頁式管理的基本思想
打破儲存分配的連續性
將邏輯上連續的使用者程式對映到離散的記憶體塊
使用者程式與記憶體空間被劃分為若干等長的區域——邏輯頁 與 物理頁
使用者程式的劃分由系統自動完成
b.頁式管理下的邏輯位址和實體地址的轉換
使用頁表進行轉換。頁表儲存了邏輯頁號和對應的物理頁號,如下:
邏輯頁號 物理頁號
0 2
1 3
2 1
3 6
若在一分頁儲存管理系 統中,某作業的頁表如下所示。已知頁面大小為1024位元組,試將邏輯位址1011,2148,4000,5012轉 化為相應的實體地址。
頁號 塊號
0 2
1 3
2 1
3 6
頁式儲存管理的位址結構是一維的,即邏輯位址(或實體地址)只用乙個數值即可表示。若給定邏輯位址a, 頁面的大小為l,則頁號p和頁內位址d可 按照下式求得:p=int [a/l] d=a mod l;其中,int是 取整函式(取數值的整數部分),mod是取餘函式(取數值的餘數部分)。
物 理位址=塊的大小(即頁的大小l)′塊號f+ 頁內位址d
設 頁號為p,頁內位移為d,則:
(1)對於邏輯位址1011,p=int(1011/1024)=0,d=1011 mod 1024=1011。查頁表第0頁 在第2塊,所以實體地址為1024′2+1011=3059。
(2)對於邏輯位址2148,p=int(2148/1024)=2,d=2148 mod 1024=100。查頁表第2頁 在第1塊,所以實體地址為1024+100=1124。
(3)對於邏輯位址4000,p=int(4000/1024)=3,d=4000 mod 1024=928。查頁表第3頁 在第6塊,所以實體地址為1024′6+928=7072。
(4)對於邏輯位址5012,p=int(5012/1024)=4,d=5012 mod 1024=916。因頁號超過頁表長度,該邏輯位址非法。
c.硬體支援
系統設定一對暫存器
頁表始址暫存器:用於儲存正在執行程序的頁表的始址
頁表長度暫存器:用於儲存正在執行程序的頁表的長度
2.段式管理
使用者程式劃分
按程式自身的邏輯關係劃分為若干個程式段(segment)
每個程式段都有乙個段名,且有乙個段號段號從0開始,每一段也從0開始編址,段內位址是連續的邏輯位址
作業系統記憶體管理
作業系統記憶體管理 一 程序的虛擬位址空間 每個程序都被賦予自己的虛擬位址空間,對於32位程序來說,這個位址空間為4g,因此程序中的位址可以為0x00000000至0xffffffff之間的任何乙個值。其中4g空間中的低區的2g空間留給程序使用,而高區的2g空間則留給系統使用。在windows200...
作業系統記憶體管理
作業系統記憶體管理一 程序的虛擬位址空間 每個程序都被賦予自己的虛擬位址空間,對於 32位程序來說,這個位址空間為 4g,因此程序中的位址可以為 0x00000000 至0xffffffff 之間的任何乙個值。其中 4g空間中的低區的 2g空間留給程序使用,而高區的 2g空間則留給系統使用。在win...
作業系統 記憶體管理
記憶體管理 在單道程式設計系統中,記憶體被分為兩部分 一部分供作業系統使用,一部分供當前正在執行的程式使用。在多道程式設計系統中,必須在記憶體中進一步細分出 使用者部分 以滿足多個程序的要求。細分的任務由作業系統動態完成,這成為記憶體管理。記憶體管理術語 頁框 記憶體中乙個固定長度的塊。頁 乙個固定...