Você está na página 1de 64

Sistemas Operacionais

Introdu cao
Gustavo M. D. Vieira
DComp CCTS UFSCar
gdvieira@ufscar.br
2014/2
Deni cao Partes Historia Hardware API Estrutura Hardware Recursos
Sistemas Operacionais
Objetivo da Disciplina
Estudar o sistema operacional (SO), software que esconde
parte do hardware dos programas de aplica cao.
Conhecer os servicos fornecidos por um SO.
Conhecer a estrutura interna de um SO.
Importancia
Conhecer os servicos fornecidos pelo SO permite escrever
programas mais simples.
A estrutura de um SO tem implica cao no desempenho dos
programas que construmos.
A construcao de software basico e uma habilidade necessaria e
rara no mercado.
Gustavo M. D. Vieira Sistemas Operacionais: Introdu cao
Deni cao Partes Historia Hardware API Estrutura Hardware Recursos
Regras do Jogo
Avalia coes
Ver Moodle e Nexos
Livro Texto
A. S. Tanenbaum. Sistemas Operacionais Modernos. Editora
Prentice-Hall. Terceira edi cao. 2010.
A. Silberschatz, P. Galvin e J. Peterson. Operating Systems
Concepts. Editora John Wiley and Sons. Oitava edi cao. 2008.
Estrategias de Estudo
Leitura do livro texto (individual)
Resolu cao das listas de exerccios (em grupo)
Gustavo M. D. Vieira Sistemas Operacionais: Introdu cao
Deni cao Partes Historia Hardware API Estrutura Hardware Recursos
Denicao de Sistema Operacional
O que e um sistema operacional?
Boa pergunta!
Gustavo M. D. Vieira Sistemas Operacionais: Introdu cao
Deni cao Partes Historia Hardware API Estrutura Hardware Recursos
Denicao de Sistema Operacional
O que e um sistema operacional?
Boa pergunta!
Resposta?
Nao existe uma unica resposta para esta pergunta.
Maquina virtual: esconde complexidade do hardware.
Gerente de recursos: organiza o uso do hardware.
Interface padrao: dene o que e o computador para o usuario.
Solucoes para problemas comuns envolvendo o uso de um
computador.
Gustavo M. D. Vieira Sistemas Operacionais: Introdu cao
Deni cao Partes Historia Hardware API Estrutura Hardware Recursos
Utilidade de um Sistema Operacional
Solucoes para Problemas Comuns
Problema: Acesso ao hardware e difcil, em especial opera coes
de entrada/sada (E/S).
Solucao: Sistema operacional cria uma maquina abstrata,
escondendo os detalhes do hardware.
Problema: Opera coes de E/S sao lentas, deixando o
computador ocioso.
Solucao: Sistema operacional multiplexa o uso do sistema
entre varios programas.
Estes dois problemas fundamentais denem as principais
abstra coes de um sistema operacional: drivers, processos,
sistemas de arquivos, etc.
Gustavo M. D. Vieira Sistemas Operacionais: Introdu cao
Deni cao Partes Historia Hardware API Estrutura Hardware Recursos
Visao Geral de Hardware
Hardware
Maquina de von Neumann.
Programa e dados sao lidos da memoria, manipulados
(opera coes aritmeticas e booleanas) e escritos na memoria.
Monitor
Keyboard
Floppy
disk drive
Hard
disk drive
Hard
disk
controller
Floppy
disk
controller
Keyboard
controller
Video
controller
Memory CPU
Bus
Gustavo M. D. Vieira Sistemas Operacionais: Introdu cao
Deni cao Partes Historia Hardware API Estrutura Hardware Recursos
Acesso a Dispositivos
Dispositivos
Acesso a dispositivos e feito pela escrita e leitura de
registradores de dispositivo.

E necessario escrever nestes registradores todos os dados


necessarios para controlar o dispositivo.
Exemplo: Um Disquete
Para ler ou escrever sao necessarios 13 parametros que
ocupam 9 bytes.
Parametros: endere co do bloco, n umero de setores por trilha,
modo de gravacao, intervalo de espa camento, entre outros
mais esotericos.
Resposta: 23 campos de erro que ocupam 7 bytes.
Programador ainda deve ligar e desligar motor.
Gustavo M. D. Vieira Sistemas Operacionais: Introdu cao
Deni cao Partes Historia Hardware API Estrutura Hardware Recursos
SO Como Hardware Virtual
Quanta Complicacao!
Computadores sao maquinas complicadas, do hardware ao
software.

E possvel programar diretamente todos os dispositivos, mas


