複製鏈接
請複製以下鏈接發送給好友

內存位置

鎖定
存儲空間是指主存中一系列存儲信息的物理單元的集合,這些物理單元的編號稱為物理地址或絕對地址。內存位置是指多道程序中,程序或程序中的變量在內存中的位置,內存位置一般與存儲分配方式有關,因此內存位置有動態變化的,有靜止不變的。
中文名
內存位置
外文名
Memory location
學    科
計算機科學
定    義
程序在內存中的位置
有關術語
存儲分配
領    域
操作系統

內存位置基本介紹

內存位置是指程序裝入內存時的位置,一般與裝入方式有關。裝入方式設計到內存位置的存儲分配方式。在將一個裝入模塊裝入內存時,可以有絕對裝入方式、可重定位裝入方式和動態運行時裝入方式。不同裝入方式決定內存位置是絕對的還是相對的,或者説是靜態的還是動態的。

內存位置裝入方式

絕對裝入方式
絕對裝入方式(Absolute Loading Mode)在編譯時,如果知道程序將駐留在內存的什麼位置,那麼,編譯程序將產生絕對地址的目標代碼。例如,事先已知用户程序(進程)駐留在從 R 處開始的位置,則編譯程序所產生的目標模塊(即裝入模塊)便從 R 處開始向上擴展。 絕對裝入程序按照裝入模塊中的地址, 將程序和數據裝入內存。裝入模塊被裝入內存後,由於程序中的邏輯地址與實際內存地址完全相同,故不須對程序和數據的地址進行修改。
程序中所使用的絕對地址,既可在編譯或彙編時給出,也可由程序員直接賦予。但在由程序員直接給出絕對地址時,不僅要求程序員熟悉內存的使用情況,而且一旦程序或數據被修改後,可能要改變程序中的所有地址。因此,通常是寧可在程序中採用符號地址,然後在編譯或彙編時,再將這些符號地址轉換為絕對地址。 [1] 
可重定位裝入方式
可重定位裝入方式(RelocationLoadingMode),在多道程序中,不可能預知目標模塊放在內存的何處,因此絕對裝入方式只適於單道程序環境。採用可重定位裝入方式可以根據內存當前的情況,將模塊裝入到內存適當的位置。當採用可重定位裝入方式將模塊裝入到內存後,會使裝入內存的所有邏輯地址與裝入內存的物理地址不同。
動態運行時裝入方式
動態運行時裝入方式(DenamleRun-timeLoading),動態運行時的裝入程序,在把裝入模塊裝入內存後,並不立即把裝入模塊中的相對地址轉換為絕對地址,而是把這種地址轉換推遲到程序真正要執行時才進行。因此,裝入內存後的所有地址都仍是相對地址。

內存位置分配方式

存儲分配所要解決的問題是多道程序之間如何共享主存的存儲空間。解決存儲分配問題有三種方式:直接存儲分配方式、靜態存儲分配方式、動態存儲分配方式。
直接存儲分配方式
直接存儲分配方式要求存儲器的可用空間已經確定,且確保各程序所用的地址之間互不重疊。缺點是用户感到不方便,存儲器的利用率也不高。
靜態存儲分配方式
靜態存儲分配方式中。在程序被裝入、連接時,才確定它們在主存中的相應位置(物理地址)。系統必須分配其要求的全部存儲空間.否則不能裝入該用户程序。程序將佔據着分配給它的存儲空間直到程序結束。該存儲空間的位置固定不變,也不能動態地申請存儲空間。這種方式無法實現用户對存儲空間的動態擴展,而且也不能有效地實現存儲器資源的共享。 [2] 
動態存儲分配方式
動態存儲分配方式是不一次性將整個程序裝入到主存中。可根據執行的需要,部分地動態裝入。同時,在裝入主存的程序不執行時,系統可以收回該程序所佔據的主存空間。再者,用户程序裝入主存後的位置,在運行期間可根據系統需要而發生改變。此外,用户程序在運行期間也可動態地申請存儲空間以滿足程序需求。由此可見,動態存儲分配方式在存儲空間的分配和釋放上,表現得十分靈活,現代的操作系統常採用這種存儲方式。
參考資料
  • 1.    湯小丹.計算機操作系統:西安電子科技大學出版社,2010
  • 2.    姚衞新.操作系統實驗教程:清華大學出版社,2010