Proteções (de hardware) necessárias ao Sistema Operacional Operating System Concepts 1.23 Silberschatz, Galvin and Gagne ©2005 Proteção de Hardware Modo Dual de operação (usuário/supervisor) Proteção de I/O Proteção de memória Proteção de CPU Operating System Concepts 1.24 Silberschatz, Galvin and Gagne ©2005 1 Modo Dual de Operação Compartilhamento de recursos do sistema requer que SO ofereça garantia de que processos incorretos não ? atrapalhem? outros processos Hardware deve suportar pelo menos dois modos diferenciados de operação: 1. User mode ? executa instruções de processos de usuários. 2. Monitor mode -- (também chamado modo supervisor, system mode, kernel mode) ? executa instruções do núcleo do SO. Operating System Concepts Silberschatz, Galvin and Gagne ©2005 1.25 Modo Dual de Operação (Cont.) Bit(s) de modo adicionado ao hardware da CPU para indicar modo corrente -- ex: supervisor (0), usuário (1). Quando ocorre interrupção (trap ou fault) hardware troca para modo supervisor. InterruIpt / fault Supervisor user set user mode ?Instru£ões privilegiadas executam somente em modo supervisor Operating System Concepts 1.26 Silberschatz, Galvin and Gagne ©2005 2 Proteção de I/O Todas as instru£ões de I/O são instruções privilegiadas Deve garantir que um programa de usuário nunca possa ganhar controle do computador em modo supervisor (i.e. Um programa que, como parte de sua execução, armazena um novo endereço no vetor de interrupção). Operating System Concepts 1.27 Silberschatz, Galvin and Gagne ©2005 Proteção de Memória Hardware deve prover proteção no mínimo para os vetores de interrupção e para as rotinas de interrupção (ISR) Para haver proteção de memória poderíamos ter, por exemplo, dois registradores que determinem a faixa de endereços com acesso permitido a um processo. ? Registrador base - endereço onde começa a área de acesso permitido ? Registrador de limite - contém tamanho da área de acesso permitido Memória fora da faixa definida é protegida Operating System Concepts 1.28 Silberschatz, Galvin and Gagne ©2005 3 Espaço lógico de endereçamento usando-se registradores base e limite Operating System Concepts 1.29 Silberschatz, Galvin and Gagne ©2005 Hardware de Proteção Em modo monitor programa (SO) tem acesso irrestrito a todo o espaço de endereçamento As intruções que modificam os registradores base e limite devem ser instruções privilegiadas Operating System Concepts 1.30 Silberschatz, Galvin and Gagne ©2005 4 Proteção de CPU Timer - (“relogio” temporizador) interrompe processamento (interrupção) periódicamente garantindo que SO mantenha o controle. ? Timer é decrementado a cada tick de relógio ? Quando timer chaga a zero, interrupção ocorrre. Temporizador é normalmente usado para implementar “time sharing” Temporizador também é usado para computar a hora atual do sistema Instrução para modificar o timer deve ser instrução privilegiada. Operating System Concepts 1.31 Silberschatz, Galvin and Gagne ©2005 Arquitetura geral das chamadas de I/O Dado que as chamadas de I/O são privilegiadas, como um programa de usuário pode fazer I/O ? ? System call ? é o método usado por um processo para requisitar uma ação do SO ? Usualmente toma a forma de um trap para um vetor de interrupção específico. ? Controle passa a uma ISR (system call dispatcher). Bit de modo é mudado para modo supervisor. ? O Monitor verifica se os parâmetros estão corretos e a legalidade da operação, executa a requisição e retorna controle para a instrução seguinte à system call. Operating System Concepts 1.32 Silberschatz, Galvin and Gagne ©2005 5 Uso de uma chamada ao SO para fazer I/O Operating System Concepts 1.33 Silberschatz, Galvin and Gagne ©2005 6