sistemas operacionais · sistemas operacionais visão geral. organização da apresentação...
TRANSCRIPT
Organização da Apresentação
� Introdução
� Componentes de um Sistema de Computação
� Conceito de SO
� Objetivos de um SO� Objetivos de um SO
� Posicionamento de um SO
� Serviços oferecidos por um SO
� Diferentes Visões de um SO
� Chamadas e programas de sistema
� Histórico do SO
Introdução
� Sistema Operacional é um programa colocadoentre o hardware do computador e os programas dos usuários de forma a atingir esses quatro objetivos.
Este é responsável por:� Este é responsável por:� Executar os programa dos usuários
� Permitir a solução de problemas
� Tornar o sistema de computação mais conveniente ao uso
� Utilizar o hardware de um modo eficiente
Componentes de um Sistema Computacional
� Hardware� Provê os recursos básicos de computação (memória, dispositivos de E/S, CPU).
� Sistema Operacional� Controla e coordena o uso do hardware entre vários programasaplicativos de usuários.aplicativos de usuários.
� Programas aplicativos e de sistema� Define como os recursos de hardware são empregados nasolução de um problema (compiladores, jogos, banco de dados, …)
� Usuários� Pessoas, máquinas, outros computadores.
Usuário1
Usuário2
Usuário3
Usuárion
. . .
Compilador Editor de Browser Matlab
Componentes de um Sistema Computacional
Compilador Editor detexto
Browser Matlab
Sistema Operacional
Hardware
Componentes: Hardware
� Unidade Central de Processamento (UCP)
� Unicade de Controle (UC)
� Unidade Lógica e Aritmética (ULA)
� Clock� Clock
� Registradores� CI ou PC (contador de instruções)
� AP ou SP (apontador da pilha)
� PSW (registrador de status)
Hardware: Memória
0
2
1
instrução ou dado
Memória principal com 64 Kbytes
célula = 8 bits
ender
eço
s
2 -116
Hardware: Memória
� Volátil
� Alta velocidade
� Pequena capacidade
� Alto custo� Alto custo
� Cache hit (o dado está na cache) e cache miss (o dado está na memória principal)
Hardware: Memória Secundária
Memória Cache
Registradores
maiorcapacidade de
armazenamento
maior custo evelocidadede acesso
Memória Secundária
Memória Principal
Hardware: Dispositivos de Entrada e Saída
� Memória secundária� Discos
� Fitas magnéticas
� CDs
� Interface usuário-máquina� Interface usuário-máquina� Teclados
� Monitores
� Impressoras
� Plotters
Hardware: Barramento
� Barramentos (bus) UCP-memória-E/S
MemóriaPrincipal
UCP
Bus adapter
Barramento processador-memória
Ba
rra
me
nto
de
E/S
Ba
rra
me
nto
de
E/S
Adaptador
Hardware: Arquiteturas RISC e CISC
� Máquina de níveis
Utiltários
AplicativosRISC (Reduced Instruction Set Computer)
CISC (Complex Instruction Set Computer)
Poucas instruções Muitas instruções
Circuitos Eletrônicos
Microprogramação
Linguagem de Máquina
Arq
uitet
ura
RIS
C
Sistema Operacional
Poucas instruções Muitas instruções
Instruções executadas pelo hardware
Instruções executadas por microcódigo
Instr. usam poucos ciclos de máquina
Instr. usam muitos ciclos
Arquitetura com muitos registradores
Arquitetura com poucosregistradores
Sistemas Operacionais: Conceitos
� Sistema operacional� Um programa que controla a execução de programa aplicativos
� Interface entre aplicativos e o hardware
� Duas formas de ver um sistema operacional� Duas formas de ver um sistema operacional� Alocador de recursos – administra e aloca recursos
� Programa de controle – controla a execução dos programasdos usuários e operações dos dispositivos de E/S
� Kernel – o único programa que roda em todos osmomentos (todos os demais são programas de aplicação)
Serviços oferecidos pelo SO
Diferem entre sistemas, porém alguns são padrões� Criação de programas
� Editores, depuradores e compiladores
� Execução de programas� Carga de programas em memória
� Acesso a dispositivos de E/S (operações)� Manipulação de arquivos (controle de acesso)� Comunicação entre processos� Alocação de recursos do sistema
� Acesso aos recursos� Proteção entre usuários
� Execução de instruções privilegiadas� Chamadas ao sistema (system calls)
Serviços oferecidos pelo SO
� Contabilização� Estatísticas� Monitoração de desempenho� Sinalizar upgrades necessários de hardware (memória, disco, etc.)� Tarifação de usuários
� Detecção de erros� Erros de hardware
� Erros de memória, falha em dispositivos de E/S, etc.� Erros de programação
� Overflow, acesso não-autorizado a posições de memória, etc.� Erros por falta de recursos
� Aplicação solicita recursos que o SO não pode alocar (segurança, faltado recurso, etc.)
Chamadas dos Programas ao SO
� Forma que programas solicitam serviços ao SO� Análogo a sub-rotinas
� Transferem o controle para o SO ao invés de transferir para outroponto do programa
� É o núcleo (kernel) do SO que implementa as chamadas de � É o núcleo (kernel) do SO que implementa as chamadas de sistema� Existem chamadas de sistema associadas a gerência do processador, de memória, arquivos e de entrada/saída
� Variação: micro-kernel� Serviços básicos são implementados pelo micro-kernel� Kernel implementa demais serviços empregando esses serviçosbásicos
Programas de Sistema
� Programas executados fora do kernel (utilitários) Implementam tarefas básicas
� Muitas vezes confundidos com o próprio sistema operacional� Compiladores, assemblers, ligadores, etc.� Compiladores, assemblers, ligadores, etc.
� Interpretador de comandos� Ativado sempre que o SO inicia uma sessão de trabalho
� bash, tsch, sh, etc.� Interface gráfica de usuário (GUI)
� Família Windows, MacOs, etc.
SO: Histórico
� Primórdios� Sistema operacional inexistente
� Usuário é o programador e operador da máquina
� Alocação do recurso “computador” feito por planilha
� Evolução foi motivada por:� Melhor utilização de recursos
� Avanços tecnológicos (novos tipos de harware)
� Adição de novos serviços
Sistema em Lote (Batch)
� Introdução de operadores profissionais� Usuário não era o operador da máquina
� Job� Programa a ser compilado e executado, acompanhado dos dados de execução (cartões perfurados) dados de execução (cartões perfurados)
� Jobs são organizados em lote (batch)� Agrupamento em tarefas ou necessidades semelhantes (p.ex. mesmo compilador)
� Passagem entre diferentes jobs continua sendo manual
� Evolução - Sequenciamento automático de tarefas, isto é, a transferência do controle de uma tarefa para outra é feitaautomaticamente.
Sistema em Lote (Batch)
Processamento(a)
fita de entrada
cartões perfurados
job 2
job n
job 1
Processamento
Processamento
(b)
(c)
fita de entrada fita de saída
relatórios
fita de saídarelatório 1
relatório 2
relatório n
Monitor Residente
� Evolução� Sequenciamento automático de jobs, transferindo o controle de um job a outro
� Primeiro sistema operacional (rudimentar)
� Monitor residente� Programa que fica permanentemente em memóriaControle inicial no Monitor � Controle inicial no Monitor
� Controle é transferido para o job� Como o monitor sabe a respeito da natureza da tarefa(i.e., Fortran X Assembler) ou qual programa a executar ou como distinguir umatarefa de outra??
� Solução: Cartões de controle� Quando o job termina, o controle retorna ao monitor� Centraliza as rotinas de acesso a periféricos disponibilizando-as aosprogramas dos usuários
Sistema batch multiprogramados
� Monitor residente permite a execução de apenas um programa a cada vez
� Desperdício de tempo de CPU com operações de E/S
� Evolução� Manter diversos programas na memória ao mesmo tempo e a CPU é multiplexada entre eles.
� Enquanto um programa realiza E/S, outro pode ser executadoDesperdício CPU Multiprogramação
RequisiçãoE/S
TérminoE/S
RequisiçãoE/S
TérminoE/S
tempo tempo
CPU
E/S