Capítulo 1: Introdução Operating System Concepts – 8th Edition Adaptado de Silberschatz, Galvin and Gagne ©2009 Capítulo 1: Introdução Funcionalidades de sistemas operacionais Organização de sistemas computacionais Arquitetura de sistemas computacionais Estrutura de sistemas operacionais Operações de sistemas operacionais Gerenciamento de processos Gerenciamento de memória Sistemas de armazenamento Proteção e segurança Sistemas distribuídos Sistemas de propósito especial Ambientes computacionais Sistemas operacionais de código aberto Sistemas Operacionais - Prof. Natalia C. Fernandes 1.2 Adaptado de Silberschatz, Galvin and Gagne ©2009 O que é um sistema operacional? Programa que age como intermediário entre o usuário do computador e o hardware do computador Interface entre o usuário e o hardware Objetivos do sistema operacional: Executar programas do usuário e tornar a solução de problemas do usuário mais simples Tornar o sistema de computação conveniente para uso Usar o hardware do computador de forma eficiente Sistemas Operacionais - Prof. Natalia C. Fernandes 1.3 Adaptado de Silberschatz, Galvin and Gagne ©2009 Estrutura dos sistemas computacionais Sistemas computacionais são compostos por quatro componentes: Hardware – provê recursos computacionais básicos Sistema operacional Controla e coordena o uso do hardware entre várias aplicações e usuários Programas aplicativos – definem a forma como os recursos do sistema são utilizados para solucionar problemas computacionais dos usuários CPU, memória, dispositivos de E/S Processadores de texto, compiladores, navegadores web, sistemas de banco de dados, jogos, etc. Usuários Pessoas, máquinas, outros computadores Sistemas Operacionais - Prof. Natalia C. Fernandes 1.4 Adaptado de Silberschatz, Galvin and Gagne ©2009 Componentes do Sistema de Computação Usuário 1 Usuário 2 Compilador de texto Editor Usuário 3 Navegador Usuário n de dados Banco Aplicações e programas do sistema Sistema Operacional Dispositivo físico Sistemas Operacionais - Prof. Natalia C. Fernandes 1.5 Adaptado de Silberschatz, Galvin and Gagne ©2009 Funções dos sistemas operacionais Depende do ponto de vista Usuário Conveniência Simplicidade de uso Sistema Alocação de recursos – Múltiplos usuários, múltiplas aplicações Dispositivos embarcados Otimização do uso e da bateria Às vezes, sem interface com usuário Execução de poucas funções Etc.; Sistemas Operacionais - Prof. Natalia C. Fernandes 1.6 Adaptado de Silberschatz, Galvin and Gagne ©2009 Definição de sistema operacional Alocador de recursos Gerencia de todos os recursos Dispositivos de entrada e saída (E/S), arquivos, CPU, memória, etc.; Resolução de conflitos de alocação Quem usa primeiro, quanto tempo cada um usa, como é feito o uso, quem pode acessar, etc. Programa de controle Controle da execução de programas Prevenção de erros – Uso impróprio dos recursos – Operações não permitidas Sistemas Operacionais - Prof. Natalia C. Fernandes 1.7 Adaptado de Silberschatz, Galvin and Gagne ©2009 Definição de sistema operacional Não existe definição universalmente aceita Definições genéricas Conjunto de programas que gerenciam os recursos de hardware do computador e provêem uma interface de serviços para as aplicações Programa em execução a todo o momento no computador (kernel) – Os demais programas são aplicações do usuário ou do sistema » Ex: Interface gráfica não é parte do sistema operacional Sistemas Operacionais - Prof. Natalia C. Fernandes 1.8 Adaptado de Silberschatz, Galvin and Gagne ©2009 Definições de sistema operacional Multiusuários x monousuário Multiusuários Acesso simultâneo de diversos usuários Monousuário Acesso de único usuário por vez – Diferente de existirem diversas contas de usuários Sistemas Operacionais - Prof. Natalia C. Fernandes 1.9 Adaptado de Silberschatz, Galvin and Gagne ©2009 Definições de sistema operacional Multitarefa x monotarefa Multitarefa Vários programas em execução simultaneamente – Compartilhamento de tempo Tipos – Preemptivo – tempo dividido em fatias e uma fatia é dedicada a cada processo – Cooperativo – Cada processo deve ceder tempo para outros processos Monotarefa Apenas uma tarefa é permitida por vez Sistemas Operacionais - Prof. Natalia C. Fernandes 1.10 Adaptado de Silberschatz, Galvin and Gagne ©2009 Definições de sistema operacional Sistemas operacionais em tempo real Sistema operacional multitarefa Execução de aplicações em tempo real Resposta rápida e previsível de eventos – Tempo máximo de execução de um processo Sistemas operacionais distribuídos Sistema operacional que gerencia diversas máquinas e faz com que pareçam apenas uma única máquina Sistemas operacionais embarcados Projetados para sistemas embarcados Máquinas pequenas com baixa autonomia e poucos recursos Sistemas Operacionais - Prof. Natalia C. Fernandes 1.11 Adaptado de Silberschatz, Galvin and Gagne ©2009 Inicialização do sistema Programa de inicialização (bootstrap program) ou Basic Input/Output System (BIOS) Carregado ao ligar ou reiniciar o computador Armazenado em Read Only Memory (ROM) ou Erasable Programmable Read-Only Memory (EPROM) Principais funções: Verificar o hardware Carregar o sistema operacional Iniciar a execução do sistema operacional Sistemas Operacionais - Prof. Natalia C. Fernandes 1.12 Adaptado de Silberschatz, Galvin and Gagne ©2009 Organização dos sistemas de computação Operação do sistema de computação CPUs e controladores conectados a um barramento comum Acesso à memória compartilhada – Execução concorrente Sistemas Operacionais - Prof. Natalia C. Fernandes 1.13 Adaptado de Silberschatz, Galvin and Gagne ©2009 Operação de sistemas de computação Execução concorrente de dispositivos de E/S e de CPU Cada controlador é responsável por um tipo de dispositivo particular Cada controlador de dispositivo tem um buffer local CPU move dados de/para uma memória principal para/de um buffer local A entrada/saída ocorre do dispositivo para o buffer local Controlador informa a CPU sobre o fim da operação de E/S através de interrupções Sistemas Operacionais - Prof. Natalia C. Fernandes 1.14 Adaptado de Silberschatz, Galvin and Gagne ©2009 Interrupções Na recepção de uma interrupção na CPU Execução da tarefa atual é pausada Transferência do controle para a rotina de interrupção Recepção parâmetros para saber qual rotina de interrupção chamar Armazenamento do endereço de execução atual – Retorno após o processamento do evento que gerou uma interrupção Chegada de interrupções é desabilitada durante a execução de uma interrupção Prevenção de perda de interrupções Tipos de interrupção Geradas por hardware Trap Interrupção causada por software devido a um erro Sistemas Operacionais - Prof. Natalia C. Fernandes 1.15 Adaptado de Silberschatz, Galvin and Gagne ©2009 Funcionamento das interrupções Interrupções de E/S Fonte: http://marcelmesmo.blogspot.com/2011/11/multiprogramacao.html#.T0uoe_EgfkU Sistemas Operacionais - Prof. Natalia C. Fernandes 1.16 Adaptado de Silberschatz, Galvin and Gagne ©2009 Funcionamento das interrupções Sistemas Operacionais - Prof. Natalia C. Fernandes 1.17 Adaptado de Silberschatz, Galvin and Gagne ©2009 Funcionamento das interrupções Processo do usuário requisita E/S (troca de processos) Pedido de E/S chega à controladora do dispositivo Processamento de E/S Sistemas Operacionais - Prof. Natalia C. Fernandes 1.18 Processamento da interrupção (rotina de interrupção) Finalização de E/S e envio de interrupção Adaptado de Silberschatz, Galvin and Gagne ©2009 Estruturas de Armazenamento Organização hierárquica regida por: Velocidade Custo Volatilidade Tipos principais Memória principal Único recursos de amplo armazenamento que pode ser acessado pela CPU Acesso aleatório Tipicamente volátil Armazenamento secundário Extensão da memória principal para prover ampla capacidade de armazenamento não volátil Sistemas Operacionais - Prof. Natalia C. Fernandes 1.19 Adaptado de Silberschatz, Galvin and Gagne ©2009 Caching Processo para armazenar as informações em uso em um sistema de armazenamento mais rápido Ex: Memória principal funciona como cache para memória secundária Idéia que norteia a hierarquia de memórias Informação copiada de memórias mais lentas para memórias mais rápidas temporariamente Uso Se dado requisitado está no cache, use-o. Senão, ir para o próximo nível na hierarquia de memória Sistemas Operacionais - Prof. Natalia C. Fernandes 1.20 Adaptado de Silberschatz, Galvin and Gagne ©2009 Hierarquia de memórias Maior custo e maior velocidade Sistemas Operacionais - Prof. Natalia C. Fernandes 1.21 Adaptado de Silberschatz, Galvin and Gagne ©2009 Desafios do uso de caching Gerenciamento do cache Modificação de dados Propagação para outros níveis da hierarquia de memória Uso de múltiplos caches em um mesmo nível Seleção de dados no cache Qual dado apagar ao se inserir um dado novo? Projeto de tamanhos de caches Sistemas Operacionais - Prof. Natalia C. Fernandes 1.22 Adaptado de Silberschatz, Galvin and Gagne ©2009 Arquitetura de sistemas computacionais Sistemas com multiprocessadores Crescente importância Vantagens Aumento da vazão Aumento da confiabilidade – Degradação suave – Tolerância a falhas Tipos: 1. Multiprocessamento assimétrico – 2. Processador mestre Multiprocessamento simétrico Sistemas Operacionais - Prof. Natalia C. Fernandes 1.23 Adaptado de Silberschatz, Galvin and Gagne ©2009 Multiprocessamento simétrico Sistemas Operacionais - Prof. Natalia C. Fernandes 1.24 Adaptado de Silberschatz, Galvin and Gagne ©2009 Projeto de dual core Sistemas Operacionais - Prof. Natalia C. Fernandes 1.25 Adaptado de Silberschatz, Galvin and Gagne ©2009 Sistemas em cluster Múltiplos sistemas trabalhando em conjunto Diferente de multiprocessamento Usualmente usa uma storage-area network (SAN) para compartilhamento de memória Provê alta disponibilidade Tolerância a falhas Sistemas Operacionais - Prof. Natalia C. Fernandes 1.26 Adaptado de Silberschatz, Galvin and Gagne ©2009 Sistemas em cluster Sistemas Operacionais - Prof. Natalia C. Fernandes 1.27 Adaptado de Silberschatz, Galvin and Gagne ©2009 Sistemas em cluster Tipos Clustering assimétrico Uma máquina monitorando – Detecção de falha faz uma máquina monitoradora se tornar executora Clustering simétrico Todos os nós executam aplicações e se monitoram High-performance computing (HPC) Aplicações escritas com suporte a paralelização Sistemas Operacionais - Prof. Natalia C. Fernandes 1.28 Adaptado de Silberschatz, Galvin and Gagne ©2009 Estrutura do sistema operacional Multiprogramação Garante eficiência Uso de CPU interrompido por um processo durante tempo de espera por E/S – Troca de processos Organiza os jobs de forma que a CPU não fique ociosa Manutenção de um subconjunto de jobs na memória Seleção de qual job executar através de escalonamento Sistemas Operacionais - Prof. Natalia C. Fernandes 1.29 Adaptado de Silberschatz, Galvin and Gagne ©2009 Estrutura do sistema operacional Estrutura da memória em sistemas multiprogramados Sistemas Operacionais - Prof. Natalia C. Fernandes 1.30 Adaptado de Silberschatz, Galvin and Gagne ©2009 Estrutura do sistema operacional Compartilhamento de tempo ou multitarefa Troca de jobs na CPU frequente Simula um computador interativo – Parece que existem vários jobs sendo executados simultaneamente » Percepção humana: tempo de resposta inferior a 1 segundo Sistemas Operacionais - Prof. Natalia C. Fernandes 1.31 Adaptado de Silberschatz, Galvin and Gagne ©2009 Sistemas Operacionais - Prof. Natalia C. Fernandes 1.32 Adaptado de Silberschatz, Galvin and Gagne ©2009 Revisão Funções do sistema operacional Interface entre o hardware e o usuário Alocação de recursos Quem usa o que e em que momento Controle de execução Proteção e segurança Sistemas Operacionais - Prof. Natalia C. Fernandes 1.33 Adaptado de Silberschatz, Galvin and Gagne ©2009 Revisão Conceito do multiprogramação ou multitarefa Problema Fonte: http://marcelmesmo.blogspot.com/2011/11/multiprogramacao.html#.T0uoe_EgfkU Evitar ociosidade Sistemas Operacionais - Prof. Natalia C. Fernandes 1.34 Adaptado de Silberschatz, Galvin and Gagne ©2009 Revisão Conceito do multiprogramação ou multitarefa Preemptivo x cooperativo Preemptivo Memória Processo 2 Processo 3 Processo n Processo 1 Processo 2 Processo 1 Escalonador da CPU – Seleção de processos ... 1 2 3 n Tempo Slot de tempo Sistemas Operacionais - Prof. Natalia C. Fernandes Processo Processo Processo . . . Processo 1.35 Adaptado de Silberschatz, Galvin and Gagne ©2009 Revisão Conceito do multiprogramação ou multitarefa Preemptivo x cooperativo Cooperativo – Processos cedem o acesso a CPU – Usado em sistemas de tempo real » Tempo máximo de execução Troca de contexto Armazenamento do estado do processo Recuperação posterior da execução – Registradores – Registrador de instruções – Outros Intervalo entre troca de processos Sistemas Operacionais - Prof. Natalia C. Fernandes 1.36 Adaptado de Silberschatz, Galvin and Gagne ©2009 Revisão Interrupções Recepção da interrupção Pausa da CPU Rotina de interrupção Tipos Hardware e trap Chamadas de sistema Funções executadas pelo sistema operacional Uso Modo usuário x modo kernel Modo bit Sistemas Operacionais - Prof. Natalia C. Fernandes 1.37 Adaptado de Silberschatz, Galvin and Gagne ©2009 Revisão Hierarquia de memória Velocidade x custo x volatilidade Caching Gerenciamento de cache Sistemas Operacionais - Prof. Natalia C. Fernandes 1.38 Adaptado de Silberschatz, Galvin and Gagne ©2009 Operações do Sistema Operacional Sistemas operacionais são dirigidos por interrupções Interrupções por hardware Interrupções por erro ou pedido de software (exceções ou traps) Divisão por zero Loop infinito Tentativas de modificação de outros processos ou do sistema operacional Proteção do sistema operacional Modo dual Modo usuário – Baixo privilégio Modo kernel – Alto privilégio Modo bit provido por hardware Detecta durante a execução do sistema se é código de usuário ou de kernel Instruções privilegiadas só são executadas em modo kernel Sistemas Operacionais - Prof. Natalia C. Fernandes 1.39 Adaptado de Silberschatz, Galvin and Gagne ©2009 Operações do Sistema Operacional Sistemas Operacionais - Prof. Natalia C. Fernandes 1.40 Adaptado de Silberschatz, Galvin and Gagne ©2009 Gerenciamento de processos Processo é um programa em execução Programa Entidade passiva Conjunto de regras de execução Processo Entidade ativa Composta por programa e recursos alocados Processos de thread único e de múltiplos threads Recursos compartilhados Um contador de programa por thread Sistemas Operacionais - Prof. Natalia C. Fernandes 1.41 Adaptado de Silberschatz, Galvin and Gagne ©2009 Gerenciamento de processos Responsabilidades do sistema operacional: Criar e deletar processos do usuário e do sistema Suspender e resumir processos Prover mecanismos para sincronizar processos Prover mecanismos para fazer comunicação entre processos Prover mecanismos para tratar deadlocks Deadlock – Suspensão por tempo infinito de processos devido à problemas na alocação de recursos Sistemas Operacionais - Prof. Natalia C. Fernandes 1.42 Adaptado de Silberschatz, Galvin and Gagne ©2009 Gerenciamento de memória Memória armazena: Dados antes e após o processamento Todas as instruções em ordem de execução Gerenciamento de memória Determinação do conteúdo da memória Otimização da utilização da CPU e da resposta do computador aos usuários Atividades de gerenciamento de memória Gerenciar quais processos tem acesso a cada parte da memória Decidir quais processos e dados devem ser mantidos na memória Alocar e desalocar memória de acordo com as necessidades Sistemas Operacionais - Prof. Natalia C. Fernandes 1.43 Adaptado de Silberschatz, Galvin and Gagne ©2009 Gerenciamento de armazenamento Provimento de uma visão lógica e uniforme do armazenamento da informação Abstração das propriedades físicas para uma unidade lógica de armazenamento (arquivo) Gerenciamento do sistema de arquivos Arquivos organizados em diretórios Controle de acesso à arquivos e diretórios Atividades Criação e deleção de arquivos e diretórios Primitivas de manipulação de arquivos e diretórios Mapeamento de arquivos no armazenamento secundário Sistemas Operacionais - Prof. Natalia C. Fernandes 1.44 Adaptado de Silberschatz, Galvin and Gagne ©2009 Gerenciamento de armazenamento em massa Discos são usados para armazenar dados que não cabem na memória ou que precisam ser armazenados por um longo tempo Interfere no desempenho de todo o sistema Atividades do sistema operacional Gerenciamento de espaço livre Alocação de recursos para armazenamento Escalonamento de disco Sistemas Operacionais - Prof. Natalia C. Fernandes 1.45 Adaptado de Silberschatz, Galvin and Gagne ©2009 Desempenho de diferentes níveis de armazenamento Movimentos entre diferentes níveis de memória podem ser explícitos ou implícitos Sistemas Operacionais - Prof. Natalia C. Fernandes 1.46 Adaptado de Silberschatz, Galvin and Gagne ©2009 Migração de dados do disco para o registrador Ambientes multitarefas precisam gerenciar o uso do valor mais recente Em qualquer nível da hierarquia Ex: Transferência do inteiro A do disco ao registrador Ambientes multiprocessados precisam prover coerência de cache Todas as CPUs precisam ter o valor mais recente em seus caches Situação mais complexa em sistemas distribuídos Podem existir várias cópias dos dados Sistemas Operacionais - Prof. Natalia C. Fernandes 1.47 Adaptado de Silberschatz, Galvin and Gagne ©2009 Subsistema de E/S Responsabilidades do sistema de entrada e saída: Gerenciamento de memória para E/S incluindo Buffering – armazenamento temporário durante transferência Caching – armazenamento de partes dos dados para dar desempenho em armazenamento rápido Spooling – sobreposição de saída de um job que serve como entrada para outro job Interface de driver de dispositivo Drivers para dispositivos de hardware específico Sistemas Operacionais - Prof. Natalia C. Fernandes 1.48 Adaptado de Silberschatz, Galvin and Gagne ©2009 Proteção e segurança Proteção – qualquer mecanismo para controlar o acesso de processos ou usuários a recursos definidos pelo sistema operacional Segurança – defesa do sistema contra ataques internos e externos Identificação como base para segurança e proteção Identificação de usuários (user IDs, security IDs) incluindo nome e número, um por usuário Identificação de usuário com todos os arquivos e processos para determinar controle de acesso Identificador de grupo (group ID) para identificar um grupo de usuários Sistemas Operacionais - Prof. Natalia C. Fernandes 1.49 Adaptado de Silberschatz, Galvin and Gagne ©2009 End of Chapter 1 Operating System Concepts – 8th Edition Adaptado de Silberschatz, Galvin and Gagne ©2009