O documento discute a arquitetura de sistemas operacionais, definindo-o como um software que gerencia os recursos de hardware e permite a execução de programas. Apresenta as funções básicas de um sistema operacional e tipos como monotarefa, multitarefa, em rede e distribuídos. Explora estruturas como arquitetura monolítica e microkernel e conceitos como processo, chamadas ao sistema e virtualização.
2. Visão do sistema
operacional
programadores
e analistas
Usuários
programas,
sistemas e
aplicativos
usuários
Funções Básicas do S. O.
operacional
memória discos
UCP
Hardware
Sistema Operacional
Sistema Operacional
fitas
impressoras monitores
3. PARA QUÊ SOFTWARE BÁSICO?
O que acontece quando ligamos o
computador?
E quando “clicamos” num ícone?
Como funcionam dois programas ao mesmo
tempo?
Como ocorre o mapeamento de discos?
Funções Básicas do S. O.
3
Como ocorre o mapeamento de discos?
E se dois programas quiserem usar o mesmo
recurso?
E se estiverem cooperando, mas em
máquinas diferentes interligadas em rede?
E ao utilizar um PEN DRIVE ?
4. Um sistema operacional é um programa ou um conjunto de
programas (software básico - kernels, bibliotecas, drivers,
protocolos, compiladores, etc) cuja função é servir de interface
entre um computador e o usuário
Dois modos distintos de conceituar um sistema operacional:
pela perspectiva do usuário ou programador (visão top-down): é
uma abstração do hardware, fazendo o papel de intermediário
entre o aplicativo (software aplicativo ou aplicação) e os
componentes físicos do computador (hardware); ou
Funções Básicas do S. O.
programadores
e analistas
memória discos
UCP
Usuários
Hardware
Sistema Operacional
Sistema Operacional
fitas
impressoras monitores
programas,
sistemas e
aplicativos
usuários
componentes físicos do computador (hardware); ou
numa visão bottom-up, de baixo para cima: é um gerenciador de
recursos, i.e., controla
quais aplicações (processos) podem ser executadas,
quando,
que recursos (memória, disco, periféricos) podem ser utilizados.
6. 6
REVISÃO SOBRE HARDWARE DE
COMPUTADORES
Unidades
periféricas
Chipsets
Componentes de um computador pessoal simples
Bus
Unidades
periféricas
7. 7
SOFTWARE, HARDWARE E COMUNICAÇÃO
Ger. Disco/
Sist. Arq.
Ger. E/S
Ger.
Memória
Ger.
Processos
Sub-sist.
Comunicação SO
InfraSW
•Como funciona um programa?
•Como funcionam dois
programas ao mesmo tempo?
•E se estiverem cooperando,
Bus
Rede
InfraHW
InfraCom
•E se estiverem cooperando,
mas em máquinas diferentes
interligadas em rede?
8. 8
ATUAÇÃO DO S.O. - ATENDENDO AO PERIFÉRICO
USANDO INTERRUPÇÃO
(a) Passos para iniciar um dispositivo de E/S e obter
uma interrupção
(b) Como a CPU é interrompida
11. TIPOS DE S. O.
Sistema de multiprogramação
Três jobs na memória
O SO utiliza o conceito de tempo partilhado (time
sharing)
Melhor utilização do tempo de CPU
Exemplos : linux , windows
12. 12
CONCEITO :
MULTIPROGRAMAÇÃO
a) Multiprogramação de quatro programas
b) Modelo conceitual de 4 processos sequenciais,
independentes, mas
c) Somente um programa está ativo a cada momento –
escalonamento
13. • Sos de Rede
TIPOS DE S. O.
Os usuários sabem da existência de múltiplos computadores e podem
conectar-se a máquinas remotas e usar serviços de uma máquina para outra.
Estes sistemas utilizam os programas para iniciar sessões remotas
Servidor de Arquivos
14. ESTRUTURA DE SISTEMAS OPERACIONAIS EM REDE
14
A estrutura é baseada no modelo
cliente-servidor
solicitação resposta
15. • Sistema Operacional Distribuído
TIPOS DE S. O.
Para o usuário parece um sistema operacional único,mesmo que na realidade
seja composto de vários processadores e vários equipamentos.
O usuário não tem controle onde seus programas estão sendo executados.
16. • Sistema Operacional Distribuído – Cluster beowulf
TIPOS DE S. O.
Sistema que compreende dois ou mais computadores ou
sistemas (denominados nodos) na qual trabalham em
conjunto para executar aplicações ou realizar outras
tarefas, de tal forma para que os usuários que os utilizam
tenham a impressão que somente um único sistema
responde para eles, criando assim uma ilusão de um
responde para eles, criando assim uma ilusão de um
recurso único (computador virtual).
Este conceito é denominado transparência do sistema.
Como características fundamentais da plataforma Cluster:
aumento da confiança,
distribuição de carga e
performance
Fonte : http://www.beowulf.org/
17. • Sistema Operacional Distribuído – Cluster beowulf
TIPOS DE S. O.
Cluster com acionamento remoto
18. • Sistema Operacional Distribuído – Cluster beowulf
TIPOS DE S. O.
Cluster com acionamento local
19. Hardware
Processador, memória principal (RAM) e memória
secundária (Acesso a discos, fitas e outros)
Dispositivos de E/S e barramento
Arquitetura do processador :Pipelining e arquiteturas RISC e
CISC
TIPOS DE S. O. - INTERAÇÃO COM HARDWARE E
SOFTWARE
CISC
Análise de desempenho
Software
Tradutor, interpretador e linker
Loader e depurador
Interpretador de comandos e linguagem de controle
Ativação/desativação do sistema
20. DIVERSIDADE DE SISTEMAS OPERACIONAIS
Sistemas operacionais de computadores de grande porte.
ex. /390
Sistemas operacionais de servidores / redes
ex. Linux red Hat / windows 2008 server
Sistemas operacionais de multiprocessadores
ex. Windows 7
20
ex. Windows 7
Sistemas operacionais de computadores pessoais
Sistemas operacionais de celulares – ex. Windows
mobile
21. DIVERSIDADE DE SISTEMAS OPERACIONAIS
Sistemas operacionais de tempo-real - Devem
responder a qualquer evento é um sistema
operacional/operativo destinado à execução de múltiplas
tarefas onde o tempo de resposta a um evento (externo
ou interno) é pré-definido; não importando, como é
comum pensar-se, se a velocidade de resposta é elevada
ou não.
21
Um caça F-16 tem embutido Sistemas
de Tempo Real rígidos
Os leitores de CD e de DVD
possuem Sistemas de
Tempo Real moderados.
22. DIVERSIDADE DE SISTEMAS OPERACIONAIS
Sistemas operacionais embarcados
Sistemas operacionais de cartões inteligentes
22
Sistemas operacionais de cartões inteligentes
23. System Call Núcleo do
Sistema Operacional
Núcleo do
Sistema Operacional
• System call
SISTEMAS OPERACIONAIS – CHAMADAS AO SISTEMA
Aplicação Biblioteca Hardware
• Exemplo : Imprimir um arquivo
• Fase 1 : gerar uma chamada de impressão, onde o SO irá instanciar um
processo e alocar memória
• Fase 2 : acionar o núcleo para efetuar o acesso a I/O
Exemplo : os arquivos DLL do Windows
24. SISTEMAS OPERACIONAIS – CHAMADAS AO SISTEMA
• System call
• A linguagem Ruby on rails executando um System Call
25. • System call - Funções:
– Gerência de processos e threads
– Gerência de memória
– Gerência do sistema de arquivos
– Gerência de dispositivos
SISTEMAS OPERACIONAIS – CHAMADAS AO SISTEMA
26. aplicação aplicação
• Arquitetura monolítica
• O SO inteiro é executado como um único
programa no modo núcleo
• Cada rotina possui uma interface
definida com relação a
parâmetros e resultados
SISTEMAS OPERACIONAIS
Modo kernel
Modo usuário
System call
Hardware
parâmetros e resultados
• Cada rotina é livre para
chamar qualquer outra
27. aplicação aplicação
• Estrutura básica
para a arquitetura
monolítica
1. O programa aplicativo invoca
a rotina do serviço
2. Um conjunto de rotinas de
SISTEMAS OPERACIONAIS
Modo kernel
Modo usuário
System call
Hardware
2. Um conjunto de rotinas de
serviço que executam as
chamadas de sistema
3. Um conjunto de rotinas
utilitárias que auxiliam as
rotinas de serviço
28. 28
ESTRUTURA DE SISTEMAS
OPERACIONAIS - ARQUITETURA MONOLÍTICA
Modelo simples de
estruturação
de um sistema monolítico
SO = um processo com
n procedimentos
29. • Arquitetura de Camadas - OpenVMS
ESTRUTURA DE SISTEMAS
OPERACIONAIS - EVOLUÇÃO DA ARQUITETURA
MONOLÍTICA
30. • Máquina virtual – o princípio da virtualização
baseava-se na multiprogramação (tempo
partilhado), que oferecia (1) multiprogramação e (2)
uma máquina estendida com uma interface mais
conveniente do que o hardware oferece.
• A essência da virtualização atual é a separação
completa destas duas funções.
• O monitor de máquina virtual é executado
ESTRUTURA DE SISTEMAS
OPERACIONAIS - VIRTUALIZAÇÃO
• O monitor de máquina virtual é executado
diretamente sobre o hardware e implementa
multiprogramação, provendo assim não uma, mas
várias máquinas virtuais para a próxima camada
acima.
31. • Contudo, ao contrário dos demais sistema
operacionais, estas máquinas virtuais não são
máquinas estendidas, com arquivos e outras
características convenientes.
• São cópias exatas de hardware, inclusive com
modos núcleo/ usuário, gerência de E/S,
interrupções e tudo o que uma máquina real tem.
ESTRUTURA DE SISTEMAS
OPERACIONAIS - VIRTUALIZAÇÃO
• Como cada máquina virtual é
uma cópia exata do hardware,
cada uma delas pode executar
um sistema operacional diferente.
34. • Máquina virtual Java – Atua na execução do programa
escrito em linguagem java.
• O compilador Java produz o código para Java Virtual
Machine, que é executado por um interpretador da
JVM.
ESTRUTURA DE SISTEMAS
OPERACIONAIS - VIRTUALIZAÇÃO
36. • Máquina virtual Java – a vantagem é que o código JVM pode
ser enviado a qualquer computador que tenha um interpretador
JVM e ser executado lá.
ESTRUTURA DE SISTEMAS
OPERACIONAIS - VIRTUALIZAÇÃO
Por exemplo, suponha que você desenvolveu um aplicativo para um telefone
celular. Com poucas modificações, você poderá rodar esse mesmo aplicativo
em um palmtop, como mostra a imagem acima.
37. • Arquitetura microkernel
• Objetivo: alcançar alta confiabilidade por meio da divisão do SO em
módulos pequenos, bem definidos, onde apenas o micro núcleo é
executado no modo núcleo e o restante é executado como
processo de usuário.
ESTRUTURA DE SISTEMAS OPERACIONAIS
Modo kernel
Modo usuário
Microkernel
m
e
n
s
a
g
e
m
m
e
n
s
a
g
e
m
Hardware
• Exemplo : utilização de drivers de
dispositivo de hardware, no windows
39. PC-DOS
OS/2
Windows e suas versões
Linux e suas distribuições
Unix
Amoeba
EXEMPLOS DE SISTEMAS OPERACIONAIS
Amoeba
Minix
MAC OS
Symbian e muitos outros
40. UM SISTEMA EM BATCH EXECUTA JOBS
UM SISTEMA DE TEMPO COMPARTILHADO EXECUTA PROGRAMAS DE
USUÁRIOS OU TAREFAS
MESMO EM UM SISTEMA MONOUSUÁRIO, COMO O WIN VISTA, UM
CONCEITO BÁSICO DE PROCESSO
USUÁRIO PODE EXECUTAR VÁRIOS PROGRAMAS DE UMA VEZ
MESMO QUE O USUÁRIO PUDESSE EXECUTAR SÓ UM PROGRAMA DE
CADA VEZ O S.O PRECISARIA DAR SUPORTE A TODAS AS SUAS
ATIVIDADES, EX GERENCIA DE MEMÓRIA. TODAS ESSA ATIVIDADES
SÃO OS PROCESSOS
41. CONCEITO DE PROCESSO –
O PROCESSO
INFORMALMENTE, O PROCESSO É UM PROGRAMA EM
EXECUÇÃO
E VAI ALÉM DISSO POIS TAMBÉM INCLUI A ATIVIDADE
CORRENTE, CONTADOR DE PROGRAMA, E O CONTEÚDO
DOS REGISTRADORES DO PROCESSADOR. INCLUI A
DOS REGISTRADORES DO PROCESSADOR. INCLUI A
PILHA DE PROCESSO (DADOS TEMPORÁRIOS), E UMA
SEÇÃO DE DADOS QUE CONTÉM VARIÁVEIS GLOBAIS
42. 42
CONCEITO BÁSICO DE PROCESSO
Contexto de processo
Vídeo
Teclado
CPU
CPU
Memória
E/S
outros dispositivos
CPU: Registradores
Memória: Posições em uso
E/S: Estado das requisições
Estado do processo: Rodando, Bloqueado, Pronto
Processo : rotinas que podem ser executadas para
auxiliar o SO ou apicativos
43. CONCEITO DE PROCESSO –
O PROCESSO
VALE LEMBRAR QUE UM PROGRAMA POR SI SÓ NÃO É
UM PROCESSO – ENTIDADE PASSIVA. PROCESSO –
ENTIDADE ATIVA
EMBORA 2 PROCESSOS POSSAM SER ASSOCIADOS
COM O MESMO PROGRAMA, SÃO CONSIDERADOS 2
EMBORA 2 PROCESSOS POSSAM SER ASSOCIADOS
COM O MESMO PROGRAMA, SÃO CONSIDERADOS 2
SEQUENCIAS SEPARADAS DE EXECUÇÃO – EX. 2
USUÁRIOS LOGADOS COM O MESMO PROGRAMA
ABERTO
45. CONCEITO BÁSICO DE PROCESSO
Estados de um processo
Pronto Rodando
Criar Terminar
ID do Processo
Estado
Prioridade
Contexto
executar
Pronto Rodando
Bloqueado
Criar Terminar
bloquear (I/O)
desbloquear
Program Counter
Ponteiros da Memória
Contexto (regs.)
I/O Status
Prioridade
Informações gerais
• tempo de CPU
• limites, usuário, etc.
suspender
(tempo)
46. 46
CRIAÇÃO DE PROCESSOS
Principais eventos que levam à criação de
processos
Início do sistema
Execução de chamada ao sistema de criação de
processos
CONCEITO BÁSICO DE PROCESSO
processos
Solicitação do usuário para criar um novo processo
Início de um job em lote
47. 47
TÉRMINO DE PROCESSOS
Condições que levam ao término de processos
Saída normal (voluntária)
Saída por erro (voluntária)
Erro fatal (involuntário)
Cancelamento por um outro processo (involuntário)
CONCEITO BÁSICO DE PROCESSO
Cancelamento por um outro processo (involuntário)
48. 48
HIERARQUIAS DE PROCESSOS
Processo “pai” cria um processo “filho”, processo
filho pode criar seu próprio processo
Formam uma hierarquia
UNIX chama isso de “grupo de processos”
Windows não possui o conceito de hierarquia de
CONCEITO BÁSICO DE PROCESSO
Windows não possui o conceito de hierarquia de
processos
Todos os processos são criados iguais (sem conceito
de “pai” e “filho”)
49. • Estrutura do processo
prioridade de
execução registrador PC
owner (UID)
PID
nome
registradores
gerais
SISTEMAS OPERACIONAIS – ESTRUTURA DE PROCESSOS
Programa
Contexto de
Software
execução
data/ hora
de criação
tempo de
processador
registrador SP
quotas
privilégios
endereços de memória
principal alocados
registrador
de status
Contexto de
Hardware
Espaço de
Endereçamento
50. • Sincronização e comunicação entre
processos
SISTEMAS OPERACIONAIS – SINCRONISMO DE PROCESSOS
Processo
gravador
Processo
leitor
dado
Sincronização
leitura
gravação
Buffer
51. 51
ESCALONAMENTO DE PROCESSOS
Quando um ou mais processos estão prontos para
serem executados, o sistema operacional deve
decidir qual deles vai ser executado primeiro
A parte do sistema operacional responsável por
essa decisão é chamada escalonador, e o
algoritmo usado para tal é chamado de algoritmo
SISTEMAS OPERACIONAIS – SINCRONISMO DE PROCESSOS
algoritmo usado para tal é chamado de algoritmo
de escalonamento
Para que um processo não execute tempo demais,
praticamente todos os computadores possuem um
mecanismo de relógio (clock) que causa uma
interrupção, periodicamente
52. OBRIGADO
Bibliografia:
- livro Sistemas Operacionais Modernos –
Andrew S. Tanenbaum – Ed. Pearson
UNIP – Campus Alphaville -SP
Andrew S. Tanenbaum – Ed. Pearson
UNIP – Campus Alphaville -SP
mauricio01se@gmail.com