作業系統儲存器管理筆記

shbwf發表於2013-11-28


一作業系統裝入程式到記憶體中幾種方法:
  1:絕對裝入方式(Absolute Loading Mode):
  即程式在編譯時就產生實體地址的目的碼,編譯完成後,不在需要對程式和資料進行修改,程式設計師也可以在程式中賦值實體地址。
  缺點:不靈活,要求程式設計師對記憶體相當熟悉,只適用於單道程式環境。
  2:靜態重定位裝入方式(Relocation Loading Mode):
  即程式在編譯時使用的是邏輯地址,在裝入的時候,臨時將邏輯地址轉換成實體地址。到記憶體中後的地址為實體地址。這種方法叫做靜態重定位裝入。
  缺點:不靈活,當程式有需要動態改變地址時則無法改變。
  3:動態重定位裝入方式(Dynamic Run-time Loading)
  即程式在裝入記憶體之後,在記憶體中仍然使用邏輯地址,只有在取該資料時,才轉換成實體地址。這樣做會影響到程式的執行速度。因此,一般將轉換成實體地址的過程做成硬體來完成轉換,需要新增一個地址轉換暫存器來支援。
  二 程式的連結過程
  1:靜態連結(Static Linking)
  程式在編譯之後形成目標模組,然後將目標模組和庫函式組合成一個模組,不再分開的連結。
  缺點:消耗記憶體的資源很大,往往有的庫函式或模組在程式的執行過程中沒有使用,極大的浪費了記憶體空間。
  2:裝入是動態連結(Load-time Dynamic Linking)
  程式在編譯時形成目標模組程式碼,在需要調入記憶體時,連結成一個模組裝入記憶體。
  缺點:和靜態連結一樣,對記憶體消耗大。
  3:執行時動態連結(Runtime Dynamic Linking)
  程式在編譯時形成目標模組,在調入記憶體時調入需要執行的程式碼模組,當用到某個庫函式或模組式時,由作業系統動態的調入記憶體執行。
  三 記憶體連續分配方式
  1:單一連續記憶體分配
  把記憶體區域中劃分OS分割槽和應用程式區域兩大塊,互不干涉。在應用程式區域的記憶體按照單一的連續分配原則分配給各個程式。
  使用範圍:單使用者,單任務的作業系統中。如CP/M,MS-DOS作業系統。
  2:固定分割槽分配
  a.固定分割槽大小一致分配
  將記憶體劃分為大小一致的多個分割槽,這種分配方式缺乏靈活性,當程式太小造成空間浪費,太大則無法分配空間,導致裝入失敗。
  b.固定分割槽大小不一致分配
  將記憶體劃分為大小不一致的多個分割槽。這樣可根據程式大小適當分配區域。
  分配具體操作:將各個分割槽按照大小排隊,用一張分割槽表儲存,該表中包含分割槽的大小,起始地址,和使用情況
  使用範圍:IBM360的MFT

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/11323760/viewspace-1061530/,如需轉載,請註明出處,否則將追究法律責任。

相關文章