Upload
internet
View
108
Download
0
Tags:
Embed Size (px)
Citation preview
Adaptado de Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition
Capítulo 1: Introdução
1.2 Adaptado de Silberschatz, Galvin and Gagne ©2009Sistemas Operacionais - Prof. Natalia C. Fernandes
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
1.3 Adaptado de Silberschatz, Galvin and Gagne ©2009Sistemas Operacionais - Prof. Natalia C. Fernandes
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
1.4 Adaptado de Silberschatz, Galvin and Gagne ©2009Sistemas Operacionais - Prof. Natalia C. Fernandes
Estrutura dos sistemas computacionais
Sistemas computacionais são compostos por quatro componentes:
Hardware – provê recursos computacionais básicos
CPU, memória, dispositivos de E/S
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
Processadores de texto, compiladores, navegadores web, sistemas de banco de dados, jogos, etc.
Usuários
Pessoas, máquinas, outros computadores
1.5 Adaptado de Silberschatz, Galvin and Gagne ©2009Sistemas Operacionais - Prof. Natalia C. Fernandes
Componentes do Sistema de Computação
Usuário Usuário 11
Usuário Usuário 22
Usuário Usuário 33
Usuário Usuário nn
Compilador Editor Navegador Banco de texto de dados
Aplicações e programas do sistemaAplicações e programas do sistema
Sistema OperacionalSistema Operacional
Dispositivo Dispositivo físicofísico
1.6 Adaptado de Silberschatz, Galvin and Gagne ©2009Sistemas Operacionais - Prof. Natalia C. Fernandes
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.;
1.7 Adaptado de Silberschatz, Galvin and Gagne ©2009Sistemas Operacionais - Prof. Natalia C. Fernandes
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
1.8 Adaptado de Silberschatz, Galvin and Gagne ©2009Sistemas Operacionais - Prof. Natalia C. Fernandes
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
1.9 Adaptado de Silberschatz, Galvin and Gagne ©2009Sistemas Operacionais - Prof. Natalia C. Fernandes
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
1.10 Adaptado de Silberschatz, Galvin and Gagne ©2009Sistemas Operacionais - Prof. Natalia C. Fernandes
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
1.11 Adaptado de Silberschatz, Galvin and Gagne ©2009Sistemas Operacionais - Prof. Natalia C. Fernandes
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
1.12 Adaptado de Silberschatz, Galvin and Gagne ©2009Sistemas Operacionais - Prof. Natalia C. Fernandes
Inicialização do sistema
Programa de inicialização (bootstrap program)
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
1.13 Adaptado de Silberschatz, Galvin and Gagne ©2009Sistemas Operacionais - Prof. Natalia C. Fernandes
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
1.14 Adaptado de Silberschatz, Galvin and Gagne ©2009Sistemas Operacionais - Prof. Natalia C. Fernandes
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
1.15 Adaptado de Silberschatz, Galvin and Gagne ©2009Sistemas Operacionais - Prof. Natalia C. Fernandes
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
1.16 Adaptado de Silberschatz, Galvin and Gagne ©2009Sistemas Operacionais - Prof. Natalia C. Fernandes
Funcionamento das interrupções
Interrupções de E/S
Fonte: http://marcelmesmo.blogspot.com/2011/11/multiprogramacao.html#.T0uoe_EgfkU
1.17 Adaptado de Silberschatz, Galvin and Gagne ©2009Sistemas Operacionais - Prof. Natalia C. Fernandes
Funcionamento das interrupções
1.18 Adaptado de Silberschatz, Galvin and Gagne ©2009Sistemas Operacionais - Prof. Natalia C. Fernandes
Funcionamento das interrupçõesProcesso do
usuário requisita E/S
(troca de processos)
Pedido de E/S chega à controladora do dispositivo Processamento
de E/S
Finalização de E/Se envio de interrupção
Processamento da interrupção
(rotina de interrupção)
1.19 Adaptado de Silberschatz, Galvin and Gagne ©2009Sistemas Operacionais - Prof. Natalia C. Fernandes
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
1.20 Adaptado de Silberschatz, Galvin and Gagne ©2009Sistemas Operacionais - Prof. Natalia C. Fernandes
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
1.21 Adaptado de Silberschatz, Galvin and Gagne ©2009Sistemas Operacionais - Prof. Natalia C. Fernandes
Hierarquia de memórias
Maior custo e maior
velocidade
1.22 Adaptado de Silberschatz, Galvin and Gagne ©2009Sistemas Operacionais - Prof. Natalia C. Fernandes
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
1.23 Adaptado de Silberschatz, Galvin and Gagne ©2009Sistemas Operacionais - Prof. Natalia C. Fernandes
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
– Processador mestre
2. Multiprocessamento simétrico
1.24 Adaptado de Silberschatz, Galvin and Gagne ©2009Sistemas Operacionais - Prof. Natalia C. Fernandes
Multiprocessamento simétrico
1.25 Adaptado de Silberschatz, Galvin and Gagne ©2009Sistemas Operacionais - Prof. Natalia C. Fernandes
Projeto de dual core
1.26 Adaptado de Silberschatz, Galvin and Gagne ©2009Sistemas Operacionais - Prof. Natalia C. Fernandes
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
1.27 Adaptado de Silberschatz, Galvin and Gagne ©2009Sistemas Operacionais - Prof. Natalia C. Fernandes
Sistemas em cluster
1.28 Adaptado de Silberschatz, Galvin and Gagne ©2009Sistemas Operacionais - Prof. Natalia C. Fernandes
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
1.29 Adaptado de Silberschatz, Galvin and Gagne ©2009Sistemas Operacionais - Prof. Natalia C. Fernandes
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
1.30 Adaptado de Silberschatz, Galvin and Gagne ©2009Sistemas Operacionais - Prof. Natalia C. Fernandes
Estrutura do sistema operacional
Estrutura da memória em sistemas multiprogramados
1.31 Adaptado de Silberschatz, Galvin and Gagne ©2009Sistemas Operacionais - Prof. Natalia C. Fernandes
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
1.32 Adaptado de Silberschatz, Galvin and Gagne ©2009Sistemas Operacionais - Prof. Natalia C. Fernandes
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
1.33 Adaptado de Silberschatz, Galvin and Gagne ©2009Sistemas Operacionais - Prof. Natalia C. Fernandes
Operações do Sistema Operacional
1.34 Adaptado de Silberschatz, Galvin and Gagne ©2009Sistemas Operacionais - Prof. Natalia C. Fernandes
1.35 Adaptado de Silberschatz, Galvin and Gagne ©2009Sistemas Operacionais - Prof. Natalia C. Fernandes
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
1.36 Adaptado de Silberschatz, Galvin and Gagne ©2009Sistemas Operacionais - Prof. Natalia C. Fernandes
Revisão
Conceito do multiprogramação ou multitarefa
Problema
Evitar ociosidadeFonte: http://marcelmesmo.blogspot.com/2011/11/multiprogramacao.html#.T0uoe_EgfkU
1.37 Adaptado de Silberschatz, Galvin and Gagne ©2009Sistemas Operacionais - Prof. Natalia C. Fernandes
Revisão
Conceito do multiprogramação ou multitarefa
Preemptivo x cooperativo
PreemptivoMemória
Processo 1Processo 2Processo 3...Processo n
TempoSlot de tempo
Pro
cess
o
1 Pro
cess
o
2 Pro
cess
o
1 Pro
cess
o
n Pro
cess
o
3 Pro
cess
o
2...
Escalonador da CPU – Seleção de processos
1.38 Adaptado de Silberschatz, Galvin and Gagne ©2009Sistemas Operacionais - Prof. Natalia C. Fernandes
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
1.39 Adaptado de Silberschatz, Galvin and Gagne ©2009Sistemas Operacionais - Prof. Natalia C. Fernandes
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
1.40 Adaptado de Silberschatz, Galvin and Gagne ©2009Sistemas Operacionais - Prof. Natalia C. Fernandes
Revisão
Hierarquia de memória
Velocidade x custo x volatilidade
Caching
Gerenciamento de cache
1.41 Adaptado de Silberschatz, Galvin and Gagne ©2009Sistemas Operacionais - Prof. Natalia C. Fernandes
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
1.42 Adaptado de Silberschatz, Galvin and Gagne ©2009Sistemas Operacionais - Prof. Natalia C. Fernandes
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
1.43 Adaptado de Silberschatz, Galvin and Gagne ©2009Sistemas Operacionais - Prof. Natalia C. Fernandes
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
1.44 Adaptado de Silberschatz, Galvin and Gagne ©2009Sistemas Operacionais - Prof. Natalia C. Fernandes
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
1.45 Adaptado de Silberschatz, Galvin and Gagne ©2009Sistemas Operacionais - Prof. Natalia C. Fernandes
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
1.46 Adaptado de Silberschatz, Galvin and Gagne ©2009Sistemas Operacionais - Prof. Natalia C. Fernandes
Desempenho de diferentes níveis de armazenamento
Movimentos entre diferentes níveis de memória podem ser explícitos ou implícitos
1.47 Adaptado de Silberschatz, Galvin and Gagne ©2009Sistemas Operacionais - Prof. Natalia C. Fernandes
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
1.48 Adaptado de Silberschatz, Galvin and Gagne ©2009Sistemas Operacionais - Prof. Natalia C. Fernandes
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
1.49 Adaptado de Silberschatz, Galvin and Gagne ©2009Sistemas Operacionais - Prof. Natalia C. Fernandes
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
1.50 Adaptado de Silberschatz, Galvin and Gagne ©2009Sistemas Operacionais - Prof. Natalia C. Fernandes
Computação distribuída
Coleção de sistemas separados, possivelmente heterogêneos e interligados por rede
Sistemas operacionais de rede provêem uma interface entre sistemas através da rede
Esquemas de comunicação permitem a troca de mensagens entre sistemas
Ilusão de um sistema único
1.51 Adaptado de Silberschatz, Galvin and Gagne ©2009Sistemas Operacionais - Prof. Natalia C. Fernandes
Sistemas de propósito especial
Sistemas embarcados de tempo real
Grande variabilidade, propósito específico, sistema operacional limitado e de tempo real
Sistemas multimídia
Entrega de fluxos de dados de acordo com as restrições de tempo
Sistemas handheld
PDAs, smart phones
CPU, memória e bateria limitados
Sistema operacional limitado, com E/S limitado
1.52 Adaptado de Silberschatz, Galvin and Gagne ©2009Sistemas Operacionais - Prof. Natalia C. Fernandes
Sistemas operacionais de código aberto
Sistemas operacionais disponíveis em formato de código fonte ao invés de binário com fonte fechada
Iniciado pelo Free Software Foundation (FSF), o qual deu início a GNU Public License (GPL)
Exemplos incluem o GNU/Linux e o BSD UNIX (incluindo o núcleo do Mac OS X), e muitos outros
Adaptado de Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition
End of Chapter 1