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