Exercícios 3 – André Campos Rodovalho – 064896 – SO UFG/EEEC 2008 Excercícios do livro: 1) Na figura 2-2, três processos são mostrados. Na teoria, com três estados será possível seis transações, dois para cada estado. Entretanto apenas quatro transições são mostradas. Há possibilidade de em alguma ou ambas transições faltando ocorrer nestas condições? Num caso especial, supondo que o processo está bloqueado para fazer troca de dados de E/S e esta troca acabe, se a CPU está ociosa, o processo pode passar diretamente de “bloqueado” para “em execução”. Já a passagem de pronto para bloqueado é impossível por que um processo pronto não pode fazer trocas de E/S ou qualquer outra coisa que esteja passível de bloqueá-lo. 3) Em todos os computadores atuais, pelo menos parte do controlador de interrupções é implementado em assembly, porquê? As novas novas linguagens, linguagens, de alto-nível, alto-nível, não não permitem nenhum nenhum o tipo tipo de acesso acesso ncessário ao hardware do processador neste caso. Sendo assim fica impossível implementar controle de interrupções nos dispositivos de E/S ou manipular dados da pilha de processamento. 4) Quando uma interrupção ou uma chamada de sistema transfere o controle para o sistema operacional, geralmente é usada uma pilha de kernel separada da pilha de processos do sistema operacional, porquê? Primeramente não é bom que o sistema operacional entre em pane por conta de programas de usuários mal escritos que causem sobrecarga na pilha. E também se o kernel deixar os dados de sua pilha num espaço comum ao programa de usuário, um usuário malicioso será capaz de captar estes dados para achar informações sobre outros processos no retorno de uma chamada de sistema. Exercícios do moodle: 1) Nomeie 5 principais atividades de um sistema operacional em relação à gerência de processos e descreva brevemente porque são necessárias. (a) Criação Cria pid na tabela de processos, aloca espaço iniciando o PCB, inicializa bloco controle de processo, manipula ponteiro para fila apropriada, cria/amplia estrutura de dados. (b) Troca devido interrupção externa
Coloca processo na fila de prontos, interrupção de memória – escalonador chamado (c) Troca devido interrupção interna Muda processo para estado de saída, reportar erro a usuário, se possível continuar executando... (d) Troca de processo Salva contexto atual, alterar estado no PCB, mover para fila apropriada, selecionar processo pronto, atualizar PCB do processo escolhido. (e) Troca devido chamada de sistema Se necessário troca contexto, bloquear processo chamador, chamar escalonador para trocar os processos. 2) Desenhe(ou descreva) um diagrama de filas semelhante a aquele da transparência 19, considerando o diagrama de estados da transparência 25.
3) Em computadores mais antigos as interrupções causavam a cópia dos registradores para posições fixas de memória, associadas a um dado sinal de interrupção. Explique porque em geral isto é inconveniente. Em geral o processo de guardar e recuperar contexto (exatamente os dados que estavam guardados nos registradores, pilhas, pipe...) no momento em que é gerada a interrupção é caro, e despendioso. Por isso de modo geral tenta-se evitar a interrupção ao processador.
No final de todo o processo, os dados tem que voltar para o processador para que a tarefa que foi interrompida volte a ser executada exatamente como estava sendo feita antes. 4) (Requer pesquisa) O núcleo do Unix é considerado inapropriado para aplicações de tempo real porque um processo executando e modo protegido não pode ser retirado por outro processo. Comente mais sobre este problema*. * Sugestão: ver: Uresh Vahalia, Unix Internals - The New Frontier, Prentice Hall, 1996 Os sistemas UNIX assim como os outros sistemas operacionais têm que salvar seu contexto em uma interrupção de sistema. Os sistemas mais modernos (adaptados) requerem menor tempo para fazer esta tarefa, tornando-os mais adequados para este exercício (ex. Linux RT). Ainda assim para aplicações de alta precisão, por exemplo uma esteira de linha de produção, não há um sistema que se adéqüe em 100% do processo!