se reduz o que se consegue fazer.
Os sistemas operacionais resolvem o problema de acesso ao
hardware e apresentam uma interface mais amigavel.
Gustavo M. D. Vieira Sistemas Operacionais: Introdu cao
Deni cao Partes Historia Hardware API Estrutura Hardware Recursos
SO Como Hardware Virtual
Exemplo: Sistemas de Arquivos
Dados no disco sao identicados por nomes simples como
/home/gustavo/arquivo.txt.
A leitura destes dados e feita por comandos como:
FILE *arquivo = fopen(arquivo.txt, "r+")
fgets(linha, tam, arquivo)
fprintf(arquivo, "%d %d", 23, 42).
Esta interface e a mesma para discos rgidos, disquetes e
CD-ROMs, de qualquer fabricante e de qualquer capacidade.
Gustavo M. D. Vieira Sistemas Operacionais: Introdu cao
Deni cao Partes Historia Hardware API Estrutura Hardware Recursos
Multiprogramacao
Ideia
Uma vez que o hardware e abstrado pelo SO, surge uma
oportunidade interessante.
As opera coes de E/S sao mais lentas que a CPU, que ca
ociosa enquanto espera.
Entao, vamos executar mais de um programa ao mesmo
tempo, alternando a sua execu cao de acordo com as esperas
de E/S!
Esta ideia se chama multiprogramacao.
Gustavo M. D. Vieira Sistemas Operacionais: Introdu cao
Deni cao Partes Historia Hardware API Estrutura Hardware Recursos
SO Como Gerente de Recursos
Multiplexa cao
Multiprogramacao e apenas uma forma de permitir o uso de
um recurso (CPU) por varios programas.
O SO pode tambem multiplexar o uso de outros recursos.
Multiplexar no tempo: CPU, impressora, rede.
Multiplexar no espa co: Memoria, disco.
Gustavo M. D. Vieira Sistemas Operacionais: Introdu cao
Deni cao Partes Historia Hardware API Estrutura Hardware Recursos
SO Como Gerente de Recursos
Mecanismo de Protecao
Como o SO atua como gerente de recursos, deve garantir que
os programas sob seu controle nao acessem recursos que nao
tem permissao.
Alem disto, os programas nao devem alterar nem o SO nem
outros programas.
A separacao entre processos e feito com auxlio do hardware,
que possui dois modos:
Modo supervisor (ou kernel )
Modo usuario
Programas normais acionam o SO atraves de chamadas de
sistema, que trocam de modo automaticamente.
Gustavo M. D. Vieira Sistemas Operacionais: Introdu cao
Deni cao Partes Historia Hardware API Estrutura
Componentes de Um SO
Visao Geral de Um SO
Programas de Aplica cao
Interface Bibliotecas Compiladores
Sistema operacional
Hardware
A partir do hardware, nveis mais altos de abstra cao.
O n ucleo (kernel ) do sistema operacional acessa o hardware
em modo supervisor.
Alguns programas especiais dao suporte ao n ucleo sem
executar em modo supervisor.
Os programas de aplica cao usam estes servicos para funcionar.
Gustavo M. D. Vieira Sistemas Operacionais: Introdu cao
Deni cao Partes Historia Hardware API Estrutura
Componentes de Um SO
O que e um sistema operacional mesmo?
Parte que roda em modo supervisor?
E os programas de suporte?
E os programas de aplica cao? Onde parar?
Vamos supor que todos os componentes responsaveis por criar
uma ilusao de maquina virtual e de gerenciar recursos sao
partes do SO.
Gustavo M. D. Vieira Sistemas Operacionais: Introdu cao
Deni cao Partes Historia Hardware API Estrutura
Componentes de Um SO
Completude
MS-DOS e um SO?
So abstrai disco, nao tem suporte para rede, impressoras,
placas de som, etc.
Suporte primitivo para carregar programas.
Nao faz multiplexacao de recursos.
Vamos estudar um SO completo, mas as tecnicas sao
aplicaveis de forma isolada.
Sao, anal, solu coes para problemas comuns.
E sim, MS-DOS e um SO. :)
Gustavo M. D. Vieira Sistemas Operacionais: Introdu cao
Deni cao Partes Historia Hardware API Estrutura
Servicos e Abstracoes de SO
Abstra coes Fundamentais
Processo: um programa em execu cao, criado e gerenciado
pelo SO.
Arquivos: uma parte do disco alocada por um processo,
organizados em diret orios hierarquicos.
Interpretador de comandos: Um programa de suporte que
apresenta ao usuario uma interface para os servicos do SO.
Servicos Basicos
Gerencia de processos, memoria e E/S.
Multiplexacao e protecao dos recursos.
Gustavo M. D. Vieira Sistemas Operacionais: Introdu cao
Deni cao Partes Historia Hardware API Estrutura
Historia dos SOs
Nao Existe Magica
Nada e criado com a visao madura.
As tecnologias e ate a teoria sao descobertas na tentativa e
erro.
A visao deste curso e resultado de anos de tentativa e erro.
Entao, vamos ver um pouco da historia de SOs.
Gustavo M. D. Vieira Sistemas Operacionais: Introdu cao
Deni cao Partes Historia Hardware API Estrutura
Historia dos SOs
Primeira Geracao (194555)
Valvulas e paineis de conectores
Segunda Geracao (195565)
Transistores e sistema de lote (batch)
1401 7094 1401
(a) (b) (c) (d) (e) (f)
Card
reader
Tape
drive
Input
tape
Output
tape
System
tape
Printer
Gustavo M. D. Vieira Sistemas Operacionais: Introdu cao
Deni cao Partes Historia Hardware API Estrutura
Historia dos SOs
Terceira Geracao (196580)
Circuitos integrados
Multiprogramacao
Tempo compartilhado (timesharing)
Unix (Solaris, Linux, BSD, Mac OS X, iOS, Android)
Quarta Geracao (1980atual)
Computadores pessoais
Interfaces gracas
Redes de computadores
MS-DOS / Windows
Gustavo M. D. Vieira Sistemas Operacionais: Introdu cao
Deni cao Partes Historia Hardware API Estrutura
Historia dos SOs
Unix
Inspirado pelas ideias do Multics.
Pegaram um computador que ninguem usava e
implementaram o Unix. Usado para processar texto.
Criaram a linguagem C para reimplementar o SO.
Sistema orientado a texto, com abstra coes avancadas de
processos, arquivos, uxos de entrada e sada,
redirecionamento e outros.
Outro grupo desenvolveu TCP/IP na plataforma.
Fontes Interessantes
http://www.bell-labs.com/history/unix/
http://www.levenez.com/unix/
Gustavo M. D. Vieira Sistemas Operacionais: Introdu cao
Deni cao Partes Historia Hardware API Estrutura
Historia dos SOs
Windows
Herdeiro de tres sistemas operacionais: MS-DOS, OS/2 e
VMS.
MS-DOS: Sistema operacional rudimentar para o IBM-PC.
VMS: Suporte a memoria virtual, nomes de arquivos e
diret orios.
OS/2: Memoria protegida, compatibilidade com DOS.
A necessidade de compatibilidade e o grande mercado de PCs
denem a arquitetura.
Fontes Interessantes
Wikipedia
http://www.levenez.com/windows/
Gustavo M. D. Vieira Sistemas Operacionais: Introdu cao
Deni cao Partes Historia Hardware API Estrutura CPU Memoria E/S Barramentos
Organizacao de Computadores
Componentes
CPU
Memoria
Dispositivos de E/S
Barramentos
Monitor
Keyboard
Floppy
disk drive
Hard
disk drive
Hard
disk
controller
Floppy
disk
controller
Keyboard
controller
Video
controller
Memory CPU
Bus
Gustavo M. D. Vieira Sistemas Operacionais: Introdu cao
Deni cao Partes Historia Hardware API Estrutura CPU Memoria E/S Barramentos
CPU
Fun cao

