Bibliotecas compartilhadas e memória compartilhada
Este tópico fornece informações sobre as instalações do sistema operacional fornecidas para compartilhamento de bibliotecas e alocação de memória.
O sistema operacional fornece instalações para a criação e utilização de bibliotecas compartilhadas dinamicamente ligadas. A ligação dinâmica permite que símbolos externos referenciados no código do usuário e definidos em uma biblioteca compartilhada sejam resolvidos pelo carregador em tempo de execução.
O código da biblioteca compartilhada não está presente na imagem executável em disco. O código compartilhado é carregado na memória uma vez no segmento de bibliotecas compartilhadas e compartilhado por todos os processos que o referencia. As vantagens das bibliotecas compartilhadas são:
- Menos espaço em disco é usado porque o código da biblioteca compartilhada não está incluído nos programas executáveis.
- Menos memória é usada porque o código da biblioteca compartilhada só é carregado uma vez.
- O tempo de carregamento pode ser reduzido porque o código da biblioteca compartilhada já pode estar na memória.
- O desempenho pode ser melhorado porque menos falhas de página serão geradas quando o código da biblioteca compartilhada já estiver na memória. No entanto, há um custo de desempenho em chamadas para rotinas de bibliotecas compartilhadas de uma a oito instruções.
Os símbolos definidos no código da biblioteca compartilhada que devem ser disponibilizados para referenciar módulos devem ser explicitamente exportados usando um arquivo de exportação, a menos que as opções -bexpall sejam usadas. A primeira linha do arquivo contém, opcionalmente, o nome do caminho da biblioteca compartilhada. As linhas subsequentes contêm os símbolos a serem exportados.