在一般電腦概念中,覆蓋(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 | +-------------+ +-------------+