Baixe o app para aproveitar ainda mais
Prévia do material em texto
Universidade Federal de Ouro Preto - UFOP Departamento de Computação e Sistemas - DECSI CSI437 – Sistemas Operacionais Prof. Samuel Brito Estruturas do Computador OPERAÇÃO DO COMPUTADOR Estruturas do Computador 3 Operação do Computador • Um computador de uso geral consiste em uma (ou mais) CPU e uma série de controladores de dispositivos e adaptadores, conectados por meio de um barramento comum, oferecendo acesso à memória compartilhada. 4 Operação do Computador • Cada controlador de dispositivo está encarregado de um tipo específico de dispositivo. – Unidades de disco, dispositivos de áudio e monitores de vídeo. • CPU e controladores de dispositivos podem ser executados simultaneamente, competindo por ciclos de memória. • Para garantir o acesso ordenado à memória compartilhada, um controlador de memória é fornecido. – Sincronização de acesso. 5 Inicialização • Para um computador começar a funcionar é preciso que haja um programa inicial para ser executado. – Bootstrap ou programa de boot. – Tende a ser muito simples. – Em geral, ele é armazenado na memória somente de leitura (ROM) ou na memória de leitura apagável programaticamente (EEPROM - firmware) dentro do hardware do computador. 6 Inicialização • Função do programa de boot: – Inicializar todos os aspectos do sistema. • Desde registradores da CPU até controladores de dispositivos e conteúdos de memória. • Importante: – Programa de boot precisa saber como carregar o Sistema Operacional e como começar a executar esse sistema. • Localizar (no disco, por exemplo) e carregar na memória o kernel do sistema operacional. • Sistema operacional executa o primeiro processo (init) e espera que ocorra algum evento. 7 Interrupções • A ocorrência de um evento normalmente é sinalizada por uma interrupção do hardware ou do software. – Interrupção por hardware: • Hardware envia um sinal à CPU por meio do barramento do sistema. – Interrupção por software: • Software dispara uma interrupção por meio de uma chamada de sistema (system call). 8 Interrupções • Os sistemas operacionais modernos são controlados por interrupção. – Se não houver processos para executar, nenhum dispositivo de E/S para atender e nenhum usuário para responder, o sistema operacional ficará silencioso, esperando que algo aconteça. • A forma como o sistema operacional controla as interrupções define a estrutura geral desse sistema. – Para cada tipo de interrupção, segmentos de códigos separados no sistema operacional determinam que ação deve ser realizada. – Uma rotina de serviço de interrupção é fornecida para tratar essa interrupção. 9 Interrupções • Quando a CPU é interrompida, ela para o que está fazendo, armazena seu estado atual e imediatamente transfere a execução para uma locação fixa da memória. – Contém o endereço inicial no qual está localizada a rotina de atendimento da interrupção. – Essa rotina é executada. – Ao terminar, a CPU retoma a computação interrompida. 10 Interrupções 11 Interrupções ESTRUTURA DE E/S Estruturas do Computador 13 Estrutura de E/S • Grande parte do sistema operacional é dedicada ao gerenciamento de E/S. – Importante para a confiabilidade e desempenho de um sistema. – Natureza variável dos dispositivos. • Dispositivos de E/S possuem controladores, por meio dos quais comunicam com demais componentes. – Mantém algum armazenamento em buffer local e um conjunto de registradores de uso especial. – Tamanho do buffer depende do dispositivo controlado. • Exemplo: – O tamanho do buffer de um controlador de disco é igual ou um múltiplo da menor parte endereçável de um disco (setor). • Um driver de dispositivo (device driver) para cada controlador de dispositivo. – Entende o controlador de dispositivo e apresenta uma interface uniforme do dispositivo para o restante do sistema operacional. 14 Interrupções de E/S 1. Para iniciar uma operação de E/S, o driver de dispositivo carrega os registradores apropriados para dentro do controlador de dispositivo. 2. O controlador de dispositivo examina o conteúdo desses registradores para determinar que ação deve ser realizada. – Exemplo: ler um caractere do teclado. 3. O controlador começa a transferir os dados do dispositivo para o seu buffer local. – Quando a transferência estiver concluída, o controlador de dispositivo informará ao driver de dispositivo (via interrupção) que terminou a operação. 4. O driver de dispositivo retorna o controle ao sistema operacional. – Retornando os dados ou um ponteiro para os dados, se a operação foi uma leitura. – Para outras operações, o driver de dispositivo retorna a informação de status. 15 Interrupções de E/S Dois tipos de E/S: –Síncrona: • E/S é iniciada. –Ao término da E/S, o controle é retornado ao processo do usuário. • Instrução de espera especial (wait), que deixa a CPU ociosa até a próxima interrupção. –Alternativa: » Loop de espera. • Vantagem: – Somente uma requisição de E/S poderá estar pendente de cada vez. » Sistema operacional sabe qual dispositivo está interrompendo. • Desvantagem: –Desperdício de CPU! 16 Interrupções de E/S Dois tipos de E/S: – Assíncrona: • Controle é retornado ao processo do usuário sem esperar o término da E/S. – E/S pode continuar enquanto ocorrem outras operações do sistema ou do usuário. • Necessária uma chamada de sistema para permitir que o programa do usuário espere o término da E/S, se desejar. • Caso não haja nenhum programa do usuário pronto para execução e o sistema operacional não tiver nenhum outro trabalho para realizar, é necessária a instrução wait ou o loop de espera. • Necessário registrar as requisições de E/S que chegam ao mesmo tempo. – Tabela de status de dispositivo. 17 Tabela de Status de Dispositivo • Uma entrada na tabela para cada dispositivo. • Entradas da tabela: – Tipo do dispositivo, o endereço e o estado (não funcionando, ocioso ou ocupado). • Se o dispositivo estiver ocupado com uma requisição, o tipo da requisição e outros parâmetros são armazenados na entrada da tabela para esse dispositivo. – Vários processos podem emitir requisições para um mesmo dispositivo: • Fila de espera. 18 Tabela de Status de Dispositivo 19 Tabela de Status de Dispositivo • Um dispositivo de E/S interrompe quando precisa de atendimento. – O sistema operacional determina qual dispositivo causou a interrupção. – Examina a tabela de dispositivos de E/S para determinar o status desse dispositivo e modifica a entrada da tabela para refletir a ocorrência da interrupção. – Uma interrupção sinaliza o término de uma requisição de E/S. – Se houver mais requisições aguardando na fila, o sistema operacional inicia o processamento da próxima requisição. – Controle retorna da interrupção de E/S. • Se um processo estiver esperando o término de sua requisição, o controle pode ser retornado para a execução do programa do usuário ou para o loop de espera. 20 Acesso Direto à Memória • E/S controlada por interrupção funciona para mover pequenas quantidades de dados. – Pode produzir um overhead quando usada para movimento de dados em quantidade, como na E/S de disco. – Exemplo: • Um teclado pode aceitar e transferir um caractere a cada 1.000 microssegundos. – Se um driver de dispositivo levar cerca de 2 microssegundos para tratar cada caractere, ainda sobram 998 microssegundos para demais processamentos (computação de CPU + outras requisições). – Interrupção de baixa prioridade. • E se um dispositivo for de alta velocidade, transferindo informações em 4 microssegundos? – Pouco tempo para execução do processo.21 Acesso Direto à Memória • Para resolver esse problema, o acesso direto à memória (Direct Memory Access) é utilizado. • Blocos de dados são transferidos diretamente entre o dispositivo e a memória do sistema. – O controlador de dispositivo comanda a transferência, sem intervenção da CPU. – 1 interrupção por bloco (anteriormente, 1 interrupção por byte). 22 Acesso Direto à Memória • Funcionamento: – Um programa de usuário (ou o sistema operacional) requisita a transferência de dados. – O sistema operacional encontra um buffer (vazio para entrada ou cheio para a saída) a partir de um banco de buffers para a transferência. – O driver de dispositivo configura os registradores do controlador de DMA para utilizarem endereços de origem e destino apropriados, assim como o tamanho dos dados a serem transferidos. – O controlador de DMA inicia a operação de E/S. – Enquanto os dados são transferidos, a CPU em si está livre para executar outras operações. – O controlador DMA interrompe a CPU somente quando a transferência é finalizada. • CPU pode liberar o buffer de saída ou avisar ao processo que espera pela entrada do buffer que existe um dispositivo aguardando. 23 Acesso Direto à Memória ESTRUTURAS DE ARMAZENAMENTO Estruturas do Computador 25 Estruturas de Armazenamento • Programas de computador precisam estar na memória principal (memória de acesso aleatório – RAM). – Única grande área de armazenamento que o processador pode acessar diretamente. • O ideal é que os programas e dados residam na memória principal permanentemente. – Problemas? • Memória principal pequena. • Memória principal perde seu conteúdo quando a alimentação é cortada ou o sistema é reinicializado. 26 Estruturas de Armazenamento • Solução: – Armazenamento secundário como extensão da memória principal. • Capaz de manter grandes quantidades de dados permanentemente. – Exemplos: discos magnéticos, memórias flash, etc. – Programas e dados são armazenados no disco. • Quando necessário, carrega esses dados para a memória principal. • Gerenciamento apropriado do armazenamento em disco é de grande importância! 27 Estruturas de Armazenamento • Principais diferenças entre as variedades de dispositivos de memória secundária: – Velocidade, custo, tamanho e volatilidade. • Armazenamento volátil vs não volátil: – Volátil: • Perde seu conteúdo quando o dispositivo é desligado/reiniciado de alguma maneira. – Não volátil: • Dados não são perdidos ao desligar/reiniciar o sistema. 28 Estruturas de Armazenamento Regis trado res Cache Memória Principal Disco Eletrônico Disco Magnético Tempo de Acesso Baixo Alto Capacidade de Armazenagem Baixa Alta Fita Disco Ótico PROTEÇÃO DO HARDWARE Estruturas do Computador 30 Proteção do Hardware • Com o compartilhamento dos sistemas por diversos programas em execução, é preciso garantir formas de proteção entre eles. – Exemplo: • Sistema operacional batch simples (sequência automática das tarefas). • O que acontece se um programa ficar preso em um loop, lendo a entrada de cartões? – O programa lerá todos os dados! » Acessa dados de outros usuários e impede a operação de muitas tarefas. 31 Proteção do Hardware • É essencial que existam recursos de hardware para: – Proteção de E/S – Proteção de memória – Controle da CPU • Um programa incorreto (ou malicioso) não pode interferir na execução de outros. 32 Operação no Modo Dual • Hardware é construído para diferenciar entre pelo menos dois modos de operação: – Modo usuário – Modo monitor (supervisor, sistema, privilegiado) • Bit de modo: – Adicionado ao hardware do computador para indicar o modo atual. • Monitor = 0 • Usuário = 1 • Certas instruções só podem ser executadas no modo monitor. 33 Operação no Modo Dual • No boot do sistema, o hardware começa no modo monitor. – Sistema operacional é carregado e inicia os processos do usuário (passando para o modo usuário). • Sempre que ocorre uma interrupção, o hardware passa do modo usuário para o modo monitor. – Quando o sistema operacional obtém controle do computador, ele está no modo monitor. • O sistema sempre volta para o modo usuário antes de passar o controle para um programa do usuário. 34 Operação no Modo Dual • Exemplo de falha de proteção: – MS-DOS foi escrito para a arquitetura 8088 da Intel, que não possui modo dual. • Um programa usuário com problemas pode acabar com o sistema operacional, escrevendo dados sobre ele. • Vários programas são capazes de escrever em um dispositivo ao mesmo tempo. • Modo dual fornece maior proteção ao sistema operacional! 35 Proteção da E/S • Garante que um programa não possa reprogramar um dispositivo para fazer algo prejudicial a outros. – Exemplo: • Apagar um disco rígido. • Todas as instruções de E/S são definidas como instruções privilegiadas. – Usuários não podem emitir instruções de E/S diretamente. – Necessária a intervenção do sistema operacional. • Chamada de sistema. • O sistema operacional (modo monitor) verifica e certifica-se de que a requisição é válida e realiza a operação de E/S requisitada. – Em seguida, retorna ao usuário. 36 Proteção da Memória • Para separar o espaço de memória de cada programa do espaço dos outros, é necessário determinar o intervalo de endereços válidos que o programa pode acessar. – E proteger a memória fora desse espaço. • Utilização de dois registradores: – Registrador base: • Contém o menor endereço válido de memória física. – Registrador limite: • Contém o tamanho do intervalo. 37 Proteção da Memória 38 Proteção da Memória • O hardware da CPU compara cada endereço gerado no modo usuário com os registradores. – Qualquer tentativa de um programa executando no modo usuário de acessar a memória do monitor ou a memória de outros usuários resulta em uma exceção para o monitor. • Erro fatal! 39 Proteção da Memória 40 Proteção da Memória • Exercício: – Um processo possui registrador base igual a 35 e registrador limite igual a 50. Qual(is) do(s) acesso(s) a seguir não gera(m) erro fatal? a) Acesso à posição de memória 85. b) Acesso à posição de memória 90. c) Acesso à posição de memória 35. d) Acesso à posição de memória 79. e) Acesso à posição de memória 34. 41 Proteção da Memória • Importante: – Em modo monitor, o SO tem acesso liberado a toda a memória. – Alterações de registradores base e limite são instruções privilegiadas. 42 Proteção da CPU • Além de proteger E/S e memória, deve-se garantir que o sistema operacional mantenha o controle: – É preciso impedir que um programa do usuário fique preso em um loop infinito e nunca retorne o controle ao sistema operacional. • Solução: – Usar um temporizador (timer). • Ajustado para interromper o computador após um período especificado. – Período fixo (1/60 segundo, por exemplo) ou variável (1 milissegundo a 1 segundo). • Temporizador decrementa um contador à partir de cada pulso de clock. – Quando contador chega a zero, gera um interrupção. 43 Proteção da CPU • Exemplo: – Um programa com tempo limite de execução de 5 minutos, teria seu contador inicializado com 300. – A cada segundo, o temporizador interrompe e o contador é decrementado em 1 unidade. – Enquanto o contador for positivo, o controle é retornado ao programa do usuário. • Quando o contador se torna negativo, o sistema operacional termina o programa por exceder o tempo limite (ou dá mais um tempo de execução). 44 Proteção da CPU • Antes de passar o controle para o usuário, o sistema operacionalgarante que o temporizador esteja ajustado para interromper. – Se o temporizador interromper, o controle é transferido para o sistema operacional. • Pode gerar um erro fatal ou dar mais tempo ao programa. • Instruções que modificam o temporizador são privilegiadas. 45 Proteção da CPU • Um uso mais comum de um temporizador é para implementar o compartilhamento de tempo. – Usado para interromper a cada N milissegundos, onde N é a fatia de tempo durante o qual cada usuário tem permissão para executar antes de o próximo usuário obter o controle da CPU. • Troca de contexto. • Também pode ser usado para calcular a hora atual. 46 Exercícios 1. Descreva o papel desempenhado pelas interrupções. 2. Qual a função de um controlador de dispositivo? E de um driver de dispositivo? 3. Considerando os tipos de E/S síncrona e assíncrona, descreva as características de cada uma com sua visão de vantagens e desvantagens. 4. Explique o conceito e como funciona o Acesso Direto à Memória (DMA). 5. Qual a diferença entre armazenamento volátil e armazenamento não volátil? 6. Apresente as diferenças entre o modo usuário e o modo monitor. 47 Dúvidas? Slide 1 Operação do Computador Operação do Computador Operação do Computador Inicialização Inicialização Interrupções Interrupções Interrupções Interrupções Interrupções Estrutura de E/S Estrutura de E/S Interrupções de E/S Interrupções de E/S Interrupções de E/S Tabela de Status de Dispositivo Tabela de Status de Dispositivo Tabela de Status de Dispositivo Acesso Direto à Memória Acesso Direto à Memória Acesso Direto à Memória Acesso Direto à Memória Estruturas de Armazenamento Estruturas de Armazenamento Estruturas de Armazenamento Estruturas de Armazenamento Estruturas de Armazenamento Proteção do hardware Proteção do Hardware Proteção do Hardware Operação no Modo Dual Operação no Modo Dual Operação no Modo Dual Proteção da E/S Proteção da Memória Proteção da Memória Proteção da Memória Proteção da Memória Proteção da Memória Proteção da Memória Proteção da CPU Proteção da CPU Proteção da CPU Proteção da CPU Exercícios Dúvidas?
Compartilhar