E o cerebro do computador.
Busca instru coes na memoria, decodica a instru cao, busca
operandos na memoria, guarda os resultados na memoria.
Registradores
A CPU contem um pequena memoria interna para guardar os
dados lidos da memoria.
Esta memoria esta organizada em registradores.
Processadores tem um n umero variavel de registradores:
x86: 8
x86-64: 16
MIPS: 32
Gustavo M. D. Vieira Sistemas Operacionais: Introdu cao
Deni cao Partes Historia Hardware API Estrutura CPU Memoria E/S Barramentos
CPU
Conjunto de Instru coes
Cada processador possui o seu conjunto de instru coes.
Uma instru cao e um dado binario que indica uma opera cao a
ser executada pela CPU e seus parametros.
Instru coes sao usualmente representadas pelo seu mnem onico
em assembler:
addi $t0, $zero, 2
add $t1, $zero, $t0
add $t2, $t0, $t1
Gustavo M. D. Vieira Sistemas Operacionais: Introdu cao
Deni cao Partes Historia Hardware API Estrutura CPU Memoria E/S Barramentos
CPU
Registradores Especiais
Uma CPU possui alguns registradores especiais:
Contador de programa: endereco da pr oxima instru cao.
Ponteiro de pilha: endereco do topo da pilha de execu cao.
Ponteiro da base da pilha: endereco da base da pilha, quadro
de execu cao atual.
Palavra de estado do programa ou registrador de estado:
guarda informacoes sobre o estado da CPU.
Gustavo M. D. Vieira Sistemas Operacionais: Introdu cao
Deni cao Partes Historia Hardware API Estrutura CPU Memoria E/S Barramentos
CPU
Modos de Opera cao
A CPU possui pelo menos dois modos de opera cao:
Modo supervisor (ou kernel )
Modo usuario
A CPU inicia no modo supervisor, com controle total sobre o
hardware.
Existe uma instru cao privilegiada (somente disponvel em
modo supervisor) que muda para modo usuario.
No modo usuario, apenas um subconjunto de instru coes estao
disponveis.
Uma chamada de sistema e usada para mudar de modo
usuario para supervisor, devolvendo controle ao SO.
Gustavo M. D. Vieira Sistemas Operacionais: Introdu cao
Deni cao Partes Historia Hardware API Estrutura CPU Memoria E/S Barramentos
Mem oria
Deni cao
A memoria e onde programas e dados sao armazenados.
Existem varios tipos, apresentando um balan co distinto de
pre co, velocidade e durabilidade.
Tipo Tecnologia Velocidade Pre co
Registradores SRAM (vol.) 1 ciclo de CPU $$$$$$
Cache SRAM (vol.) 2 a 10 ciclos $$$$
RAM DRAM (vol.) 100s ciclos $$
Flash NAND (pers.) 100,000s ciclos $$
Disco Magnetico (pers.) 1,000,000 ciclos $
Gustavo M. D. Vieira Sistemas Operacionais: Introdu cao
Deni cao Partes Historia Hardware API Estrutura CPU Memoria E/S Barramentos
Mem oria
Hierarquia de Memoria
A memoria e organizada em uma hierarquia, para melhor
aproveitar as memorias mais caras e rapidas.
As memorias mais rapidas cam proximas da CPU.
Registers
Cache
Main memory
Magnetic tape
Magnetic disk
1 nsec
2 nsec
10 nsec
10 msec
100 sec
<1 KB
1 MB
64-512 MB
5-50 GB
20-100 GB
Typical capacity Typical access time
Gustavo M. D. Vieira Sistemas Operacionais: Introdu cao
Deni cao Partes Historia Hardware API Estrutura CPU Memoria E/S Barramentos
Mem oria
Protecao de Memoria
O problema e como executar varios programas ao mesmo
tempo: isolamento e relocacao.
De forma similar ao modo de opera cao da CPU, controladores
de RAM fornecem controle de acesso na forma de uma MMU.
Este componente dene quais endere cos de memoria um
processo consegue acessar.
Isto tambem permite denir um mapeamento entre os
endere cos que um programa usa e endere cos reais.
Acessos nao autorizados por este mapeamento param a
execu cao do programa e ativam o SO.
Gustavo M. D. Vieira Sistemas Operacionais: Introdu cao
Deni cao Partes Historia Hardware API Estrutura CPU Memoria E/S Barramentos
Mem oria
Memoria Virtual
O SO controla o mapeamento entre o espa co de
endere camento do processos e endere cos reais.
O SO pode usar este poder para guardar paginas no disco.
Virtual
address
space
Physical
memory
address

