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!