Baixe o app para aproveitar ainda mais
Prévia do material em texto
Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition, Capítulo 1: Introdução Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition 2 Capítulo 1: Introdução • O que fazem os Sistemas Operacionais? • Organização de Computadores • Arquitetura de Computadores • Estrutura dos Sistemas Operacionais • Operações dos Sistemas Operacionais • Gerenciamento de Processos • Gerenciamento de Memória • Gerenciamento de Armazenamento • Proteção e Segurança • Sistemas Distribuídos • Sistemas de Propósito Especial • Ambientes Computacionais • Sistemas Operacionas de Código Aberto Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition 3 Objetivos • Fornecer uma visão geral dos principais componentes de sistemas operacionais • Fornecer uma introdução à organização básica de um sistema computacional Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition 4 O que é um Sistema Operacional? • Um programa que atua como intermediário entre o usuário e o hardware do computador • Metas de um Sistema Operacional: • Executar programas de usuários e tornar a solução de problemas mais simples • Tornar o uso do computador conveniente • Usar o hardware do computador de forma eficiente Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition 5 Estrutura de Sistemas de Computação • Um computador pode ser dividido em quatro componentes • Hardware – fornece os recursos çomputacionais básicos • CPU, memória, dispositivos de E/S • Sistema Operacional • Controla e coordena o uso do hardware pelas várias aplicações e usuários • Programas Aplicativos – definem as formas pelas quais os recursos do sistema são utilizados para resolver problemas computacionais dos usuários • Processadores de texto, compiladores, navegadores web, sistemas de banco de dados, jogos eletrônicos • Usuários • Pessoas, máquinas, outros computadores Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition 6 Quatro Componentes de um Computador Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition 7 Definição de Sistema Operacional - SO • O SO é um alocador de recursos • Gerencia todos os recursos • Decide entre requisições conflitantes para uso justo e eficiente • O SO é um programa de controle • Controla a execução de programas para prevenir erros e uso indevido do computador Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition 8 Definição de Sistema Operacional (Cont) • Nenhuma definição aceita universalmente • “Tudo que o fabricante fornece quando você adquire um sistema operacional” é uma boa aproximação • Mas varia drasticamente • “O programa em execução o tempo todo no computador” é o kernel. Tudo além é um programa do sistema (fornecido com o sistema operacional) ou um programa aplicativo Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition 9 Iniciação do Computador • Um programa de “bootstrap” é carregado ao se ligar ou reiniciar o computador • Tipicamente armazenado em ROM ou EPROM, geralmente conhecido como firmware • Inicia todos os aspectos do sistema • Carrega o kernel do sistema operacional e inicia sua execução Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition 10 Organização do Computador • Operação do computador • Uma ou mais CPUs, controladores de dispositivos conectados através de um barramento comum fornecendo acesso a uma memória compartilhada • Execução concorrente de CPUs e dispositivos, competindo por ciclos de memória Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition 11 Operação de um Computador • Dispositivos de E/S e a CPU executam concorrentemente • Cada controlador de dispositivo é responsável por um tipo particular de dispositivo • Cada controlador de dispositivo possui um buffer local • A CPU movimenta dados de/para a memória principal para/de buffers locais • O movimento de dados em dispositivos de E/S é do dispositivo para o buffer local do controlador • O Controlador do dispositivo informa a CPU que finalizou sua operação, causando uma interrupção Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition 12 Funções Comuns de Interrupções • Uma interrupção transfere o controle para a rotina de serviço de interrupção geralmente através de vetor de interrupção, que contém os endereços de todas as rotinas de serviço • A arquitetura de interrupção deve salvar o endereço da instrução interrompida • Interrupções de entrada são desabilitadas enquanto outra interupção está sendo processada para prevenir a perda de interrupção • Um trap é uma interrupção gerada por software causada por um erro ou por uma requisição do usuário • Um sistema operacional é dirigido por interrupções Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition 13 Tratamento de Interrupções • O sistema operacional preserva o estado da CPU armazenando registradores e o contador de programa – Program Counter • Determina qual o tipo de interrupção ocorreu: • Polling – consultando o status do dispositivo de E/S • Sistema de interrupção baseado em vetor (Vectored Interrupted System) • Segmentos separados de código determinam que ação deve ser tomada para cada tipo de interrupção Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition 14 Linha do Tempo de uma Interrupção Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition 15 Estrutura de E/S • Após início de uma operação de E/S, o controle retorna para o programa do usuário somente após a operação de E/S estiver completa • A instrução “Wait” libera a CPU até a próxima interrupção • Loop de espera (contenção para acesso à memória) • No máximo uma requisição de E/S está sendo tratada por vez, não há processamento simultâneo de E/S Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition 16 Estrutura de E/S (Cont) • Após início da E/S, o controle retorna para o programa do usuário sem esperar o término da operação de E/S • Chamada de Sistema – solicitação ao sistema operacional para permitir que o usuário aguarde o término da E/S • Tabela de status do dispositivo contém entradas para cada dispositivo de E/S indicando seu tipo, endereço e estado • Indices do sistema operacional na tabela de dispositivos de E/S para determinar o status do dispositivo e para modificar a entrada na tabela para incluir a interrupção Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition 17 Estrutura de Acesso Direto à Memória (DMA) • Usada por dispositivos de E/S de alta velocidade capazes de transmitir informações com velocidade próxima a encontrada em memórias. • O controlador do dispositivo transfere blocos de dados do buffer de armazenamento diretamente para a memória principal sem intervenção da CPU • Apenas uma interrupção é gerada por bloco, em vez de uma interrupção por byte Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition 18 Estrutura de Armazenamento • Memória principal – meio de armazenamento que a CPU pode acessar diretamente • Armazenamento secundário – extensão da memória principal que fornece grande capacidade de armazenamento não-volátil • Discos magnéticos – Discos rígidos coberto com material magnético de gravação • A superfície do disco é dividida logicamente em trilhas, que são subdivididas em setores • O controlador de disco determina a interação lógica entre o dispositivo e o computador Silberschatz, Galvin and Gagne ©2009Operating System Concepts –8th Edition 19 Hierarquia de Armazenamento • Sistemas de Armazenamento são organizados em uma hierarquia • Velocidade • Custo • Volatilidade • Caching – cópia de informação em sistema de armazenamento mais rápido; a memória principal pode ser visualizada como cache para o armazenamento secundário Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition 20 Hierarquia de Dispositivos de Armazenamento Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition 21 Como um Computador Moderno Funciona Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition 22 Caching • Princípio importante, executado em vários níveis em um computador (em hardware, sistemas operacionais, software) • Informação em uso copiada , temporariamente, de sistemas de armazenamento mais lentos para sistemas de armazenamento mais rápidos • Sistema de armazenamento mais rápido (cache) verificado primeiro em busca da informação • Se estiver presente, usada diretamente da cache (mais rápida) • Se não estiver presente, o dado é copiado para a cache • A cache é menor que o sistema de armazenamento origem • Gerenciamento de cache é um problema importante de design • Política de substituição dos dados em memória e tamanho da cache Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition 23 Arquitetura de Computadores • A maioria dos sistemas usam um único processador de propósito geral (de PDAs a mainframes) • Da mesma forma, a maioria dos sistemas possuem processadores de propósito específico, tais como controladores de disco, teclado e dispositivos gráficos • Sistemas multiprocessador estão crescendo em uso e importância • Também conhecidos como sistemas paralelos, sistemas altamente acoplados Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition 24 Arquitetura de Computadores(Cont.) • Vantagens de sistemas Multiprocessador 1. Aumento de desempenho (throughput) 2. Economia de escala 3. Aumento de confiabilidade – tolerância a falhas – degradação natural (graceful degradation) • Dois tipos 1. Multi-processamento assimétrico 2. Multi-processamento Simétrico Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition 25 Arquitetura de Multiprocessamento Simétrico Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition 26 Design Dual-Core Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition 27 Sistemas em Cluster • Semelhante à sistemas com múltiplos processadores, mas com múltiplos sistemas trabalhando em conjunto • Normalmente com armazenamento compartilhado via área de armazenamento em rede , storage-area network (SAN) • Fornece um serviço de alta-disponibilidade que sobrevive à falhas • Cluster Assimétrico clustering com uma máquina em modo hot- standby • Cluster simétrico possui vários nós executando aplicações, monitorando uns aos outros • Alguns clusters são para computação de alta-performance(HPC) • Aplicações devem ser escritas para usarem paralelismo Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition 28 Estrutura do Sistema Operacional • Multiprogramação necessária por eficiência • Um único usuário não pode manter a CPU e os dispositivos de E/S ocupados o tempo todo • A multiprogramação organiza os processos (jobs, código e dados) de forma que a CPU sempre tenha um para executar • Um subconjunto do total de processos em um sistema é mantido em memória • Uma processo é selecionado e executado via escalonamento de processo • Quando necessário esperar (por exemplo, E/S), o SO troca para um outro processo • Neste curso, usaremos os termos tarefa (job) e processo (process) como sendo sinônimos. Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition 29 Estrutura do Sistema Operacional (Cont) • Tempo Compartilhado (Timesharing) ou Multitarefa é uma extensão lógica na qual a CPU troca tarefas tão frequentemente que usuários podem interagir com cada tarefa enquanto a mesma estiver em execução, criando uma computação interativa • Tempo de resposta deve ser menor que 1 segundo • Cada usuário tem pelo menos um programa em execução na memória --> Processo • Se vários processos estão prontos para serem executados no mesmo tempo --> Escalonamento de CPU • Se os processos não couberem em memória, swapping move-os para e a partir da memória para serem executados • Memória virtual permite a execução de processos que não estejam completamente na memória (ou que não caibam nela) Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition 30 Layout de Memória para Sistemas Multiprogramados Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition 31 Operações do Sistema Operacional • Interrupção dirigida pelo hardware • Interceptarão: erro de software ou requisições cria uma exception ou trap • Divisão por zero, solicitação para um serviço do sistema operacional • Outros problemas com processos incluem loops infinitos, processos se modificando mutuamente ou modificando o sistema operacional • Operação Dual-mode permite que o SO se proteja além de proteger outros componentes do sistema • Modo usuário (user mode) e modo núcleo (kernel mode) • Mode bit fornecido pelo hardware • Fornece a habilidade de diferenciar quando o sistema está executando código do usuário ou código do kernel • Algumas instruções designadas como privilegiadas somente executam no modo kernel • Chamadas de sistema mudam o modo para kernel. O retorno da chamada retorna ao modo usuário Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition 32 Transição do Modo Kernel para Modo Usuário • Timer (clock + contador) para prevenir loops infinitos ou processos monopolizando recursos • Gera uma interrupção após um período específico • O sistema operacional decrementa o contador • Quando o contador zera, uma interrupção é gerada • Configurado antes que o escalonamento de processos recupere controle ou termine o programa que exceda o tempo alocado Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition 33 Gerenciamento de Processos • Um processo é um programa em execução. É uma unidade de trabalho dentro do sistema. Um programa é uma entidade passiva, processo é uma entidade ativa. • Processos necessitam de recursos para realizarem suas tarefas • CPU, memória, E/S, arquivos • Iniciação de dados • O término do processo requer a recuperação de quaisquer recursos utilizados (memory dump) Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition 34 Gerenciamento de Processos (Cont.) • Processos “Single-thread” possuem um contador de programa (program counter) que especifica a localização da próxima instrução a ser executada • Processos executam instruções sequencialmente, uma por vez, até a execução completar • Processos “Multi-thread” possuem um contador de programa por thread • Tipicamente, sistemas possuem muitos processos alguns usuários e um sistema operacional executando concorrentemente em uma ou mais CPUs • Concorrência por multiplexação da CPUs entre os processos e threads Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition 35 Atividades de Gerenciamento de Processos O sistema operacional é responsável pelas seguintes atividades relacionadas ao gerenciamento de processos: • Criação e remoção de processos do sistema e do usuário • Suspender ou continuar a execução de processos • Fornecer mecanismos para a sincronização de processos • Fornecer mecanismos para a comunicação de processos • Fornecer mecanismos para tratamentode deadlock Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition 36 Gerenciamento de Memória • Todo dado reside em memória antes e após processamento • Todas instruções carregadas na memória para execução • O Gerenciamento de memória determina o que está na memória e quando • Otimizando o uso da CPU e calculando respostas para os usuários, mantendo vários programas em memória. • As principais atividades de gerenciamento são • Manter quais partes da memória estão sendo usadas e por quem • Decidir quais processos (ou partes) e dados mover para e a partir da memória principal • Alocação de liberação dinâmica do espaço de memória Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition 37 Gerenciamento de Armazenamento • O SO fornece uma visão lógica, uniforme da informação armazenada • Abstrai propriedades físicas na forma de unidade de armazenamento lógico - arquivo • Cada mídia é controlada por um dispositivo (ex: drive de disco, drive de Fita) • Propriedades que variam incluem velocidade de acesso, capacidade, taxa de transferência de dados, método de acesso (aleatório, sequencial) Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition 38 Gerenciamento de Armazenamento (Cont.) • Gerenciamento do Sistema de Arquivos • Arquivos normalmente organizados em diretórios • O controle de acesso, na maioria dos sistemas, determina quem pode acessar o quê • As atividades de um SO, incluem • Criar e remover arquivos e diretórios • Primitivas para manipulação de arquivos e diretórios • Mapear arquivos para armazenamento secundário • Fazer backup de arquivos em meio de armazenamento estável (não volátil) Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition 39 Gerenciamento de Memória em Massa • Normalmente os discos usados para armazenarem os dados, possuem capacidade de armazenamento superior a da memória principal e devem ser mantidos por um “longo” período de tempo (anos, décadas, ...) • Gerenciamento adequado é de grande importância • A velocidade total de uma operação no computador depende do subsistema de disco e em seus algoritmos • OBS.: atualmente o HDD é o gargalo de desempenho dos computadores, de maneira que sistemas de arquivos mais eficientes (EXT4) ou alterações no hardware (ex.: HDDs em RAID, SDD) trazem significativos ganhos de desempenho, mais até que a troca da CPU e/ou da RAM. Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition 40 Gerenciamento de Memória em Massa (Cont.) • Atividades dos SOs • Gerenciamento de espaço livre • Alocação para armazenamento • Escalonamento de discos • Alguns meios de armazenamento precisam ser rápidos • Armazenamento terciário inclui armazenamento ótico, fitas magnéticas • Comparação: DVD (4.4 GB) e VHS (25 GB) • Também devem ser gerenciados pelo S.O. • Variam entre WORM (write-once, read-many-times) e RW (read-write) Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition 41 Desempenho de Vários Níveis de Armazenamento • O movimento de informação entre níveis da hierarquia de armazenamento podem ser explícitos ou implícitos (pelo hardware ou SO) Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition 42 Migração de um Inteiro A do Disco para o Registrador • Ambientes multi-tarefas devem ser cuidadosos para utilizarem o valor mais recente, independente de sua posição onde ele esteja armazenado na hierarquia de armazenamento • Ambientes multi-processadores devem fornecer coerência de cache (cache coherency) em hardware • permite que todas CPUs possuam o valor mais recente em cache (mantendo a integridade dos dados) • A situação é mais complicada para ambientes distribuídos • Diversas cópias do dado podem existir • Várias soluções discutidas no capítulo 17 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition 43 Subsistema de E/S • Um objetivo de um SO é ocultar peculiaridades dos dispositivos de hardware do usuário • O subsistema de E/S é responsável por • Gerenciamento de memória das operações de E/S, incluindo • buffering (armazenamento temporário de dados enquanto é transferido) • caching (armazenando partes dos dados em armazenamento mais rápido visando melhor desempenho) • spooling (a transição da saída de uma tarefa com a entrada de outras tarefas) • Interface com drivers de dispositivos • Drivers para dispositivos de hardware específicos Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition 44 Proteção e Segurança • Proteção – qualquer mecanismo de controle de acesso de processos ou usuários a recursos definidos pelo sistema operacional • Segurança– defesa do sistema contra ataques internos e externos • Vários tópicos, incluindo negação de serviço (DoS), mallwares (worms, vírus), roubo de identidade, roubo de serviço • Os sistemas em geral, inicialmente diferenciam usuário para determinar quem pode fazer o quê • Identidade do usuário (user IDs, IDs de segurança) inclui nome e número associado, um por usuário. OBS.: o ID do usuário é associado com todos os arquivos e processos daquele usuário para determinar o controle de acesso (ex.: comando users do bash) • Identificador de grupo (group ID) permite a definição de um conjunto de usuário e controle gerenciado, também associado com cada processo, arquivo (ex.: comando groups do bash) • Escala de privilégios permite que o usuário mude para outro ID com mais privilégios (ex.: comando sudo do bash) Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition 45 Ambientes de Computação • Computador tradicional está se descaracterizando com o passar dos anos: • Ambiente de escritório • terminais associados a mainframe, PCs conectados em rede, virtualização em servidores e agora computadores de mão - handhelds computers (ex.: tablets, smartphones) • Atualmente, portais permitindo sistemas remotos e em rede acesso aos mesmos recursos • Ambiente doméstico • Inicialmente, usadas em sistemas simples. • Agora com firewalls, compartilhamento de recursos, anonimização do acesso externo, etc. Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition 46 Ambientes de Computação (Cont) • Computação Cliente-Servidor • Terminais "burros" substituídos por "smart PCs" • Muitos sistemas atuando como servidores, respondendo à requisições geradas por clientes • Servidor de Aplicação fornece uma interface para os clientes requisitarem serviços (ex: banco de dados) • Servidor de Arquivos fornece uma interface para clientes armazenarem e recuperarem arquivos remotamente Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition 47 Computação Par-a-Par (Peer-to-Peer) • Outro modelo de sistema distribuído • P2P não diferencia clientes de servidores • Em vez disso, todos nós são considerados pares - peers • Pode atuar como cliente, servidor ou ambos • O nó precisa se juntar à rede P2P • Registra seu serviço com um serviço de descoberta central (lookup service) na rede, ou • Faz broadcast de solicitações por serviços e responde a requisições por serviço via protocolo de descoberta (discovery protocol) • Exemplos: Gnutella, BitTorrent, ToR Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition 48 Computação Baseada na Web • A Web se tornou ubíqua (presente em todos os locais) • Desktops, Laptops, Tablets e Smartphones são os principais dispositivos • Mais dispositivos interconectados à Web ("Internet das Coisas") • Nova categoria de dispositivos para gerenciar o tráfego web entre servidores similares: servidores de balanceamento de carga• Uso de sistemas operacionais cliente como Windows 95, evolui para o Linux e Windows 7, que podem ser clientes e servidores Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition 49 Sistemas Operacionais de Código Aberto • Sistemas operacionais disponibilizados no formato de código fonte em vez de código binário com código fonte fechado • Contra os movimentos de proteção de código e Gerenciamento de Direitos Digitais (Digital Rights Management (DRM) • Iniciado com a Free Software Foundation (FSF), que possui licença “copyleft” GNU Public License (GPL) • Exemplos : GNU/Linux, BSD UNIX (incluindo o núcleo do Mac OS X), e Sun Solaris Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition, Fim do Capítulo 1
Compartilhar