Sistemas Operacionais I Estruturas de Sistemas Computacionais SO I - Estruturas de Sistemas Computacionais Estruturas de Sistemas Computacionais Operações de Computadores Estrutura de E/S Estrutura de Armazenamento Estrutura Hierárquica Proteção de Hardware Arquitetura Geral do Sistema Ciência da Computação - SO SO I - Estruturas de Sistemas Computacionais Arquitetura de um Computador Ciência da Computação - SO SO I - Estruturas de Sistemas Computacionais Operações de um Computador • Dispositivos de E/S e CPU podem executar concorrentemente. • Cada controlador de dispositivo é encarregado por um tipo particular de dispositivo. • • Cada controlador de dispositivo tem um buffer local. CPU move dados de/para memória principal para/de buffers locais. • E/S é de um dispositivo para o buffer local da controladora. • Controladora de Dispositivo informa a CPU que terminou a operação através da geração de uma interrupção. Ciência da Computação - SO SO I - Estruturas de Sistemas Computacionais Funções Comuns das Interrupções • Transferir o controle para a rotina de serviço da interrupção, geralmente através do vetor de interrupção, o qual contém os endereços de todas as rotinas de serviço. • Arquitetura da interrupção deve salvar o endereço da instrução interrompida. • A geração de novas interrupções é desabilitada enquanto uma outra interrupção está sendo processada para evitar a perda de uma interrupção. • Uma trap é uma interrupção gerada por software causada por uma requisição do usuário ou por um erro. • Um sistema operacional é acionado por interrupções. Ciência da Computação - SO SO I - Estruturas de Sistemas Computacionais Tratamento de Interrupção O sistema operacional preserva o estado da CPU armazenando os valores armazenados nos registradores e o do contador de programas (PC). • Determinar quais tipos de interrupção ocorreram: Baseadas em Polling (sondagem) Através do vetor de interrupções • Segmentos de código separados determinam qual ação deve ser realizada para cada tipo de interrupção. Ciência da Computação - SO SO I - Estruturas de Sistemas Computacionais Linha do Tempo de uma Interrupção para um Único Processo Gerando Saídas Ciência da Computação - SO SO I - Estruturas de Sistemas Computacionais Estrutura de Entrada e Saída Após o início de uma E/S, o controle retorna ao programa do usuário somente quando a requisição de E/S terminar. Instruções de espera liberam a CPU até a próxima interrupção Laço de espera (contenção para acesso a memória). No máximo uma requisição de E/S está pendente de cada vez, não ocorre processamento de E/S simultâneo. Após o início de uma E/S, o controle retorna ao programa do usuário sem aguardar o tratamento da requisição de E/S. Chamada de Sistemas (System call) – requisição ao sistema operacional para permitir ao usuário aguardar o término da E/S. Tabela de Estados de Dispositivos contém uma entrada para cada dispositivo de E/S indicando seu tipo, endereço e estado. Sistema operacional acessa a tabela de dispositivos de E/S para determinar a situação do dispositivo e modificar a entrada na tabela para incluir a interrupção. Ciência da Computação - SO SO I - Estruturas de Sistemas Computacionais Dois métodos de Entrada e Saída Ciência da Computação - SO SO I - Estruturas de Sistemas Computacionais Tabela de Estados de Dispositivos Ciência da Computação - SO SO I - Estruturas de Sistemas Computacionais Estrutura de Acesso Direto à Memória (DMA) Usado para dispositivos de E/S de alta velocidade capazes de transmitir informação a uma taxa próxima da memória. Controladores de dispositivo transferem blocos de dados de um buffer de armazenamento diretamente para a memória principal, sem intervenção da CPU. Somente uma interrupção é gerada por bloco, ao invés de uma interrupção por byte. Ciência da Computação - SO SO I - Estruturas de Sistemas Computacionais Estruturas de Armazenamento Memória Principal – única grande área de armazenamento que a CPU pode acessar diretamente. Armazenamento Secundário – extensão da memória principal que fornece grande capacidade de armazenamento persistente (não volátil). Discos Magnéticos – prato de metal rígido ou vidro coberto com material magnético para armazenamento de dados Superfície do disco é dividida logicamente em trilhas, que são subdivididas em setores. A controladora de disco determina a interação lógica entre o dispositivo e o computador. Ciência da Computação - SO SO I - Estruturas de Sistemas Computacionais Mecanismo de Movimento da Cabeça do Disco Ciência da Computação - SO SO I - Estruturas de Sistemas Computacionais Hierarquia de Armazenamento Sistemas de Armazenamento são organizados em hierarquia. Velocidade Custo Volatilidade Caching – copiar informação em um sistema mais rápido de armazenamento; memória principal pode ser vista como um último cache para o armazenamento secundário. Ciência da Computação - SO SO I - Estruturas de Sistemas Computacionais Hierarquia de Dispositivos de Armazenamento Ciência da Computação - SO SO I - Estruturas de Sistemas Computacionais Proteção de Hardware Operação em dois modos Proteção de E/S Proteção de Memória Proteção de CPU Ciência da Computação - SO SO I - Estruturas de Sistemas Computacionais Operação em Dois Modos O compartilhamento de recursos necessita a garantia do sistema operacional de que programas incorretos não causem a execução incorreta de outros programas. Prover suporte de hardware para diferenciar entre dois modos de operação. 1. Modo Usuário (User mode) – execução é feita de acordo com o usuário. 2. Modo Supervisor, Monitor ou do Sistema (Monitor mode, supervisor mode or system mode) – execução é feita de acordo com o sistema operacional. Ciência da Computação - SO SO I - Estruturas de Sistemas Computacionais Operação em Dois Modos (Cont.) Um bit de modo é adicionado ao hardware do computador para indicar o modo atual: monitor (0) ou usuário (1). Quando uma interrupção ou falta ocorre, o hardware comuta para o modo monitor. Instruções privilegiadas podem ser executadas somente em modo monitor. Ciência da Computação - SO SO I - Estruturas de Sistemas Computacionais Proteção de Entrada e Saída Todas as instruções de E/S são instruções privilegiadas. É necessário garantir que um programa usuário nunca deve obter o controle do computador no modo monitor. (Por exemplo, um programa do usuário que, como parte da sua execução, armazena um novo endereço no vetor de interrupções). Ciência da Computação - SO SO I - Estruturas de Sistemas Computacionais Proteção de Memória É necessário garantir a proteção de memória pelo menos para o vetor de interrupções e para as rotinas de serviço das interrupções. Para garantir proteção de memória, adicionam-se dois registradores que determinam o escopo dos endereços válidos que um programa pode acessar: Registrador Base – armazena o menor endereço válido de memória física. Registrador Limit – contém o tamanho da área endereçável. Memória fora do escopo definido é protegida. Ciência da Computação - SO SO I - Estruturas de Sistemas Computacionais Registradores Base e Limite definem um Espaço de Enderaçamento Lógico Ciência da Computação - SO SO I - Estruturas de Sistemas Computacionais Proteção de Hardware Quando executando em modo monitor, o sistema operacional tem acesso irrestrito tanto a memória do monitor como do(s) usuário(s). As instruções de carga dos endereços base e limit são instruções privilegiadas. Ciência da Computação - SO para os registradores SO I - Estruturas de Sistemas Computacionais Proteção de CPU Timer – interrompe o computador após um período específico de tempo para garantir o controle ao sistema operacional. Timer é decrementado a cada pulso do clock (clock tick). Quanto o timer alcança o valor 0, ocorre uma interrupção. O timer é comumente usado para implementar compartilhamento de tempo (time sharing). O timer é usado também para computar a hora corrente. Carregar valores para o timer é uma instrução privilegiada. Ciência da Computação - SO SO I - Estruturas de Sistemas Computacionais Arquitetura Geral do Sistema Uma vez que as instruções de E/S são privilegiadas, como o programa do usuário realiza E/S? Chamada de Sistema (System call) – método usado por um processo para requerer uma ação do sistema operacional. Normalmente ocorre através de uma comutação para um local específico no vetor de interrupções (trap). O controle passa para uma rotina de serviço no SO através do vetor de interrupções, e o bit de modo é alterado para modo monitor. O monitor verifica se os parâmetros estão corretos e são válidos, executa a requisição, e retorna o controle para a próxima instrução após a chamada de sistema. Ciência da Computação - SO SO I - Estruturas de Sistemas Computacionais Uso de Chamada de Sistema para realizar E/S Ciência da Computação - SO