(一)用戶程序的地址空間
內存也稱主存,是指CPU能直接存取指令和數據的存儲器,是現代計算機系統進行操作的中心。
外存也稱輔存,是指一些外部的存儲設備,例如硬盤、軟盤和磁帶等存儲器。用戶的程序和數據,通過I/O系統接口,從外部設備中讀到內存中才能運行。
圖 內存在計算機系統中的地位
典型存儲器層次結構
按照速度、容量和成本劃分,存儲器系統構成一個層次結構,如下圖所示。
圖4-2 典型的存儲器層次結構
請思考:我們平時常用的便攜存儲器,如光盤、U盤、活動硬盤等,它們屬于內存還是外存,存取速度處于哪個層次呢?
用戶程序的地址空間
想一想:用戶源程序進入系統到在機器上運行要經歷如下5個步驟,請為他們排序吧。
A.鏈接B.編譯C.運行D.裝入E.編輯
(二)重定位的概念
在這一部分,我們要進一步學習5個存儲管理中非常重要的概念。
邏輯地址:用戶程序的目標模塊都以0為基地址順序編址的,這種地址稱為邏輯地址,也稱為相對地址。
物理地址:內存中各物理存儲單元的地址是從統一的基地址開始順序編址的,這種地址稱為物理地址,也稱為絕對地址。
邏輯地址空間:由程序中邏輯地址組成的地址范圍叫做邏輯地址空間,或簡稱為地址空間。
物理地址空間:由內存中一系列存儲單元所限定的地址范圍稱作物理地址空間,或簡稱為物理空間,內存空間。
重定位:程序和數據裝入內存時,需對目標程序中的地址進行修改。這種把邏輯地址轉變為內存物理地址的過程稱作重定位。
圖 重定位示意圖
對程序進行重定位的技術按重定位的時機可分為靜態重定位和動態重定位兩種。
(1)靜態重定位
靜態重定位是在目標程序裝入內存時,由裝入程序對目標程序中的指令和數據的地址進行修改,即把程序的邏輯地址都改成實際的內存地址。靜態重定位的時機是在程序裝入時一次完成,在程序運行期間不再進行重定位。
靜態重定位
(2)動態重定位
動態重定位是在程序執行期間,每次訪問內存之前進行重定位。動態重定位靠硬件地址轉換機構實現。
動態重定位
(三)對換技術
對換技術也稱作交換技術,它的實現方式就類似于日常生活中幾個單位租用一個會議廳那樣,甲單位租用時間到了,就退出會議廳,由乙單位使用;乙單位到時后,也退出去,由丙單位使用,等等。如甲單位還需使用,就再租用,由管理者安排占用時間。
在多道程序環境中可以采用對換技術。此時,內存中保留多個進程。當內存空間不足以容納要求進入內存的進程時,系統就把內存中暫時不能運行的進程(包括程序和數據)換出到外存上,騰出內存空間,把具備運行條件的進程從外存換到內存中。在UNIX/Linux系統中對內存的管理就利用了這種多道程序的對換技術,如圖4-6所示。
對換兩個進程
原文標題:存儲管理 -地址空間與重定位
文章出處:【微信公眾號:一口Linux】歡迎添加關注!文章轉載請注明出處。
-
存儲器
+關注
關注
38文章
7484瀏覽量
163767 -
硬盤
+關注
關注
3文章
1308瀏覽量
57283 -
計算機
+關注
關注
19文章
7488瀏覽量
87855 -
存儲管理
+關注
關注
0文章
31瀏覽量
9176
原文標題:存儲管理 -地址空間與重定位
文章出處:【微信號:yikoulinux,微信公眾號:一口Linux】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論