作業系統記憶體管理

2021-05-28 15:21:24 字數 1387 閱讀 6259

記憶體,毫無疑問是最重要的資源,顯然,作業系統對記憶體的管理我必須清楚。這裡主要介紹了分頁管理和分段管理。

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...

作業系統 記憶體管理

記憶體管理 在單道程式設計系統中,記憶體被分為兩部分 一部分供作業系統使用,一部分供當前正在執行的程式使用。在多道程式設計系統中,必須在記憶體中進一步細分出 使用者部分 以滿足多個程序的要求。細分的任務由作業系統動態完成,這成為記憶體管理。記憶體管理術語 頁框 記憶體中乙個固定長度的塊。頁 乙個固定...