Sobreposição (programação de computadores)
Em computação, de forma geral, a sobreposição (do inglês overlay) significa "substituir um bloco de instruções ou dados armazenados com outros".[1] A sobreposição é um método de programação que permite que programas sejam maiores que a memória principal do computador. Um sistema embarcado normalmente usaria a sobreposição devido a limitação da memória física, que é a memória interna para um sistema em chip e a falta das facilidades de memória virtual.
Utilização
editarA construção de um programa de sobreposição envolve dividir manualmente um programa em blocos de código objeto independentes, chamados de overlays, dispostos em uma estrutura de árvore. Segmentos irmãos, aqueles que estão no mesmo nível de profundidade, compartilham a mesma memória, chamada de região de sobreposição ou região de destino. Um gerente de sobreposição, a parte do sistema operacional ou a parte do programa de sobreposição, carrega a sobreposição desejada da memória externa na sua região de destino quando é necessário. Muitas vezes os ligadores fornecem suporte para sobreposições.[2]
Exemplo
editarO exemplo a seguir mostra as instruções de controle que instruem o Editor de Ligação do OS/360 para vincular um programa de sobreposição, destinado a mostrar a estrutura:
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 | +-------------+ +-------------+
Referências
- ↑ «Oxford Dictionaries». 19 de fevereiro de 2007
- ↑ «The GNU Linker documentation: Overlay Description». 3 de junho de 2008