Visão Geral de Sistemas Operacionais Sumário Um sistema operacional é um intermediário entre usuários e o hardware do computador. Desta forma, o usuário pode executar programas de forma conveniente e eficiente. O hardware precisa precisa ofertar mecanismos para assegurar sua operação correta. Conhecer os principais componentes e a organização básica dos computadores é primordial para a compreensão de como os sistemas operacionais relacionam-se com o hardware dos sistemas computacionais. Agenda Definições Organização do computador UCP Inicialização Eventos e Interrupções Estrutura de Armazenamento Estrutura de E/S Modo dual Temporizador Sistema Operacional - Introdução Sistema Operacional é um conjunto de arquivos e programas que gerenciam o hardware do computador, servindo de interface entre usuários, hardware e outros programas Sistema Operacional - Introdução Distintos sistemas operacionais variam muito em sua forma de operação Em mainframes os sistemas operacionais precisam otimizar a utilização do hardware (Eficiência) Em desktops é mais importante fornecer facilidade de operação (Conveniência) Sistemas Operacionais são semelhantes ao governo. Não realizam funções úteis para si mesmo, mas fornecem um ambiente propício para que outros executem suas funções. Visão abstrata dos componentes Visão do usuário Desktop Foco em Facilidade de Uso Relativa atenção ao Desempenho Pouca preocupação com Utilização de Recursos Terminal de mainframe Foco em Utilização de Recursos Estação de Trabalho Equilíbrio entre características Dispositivos Móveis Sistemas Embutidos sem interface significativa Visão do sistema Alocador de Recursos (tempo de UCP, espaço de memória, dispositivos) Gerenciamento de Recursos Eliminação de conflitos (concorrência) Programa de Controle Administração da execução de programas Impedimento de erros e uso impróprio Sistema Operacional: Definição Não há definição universalmente aceita O Sistema Operacional surgiu para fornecer um modo aceitável de operar um sistema computacional. Conjunto de programas e arquivos que atuam como intermediários entre programas de usuário, usuários e hardware Tudo o que o fornecedor entrega como sendo um Sistema Operacional Conjunto de programas que executam o tempo todo no computador Definição importante em EUA x Microsoft, 1998 Organização do computador Computadores de uso geral têm uma UCP e controladores de dispositivos e adaptadores, conectados por um barramento comum que fornece acesso à memória compartilhada. UCP e controladores podem ser executados simultaneamente, competindo pela memória Para tal um controlador de memória é utilizado para sincronizar estes acessos. Organização do Computador Unidade Central de Processamento UCP (ou CPU) é considerado o “cérebro” do computador. Cada UCP tem um conjunto específico de instruções. Um Pentium não executa programas SPARC, por exemplo. Como o tempo de acesso a memória é muito maior do que o tempo de executá-la, as UCP usam registradores locais para manter dados importantes e resultados temporários O contador de programa (ou PC) é um registrador especial que contém o endereço da próxima instrução a ser executada Outro registrador especial é o ponteiro de pilha (SP), que aponta para o topo da pilha atual Unidade Central de Processamento (cont) UCP modernas são superescalares, ou seja, podem executar instruções diferentes em cada uma de suas unidades de execução. São unidades de execução comum as de Aritmética de Inteiros, Aritmética de Ponto Flutuante ou a Lógica. Inicialização Bootstrap ou Programa de Inicialização Armazenado em firmware (ROM, EEPROM) Inicializa e testa hardware (registradores da UCP, controladores, conteúdo da memória) Carrega o núcleo do sistema operacional (kernel) Primeiros processos são carregados Espera-se a ocorrência de algum evento Ocorrência de Eventos Eventos são sinalizados por interrupções de hardware ou de software Interrupção de Hardware Sinal enviado à UCP por meio do barramento Interrupção de Software (também chamada trap) Chamada de Sistema (System Call) ou Chamada ao Monitor (Monitor Call) Tratamento de Interrupções Ao receber uma interrupção a UCP Interrompe a tarefa atual, armazenando seu endereço em uma pilha Transfere execução para endereço fixo na memória Este endereço contém o endereço inicial da rotina de atendimento da interrupção, que é então executada Retoma à tarefa interrompida Quantidade de interrupções limitada e pré-definida Vetor de Interrupções Estrutura de Armazenamento RAM (Random Access Memory) Única grande área de armazenamento com acesso direto pela UCP Necessidade de programas estarem na RAM para serem executados Geralmente implementada em DRAM (Dynamic RAM) que forma um conjunto de words individualmente endereçados Ciclo típico de execução de instruções com arquitetura von Neumann Estrutura de Armazenamento (cont) Interação consiste em mover word entre a RAM e os registradores da UCP Ciclo típico de execução de instruções com arquitetura von Neumann Instruções são copiadas da memória para o registrador de instruções Instrução é decodificada e processada, com eventual manipulação de words entre RAM e registradores de UCP Estrutura de Armazenamento (cont) Limitações da RAM Relativamente pequena Volátil Armazenamento secundário Relativamente grande Permanente Armazenamento secundário comum: Disco Rígido Magnético Origem e destino de dados para processamento Hierarquia de Dispositivos de Armazenamento Estrutura de Armazenamento (cont) Quatro níveis superiores da hierarquia são feitos com semicondutores Os níveis acima do disco eletrônico são voláteis. O próprio disco eletrônico pode ou não ser volátil. Estrutura de E/S Grande parte do código do Sistema Operacional é voltada para o Gerenciamento de Entrada/Saída UCP e controladores de dispositivos ligados por barramento comum Quantidade de dispositivos por controlador IDE SCSI Controladores de dispositivos movem dados de/para dispositivos, armazenando alguns em Buffer local Registradores específicos Estrutura de E/S (cont) Controladores movem dados entre periféricos e buffer local Sistemas Operacionais têm um driver de dispositivo para cada controlador de dispositivo Operação de E/S Drivers de dispositivo carrega registradores para o controlador de dispositivo Controlador usa dados nos registradores para determinar ação Controlador transfere dados do dispositivo para buffer local Ao concluir, controlador avisa ao driver via interrupção Driver avisa sistema operacional DMA resolve problemas de overhead na transferência de grandes quantidades de dados de/para dispositivos Modo Dual Distinguir execução de código do Sistema Operacional e código do usuário Modo Usuário e Modo do Sistema (Monitor, Supervisor, Privilegiado ou Kernel) Usa-se um bit (bit de modo) para indicar o estado: monitor (0) ou usuário (1) Transição de modos Modo Dual (cont) No boot, hardware opera em Modo Monitor. Ao carregar, o sistema operacional, cria processos em modo usuário Modo dual protege o sistema operacional contra usuários mal intencionados e um usuário do outro. Instruções que podem causar danos são instruções privilegiadas, executadas apenas em Modo Monitor Intel 8088 não possuia suporte para o modo dual. MS-DOS escrito para ele não o implementava, portanto Temporizador É preciso garantir que o Sistema Operacional tenha controle sobre a UCP Sem um temporizador (ou timer), um programa de usuário em loop infinito pode impedir que o sistema operacional retome o controle do computador Temporizadores enviam interrupções após períodos de tempo especificados Fixos ou variáveis Resumo Sistema Operacional gerencia o hardware e fornece ambiente para execução de programas Para executar, um programa deve estar na memória principal Armazenamento Secundário apoia a Memória Principal Modo Dual garante a operação correta Referências Bibliográficas SILBERSCHATZ, Abraham; GALVIN, Peter Baer; GAGNE, Greg. Sistemas Operacionais com Java. 7. ed. Rio de Janeiro: Elsevier, 2008. 673 p. TANENBAUM, Andrew S.. Sistemas Operacionais Modernos. 2. ed. São Paulo: Prentice Hall, 2003. 695 p. Visão Geral de Sistemas Operacionais Obrigado pela atenção!