操作系統——存儲管理的概念


一、物理地址和邏輯地址

物理地址(絕對地址):指內存單元的地址.主存中一系列存儲物理單元。

物理地址的集合稱為物理地址空間,也叫絕對地址空間或實空間或存儲空間,亦即內存空間。存儲空間中的單元一般都是按字節從0開始連續編址的,如一個256MB的內存,其地址范圍是0 ~ (256M—1)。
 

邏輯地址(相對地址):程序用來訪問信息所用的一系列的地址單元。又稱相對地址或虛地址。

邏輯地址的集合稱為邏輯地址空間,也叫相對地址空間或虛空間或地址空間。
作業運行時不能按其相對地址訪問內存單元,而應按相應的物理地址訪問,需要進行相對地址到物理地址的轉換。

二、重定位

為了使編程更方便,程序員寫程序時應該只需要關注指令、數據的邏輯地址。而邏輯地址到物理地址的轉換(這個過程稱為地址重定位)應該由操作系統負責,這樣就保證了程序員寫程序時不需要關注物理內存的實際情況。

當一個地址裝入與其地址空間不一致的存儲空間中,就得要地址變換。也就是說將虛地址映射為內存地址,把這種作法叫做地址重定位。

地址重定位有三種形式:絕對裝入、靜態重定位、動態重定位

1、絕對裝入

2、靜態重定位

是指在程序運行之前由裝入程序完成的重定位過程。在裝入一個作業時,把作業中的指令地址全部轉換為絕對地址(地址轉換工作是在作業執行前集中一次完成的)在作業執行過程中就無須再進行地址轉換工作。

3、動態重定位

是在程序執行過程中,在CPU訪問內存之前,將要訪問的程序或數據地址轉換成內存地址.
       動態重定位由軟件(操作系統)和硬件(地址轉換機構)相互配合來實現。動態重定位的系統支持“程序浮動”,而靜態重定位則不能。

 

總結

 

三、存儲管理的功能

操作系統的存儲管理主要有以下四個功能:

1、內存的分配與回收

 

2、內存空間的擴展

 

3、地址轉換

 

 

4、內存保護

操作系統需要提供內存保護功能。保證各進程在各自存儲空間內運行,互不干擾。

1、界地址保護

2、基地址、限長保護

 四、內存擴充技術

 

1、覆蓋(Overlay)技術

所謂覆蓋,是指同一主存區可以被不同的程序段重復使用。通常一個作業由若干個功能上相互獨立的程序段組成,作業在一次運行時,也只用到其中的幾段,利用這樣一個事實,我們就可以讓那些不會同時執行的程序段共用同一個主存區。因此,我們把可以相互覆蓋的程序段叫做覆蓋。而把可共享的主存區叫做覆蓋區。

覆蓋技術的主要特點是打破了必須將一個作業的全部信息裝入主存后才能運行的限制。在一定程度上解決了小主存運行大作業的矛盾。
但必須由程序員聲明覆蓋結構,操作系統才能完成自動覆蓋。同時對用戶不透明,增加了用戶編程負擔,覆蓋技術只用於早期的操作系統,現在已經成為歷史。

 2、交換(Swapping)技術

交換技術被廣泛地運用於早期的小型分時系統的存貯管理中。
      所謂交換,就是系統根據需要把主存中暫時不運行的某個(或某些)作業部分或全部移到外存,而把外存中的某個(或某些)作業移到相應的主存區,並使其投入運行。所以,交換技術也叫對換或滾進滾出(roll-in,roll-out)。也有的系統叫掛起調度或中級調度。
      被換出到外存的程序只是臨時被剝奪了對內存的使用權,過一段時間,還必須換入內存運行。因此,交換是一種用時間換空間的技術。

 

 交換的時機通常在以下情況發生:
①作業的進程用完時間片或等待輸入輸出;
②作業要求擴充存貯而得不到滿足時。


同覆蓋技術一樣,交換技術也是利用外存來邏輯地址擴充主存。
它的主要特點是打破了一個程序一旦進入主存便一直運行到結束的限制。

3、虛擬內存(Virtual Memory)技術

虛擬內存技術誕生於1961年。
廣泛使用是從上個世紀70年代初以后,今天幾乎所有的操作系統都采用虛擬內存技術來管理內存。
這是一種利用虛擬存儲器來邏輯擴充物理內存的技術。其基本思想是用軟硬件技術把內存與外存這兩級存儲器當成一級存儲器來用,從而給用戶提供了一個比內存也比任何應用程序大得多的虛擬存儲器,使得用戶編程時再也不用考慮內存大小的限制了,給用戶編程帶來極大的方便。
虛擬內存技術的實現也利用了自動覆蓋和交換技術。  

 

五、存儲管理的分類

按照對內存的划分策略,實用的存儲管理方案有下面幾種。我將在后面幾篇博客中更新說明。

1.分區式存儲管理
2.分頁式存儲管理
3.分段式存儲管理
4.段頁式存儲管理


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM