Introdução aos Sistemas Operacionais

Propaganda
UCPEL/CPOLI/BCC
Introdução à Ciência da Computação
Introdução aos
Sistemas Operacionais
Luiz A M Palazzo
Abril de 2010
Sistema operacional
• Camada de software entre o hardware e as
aplicações dos usuários
usuários
Aplicação
Aplicação
Aplicação
Sistema Operacional
Hardware
Introdução aos Sistemas Operacionais
2
Funções do sistema operacional
• A partir da máquina real (hardware), criar
uma máquina estendida.
• Gerenciar os recursos de hardware
disponíveis para as aplicações.
Introdução aos Sistemas Operacionais
3
O SO como máquina estendida
• Ocultar a complexidade do hardware.
• Oferecer interfaces padronizadas de
acesso ao hardware.
• Permitir uma visão homogênea de
dispositivos distintos.
Introdução aos Sistemas Operacionais
4
O SO como máquina estendida
Clicar em um arquivo
aplicação
Sistema operacional
Introdução aos Sistemas Operacionais
Assign(file, “D:\README.TXT”);
open(file);
read(file, ch);
…
close(file);
Move head to sector 123 in FAT
read 256 bytes to mem 36234H
move head to sector 4684753
read 1024 bytes to mem 578567
...
5
O SO como gerente de recursos
• Recursos da máquina
•
•
•
•
•
processadores
espaço em memória
arquivos
conexões de rede
dispositivos externos
• Controle de acesso
• equilibrar uso
• evitar conflitos
Introdução aos Sistemas Operacionais
6
O SO como gerente de recursos
source app
source app
source app
sdgf jhgsdfj dsjhf
khj khj
HKjhkjghj hg
jhgj jgh jhg jhg jhg jhg kjhg
jhgj hg jhg
kjhkjhgjhg jhg jhg jhg jh
kjhjkhgjhgjh
kgjhgjhgjhgj
aplicação
aplicação
aplicação
Sistema operacional
Introdução aos Sistemas Operacionais
7
Computador como Máquina de Níveis
• O Hardware:
• responsável pela execução das instruções de um
programa;
• Primeiros computadores:
• programação realizada através de fios;
• Evolução: O Sistema Operacional;
• A Interação se tornou mais fácil, confiável e
eficiente;
Introdução aos Sistemas Operacionais
8
Computador como Máquina de Níveis
• Computador como máquina de níveis:
• Nível 2 – Aplicativos;
• Nível 1 – Sistema operacional;
• Nível 0 – Hardware.
• A Linguagem utilizada em cada nível varia
da mais elementar (microprogramação) à
mais sofisticada(alto nível).
Introdução aos Sistemas Operacionais
9
Histórico dos Sistemas Operacionais
• 1º computador:
• Máquina analítica de Charles Babbage (1792-1871);
• Primeira Geração (1945-1955):
• Válvulas e painéis;
• Segunda Geração (1956-1965):
• Transistores e Sistemas Batch;
• Terceira Geração(1966-1980):
• Circuitos Integrados e Multiprogramação;
• Quarta Geração(1981-1990):
• Computadores Pessoais;
• Quinta Geração (1991- 20??):
• Atualidade; Sistemas Móveis
Introdução aos Sistemas Operacionais
10
Histórico dos Sistemas Operacionais
• Primeira Geração (1945-1955):
• Programação através de chaves;
• Inexistência de linguagens ou SO.;
• Toda a atividade é seqüencial;
Introdução aos Sistemas Operacionais
11
Histórico dos Sistemas Operacionais
• Segunda Geração (1956-1965):
•
•
•
•
IBM 1401 e 7094;
Separação entre programação e operação;
Execução batch de programas;
Linguagens Fortran e Assembly;
Introdução aos Sistemas Operacionais
12
Histórico dos Sistemas Operacionais
• Terceira Geração (1966-1980):
•
•
•
•
•
•
Família IBM/360 e sucessores;
Compatibilidade a nível de software;
Multiprogramação;
Escalonamento de CPU;
Sistemas On-line;
Base dos S.O. modernos;
Introdução aos Sistemas Operacionais
13
Histórico dos Sistemas Operacionais
• Quarta Geração (1981-1990):
•
•
•
•
Multiprocessadores;
Sistemas Operacionais user-friendly;
S.O. para computadores pessoais;
S.O. para redes de computadores;
Introdução aos Sistemas Operacionais
14
Histórico dos Sistemas Operacionais
• Quinta Geração (1991-20??):
•
•
•
•
Processamento Distribuído;
Interfaces Gráficas;
S.O. para dispositivos móveis
S.O. para cloud computing
Introdução aos Sistemas Operacionais
15
S.O. como interface usuário/computador
Introdução aos Sistemas Operacionais
16
Diferentes “imagens” de um S.O.
• Sistema operacional na visão do usuário
• Imagem que um usuário tem do sistema
• Interface oferecida ao usuário para ter acesso
a recursos do sistema
• Chamadas de sistema
• Programas de sistema
• Sistema operacional na visão do projeto
• Organização interna do sistema operacional
• Mecanismos empregados para gerenciar
recursos do sistema
Introdução aos Sistemas Operacionais
17
Chamada de sistema
• Forma que um programa solicita serviços ao sistema
operacional
• Análogo a sub-rotinas
• É o núcleo (Kernel) do sistema operacional que
implementa as chamadas de sistemas
• Existem chamadas de sistemas associadas a gerência do
processador, de memória, arquivos e de entrada e saída
• Variação: micro-kernel
• Serviços básicos são implementados pelo micro-kernel
• Kernel implementa demais serviços empregando esses
serviços básicos
Introdução aos Sistemas Operacionais
18
Organização do S.O
APLICAÇÃO
Chamada de sistema
KERNEL
Serviços do
microkernel
MICROKERNEL
HARDWARE
Introdução aos Sistemas Operacionais
19
Programas de sistema
• Programas executados fora do kernel (utilitários)
• Implementam tarefas básicas
• Muitas vezes confundidos com o próprio sistema operacional
• Ex: compiladores, assemblers, ligadores, etc
• Interpretadores de comandos
• Ativado sempre que o sistema operacional inicia
sessão de trabalho
• Ex: bash, tsch, sh, etc
• Interface gráfico de usário (GUI)
• Ex: Família windows, MacOs, etc
Introdução aos Sistemas Operacionais
20
Sistema em lote (batch)
• Introdução de operadores profissionais
• Usuário era mais o operador da máquina
• Job
• Programa a ser compilador e executado,
acompanhado dos dados de execução
• Jobs são organizados em lote (batch)
• Necessidades semelhantes (ex: mesmo compilador)
• Passagem entre diferentes jobs continua sendo
manual
Introdução aos Sistemas Operacionais
21
Monitor residente
• Evolução
• Sequenciamente automático de jobs, transferindo o
controle de um job a outro
• Primeiro sistema operacional (rudimentar)
• Monitor residente
• Programa que fica permanente em memória
• Execução inicial
• Controle é transferido para o job
• Cartões de controle
• Quando o job termina, o controle retorna ao monitor
• Centraliza as rotinas de acesso a periféricos
disponibilizando aos programas de usuários
Introdução aos Sistemas Operacionais
22
Sistema batch multiprogramado (multitarefa)
• 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
• Enquanto um programa realiza E/S, outro pode ser executado
Introdução aos Sistemas
Operacionais
23
Multiprogramação
• Manter mais de um programa em “execução”
simultaneamente
• Duas inovações de hardware possibilitam o
surgimento da multiprogramação
• Interrupção
• Sinalização de eventos
• Discos magnéticos
• Acesso randômico a diferentes jobs no disco.
• Melhor desempenho em acessos de leitura e escrita
Introdução aos Sistemas Operacionais
24
Sistema timesharing
• Tipo de multiprogramação
• Usuários possuem um terminal
• Interação com o programa de execução
• Ilusão de possuir a máquina dedicada a
execução de seu programa
• Divisão do tempo de processamento entre usuários
• Tempo de resposta é importante
Introdução aos Sistemas Operacionais
25
Sistema monousuário e multiusuário
• Sistema monousuário
• Projetados para serem usados por um único usuário
• Ex: MS-DOS, Windows XP, Vista, 7, MacOS...
• Sistemas multiusuário
• Projetados para suportar várias sessões de usuários
em um computador
• Ex: Windows 2008, UNIX...
Introdução aos Sistemas Operacionais
26
Sistemas multitarefa e monotarefa
• Sistemas monotarefa
• Capazes de executar apenas uma tarefa de cada vez
• Ex: MS-DOS
• Sistema multitarefa
• Capazes de executar várias tarefas simultaneamente
• Existem dois tipos de sistemas multitarefa:
• Não preempitivo (cooperativo)
• Ex: Windows 3.x, Windows 9x (aplicativos 16 bits)
• Preempitivo
• Ex: Windows NT, OS/2, UNIX, Windows9x (aplicativos 32 bits)
Introdução aos Sistemas Operacionais
27
Sistemas distribuídos
• Distribuir a realização de uma tarefa entre
vários computadores
• Sistema distribuído
• Conjunto de computadores autônomos interconectado
s de forma a possibilitar a execução de um serviço
• Existência de várias máquinas é transparente
• Software fornece uma visão única do sistema
• Palavra-chave: transparência
Introdução aos Sistemas Operacionais
28
Sistemas distribuídos
• Sistemas fracamente acoplados
• Máquinas independentes
• Cada máquina possui o seu próprio sistema operacional
• Comunicação é feita através de troca de mensagens
entre processos
• Vantagens
• Compartilhamento de recursos
• Balanceamento de carga
• Aumento confiabilidade
Introdução aos Sistemas Operacionais
29
Sistemas paralelos
• Máquinas multiprocessadoras possuem mais de
um processador
• Sistemas fortemente acoplados
• Processadores compartilham memória e relógios comuns
• Comunicação é realizada através da memória
• Vantagens
• Aumento de troughput (número de processos executados)
• Aspectos econômicos
• Aumento de confiabilidade
Introdução aos Sistemas Operacionais
30
Sistemas paralelos
• Symmetric multiprocessing (SMP)
• Cada processador executa uma cópia idêntica do
sistema operacional
• Vários processos podem ser executados em paralelo
sem perda de desempenho para o sistema
• A maioria dos sistemas operacionais atuais suportam
SMP através do conceito de multitreading
• Asymmetric multiprocessing
• Cada processador executa uma tarefa específica
• Ex: processador mestre para alocação de tarefas a
escravos
Introdução aos Sistemas Operacionais
31
Sistema de tempo real
• Empregado para o controle de procedimentos que devem
responder dentro de um certo intervalo de tempo
• Ex: experimento científicos, tratamento de imagens médicas,
controle de processos, etc.
• Noção de tempo real é dependente da aplicação
• Milisegundos, minutos, horas, etc.
•
Dois tipos
• Hard real time
• Tarefas críticas são completadas dentro de um intervalo
de tempo
• Soft real time
• Tarefa crítica tem maior prioridade que as demais
Introdução aos Sistemas Operacionais
32
Download