Capítulo 1: Introdução Operating System Concepts – 8th Edition Silberschatz, Galvin and Gagne ©2009 Capítulo 1: Introdução O que um Sistema Operacional faz Organização Computador-Sistema Arquitetura Computador-Sistema Estrutura do Sistema Operacional Operações do Sistema Operacional Gerenciamento de Processo Gerenciamento de Memória Gerenciamento de Armazenamento Proteção e Segurança Sistemas Distribuídos Sistemas de Propósito especial Ambientes Computacionais Sistemas Operacionais Open-Source Operating System Concepts – 8th Edition 1.2 Silberschatz, Galvin and Gagne ©2009 Objetivos Prover um overview sobre os principais componentes dos Sistemas Operacionais Prover uma cobertura sobre a organização de sistema computacional básico Operating System Concepts – 8th Edition 1.3 Silberschatz, Galvin and Gagne ©2009 O quê é um Sistema Operacional? Um programa que atua como um intermediário entre um usuário e o hardware do computador Objetivos do sistema Operacional: Executa programas do usuário, tornando os problemas do usuário mais fácil Torna os sistemas computacionais mais conveniente para o uso Uso o hardware do computador de maneira mais eficiente Operating System Concepts – 8th Edition 1.4 Silberschatz, Galvin and Gagne ©2009 Estrutura dos Sistemas Computacionais Um sistema Computacional pode ser dividido em 4 componentes: Hardware – provém recursos computacionais básicos Sistema Operacional Controla e coordena o uso do hardware entre as várias aplicações e usuários Programas de aplicação – define as formas com que os recursos do sistema são usuados para resolber os problemas computacionais dos usuários CPU, memória, dispositivos de I/O Processadores de texto, compiladores, browsers, sistema de banco de dados, video, games, etc. Usuários Pessoas, máquinas e outros computadores Operating System Concepts – 8th Edition 1.5 Silberschatz, Galvin and Gagne ©2009 Quatro Componentes de um Sistema Computacional Operating System Concepts – 8th Edition 1.6 Silberschatz, Galvin and Gagne ©2009 O quê um Sistema Computacional faz Depende do ponto de vista Usuários desejam conveniência, facilidade de uso Não se preocupam com a utilização de recurso Porém computadores compartilhados, tais como mainframe or minicomputer devem manter todos os usuários “felizes” Usuários de sistemas dedicados, tais como workstations possuem recursos dedicados, porém frequentemente compartilham recursos de servidores Computadores portateis apresentam recursos limitados, otimizado para usabilidade e duração da bateria Alguns computadores não tem tem uma interface minima, ou mesmo não apresentam, tais como computadores embutidos em dispositivos e automóveis Operating System Concepts – 8th Edition 1.7 Silberschatz, Galvin and Gagne ©2009 Definição de Sistema Operacional OS é um is a alocador de recurso Gerência todos os recursos Decide entre os pedidos conflitantes com base na eficiência e uso recurso OS é um is a programa de controle Controla a execução dos programas para prevenir erros e uso inapropriado do computador Operating System Concepts – 8th Edition 1.8 Silberschatz, Galvin and Gagne ©2009 Definição de Sistema Operacional (Cont.) Não existe uma definição universal “Everything a vendor ships when you order an operating system” é uma boa aproximação Mas varia muito “Um programa executando a todo instante no computador” é o kernel. O resto é um programa de sistema (fornecido com o sistema operacional) ou um programa de aplicação. Operating System Concepts – 8th Edition 1.9 Silberschatz, Galvin and Gagne ©2009 Computer Startup Programa de bootstrap program é carregado quando se liga ou computador ou durante o reboot Normalmente armazenado em ROM ou EPROM, geralmente conhecido como firmware Inicia todos recursos do sistema Carrega o kernel do sistema operacional e inicia a execução Operating System Concepts – 8th Edition 1.10 Silberschatz, Galvin and Gagne ©2009 Organização do Sistema Computacional Operação do Sistema Operacional Um ou mais CPUs, controladores de dispositivos conectados por uma barramento comum, provendo acesso a memória compartilhada Execução concorrente de CPUs e dispositivos competindo por ciclos de memória Operating System Concepts – 8th Edition 1.11 Silberschatz, Galvin and Gagne ©2009 Operação Sistema Computador Dispositivo de I/O e a CPU podem executar concorrentemente Cada controlador de dispositivo é responsável por um tipo de dispositivo particular Cada controlador de dispositivo tem um buffer local CPU transfere dados de/para buffers locais I/O é do dispositivo para o buffer local do controlador Controlador de dispositivo informa a CPU o fim da operação por meio de uma interrupção Operating System Concepts – 8th Edition 1.12 Silberschatz, Galvin and Gagne ©2009 Funções Comuns das interrupções A interrupção transfere o controle para a rotina de serviço de interrupção, geralmente, através do vetor de interrupção, que contém os endereços de todos as rotinas de serviço A arquitetura de interrupção deve salvar o endereço da instrução interrompida. Novas interrupções são desabilitadas enquanto a interrrupção está sendo processada para prevenir a perda de interrupção Um trap é uma interrupção gerada por software causada por um erro ou pedido do usuário Um sistema operacional é interrupt driven Operating System Concepts – 8th Edition 1.13 Silberschatz, Galvin and Gagne ©2009 Manipulação de Interrupção O sistema operacional preserva o estado da CPU armazenando os registradores e o contador de programa Determina o tipo de interrupção ocorrida:: polling vectored interrupt system Segmentos separados de código determina qual ação deve ser tomada para cada tipo de interrupção Operating System Concepts – 8th Edition 1.14 Silberschatz, Galvin and Gagne ©2009 Timeline de interrupção Operating System Concepts – 8th Edition 1.15 Silberschatz, Galvin and Gagne ©2009 Estrutura de I/O Depois que a I/O inicia o controle retorna para o programa do usuário retorna somente após a finalização da I/O Instrução Wait deixa ociosa a CPU até a próxima interrupção Loop de Wait (controla o acesso a memória) No máximo solicitação de I/O está pendente de cada vez, sem o processamento simultâneo de I/O Depois que a I/O inicia, o controle retorna ao programa do usuário sem esperar pela finalização da I/O System call – pedido ao sistema operacional para pemitir que o usuário espere pela finalização da I/O Device-status table contém entrada para cada dispositivo de I/O indicando o tipo, endereço e o estado O sistema operacional indexa a tabela de dispositivos de I/O para determinar o estado do dispositivo e para modificar a entrada da tabela para incluir a interrupção Operating System Concepts – 8th Edition 1.16 Silberschatz, Galvin and Gagne ©2009 Estrutura de Acesso Direto a Memória Usado para permitir que dispositivo de I/O de alta velocidade transmitam informações de acordo com as velocidades de memória Controlador de dispositivo transfere blocos de dados armazenados no buffer diretamente para a memoria principal sem interveção da CPU Somente uma interrupção é gerada por bloco, ao invés de uma por byte Operating System Concepts – 8th Edition 1.17 Silberschatz, Galvin and Gagne ©2009 Estrutura de Armazenamento Memória principal – grande quantidade de armazenamento que a CPU pode acesso diretamente Acesso Randômico Normalmente volátil Armazenamento Secundário – extensão da memória principal que provém grande capacidade de armazenamento não volátil Disco Magnético – superfície de metal ou vidro revestida de material magnético A superfície do disco é logicamente dividida em tracks, que são subdividas em sectors O controlador de disco determina a interação lógica entre o dispositivo e o computador Operating System Concepts – 8th Edition 1.18 Silberschatz, Galvin and Gagne ©2009 Hierarquia de Armazenamento Sistema de armazenamento é organizado hierarquicamente Velocidade Custo Volatividade Caching – Cópia de informação para um sistema de armazenamento mais rápido; memória principal pode ser vista com um cache do armazenamento secundário. Operating System Concepts – 8th Edition 1.19 Silberschatz, Galvin and Gagne ©2009 Hierarquia dos Dispositivos de Armazenamento Operating System Concepts – 8th Edition 1.20 Silberschatz, Galvin and Gagne ©2009 Caching Princípio importante, executado em vários níveis do computador (hardware, sistema operacional, software) Informação em uso é copiada temporariamente de um armazenamento mais lendo para uma mais rápido Armazenamento mais rápido (cache) é verificado para determinar se a informação está lá Se está, informação é usada diretamente do cache (rápido) Se não está, o dado é copiado para o cache e usado Cache é muito menor do que o armazenamento em cache Gerenciamento de cache é uma questão importante de projeto Tamanho do cache e política de substituição Operating System Concepts – 8th Edition 1.21 Silberschatz, Galvin and Gagne ©2009 Arquitetura de Sistemas Computacionais Muitos sistemas usam um único processador de propósito geral (PDAs até mainframes) Muitos sistemas tem processadores de propósito especial também Sistemas Multiprocessadores sistemas em expansão de uso e importância Também conhecido como sistemas paralelos, sistemas fracamente acoplados Vantagens incluem : 1. Aumento do throughput 2. Economia de escala 3. Aumento de confiabilidade – degradação aceitável or tolerância a falta Dois tipos: 1. Multiprocessamento assimétrico 2. Multiprocessamento simétrico Operating System Concepts – 8th Edition 1.22 Silberschatz, Galvin and Gagne ©2009 Como um Computador moderno trabalha A von Neumann architecture Operating System Concepts – 8th Edition 1.23 Silberschatz, Galvin and Gagne ©2009 Arquitetura de Multiprocessamento Simétrico Operating System Concepts – 8th Edition 1.24 Silberschatz, Galvin and Gagne ©2009 Projeto Dual-Core Operating System Concepts – 8th Edition 1.25 Silberschatz, Galvin and Gagne ©2009 Clusters Semelhante ao sistema multiprocessador, porém os sistemas multiprocessados trabalham juntos Geralmente, compartilham o armazenamento, via uma storage-area network (SAN) Provém um serviço de alta disponibilidade que suporta falhas Cluters assimétrico tem uma máquina em modo hot-standby mode Cluters simétrico htem múltiplos nós executando aplicações que monitoram as outras Alguns clusters são de alto desempenho - high-performance computing (HPC) Aplicações devem ser escritas para usar a paralelização Operating System Concepts – 8th Edition 1.26 Silberschatz, Galvin and Gagne ©2009 Clusters Operating System Concepts – 8th Edition 1.27 Silberschatz, Galvin and Gagne ©2009 Estrutura do Sistema Operacional Multiprogramação é necessária por razões de eficiência Um único usuário não pode manter a CPU e os dispositivos de I/O ocupado por todo o tempo Multiprogramação organiza os jobs (código e dados) de maneira que a CPU tem sempre um para executar Um subconjunto do total de jobs do sistema é mantido na memória Um job é selecionado e executa via escalonador de job Quando ele tem de esperar (por exemplo, por uma I/O), o OS chaveia para outro job Timesharing (multitarefa - multitasking) é uma extensão lógica em que a CPU chaveia jobs tão frequentemente que os usuários podem interagir com o job enquanto ele está executando, criando uma computação interativa Timde de Resposta deve ser < 1 segundo Cada usuário tem no mínimo um programa executando na memória process Se vários jobs estão pronto para executar no mesmo instante CPU scheduling Se o processo não encontra-se na memória, o sswapping move ele para e for para executar Memória Virtual permite a execução de processos não completamente carregados na memória Operating System Concepts – 8th Edition 1.28 Silberschatz, Galvin and Gagne ©2009 Layout da Memória para Sistema Multiprogramado Operating System Concepts – 8th Edition 1.29 Silberschatz, Galvin and Gagne ©2009 Operações do Sistema Operacional Interrupt driven por hardware Erro de software ou requisições criam exception or trap Divisão por zero, requisita por serviço do sistema operacional Outros problemas do processo incluem loop infinito, processos modificando outros ou o sistema operacional Operação Dual-mode permite que o OS se proteja e outros componentes do sistema Modo User and modo kernel Mode bit provido por hardware Provém a capacidade de distinguir quando o sistema executa código do kernel ou do usuário Algumas instruções são designadas como privilegiadas, somente executáveis em modo kernel System call muda o modo para kernel, o retorno da chamada faz com que o sistema retorne para usuário Operating System Concepts – 8th Edition 1.30 Silberschatz, Galvin and Gagne ©2009 Transição de Modo Usuário para Kernel Timer prefine loop infinito / processo mantendo recursos Seta a interrupção depois de um período específico OS decrementa o contador Quando o contador zera gera uma interrupção Setado antes do escalonamento do processo para recuperar o controle ou terminar o programa quando o tempo é excedido Operating System Concepts – 8th Edition 1.31 Silberschatz, Galvin and Gagne ©2009 Gerenciamento de Processo Um processo é um programa em execução. Programa é uma entidade passiva, o processo é uma entidade ativa Processo necessitam de recurso para executar sua tarefa CPU, memória, I/O, arquivos Dados de inicialização Ao término do processo os recursos são liberados Processo Single-threaded tem um único contador de programa especificando a localização da próxima instrução a ser executada Processos executam instruções sequencialmente, a cada instante, até a finalização Processos Multi-threaded tem um contador de programa por thread Normalmente o sistema tem muitos processos, algum usuário, alguns sistema operacional rodando simultaneamente em um ou mais CPUs concorrendo pela multiplexação das CPUs entre os processos/threads Operating System Concepts – 8th Edition 1.32 Silberschatz, Galvin and Gagne ©2009 Atividades de Gerenciamento de Processo O sistema operacional é responsável pelas seguintes atividades: Criação e deleção de usuários e processos do sistema Suspensão e reativação de processos Prover mecanismos para a sincronização de processo Prover mecanismos para comunicação de processo Prover mecanismos para manipulação de deadlock Operating System Concepts – 8th Edition 1.33 Silberschatz, Galvin and Gagne ©2009 Gerenciamento de Memória Todo dado deve estar na memória antes e depois do processamento Todas as instruções devem estar na memória para serem executadas Gerenciamento de memória determina o que está na memória Otimizando a utilização de CPU e o tempo de resposta aos usuários Atividades do gerenciamento de memória Manter o registro de que parte da memória está sendo usada e por quem Decidir quais processos (ou parte deles) e o dado a ser movido para ou da memória Alocação e de-alocação de espação de memória quando necessário Operating System Concepts – 8th Edition 1.34 Silberschatz, Galvin and Gagne ©2009 Gerenciamento de Armazenamento OS provém uma visão lógica e uniforme do armazenamento de informação Abstrai-se das propriedades físicas para unidade de armazenamento lógico - file Cada meio é controlado pelo dispositivo (i.e., disk drive, tape drive) As propriedades variam, incluindo a velocidade de acesso, capacidade, taxa de transferência de dados, método de acesso (sequencial ou randômico) Gerenciamento do Sistema de Arquivo Arquivos normalmente são organizados em diretórios Controle de acesso em muitos sistemas determina quem pode acessar e o quê Atividade do OS incluem Criação e deleção de arquivos e diretórios Primitivas para manipular arquivos e diretórios Mapeamento de arquivos para Armazenamento Secundário Arquivos de Backup em Mídia de armazenamento estável (não volátil) Operating System Concepts – 8th Edition 1.35 Silberschatz, Galvin and Gagne ©2009 Gerenciamento de Armazenamento de Massa Normalmente, discos são usados para armazenar dados que não estão na memória principal ou dados que devem ser mantidos por um longo período de tempo Gerenciamento adequado é de importância fundamental A velocidade global das operação do computador depende da velocidade do disco e de seus algoritmos Atividades do OS Gerenciamento de espaço livre Alocação do armazenamento Escalonamento do Disco Alguns armazenamentos não necessitam ser rápido Armazenamento terciário inclui armazenamento ótico e fita magnética Também deve ser gerenciada – Pelas aplicações e OS Varia entre WORM (write-once, read-many-times) e RW (read-write) Operating System Concepts – 8th Edition 1.36 Silberschatz, Galvin and Gagne ©2009 Desempenho de vários níveis de Armazenamento Transferência entre níveis de armazenamento hierarquico pode ser explícito ou implícito Operating System Concepts – 8th Edition 1.37 Silberschatz, Galvin and Gagne ©2009 Migração de um inteiro A do Disco para um registrador Ambientes multitasking deve estar atendo para usar o valor mais recente, mesmo que ele esteja armazenado na memoria secundária Ambiente multiprocessador deve prover um cache coerente de hardware de maneira que todas as CPUs tenham o valor mais recente no seu cache A situação em ambiente distribuído é mais complexa Várias cópias de um datum pode existir Operating System Concepts – 8th Edition 1.38 Silberschatz, Galvin and Gagne ©2009 Substistema de I/O Um dos propósitos do OS é ocultar as particularidades dos dispositivos de hardware do usuários O subsistema de I/O é responsável por Gerenciamento de memória de I/O incluindo a buferização (armazenamento de dados temporários enquanto eles estão sendo transferidos), caching (armazenamento de partes dos dados em dispositivos de armazenamento mais rápido por razões de desempenho), spooling (overlapping de saída de um job com entrada de outro jobs) Interface geral do driver do dispositivo Drivers para dispositivos de hardware específicos Operating System Concepts – 8th Edition 1.39 Silberschatz, Galvin and Gagne ©2009 Proteção e Segurança Proteção – mecanismo de controle de acesso dos processos ou usuários aos recursos definidos pelo OS Segurança – defende o sistema de ataques internos e externos Huge range, including denial-of-service, worms, viruses, identity theft, theft of service Geralmente, os Sistemas primeiro distingue entre usuários, para determinar quem pode fazer o quê Identificador de User (user IDs, security IDs) incluem o nome o número associado, um por usuário User ID é associado a todos os arquivos, os processos do usuário determinam o controle de acesso. Identificador de Groupo (group ID) permite setar os o conjunto de usuários a ser definido e gerenciar o controle, associando a cada processo, arquivo Aumento de Privilegio permite ao usuário mudar o ID para ter mais privilégios Operating System Concepts – 8th Edition 1.40 Silberschatz, Galvin and Gagne ©2009 Computação Distribuída Conjunto de sistemas separados, possivelmente separados, interconectados por um rede Rede é um caminho de comunicação – Local Area Network (LAN) – Wide Area Network (WAN) – Metropolitan Area Network (MAN) Sistemas Operacional de Rede provém pNetwork Operating System provides caracteristicas entre os sistemas através da rede Esquema de comunicação permite aos sistemas trocar mensagens Ilusão de um único sistema Operating System Concepts – 8th Edition 1.41 Silberschatz, Galvin and Gagne ©2009 Sistema de Propósito Geral Sistemas embarcados Tempo Real é uma forma predominante de computadores Vary considerable, propósito especial, OS limitado, OS real-time Sistemas Multimedia Streams of dados deve ser entregue de acordo com as restrições de tempo Sistemas Handheld PDAs, smart phones, CPU limitada, memória, energia Característica reduzida do conjunto do OS, I/O limitado Operating System Concepts – 8th Edition 1.42 Silberschatz, Galvin and Gagne ©2009 Ambientes Computacionais Computador tradicional Blurring over time Ambiente de escritório PCs connected a uma rede, terminais ligados a um mainframe or minicomputers que provém batch e timesharing Agora portais permitem acesso a rede e sistemas remotos ao mesmo recurso Redes residênciais Usada por um único sistema sed to be single system, then modems Com firewall com rede Operating System Concepts – 8th Edition 1.43 Silberschatz, Galvin and Gagne ©2009 Ambientes Computacionais (Cont.) Computação Cliente Servidor Terminals Dumb suplantado peloPCs Vários sistemas agora servidores, respondendo a pedidos gerados pelos clientess Servidores provém uma interface para o cliente para solicitar serviço (i.e., base de dados) Servidor de Arquivo provém interface para os clientes para armazenar e recuperar arquivos. Operating System Concepts – 8th Edition 1.44 Silberschatz, Galvin and Gagne ©2009 Computação Peer-to-Peer Outro modelo de Sistemas Distribuídos P2P não distingui clientes e servidores Ao contrário, todos os nós são considerados pares Cada nó pode atuar como cliente, servidor ou ambos Nó pode associar a rede P2P Registrando seus serviços em um serviço de lookup central da rede, ou Broadcast um pedido para o serviço e o nó que fornece o serviço responde ao para que fez a solicitação (protocolo de descoberta) Exemples include Napster , Gnutella, Bit torrent, etc. Operating System Concepts – 8th Edition 1.45 Silberschatz, Galvin and Gagne ©2009 Computação baseada na Web Web tem tornado onipresente PCs ainda prevalece Muitos dispositivos, tais como PDA, telefones e workstation permite o acesso a web Nova categoria de dispositivos para gerenciar o trafego web entre servidores similares: balanceamento de carga Uso de sistemas operacionais semelhantes ao Windows 95 do lado cliente, evoluíram para Linux e Windows XP, que pode ser clientes e servidores Operating System Concepts – 8th Edition 1.46 Silberschatz, Galvin and Gagne ©2009 Sistemas Operacionais Open-Source Sistemas Operacionais disponibilizados em código fonte , ao invés de somente binário (closed-source) Contadores para a proteção de cópia e Digital Rights Management (DRM) Iniciou Free Software Foundation (FSF), que tem um “copyleft” GNU Public License (GPL) Exemplos incluem GNU/Linux e BSD UNIX (incluindo o core do Mac OS X), e muitos outros Operating System Concepts – 8th Edition 1.47 Silberschatz, Galvin and Gagne ©2009 Fim do Capítulo 1 Operating System Concepts – 8th Edition Silberschatz, Galvin and Gagne ©2009