next up previous contents
Next: Estruturas de dados adicionais Up: Carregadores e ligadores Previous: Carregamento absoluto   Sumário


Relocação e Ligação

Os esquemas de montagem e carregamento absolutos, por sua simplicidade, não apresentam a flexibilidade necessária ao uso em sistemas operacionais modernos. Uma forte limitação está no fato de que o programador deve ter acesso direto a posições de memória, especificando exatamente em que região da memória o programa e seus dados serão carregados através da pseudo-instrução ORG.

Em sistemas operacionais modernos, tal limitação inviabiliza o uso daqueles esquemas. A memória é um recurso controlado pelo sistema, sendo que o programador não deve estar amarrado a conhecer posições da memória física para que o seu programa funcione corretamente. Por outro lado, desenvolver um programa completamente independente de sua localização é uma atividade complexa, embora possível. A solução é deixar que o software de sistema resolva problemas relacionados com posicionamento do código através da relocação.

Outro recurso que também requer a colaboração do montador e do carregador para seu funcionamento é a combinação, ou ligação, de módulos interdependentes mas montados independentemente. Neste caso, deve ser possível a partir de um módulo fazer uma referência a um símbolo definido em outro módulo. No esquema de montador absoluto apresentado, tal situação geraria uma condição de erro pelo símbolo não estar definido, ou seja, não ter um endereço associado. Qualquer referência a símbolos externos deveria ser resolvida manualmente pelo programador. Com esquema de montagem e carregamento ajustáveis, o montador recebe a informação de que um símbolo está definido em outro módulo ou de que um símbolo estará sendo referenciado por outro módulo. Esta informação é registrada junto ao módulo objeto para uso pelo carregador, que realiza a resolução destes símbolos entre os módulos envolvidos.



Subsections
next up previous contents
Next: Estruturas de dados adicionais Up: Carregadores e ligadores Previous: Carregamento absoluto   Sumário
Ivan L. M. Ricarte 2003-02-14