Prévia do material em texto
Sistemas Operacionais Tópico 02 Aula 02 – Principais utilitários dos sistemas operacionais Como podemos avaliar o desempenho de processadores? Diversas variáveis devem ser consideradas como Intervalo de tempo entre os pulsos de um sinal de Clock; A frequência do clock é o inverso do ciclo de clock; Ciclo de clock indica o número de pulsos elétricos; Desempenho de um processador pode ser avaliado: Comparação dos tempos que processadores distintos; Este tempo denominado UCP; Analisado entre o tempo que uma instrução é executada e o tempo de espera em operações de E/S; Antes de começar... Existem softwares que executam serviços complementares do sistema operacional estes são denominados utilitários Os softwares desenvolvidos pelos usuários são denominados aplicações Os softwares representam as diversas tarefas e aplicações que torna o trabalho dos usuários mais simples Softwares Nos primeiros sistemas operacionais os programas eram desenvolvidos em linguagem de máquina e carregados diretamente na memória principal; Tradutor Depois das primeiras linguagens como o Assembly e as linguagens de alto nível a preocupação do programador diminuiu Tradutor Normalmente esses programas não ficam prontos diretamente para serem executados pelo processador e para isso precisa de uma etapa de conversão denominada Tradutor O módulo gerado pelo tradutor é denominado módulo objeto, existem dois tipos Montador é o utilitário responsável por traduzir um programa fonte em linguagem de montagem em programa-objeto Tradutor Compilador é o utilitário responsável por gerar um programa escrito em uma linguagem de alto nível como Pascal, Fortran, COBOL ou C em um programa de linguagem de máquina não executável. Tradutor Interpretador Um tipo de tradutor que não gera módulo-objeto Um interpretador é escrito em linguagem de alto nível. Os programas desse tipo traduz a instruções e as executa imediatamente. Normalmente depende de um outro programa para execução das instruções Exemplos: Javascript, HTML, Perl entre outros Utilitário responsável por gerar a partir de um ou mais módulos objetos, um único programa executável Principais funções são as referências simbólicas entre os módulos e reservar memória As bibliotecas são arquivos que contém vários módulos-objeto Outra função do linker é a realocação, que determina a região da memória no qual o programa será carregado para execução Em sistemas multi-programáveis essa tarefa é de difícil implementação que pode permitir que o programa seja carregado em locais diferentes da memória Linker Loader São utilitários responsáveis pela carga na memória principal um programa para ser executado O Loader pode ser classificado como sendo do tipo: Absoluto - Loader necessita conhecer o endereço da memória inicial e o tamanho do módulo Realocável - Pode ser carregado em qualquer posição de memória, o Loader e realocação no momento do carregamento Depurador O desenvolvimento de programas está sujeito a erros de lógica; A depuração é um dos estágios de desenvolvimento O depurador (debugger) é utilitário que permite ao usuário acompanhar toda a execução de um programa a fim de detectar erros. Algumas funções do debugger: Acompanhar a execução de um programa instrução por instrução Possibilita a alteração e a visualização do conteúdo das variáveis Implementar pontos de parada