60K-64K
56K-60K
52K-56K
48K-52K
44K-48K
40K-44K
36K-40K
32K-36K
28K-32K
24K-28K
20K-24K
16K-20K
12K-16K
8K-12K
4K-8K
0K-4K
28K-32K
24K-28K
20K-24K
16K-20K
12K-16K
8K-12K
4K-8K
0K-4K

Virtual page
Page frame
X
X
X
X
7
X
5
X
X
X
3
4
0
6
1
2
Gustavo M. D. Vieira Sistemas Operacionais: Introdu cao
Deni cao Partes Historia Hardware API Estrutura CPU Memoria E/S Barramentos
Entrada e Sada
Fun cao
Dispositivos de E/S ligam a CPU ao mundo externo.
Do ponto de vista te orico, CPU e memoria sao suciente.
Na pratica, um computador sem E/S nao serve para nada.
Grande parte da motivacao e avancos de SO vem dos
dispositivos de E/S.
Gustavo M. D. Vieira Sistemas Operacionais: Introdu cao
Deni cao Partes Historia Hardware API Estrutura CPU Memoria E/S Barramentos
Entrada e Sada
Dispositivos, Controladores e Drivers
Um dispositivo de E/S e o aparelho em si.
Um controlador gerencia sicamente o dispositivo e apresenta
uma interface mais simples ao SO.
Um driver e o codigo contido no SO para utilizar um
dispositivo, atraves de seu controlador.
Exemplo de Controlador e Dispositivos
Um disco rgido e um dispositivo.
Uma interface SATA e um controlador de dispositivos de disco
rgido.
Gustavo M. D. Vieira Sistemas Operacionais: Introdu cao
Deni cao Partes Historia Hardware API Estrutura CPU Memoria E/S Barramentos
Entrada e Sada
Comunica cao com Controladores
Controladores possuem registradores que sao usados para
programa-los.
O acesso a estes registradores e feito de varias formas:
Os registradores possuem enderecos de porta e sao acessados
por instru coes especiais.
Os registradores sao mapeados na memoria e sao acessados
como um endereco de memoria qualquer.
Em ambos os casos, o controle e feito pela CPU lendo e
escrevendo bytes de dados.
Gustavo M. D. Vieira Sistemas Operacionais: Introdu cao
Deni cao Partes Historia Hardware API Estrutura CPU Memoria E/S Barramentos
Entrada e Sada
Execu cao de E/S
Uma opera cao de E/S engloba os seguintes passos:
1
Requisi cao atraves dos registradores
2
Espera pelo termino da opera cao
3
Leitura dos resultados
Existem algumas formas de se esperar e ler os dados:
Espera ocupada (polling)
Interrupcoes
Interrupcoes e acesso direto a memoria (DMA)
Gustavo M. D. Vieira Sistemas Operacionais: Introdu cao
Deni cao Partes Historia Hardware API Estrutura CPU Memoria E/S Barramentos
Entrada e Sada
Interrupcoes
As interrupcoes geradas pelo hardware interrompem a
execu cao do programa atual, ativando o SO.
A funcao do SO responsavel por uma interrupcao e dado pelo
vetor de interrupcoes.
CPU
Interrupt
controller
Disk
controller
Disk drive
Current instruction
Next instruction
1. Interrupt
3. Return
2. Dispatch
to handler
Interrupt handler
(b) (a)
1
3
4 2
Gustavo M. D. Vieira Sistemas Operacionais: Introdu cao
Deni cao Partes Historia Hardware API Estrutura CPU Memoria E/S Barramentos
Barramentos
Liga coes entre os dispositivos que comp oem o computador
CPU
Flash ROM
(BIOS)
Super I/O
Serial Port
Parallel Port
Floppy Disk
Keyboard
Mouse
Northbridge
(memory
o!troller hub)
Southbridge
(I/O o!troller
hub)
IDE
SATA
USB
Ethernet
Audio Codec
CMS Me!ory
O!board
graphis
o!troller
Clo"
#e!erator
#raphis
ard slot
"i#h$speed
#raphics bus
%A&P or PCI
E'press(
Chipset
Front$side
bus
Me!ory
bus
Memory Slots
PCI
Bus
PCI Slots
)PC
Bus
Internal
Bus
PCI
Bus
Cables and
ports leadin#
o*$board
Gustavo M. D. Vieira Sistemas Operacionais: Introdu cao
Deni cao Partes Historia Hardware API Estrutura CPU Memoria E/S Barramentos
Barramentos
Exemplos
Barramentos internos:
ISA (16,67MB/s)
PCI (133MB/s)
AGP (266MB/s a 2,133GB/s)
PCI Express (256MB/s a 16GB/s)
HyperTransport / QuickPath (19GB/s a 51GB/s)
Barramentos externos:
IDE (PATA)
SCSI
SATA
USB
FireWire
O SO deve saber como controlar o barramento, para poder
controlar os dispositivos ligados a ele.
Gustavo M. D. Vieira Sistemas Operacionais: Introdu cao
Deni cao Partes Historia Hardware API Estrutura Mecanismo API
Chamadas de Sistema
Visao Geral

