覆蓋 (程式設計)
外觀
此條目沒有列出任何參考或來源。 (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 | +-------------+ +-------------+