O que é um sistema operacional?

Propaganda
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
Download