You are on page 1of 47

Sistemas Operativos

Princpios de sistemas operativos

Rui Maranho (rma@fe.up.pt)


Agenda

objectivos de um computador
objectivos de um sistema operativo
evoluo dos sistemas operativos
tipos de sistemas operativos
Computador
formado por hardware, ...
e tambm programas, aplicaes


Objectivos de um
computador
manipular dados (semi-) automaticamente
facilitar a vida aos utilizadores
prtico, simples de usar

executar programas (i.e., aplicaes)


Sistema Operativo
programa que actua como intermedirio
entre os utilizadores e o hardware

gestor de recursos
tempo, espao
Objectivos
- Convenincia -
SO esconde os detalhes do hardware

simula mquina virtual (utilizao fcil)

fornece API mais fcil de usar do que o hardware


Objectivos
- Eficincia -
SO controla a alocao dos recursos

multiplexao
tempo: cada processo usa o recurso vez
espao: recurso partilhado
Evoluo

1a gerao (1945-1955) - Vlvulas e placas programveis

2a gerao (1955-1965) - Transstores e sistemas batch

3a gerao (1965-1980) - Circuitos integrados

4a gerao (1980- ) - PCs, workstations, servidores

uma nova gerao?? PDAs, smartphones, sistema de


navegao (ndrive), TVs, ...
1a gerao
acesso livre ao computador
utilizador podia mas tambm tinha de
fazer tudo
inventar a roda
baixa eficincia
elevado tempo de preparao
difcil encontrar erros
2a gerao
transstores e sistemas batch (mainframes)
mais eficiente que a 1a gerao, mas
mquinas bastante caras
como executar um programa ?
programa era escrito em papel
codificado em fitas perfuradas
fornecido ao operador especializado
2a gerao
para aumentar eficincia
operador especializado
operador carrega programas, executa-os e
devolve resultados
1 programa de cada vez
programa auxiliar para executar tarefa tinha
de ser carregado (FORTRAN)
ganhou-se eficincia, perdeu-se convenincia
2a gerao

gestores queriam reduzir tempo off-line


maximizar uso da mquina ()!!
soluo: sistemas batch
coleccionar srie de programas semelhantes
numa fita
Sistemas batch
Sistemas batch
Como melhorar?
programa (resident monitor) que
controla a operao de um computador
encadeia jobs

embrio de um sistema operativo?!


3a gerao
multi-programao
executar programas ao mesmo tempo
e.g., enquanto um programa espera por
IO, outro pode usar o CPU
Multiprogramao
vrios jobs so carregados para a memria
central, e o tempo de CPU repartido
mecanismos de interrupes permite multiplexar
o processador entre vrias actividades
execuo concorrente de vrios programas
optimizar utilizao do processador
Multiprogramao
Contudo...
Eficincia em risco devido erros de programao
deadlocks
race conditions
destruir o programa de controle
Pouca interaco com programa em execuo
difcil identificar erros!
Time-sharing
time-sharing aumenta a convenincia

SO reparte o tempo de CPU pelos vrios


programas prontos a executar

cria a iluso que o computador est


permanentemente disponvel

Impulsionado por descida dos preos dos


terminais


Consequncias
reviso dos algoritmos de escalonamento
definio dos mecanismos de segurana
aparecimento do sistema de ficheiros
tempo partilhado -> vrios progs em
memria simultaneamente
Hierarquia de memria
4a gerao
apareceram por volta dos anos 80
incentivado pelo baixo custo do hardware
exequvel um computador voltar a ser
dedicado a um s utilizador

tambm conhecido como computadores


pessoais (ou micro-computadores)
Multiprocessamento

vantagens
throughput
economia
graceful degradation
ideia: aumentar throughput, e no executar
o programa mais depressa
Multiprocessamento
Arquitectura
simtrico
qualquer CPU pode executar cdigo do SO
assimtrico
perifricos associados a um CPU
no h race conditions, CPU idles
baixo throughput
Sistemas Distribudos
SD apareceram para partilhar
recursos caros
inconvenientes de replicar
redireccionamento de IO
Consequncia da evoluo de
redes, PCs, custo dos computadores, ...
Sistemas Distribudos

de network aware OSs (sistemas iniciais:


Mail, FTP) passou-se a sistemas
vocacionados para trabalhar em rede (e.g.,
sistemas de ficheiros distribudos)
aplicaes acedem aos recursos remotos
de forma transparente
Sistemas de tempo real
inicialmente usado para controlo de
processos industriais
tb usado para jogos, sistemas, controlo de
automveis/avies
tpico de sistemas embebidos
SW integrado com o HW
difcil de estender as aplicaes
Tempo virtual vs. real
tempo virtual
tempo de execuo no tem relao com o
tempo cronolgico
sistema utilizado na maioria dos computadores
(windows, linux, mac os)
tempo real
tentam garantir que o computador produz uma
resposta num intervalo de tempo determinado
Tempo real

diferentes requisitos por aplicaes


soft real time - sistema robusto a certos
atrasos
hard real time - no cumprimento de um
prazo corresponde a uma falha
Evoluo dos conceitos (SO)

No Compilers
software
Organizao de um SO

OS divide-se em
kernel - dividido em mdulos
biblioteca de system calls
processos do sistema
Arquitectura de SO

sistemas monolticos
modelo cliente-servidor
microkernel
mquinas virtuais
exokernel
Monoltico

um nico sistema
internamente organizado em mdulos
estrutura de dados globais

e.g., DOS, Windows, Linux


Microkernel
um ncleo de reduzidas dimenses e que
s continha o essencial do SO
gesto de threads, endereamento
servidores de sistema que executam em
processos independentes a restante
funcionalidade
device drives, memria virtual, ...

e.g., Minix, Symbian


Modelo cliente-
servidor
variao da ideia de micro-kernel
distingue cliente e servidor
comunicao feita base de mensagens
cliente e servidor podem estar em
computadores distintos
Mquinas Virtuais
desenvolvido pela IBM devido ao interesse
dos seus trabalhadores de usarem os
computadores de forma interactiva
cria um colone da mquina na qual esta a
ser executado
ex., Java Virtual Machine
independente da plataforma, sandbox
Exokernel
em vez de colonar a mquina actual, d ao
utilizador um subconjunto de recursos
exokernel e um programa que faz a
alocao dos recursos
utilizadores pedem recursos ao exokernel
mais simples de manter do que virtual
machines. Porqu?
Processo de booting

executa instruo FFFFFFFF0h do BIOS


contm um jump para o programa inicial
executa auto-test (POST) de hardware
se encontra dispositivo executa o master boot
register (MBR)
MBR carrega e executa o sector de iniciao da
partio (e.g., executar o kernel)
Modo kernel vs. Modo
utilizador
Modo kernel vs. utilizador
processos dos utilizadores no podem
interferir com dados/execuo do SO
devem tb estar vedadas as aplicaes dos
utilizadores
Ajuda o processador: espaos de
endereamento diferentes
Barreira de proteco: interrupo de SW
Sistemas operativos
- exemplos -
MS-DOS
Mac OS (primeiro com GUI)
Windows (3.11, NT, Me, XP, Vista)
Unix-based: FreeBSD, X11, Gnome, KDE
MS-DOS
UNIX
OS/2
Windows NT
Symbian OS
Sumrio

objectivos de um sistema operativo


convenincia e eficincia
evoluo de sistemas operativos
porque so necessrios?
tipos de sistemas operativos

You might also like