Baixe o app para aproveitar ainda mais
Prévia do material em texto
11/02/2019 1 Silberschatz, Galvin and Gagne ©2009Fundamentos de Sistemas Operacionais – 8ª Edição Capítulo 1: Introdução 1.2 Silberschatz, Galvin and Gagne ©2009Fundamentos de Sistemas Operacionais – 8ª Edição Capítulo 1: Introdução � Qual o papel do Sistema Operacional � Organização do Sistema Operacional � Arquitetura do Sistema de Computação � Estrutura do Sistema Operacional � Operações do Sistema Operacional � Gereciamento de Processo � Gereciamento de Memória � Gereciamento de Armazenamento � Proteção e Segurança � Sistemas Distribuídos � Sistemas de Propósito Especial � Ambientes Computacionais � Sistemas Opercaionais Open-Source 1.3 Silberschatz, Galvin and Gagne ©2009Fundamentos de Sistemas Operacionais – 8ª Edição Objetivos � Dar uma visão geral dos principais componentes dos sistemas operacionais � Descrever a organização básica dos sistemas de computação 1 2 3 11/02/2019 2 1.4 Silberschatz, Galvin and Gagne ©2009Fundamentos de Sistemas Operacionais – 8ª Edição Os pais do UNIX 1.5 Silberschatz, Galvin and Gagne ©2009Fundamentos de Sistemas Operacionais – 8ª Edição O Que É Um Sistema Operacional? � Um programa que atua como intermediário entre o usuário de um computador e o hardware do computador � Objetivos do sistema operacional: � Executar programas do usuário e tornar fácil a solução de problemas � Tornar o sistema computacional conveniente para uso � Usar o hardware de uma forma mais eficiente 1.6 Silberschatz, Galvin and Gagne ©2009Fundamentos de Sistemas Operacionais – 8ª Edição Estrutura do Sistema Computacional � O sistema Computacional pode ser dividido em quatro componentes � Hardware – composto de recursos computacionais básicos � CPU, memória, dispositivos de I/O � Sistema Operacional � Controla e coordena o uso do hardware entre várias aplicações e usuários � Programas de aplicação – define a maneira pela qual os recursos do sistema serão usados para resolver os problemas do usuário � Processadores de texto, compiladores, browseres web, gerenciadores de banco de dados, video games, outros programas. � Usuários � Pessoas, máquinas, outros computadores 4 5 6 11/02/2019 3 1.7 Silberschatz, Galvin and Gagne ©2009Fundamentos de Sistemas Operacionais – 8ª Edição Quatro Componentes de um Sistema Computacional 1.8 Silberschatz, Galvin and Gagne ©2009Fundamentos de Sistemas Operacionais – 8ª Edição Definição do Sistema Operacional � SO é um alocador de recursos � Gerencia todos recursos � Decide entre os conflitos gerados por requisições de forma mais apropriada e eficiente na utilização de recursos � SO é um programa de controle � Controla a execução dos programas para prevenir erros e use improprio do computador � Não existe uma definição universal � Kernel - “Programa que está sempre executando no computador” Os demais são: programas do sistema (programas que complementam o SO) ou programas aplicativos 1.9 Silberschatz, Galvin and Gagne ©2009Fundamentos de Sistemas Operacionais – 8ª Edição Inicialização do Computador � Programa bootstrap é carregado ao se ligar ou resetar a máquina. � Tipicamente armazenado na ROM ou EPROM, geralmente conhecido como firmware � Inicializa/verifica todos os componentes do sistema � Carrega o kernel do sistema operacional e inicia a execução 7 8 9 11/02/2019 4 1.10 Silberschatz, Galvin and Gagne ©2009Fundamentos de Sistemas Operacionais – 8ª Edição Organização do Sistema de Computação � Operação do sistema computação � Uma ou mais CPUs, unidades controladoras se conectam através de um barramento comum que prover acesso para a memória compartilhada. � Execuções silmutâneas das CPUs e dispositivos disputam pelos ciclos de memória. 1.11 Silberschatz, Galvin and Gagne ©2009Fundamentos de Sistemas Operacionais – 8ª Edição Operação do Sistema de Computação � Dispositivos de I/O e a CPU podem executar concorrentemente � Cada unidade de controle é administra um particular tipo de dispositivo � Cada controlador de dispositivo possui um buffer local � A CPU transfere dados entre a memória principal e os buffers locais � A E/S ocorre do dispositivo para o buffer local do controlador � O controlador de dispositivo informa à CPU que sua operação está terminada, causando uma interrupção 1.12 Silberschatz, Galvin and Gagne ©2009Fundamentos de Sistemas Operacionais – 8ª Edição Eventos Comuns nas Interrupçoes � A interrupção geralmente transfere o controle para o serviço de interrupção através do vetor de interrupção, que contém o endereço de todas as rotinas de serviço � A arquitetura de interrupção precisa salvar o endereço da instrução interrompida � As interrupções que chegam são empilhadas enquanto outra interrupção está sendo processada para evitar uma interrupção perdida � Uma trap (interceptação) é 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 10 11 12 11/02/2019 5 1.13 Silberschatz, Galvin and Gagne ©2009Fundamentos de Sistemas Operacionais – 8ª Edição Tratamento de Interrupções � O sistema operacional preserva o estado da CPU armazenando registradores e o contador do programa � Determina que tipo de interrupção ocorreu: � polling � sistema de interrupção vetorizada � Rotinas de núcleo separadas determinam que ação deve ser realizada para cada tipo de interrupção 1.14 Silberschatz, Galvin and Gagne ©2009Fundamentos de Sistemas Operacionais – 8ª Edição Linha do tempo da interrupção 1.15 Silberschatz, Galvin and Gagne ©2009Fundamentos de Sistemas Operacionais – 8ª Edição Estrutura de Armazenamento � Memória principal – única área grande 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 de metal ou vidro cobertos com material de gravação magnético � A superfície do disco é dividida logicamente em trilhas, que são subdivididas em setores � A controladora de disco determina a interação lógica entre o dispositivo e o computador. 13 14 15 11/02/2019 6 1.16 Silberschatz, Galvin and Gagne ©2009Fundamentos de Sistemas Operacionais – 8ª Edição Mecanismo de Disco com Cabeça Móvel 1.17 Silberschatz, Galvin and Gagne ©2009Fundamentos de Sistemas Operacionais – 8ª Edição Hierarquia de Armazenamento � Sistemas de armazenamento organizados em hierarquia � Velocidade � Custo � Volatilidade � Caching – cópia de informações em um sistema de armazenamento mais rápido; a memória principal pode ser vista como um último cache para o armazenamento secundário 1.18 Silberschatz, Galvin and Gagne ©2009Fundamentos de Sistemas Operacionais – 8ª Edição Hierarquia de Dispositivos de Armazenamento 16 17 18 11/02/2019 7 1.19 Silberschatz, Galvin and Gagne ©2009Fundamentos de Sistemas Operacionais – 8ª Edição Caching � Importante princípio, existente/criado em vários níveis em um computador (em hardware, sistema operacional, software) � Informação em uso é copiada de uma memória temporária mais lenta para uma mais rápida. � Memória rápida (cache) é acessada primeira para determinar se a informação está nela � Se presente, a informação é usada diretamente da cache (rápida) � Se não, os dados são copiados para a cache e usados a partir dessa � A cache é menor que a memória que está sendo cacheada � Cache requer uma política de gerenciamento � Essa política envolve tamanho, consistencia e substituição de dados 1.20 Silberschatz, Galvin and Gagne ©2009Fundamentos de Sistemas Operacionais – 8ª Edição Migração do Inteiro A do disco até o Registrador 1.21 Silberschatz, Galvin andGagne ©2009Fundamentos de Sistemas Operacionais – 8ª Edição Estrutura do Acesso Direto à Memória � Usado para dispositivos de E/S de alta velocidade capazes de transmitir informações próximas às velocidades da memória � O controlador de dispositivo transfere blocos de dados diretamente do seu buffer 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 19 20 21 11/02/2019 8 1.22 Silberschatz, Galvin and Gagne ©2009Fundamentos de Sistemas Operacionais – 8ª Edição Arquitetura do Sistema de Computação � Muitos sistemas usam um simples processador de propósito geral (PDAs até mainframes) � Como também, muitos sistemas tem processadores de propósito especial � Sistemas Multiprocessadores crescem em uso e importancia � Também conhecidos como sistemas paralelos, sistemas fortemente acoplados � Vantagens presentes 1. Aumento do throughput 2. Economia de escala 3. Incremento da disponibilidade – suave degradação ou tolerancia falha � Dois tipos 1. Multiprocessamento Assimetrico 2. Multiprocessamento Simetrico 1.23 Silberschatz, Galvin and Gagne ©2009Fundamentos de Sistemas Operacionais – 8ª Edição Como Funciona um Moderno Computador 1.24 Silberschatz, Galvin and Gagne ©2009Fundamentos de Sistemas Operacionais – 8ª Edição Arquitetura Multiprocessamento Simétrico 22 23 24 11/02/2019 9 1.25 Silberschatz, Galvin and Gagne ©2009Fundamentos de Sistemas Operacionais – 8ª Edição Um Design Dual-Core 1.26 Silberschatz, Galvin and Gagne ©2009Fundamentos de Sistemas Operacionais – 8ª Edição Sistemas Clusterizados (agrupados) � Como sistemas multiprocessadores, mas na verdade são multiplos sistemas trabalhando juntos � Usualmente compartilham memória via um storage-area network (SAN) � Prover um service de alta disponibildade o qual sobrevive a falhas � Clustering Assimétrico tem um nó em modo hot-standby � Clustering Simétrico tem multiplos nós executando aplicações e, cada um monitorando o outro � Alguns clusters são construídos para high-performance computing (HPC) � Aplicaçoes devem ser escritas para usar o paralelismo 1.27 Silberschatz, Galvin and Gagne ©2009Fundamentos de Sistemas Operacionais – 8ª Edição Estrutura do Sistema Operacional � Multiprogramação necessária a eficiencia � Único usuário não mantem CPU e dispositivos de I/O em uso todo tempo � Multiprogramação organiza jobs (código e datos) e assim a CPU sempre terá um para executar � Um subconjunto do total de jobs no é mantido na memória principal � Um job é selecionado e executado via job scheduling � Quando ele tem que esperar (um I/O por examplo), o SO chaveia para um outro job � Timesharing (multitarefa) é a extensão logica da multiprogramação na qual a CPU é chaveada tão frequentimente entre os jobs que os usuários podem interagir com cada job enquanto eles executam, criando a computação interativaBatchDigitação.jpg � Tempo de resposta deve ser < 1 segundo � Cada usuário tem pelo menos um programa executando na memória �processo � Se várias tarefas estão prontas para executar ao mesmo tempo� CPU scheduling � Se os processos não cabem na memória, swapping move-os in e out para executar � Memória Virtual permite a execução de processos que não estão completamente na memória principal 25 26 27 11/02/2019 10 1.28 Silberschatz, Galvin and Gagne ©2009Fundamentos de Sistemas Operacionais – 8ª Edição Layout da Memória para Sistema Multiprogramado 1.29 Silberschatz, Galvin and Gagne ©2009Fundamentos de Sistemas Operacionais – 8ª Edição Operações do Sistema Operacional � Guiado por interrupção de hardware � Erros ou requisições de software geram exceção ou trap (interceptação) � Divisão por zero, solicitação de um serviço do sistema operacional � Outros problemas gerados por processo inclue infinito loop, processos modificarem outros ou o próprio sistema operacional � Operaçaõ dual-mode permite o SO proteger a se mesmo além de outros components do sistema � Modo usuário e modo kernel � Bit de mode provido pelo hardware � Possibilita distinguir quando o sistema está executando código do usuário ou do kernel � Instrucões classificadas como privilegiadas, só podem ser executadas em mode kernel � Chamadas ao sistemas muda altera o modo para kernel, o retorno delas altera para usuário 1.30 Silberschatz, Galvin and Gagne ©2009Fundamentos de Sistemas Operacionais – 8ª Edição Transição do Modo Usuário para o Kernel � Timer para prevenir loop infinito / processo consumidor de recursos � Gera uma interrupção depois de especificado período � O sistema operacional determina o contador � Quando o contador zera é gerada uma interrupção � Preserva o processo antes do schedule para retomar o seu processamento ou encerra o programa que excede o tempo concedido 28 29 30 11/02/2019 11 1.31 Silberschatz, Galvin and Gagne ©2009Fundamentos de Sistemas Operacionais – 8ª Edição Gerenciamento de Processo � Um processo é um programa em execução. Ele é a unidade de tarbalho no sistema. Programa é uma entidade passiva, processo é uma entidade ativa. � Processo necessita de recursos para realizar sua tarefa. � CPU, memória, I/O, arquivos � Initicialização de dados � Ao término do process o sistema retorna ao ambiente os recursos reutilizávies � Processo single-threaded tem um program counter que especifica a localização da próxima instrução a executar � Processo executa instruções sequencialmente, uma por vez, até o seu término. � Processo Multi-threaded tem um program counter por trhread. � Sistemas de uso geral tem muitos processos, alguns de usuários, alguns do SO, executando concorrentemente em uma ou mais CPUs � Concorrencia é implementada pela multiplexação da(s) CPU(s) entre os processos / threads. 1.32 Silberschatz, Galvin and Gagne ©2009Fundamentos de Sistemas Operacionais – 8ª Edição Atividades do Gerenciamento de Processo O sistema operacional é responsável pelas seguintes atividades em conjunto com o gerenciador de processos: � Criar e excluir processos, tanto de usuário como do sistema. � Suspender e retomar processos � Oferecer mecanismos para sincronização de processos � Oferecer mecanismos para comunicação entre processos � Oferecer mecanismos para manipulação de deadlock. 1.33 Silberschatz, Galvin and Gagne ©2009Fundamentos de Sistemas Operacionais – 8ª Edição Gerenciamento de Memória � Todos dados na memória antes e depois do processamento � Todas instruções na memória na ordem para executar � Gerenciamento de memória determina o que está na memória e quando � Otimizando a utilização da CPU e tempo de resposta do computador para os usuários � Atividades do gerenciamento de memória � Mantem informações de quais partes da memória estão correntemente em uso e por quem � Decidindo quais processos (ou partes deles) e dados mover para fora ou trazer para memória � Alocando e desalocando espaço de memória quando necessário 31 32 33 11/02/2019 12 1.34 Silberschatz, Galvin and Gagne ©2009Fundamentos de Sistemas Operacionais – 8ª Edição Gerenciamento de Memória � O SO dá uma visão uniforme, visão lógica de armazenamento da informação � Abstrai propriedades físicas para a unidade de armazenamento - file � Cada mídia é controlada por dispositivo (ex., disk drive, tape drive) � Variações de propriedades incluem velocidade de acesso, capacidade, taxa de transferencia de dados, métodos de acesso (sequencial ou randomica) � Gerenciamento do Sistema de arquivos � Arquivos normalmente organizados em diretórios � controle de acesso na maioria dos sistemas determina quem pode e o que pode � Atividades do SO inclue � Criação e deleção de arquivos e diretórios � Primitivas para manipulararquivos e dirs � Mapeamento de arquivos na memória secundária � Backup de arquivos 1.35 Silberschatz, Galvin and Gagne ©2009Fundamentos de Sistemas Operacionais – 8ª Edição Gerenciamento de Armazenamento de Massa � Usualmente discos são usados para armazenar dados que não cabem na memória principal ou que devem ser mantidos por um longo período de tempo � Gerenciamento apropriado é de importancia central � O desemepenho da operação de um computador depende do subsistema de I/O e seus algoritmos � Atividades do SO � Gerenciamento do espaço livre � Alocação de espaço de armazenamento � Schedule de disco � Alguns armazenamentos não precisam ser rápidos � Armazenamento terciário inclue armazenamento optical, fita magnética � Devem ser gerenciadas � Varia entre WORM (write-once, read-many-times) and RW (read-write) 1.36 Silberschatz, Galvin and Gagne ©2009Fundamentos de Sistemas Operacionais – 8ª Edição Desempenho dos Vários Níves de Armazenamento � Movimento entre os níveis de hierárquia de armazenamento pode ser explicito ou implicito 34 35 36 11/02/2019 13 1.37 Silberschatz, Galvin and Gagne ©2009Fundamentos de Sistemas Operacionais – 8ª Edição Migração do Inteiro A do Disco para Registrador � Ambiente multitarefa deve ser cuidadoso em virtude da reduncia da informação causada pela propagação do armazenamento gerado na hierarquia de memória � Ambiente multiprocessador deve prover coerencia de cache em hardware de tal forma que todas CPUs tenham o mais recente valor refletido em suas caches � Ambientes distribuídos a situação é ainda mais complexa � Várias cópias de um dado pode existir � Várias soluções são mostradas no Capítulo 17 1.38 Silberschatz, Galvin and Gagne ©2009Fundamentos de Sistemas Operacionais – 8ª Edição Subsistema I/O � Um dos propósitos do SO é esconder as peculiaridades dos dispositivos de hardware do usuário � Subsistema I/O é responsável por � Gerenciamento de memória de I/O incluindo buferização (armazenamento de dados temporariamente enquanto está ocorrendo a transferencia), caching (armazenamento de partes dos dados num memória de maior velocidade para melhoria do desempenho), spooling (sobreposição da saída de um job com a entrada de outros) � Interface Geral device-driver � Drivers específicos para dispositivos de hardware 1.39 Silberschatz, Galvin and Gagne ©2009Fundamentos de Sistemas Operacionais – 8ª Edição Proteção e Segurança � Proteção – qualquer mecanismo para controlar o acesso de processos ou usuários definido pelo SO � Segurança – defesas do sistema contra ataques internos e externo � Grande variedade, incluindo denial-of-service, worms, viruses, identity theft, theft of service � Sistemas primeiro distingue entre os usuários, para determinar quem pode fazer e o que. � Identidade de usuários (user IDs, security IDs) que inclui nome e um número associado, um por usuário � O ID do usuário é então associado com todos arquivos, processos desse usuário para determinar o controle de acesso � Identificador de Grupo (group ID) permite agrupar usuários e com isto definir e controlar a nível de grupo em relação a processos, arquivos. � Escalação de Privilégios permite usuários alterar para um efetivo ID com mais direitos. 37 38 39 11/02/2019 14 1.40 Silberschatz, Galvin and Gagne ©2009Fundamentos de Sistemas Operacionais – 8ª Edição Ambientes de Computação � Computação Tradicional � Evolução ao longo do tempo � Ambientes de Escritório � PCs conectados em redes, terminais ligados a mainframes ou minicomputadores provendo procesamentos batch e de timesharing � Portais corporativos permite acesso locais e remotos para os mesmos recursos � Redes domésticas � Único computador utilizando modem � Agora firewalls, protegendo a rede 1.41 Silberschatz, Galvin and Gagne ©2009Fundamentos de Sistemas Operacionais – 8ª Edição Ambientes de Computação (Cont) � Computação Cliente-Servidor � Terminais burros suplantados por smart PCs � Os servidores, respondem as requisições geradas pelos clientes � Servidor de serviços prover uma interface para o cliente requisitar serviços (i.e. database) � Servidor de arquivo prover uma interface para os clientes armazenar e recuperar arquivos 1.42 Silberschatz, Galvin and Gagne ©2009Fundamentos de Sistemas Operacionais – 8ª Edição Computação em Pares � É um outro modelo de sistema distribuído � P2P não faz destinção entre clientes e servidores � Cada nó pode atuar como um cliente, servidor ou ambos � Para ingressar numa rede P2P o nó deve: � Registrar seu serviço numa central de serviço lookup na rede, ou � Através de uma requisição broadcast (discovery protocol) solicita o serviço desejado � Exemplos incluem Napster e Gnutella 40 41 42 11/02/2019 15 1.43 Silberschatz, Galvin and Gagne ©2009Fundamentos de Sistemas Operacionais – 8ª Edição Computação Baseda na Web � A Web se tornou onipresente � PCs ainda são os dispositivos de acesso mais comuns � Muitos outros dispositivos (móveis) estão se conectando cada vez mais a rede para permitir web acesso � Surgem novas categorias de dispositivos para gerenciar trafego e otimizar o uso dos seviços web entre servidores similares: load balancers � Uso de SO’s como o Windows 95, que exercia apenas o papel de cliente, tem evoluído para Linux and Windows XP, os quais podem ser clientes e servidores 1.44 Silberschatz, Galvin and Gagne ©2009Fundamentos de Sistemas Operacionais – 8ª Edição Sistemas Operacionais de Código-Fonte Aberto � Sistemas Operacionais são disponibilizados em formato de código fonte em vez do como código binário compilado ou código-fechado � Movimento contra a proteção de cópias e Gerenciamento de Direitos Digitais (DRM) � Iniciado pela Free Software Foundation (FSF), baseado no conceito de “copyleft” GNU Public License (GPL) � Exemplos incluem GNU/Linux, BSD UNIX (incluído no kernel do Mac OS X), e Sun Solaris Silberschatz, Galvin and Gagne ©2009Fundamentos de Sistemas Operacionais – 8ª Edição Fim do Capítulo 1 43 44 45
Compartilhar