E um mecanismo que permite aumento do privilegio de um


processo de modo usuario para modo supervisor.
Associado a este aumento, esta um desvio forcado da
execu cao do codigo do programa.
A combina cao destas duas propriedades permite usar chamada
de sistema para chamar funcoes no espa co de endere camento
do n ucleo, com as devidas permiss oes.
Interface de Programacao
O termo chamada de sistema tambem e usado para descrever
a interface de programacao disponibilizada pelo n ucleo.
Os servicos que o n ucleo disponibiliza sao tambem conhecidos
como chamadas de sistema.
Gustavo M. D. Vieira Sistemas Operacionais: Introdu cao
Deni cao Partes Historia Hardware API Estrutura Mecanismo API
Chamadas de Sistema
Como Fazer uma Chamada
1
Colocar os parametros na pilha.
2
Colocar o codigo da chamada em um registrador.
3
Executar a instru cao trap.
Observa coes
Os detalhes de cada passo variam muito de arquitetura para
arquitetura.
Os passos 2 e 3 devem ser feitos em assembler. O passo 1
pode ser feito em uma linguagem de alto nvel com as
mesmas convencoes de chamada do n ucleo.
Assim, as chamadas de sistema sao implementadas por
funcoes de biblioteca por simplicidade e portabilidade.
Gustavo M. D. Vieira Sistemas Operacionais: Introdu cao
Deni cao Partes Historia Hardware API Estrutura Mecanismo API
Chamadas de Sistema
Exemplo: count = read(fd, buffer, nbytes);
Return to caller
4
10
6
0
9
7 8
3
2
1
11
Dispatch
Sys call
handler
Address
0xFFFFFFFF
User space
Kernel space
(Operating system)
Library
procedure
read
User program
calling read
Trap to the kernel
Put code for read in register
Increment SP
Call read
Push fd
Push &buffer
Push nbytes
5
Gustavo M. D. Vieira Sistemas Operacionais: Introdu cao
Deni cao Partes Historia Hardware API Estrutura Mecanismo API
Chamadas de Sistema
Exemplo: Linux em MIPS
# imprime na tela
li $a0, 1 # descritor de arquivos
la $a1, stradr # endereco da cadeia
li $a2, 12 # comprimento da cadeia
li $v0, 4004 # c odigo de sys_write:
# __NR_write em unistd_32.h
syscall # trap
# termina programa
move $a0, $v0 # retorna n
o
carac. impressos
li $v0, 4001 # c odigo de sys_exit:
# __NR_exit em unistd_32.h
syscall # trap
Gustavo M. D. Vieira Sistemas Operacionais: Introdu cao
Deni cao Partes Historia Hardware API Estrutura Mecanismo API
Chamadas de Sistema
Organizacao do SO
O mecanismo de chamada de sistema e muito similar ao
mecanismo de interrupcao por software e por hardware.
Na arquitetura x86, as mesmas tabelas sao compartilhadas
pelas chamadas de sistema e por interrupcoes. Instru cao int:
chamada a interrupcao.
Estes mecanismos denem os pontos onde o controle e
desviado ao SO, e caracterizam o seu uxo de execu cao.
Gustavo M. D. Vieira Sistemas Operacionais: Introdu cao
Deni cao Partes Historia Hardware API Estrutura Mecanismo API
Chamadas de Sistema
Fluxo de Execu cao de Chamada de Sistema
Gustavo M. D. Vieira Sistemas Operacionais: Introdu cao
Deni cao Partes Historia Hardware API Estrutura Mecanismo API
Chamadas de Sistema
Fluxo de Execu cao de Interrupcao
Gustavo M. D. Vieira Sistemas Operacionais: Introdu cao
Deni cao Partes Historia Hardware API Estrutura Mecanismo API
Chamadas de Sistema
Fluxo de Execu cao com Multiprogramacao
Gustavo M. D. Vieira Sistemas Operacionais: Introdu cao
Deni cao Partes Historia Hardware API Estrutura Mecanismo API
Interface de Programacao
Chamadas de Sistema como Interface de Programacao
O conjunto de chamadas de sistema dene os servicos que o
n ucleo oferece.
O acesso a estas chamadas e feito por bibliotecas, que denem
a API (Application Programming Interface) basica do sistema.
O mapeamento entre chamada de sistema e API pode ser
direto (Unix/C) ou indireto (Windows, Java).
A API apresenta uma abstra cao de mais alto nvel e inclui
algumas funcoes que nao geram chamadas de sistema.
Gustavo M. D. Vieira Sistemas Operacionais: Introdu cao
Deni cao Partes Historia Hardware API Estrutura Mecanismo API
Interface de Programacao Unix
Chamadas de Sistema para Gerencia de Processos
fork: Cria um novo processo. O processo criado e identico
ao processo atual.
waitpid: Espera o termino de um processo.
exec: Substitui codigo e dados do processo atual por um
programa passado como argumento. Outras
estruturas do SO sao mantidas.
exit: Termina processo.
kill: Envia um sinal a um processo.
time: Obtem a data atual.
Gustavo M. D. Vieira Sistemas Operacionais: Introdu cao
Deni cao Partes Historia Hardware API Estrutura Mecanismo API
Interface de Programacao Unix
Chamadas de Sistema para Manipula cao de Arquivos
open: Abre um arquivo para leitura ou escrita. Cria um
arquivo novo, ao abri-lo para escrita.
close: Fecha um arquivo.
read: Le um sequencia de bytes de um arquivo.
write: Escreve um sequencia de bytes em um arquivo.
lseek: Move o ponto de leitura/escrita.
stat: Obtem informa coes sobre o arquivo (dono, data
modica cao, tamanho, etc.)
chmod: Muda as permiss oes de acesso a um arquivo.
Gustavo M. D. Vieira Sistemas Operacionais: Introdu cao
Deni cao Partes Historia Hardware API Estrutura Mecanismo API
Interface de Programacao Unix
Chamadas de Sistema para Gerencia de Arquivos
chdir: Muda o diret orio corrente.
mkdir: Cria um diret orio.
rmdir: Remove um diret orio, se vazio.
link: Cria uma entrada em um diret orio para um arquivo.
unlink: Remove a entrada de um arquivo no diret orio.
mount: Anexa um sistema de arquivos na hierarquia de
arquivos.
umount: Remove um sistema de arquivos da hierarquia de
arquivos.
Gustavo M. D. Vieira Sistemas Operacionais: Introdu cao
Deni cao Partes Historia Hardware API Estrutura
O N ucleo
Arquitetura de Software do N ucleo
N ucleo e um conjunto de funcoes e dados globais que
executam em modo supervisor.
Pontos de entrada sao as interrupcoes e chamadas de sistema.
Como e um codigo de baixo nvel, proximo do hardware, a
organiza cao e minimamente auxiliada por software.
Como O N ucleo Pode Ser Organizado
Monoltico: Todas as funcoes da interface do SO em um unico
programa.
Em camadas: Identico a monoltico, mas com uma organiza cao
rgida interna (convencao ou hardware).
Micro-n ucleo: So o mnimo das funcoes da interface do SO
executa em modo supervisor, o resto e implementado
como programas comuns.
Gustavo M. D. Vieira Sistemas Operacionais: Introdu cao
Deni cao Partes Historia Hardware API Estrutura
Estrutura de SO
Monoltico
N ucleo e um unico conjunto de funcoes e dados globais.
Grande tamanho e complexidade.
Alta complexidade, exigindo disciplina e processos sosticados
(ou um unico programador muito disciplinado).
Micro-n ucleo
Qual e o mnimo que deve estar no n ucleo?
Nao existe fronteira denida.
Uma visao defende que apenas tratamento de interrupcoes,
troca de contexto e comunicacao.
Gustavo M. D. Vieira Sistemas Operacionais: Introdu cao
Deni cao Partes Historia Hardware API Estrutura
Estrutura de SO
M odulos
M odulos sao um mecanismo que aumentam a exibilidade de
n ucleos monolticos, permitindo a carga e descarga em tempo
de execu cao de partes do n ucleo.
Nao exige que todos os componentes do n ucleo estejam em
memoria.
Vantagens:
Espaco: fun coes nao usadas nao cam em memoria.
Flexibilidade: conguracao em memoria do n ucleo e fun cao do
ambiente de execu cao.
Suporte a dispositivos hot-plug, como USB, PCI-e, etc.
Simplicidade: m odulos denem uma interface padrao para
extensao do n ucleo.
Gustavo M. D. Vieira Sistemas Operacionais: Introdu cao
Deni cao Partes Historia Hardware API Estrutura
Estrutura de SO
Exemplo: Linux
A maioria dos drivers de dispositivos, barramentos e outras
funcoes do n ucleo podem ser compilados como modulos.
Carga automatica de modulos e controle de dependencia.
Uma unica versao compilada do n ucleo suporta de
mini-laptops a grandes servidores.
Nao Existe Magica
Quase todos os SO em grande uso sao monolticos, com
modulos ou mecanismo similar.
Gustavo M. D. Vieira Sistemas Operacionais: Introdu cao
Deni cao Partes Historia Hardware API Estrutura
Virtualizacao
O que e virtualizacao?
Sao tecnicas que permitem que um sistema operacional
completo rode como uma aplica cao comum.
O sistema operacional acredita que ele tem controle total
sobre o hardware, mas na verdade nao tem.
As instru coes executadas em modo supervisor sao
interceptadas e executadas de forma segura pelo hipervisor.
Papeis
Antriao: SO que roda a maquina virtual.
H ospede: SO que roda dentro da maquina virtual.
Gustavo M. D. Vieira Sistemas Operacionais: Introdu cao
Deni cao Partes Historia Hardware API Estrutura
Mecanismos de Intercepta cao
Visao Geral

