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