Sistemas Operacionais

Propaganda
Sistemas Operacionais
Ivan Saraiva Silva
Ciência da Computação
2005.1
Programa da Disciplina
• Introdução
–
–
–
–
O que é um Sistema Operacional
Funções de um SO
Componentes de um SO
Tipos de SO
• Gerência de Processos
–
–
–
–
Conceito de processo
Estados de processo
Tipos de processo
Sincronização
• Semáforos, monitores,
– Comunicação entre processos
– Problemas
• Deadlock,
• Starvation
Programa da Disciplina
• Gerência de Memória
– Endereços lógicos e
físicos.
– Alocação
– Swapping
– Memória Virtual
– Paginação
– Segmentação
• Gerencia de Dispositivos
– Device drivers
– Dispositivos de E/S.
• Sistemas de arquivos
–
–
–
–
Arquivos
Diretórios
Alocação de espaço
Proteção
• Projeto de Sistema
Operacional
– Natureza do problema
– Interface
– Estudos de caso
Bibliografia
• Sistemas Operacionais Modernos
– Andrew S. Tanenbaum
• Sistemas Operacionais
– Abrahan Silberschatz, Peter Galvin, Greg
Gagne
• Embedded Software Development with
eCos
– Anthony J. Massa
Avaliação
• Três notas
– Primeira Nota: Prova escrita
– Segunda Nota: Prova Escrita
– Terceira Nota
• Prova escrita – Peso 5
• Trabalho prático – Peso 5
• Datas
– Primeira Nota: (xx/xx/05)
– Segunda Nota: (xx/xx/05)
– Terceira Nota
• Prova escrita – (xx/xx/05)
• Trabalho prático – (xx/xx/05 – Último dia de entrega
Introdução
• Hardware
– Provê recursos para execução de instruções,
manipulação de dados
• Programa de Aplicação
– Solução computacional de um problema
– Define a utilização dos recursos do sistema
• PROBLEMA
– O hardware sozinho não oferece um ambiente de
utilização simples para resolução computacional de
problemas
Introdução
• Problema Exemplo
– Considere a implementação de um sistema
computacional onde duas entidades
(software) produz e consome dados da
memória, respectivamente
– Como sincronizar a produção e o consumo
de dados?
Conceito de Sistema Operacional
• Um Sistema Operacional...
– ... possibilita o uso eficiente e controlado dos
recursos de hardware
– ... implementa políticas e estruturas de
software de modo a assegurar um melhor
desempenho do sistema de computação
Conceito de Sistema Operacional
•
DEFINIÇÔES
1. conjunto de programas que trabalham de modo
cooperativo com o objetivo de prover uma máquina
mais flexível e adequada ao programador do que
aquela apresentada pelo hardware
2. A program that controls the execution of application
programs
3. An interface between applications and hardware
4. Programa que age como um intermediário entre o
usuário de um computador e o hardware deste
computador”.
Conceito de Sistema Operacional
• DEFINIÇÕES
– Alocador de Recursos
• Gerencia e aloca recursos aos “usuários”
– Programa de controle
• Controla a execução de programas do usuário e
operações de dispositivos de E/S
– Kernel
• Programa que executa sempre que um programa
de aplicação não está executando
Conceito de Sistema Operacional
• Função do Sistema Operacional
– Oferecer uma interface simplificada do
sistema computacional para o usuário
• Fornece abstrações simplificadas
• Exemplo: Arquivos no Windows
– Gerenciar os recursos do hardware
• Define, aplica e supervisiona políticas de acesso e
utilização dos recursos
• Exemplo: Gerência do espaço de endereçamento
Conceito de Sistema Operacional
Conceitos de Sistema Operacional
• CARACTERÍSTICAS DESEJÁVEIS
• Eficiência
– Baixo tempo de resposta, pouca ociosidade da UCP e alta taxa
de processamento.
• Confiabilidade
– Pouca incidência de falhas e exatidão dos dados computados.
• Mantenabilidade
– Facilidade de correção ou incorporação de novas
características.
• Pequena dimensão
– Simplicidade e baixa ocupação da memória
• Concorrência
– Capacidade de manutenção de tarefas concorrentes
• Compartilhamento de recursos
– Gerencia de recursos de hardware e software compartilhados
Conceitos de Sistema Operacional
• Núcleo
– Responsável pela gerência do processador, tratamento de
interrupções, comunicação e sincronização de processos.
•
Gerente de Memória
– Responsável pelo controle e alocação de memória aos
processos ativos.
• Sistema de E/S
– Responsável pelo controle e execução de operações de E/S e
otimização do uso dos periféricos.
• Sistema de Arquivos
– Responsável pelo acesso e integridade dos dados residentes na
memória secundária.
• Processador de Comandos / Interface com o Usuário
– Responsável pela interface conversacional com o usuário.
Tipos de Sistemas Operacionais
• Os vários tipos surgiram da evolução histórica
dos sistemas operacionais
– Gerações de Sistemas operacionais
• Tipos mais comuns
–
–
–
–
–
–
–
SO de Computadores de Grande Porte
SO de Servidores
SO de multiprocessadores
SO de Computadores Pessoais
SO de Tempo Real
SO de Embarcados
SO de Cartões Inteligentes
Tipos de Sistemas Operacionais
• SO de Computadores de Grande Porte
– O hardware caracteriza-se por grande capacidade de
E/S
• Servidores WEB
– As operações caracterizam-se por execução
simultânea de muitas tarefas requerendo muita E/S
– Tarefas
• Lote
• Transações
• Tempo Compartilhado
Tipos de Sistemas Operacionais
• SO de Servidores
– São “computadores pessoais de grande
porte”
• Permitem o compartilhamento de hardware e
software
• Prestam serviço a muitos usuários
–
–
–
–
Impressão
Arquivo
Mensagens
Web
Tipos de Sistemas Operacionais
• SO de multiprocessadores
– Gerenciam múltiplas CPUs
• Podem ser multiprocessadores ou
multicomputadores
• A preocupação principal está em:
– Sincronização e comunicação de processos
Tipos de Sistemas Operacionais
• SO de Tempo Real
– O atendimento ao tempo de resposta é a
principal preocupação
• O tempo de resposta pode ser crítico ou não
crítico
• SO de Embarcados
– Apresentam restrições quanto ao espaço de
memória ocupado e consumo de potencia
– Geralmente também possuem restrição de
tempo
Conceitos de Sistema Operacional
• PROCESSOS
– Processo é uma abstração para um programa em
execução
– Processos possuem espaço de endereçamento
próprio contendo (instruções dados e pilha)
– Tabela de processos é uma estrutura do SO que
armazena informações sobre o processo
– Processos podem estar
• Ativos (em Execução)
• Suspensos (Bloqueados)
• Prontos
Conceitos de Sistema Operacional
• Para a solução de uma
tarefa processos podem
– Criar processos filhos
– Comunicar (comunicação
interprocessos)
• Interpretador de
Comandos (shell) é o
processo que recebe e
trata comandos do
usuário
• Processos são
identificados por um PID
e geralmente associados
a um UID
• DEADLOCK
– É uma situação onde
dois processos
competem por
recursos do sistema e
ficam indefinidamente
bloqueados
Conceitos de Sistema Operacional
Download