E necessario convencer o SO de que ele possui controle


completo sobre o hardware.
Uma alternativa e rodar o SO em modo usuario e tratar as
viola coes de protecao.
Porem, isto varia de facil a impossvel de acordo com a
arquitetura.
Na arquitetura x86 e impossvel, pois algumas instru coes tem
efeitos colaterais que quebram a ilusao do controle completo
do hardware.
Gustavo M. D. Vieira Sistemas Operacionais: Introdu cao
Deni cao Partes Historia Hardware API Estrutura
Mecanismos de Intercepta cao
Totalmente em Software / Emula cao
Todas as instru coes de hardware do h ospede sao simuladas em
software, inclusive os dispositivos.
Possui controle total sobre a execu cao.
Permite virtualizar arquiteturas diferentes.
O desempenho e tao baixo, que nao e muito util.
Exemplos: QEMU, OpenMSX.
Gustavo M. D. Vieira Sistemas Operacionais: Introdu cao
Deni cao Partes Historia Hardware API Estrutura
Mecanismos de Intercepta cao
Parcialmente em Software / Hacks
O SO executa diretamente na CPU, mas alguns truques sao
usados para proteger instru coes privilegiadas.
Por exemplo, todo codigo em modo supervisor do SO executa
emulado.
Apresenta melhor desempenho que emulacao.
O desempenho ainda deixa desejar, mas ja tem utilidade
pratica.
Exemplos: VMWare, VirtualBox.
Gustavo M. D. Vieira Sistemas Operacionais: Introdu cao
Deni cao Partes Historia Hardware API Estrutura
Mecanismos de Intercepta cao
Paravirtualizacao
O SO executa diretamente na CPU, em modo usuario e sabe
que nao tem controle do hardware.
O SO requisita ao hipervisor a execu cao de instru coes
privilegiadas.
Apresenta desempenho proximo ao nativo, mas exige
modica cao no SO h ospede.
Exemplos: Xen (Linux).
Gustavo M. D. Vieira Sistemas Operacionais: Introdu cao
Deni cao Partes Historia Hardware API Estrutura
Mecanismos de Intercepta cao
Com Suporte do Hardware
O SO executa diretamente na CPU, em modo usuario.
Todas as instru coes privilegiadas sao interceptadas e
simuladas.
Apresenta desempenho proximo ao nativo.
As instru coes privilegiadas e o hardware ainda sao simulados
em software.
Exemplos: VM/370, QEMU-KVM, Hyper-V, VMWare,
VirtualBox.
Gustavo M. D. Vieira Sistemas Operacionais: Introdu cao
Deni cao Partes Historia Hardware API Estrutura
Implementa cao de Dispositivos
Dispositivos Emulados
Os dispositivos sao quase sempre emulados, inclusive os
barramentos.
Isto e necessario pois cada SO quer seus proprios dispositivos,
sem compartilha-los.
Uma vantagem e que o hardware e xo, bom para sistemas
legados.
Como tudo e feito em software, E/S ca mais lenta ainda.
Alternativas
Paravirtualizacao de dispositivos: o hipervisor apresenta uma
interface especial usada por drivers dedicados;
ou alocar o hardware a apenas uma VM;
ou usar dispositivos de hardware com varias identidades.
Gustavo M. D. Vieira Sistemas Operacionais: Introdu cao
Deni cao Partes Historia Hardware API Estrutura
Micro-n ucleo x Virtualizacao
Semelhancas e Diferen cas
O princpio das duas organiza coes e similar.
Virtualizacao tem grande sucesso e micro-n ucleo nao.
Utiliza o que ja existe, permitindo evolucao gradual.
Nao precisa de coopera cao do programador.
Gustavo M. D. Vieira Sistemas Operacionais: Introdu cao
Deni cao Partes Historia Hardware API Estrutura
Incio do Sistema (boot)
Sequencia Padrao (Linux)
Computador inicia, executando um programa em rmware
(BIOS ou EFI) que faz a conguracao basica do hardware.
O rmware carrega um setor pre-denido no disco inicial
tambem pre-denido. Este setor contem um pequeno
programa: a Fase 1 do bootloader (GRUB).
A Fase 1 faz o mnimo para carregar a Fase 2, que deve ser
capaz de localizar no disco a imagem do n ucleo.
A Fase 2 apresenta um menu onde pode ser escolhido o
n ucleo a ser executado.
Gustavo M. D. Vieira Sistemas Operacionais: Introdu cao
Deni cao Partes Historia Hardware API Estrutura
Incio do Sistema (boot)
Sequencia Padrao (Linux)
A Fase 2 carrega o n ucleo, usualmente comprimido, e o disco
em RAM inicial, e inicia a execu cao do mesmo.
O n ucleo se descomprime, inicia a execu cao e monta o disco
em RAM inicial.
O n ucleo entao monta a particao raiz, e executa o processo
/bin/init contido nela.
A partir deste momento o n ucleo ca inativo, servindo os
processos de aplica cao.
O incio de todos os componentes do SO que rodam em modo
usuario e feito pelo processo init:
Montar sistemas de arquivos;
Iniciar servicos do sistema e a interface graca.
Gustavo M. D. Vieira Sistemas Operacionais: Introdu cao

Você também pode gostar