4). Responda as questões abaixo:
a). Diferencie Tradutor de Interpretador.
b). Quais as funções do linker?
c). Porque o uso do linker se tornou inviável em sistemas multiprogramáveis? E qual seria a solução adotada para o problema gerado?
d). Diferencie Compilador de Montador.
e). Qual é a função do depurador e cite três recursos que ele oferece ao usuário.
f). Por que a execução de programas interpretados é mais lenta que a de programas compilados?
g). Pesquise como funciona a técnica de pipelining e como ela melhora o desempenho dos sistemas computacionais.
h). Qual a principal função do loader? Diferencie linker de loader.
i). Qual a função da linguagem de controle?
j). Por que o código objeto gerado pelo tradutor ainda não pode ser executado?
Soluções para a tarefa
Resposta:
a) O interpretador gera um código que não é considerado um código objeto e diferentemente do Tradutor, o código é gerado e executado em seguida.
b) Suas funções básicas são resolver todas as referências simbólicas existentes entre os módulos e reservar memória para a execução do programa.
c) A memória é compartilhada entre diversos programas, e é pouco provável que, no momento em que o sistema carrega um programa, sua área de memória prefixada esteja disponível. A solução para este problema é permitir que o programa seja carregado em regiões diferentes toda vez que for trazido para a memória (código relocável).
d) O montador é o utilitário responsável por gerar código de máquina, a partir de um programa escrito em linguagem de montagem. O compilador é o utilitário responsável por gerar código de máquina, a partir de um programa escrito em uma linguagem de alto nível.
e) O depurador é o utilitário que permite ao usuário controlar toda a execução de um programa a fim de detectar erros na sua estrutura. Este utilitário oferece ao usuário recursos como:
• acompanhar a execução de um programa instrução por instrução;
• possibilitar a alteração e visualização do conteúdo de variáveis;
• implementar pontos de parada dentro do programa (breakpoint), de forma que, durante a execução, o programa pare nesses pontos;
f) Porque programas interpretados, tem de ser traduzidos e interpretados, diferentemente dos compilados, que já foram traduzidos anteriormente e bastam ser executados.
g) O termo pipelining designa um método no qual, a cada instante, várias instruções do programa se encontram em estágios diversos de busca ou descodificação. Numa situação ideal, o pipelining acelera o tempo de execução, garantindo que o microprocessador não seja obrigado a esperar pelas instruções. Quando a execução de uma instrução é concluída, a outra já está pronta e à espera.
h) O loader, também chamado carregador, é o utilitário responsável por colocar fisicamente na memória um programa para execução. Diferente do linker, ele não converte o arquivo, o loader simplesmente carrega as instruções na memoria.
i) A linguagem de controle, é a forma mais direta de um usuário se comunicar com o sistema operacional, para que através de comandos simples, o usuário possa ter acesso a rotinas específicas do sistema.
j) Isso ocorre em função de um programa poder chamar sub-rotinas externas, e, neste caso, o tradutor não tem como associar o programa principal às sub-rotinas chamadas.
REFERÊNCIAS:
apconcursos
knoow