覆蓋 (程式設計)
此條目沒有列出任何參考或來源。 (2012年9月16日) |
在一般的電腦概念中,覆蓋(Overlay)表示將一塊指令或數據替換為另一塊的行為。覆蓋是一種程式設計技術,允許程式在主記憶體空間不足時仍能執行。在嵌入式系統中,由於缺乏虛擬記憶體機制,覆蓋技術也被廣泛應用以克服實體記憶體的限制。
用法
編輯構建一個覆蓋程式需要程式設計師將程式手動分割為獨立的目標碼。覆蓋管理器由作業系統或程式本身提供,用於從外存讀取所需數據並交換到主記憶體中。通常情況下,連結器都會提供對覆蓋的支援。
例子
編輯以下是一個範例,展示了用於使OS/360連結編輯器連結覆蓋程式的控制陳述式。
INCLUDE SYSLIB(MOD1)
INCLUDE SYSLIB(MOD2)
OVERLAY A
INCLUDE SYSLIB(MOD3)
OVERLAY AA
INCLUDE SYSLIB(MOD4)
INCLUDE SYSLIB(MOD5)
OVERLAY AB
INCLUDE SYSLIB(MOD6)
OVERLAY B
INCLUDE SYSLIB(MOD7)
+--------------+ | Root Segment | | MOD1, MOD2 | +--------------+ | +----------+----------+ | | +-------------+ +-------------+ | Overlay A | | Overlay B | | MOD3 | | MOD7 | +-------------+ +-------------+ | +--------+--------+ | | +-------------+ +-------------+ | Overlay AA | | Overlay AB | | MOD4, MOD5 | | MOD6 | +-------------+ +-------------+