Escolar Documentos
Profissional Documentos
Cultura Documentos
As notas de aulas so referncias para estudo. Portanto no devem ser adotadas como material didtico absoluto!
Verso 0.1 30/08/2008
CPU (unidade central de processamento) composto de uma unidade de controle (UC), unidade
lgico-aritmtica (ULA) e registradores;
Memria Principal, onde os programas esto armazenados (veremos detalhes a seguir);
Dispositivos de E/S, responsveis em transferir dados de dentrofora do computador
Pontos Importantes:
Atualmente os computadores (a maior parte deles) utilizam uma arquitetura composta dos
seguintes componentes vistos na figura 01.
Memria Principal
endereo
dados/instrues
CPU
Registradores
ULA
PC
Unidade de Controle
Dispositivos E/S
Figura 01 Modelo Conceitual dos computadores atuais, baseados no IAS de Von Neumann
Processadores
Correspondem ao crebro do computador, pois o responsvel em executar todas as tarefas
referentes busca/execuo dos programas e dados. Para modularizar seu funcionamento, ser
apresentado o modelo didtico com as seguintes componentes:
2
Memria Cache Atualmente para melhorar o desempenho, os processadores atuais possuem uma
memria de altssima velocidade (quando comparada a memria RAM ou disco rgido) para
arquivar os dados de maior utilizao, evitando acessos constantes memria. Veremos mais
detalhes no decorrer desta apostila.
Unidade de busca
Unidade de execuo
Paralelismo a nvel de instrues A diviso das instrues em partes menores sendo essas
executadas em um hardware especfico. (lembrem-se do exemplo da soma dado em sala!)
[ E1 ]
Unidade de
busca de
instruo
[ E2 ]
Unidade de
decodificao
de instruo
[ E3 ]
Unidade de
busca de
operando
[ E4 ]
Unidade de
execuo de
instruo
[ E5 ]
Unidade
de escrita
3
E1
P1
E2
P2
P3
P4
P5
P6
P7
P8
P1
P2
P3
P4
P5
P6
P7
P1
P2
P3
P4
P5
P6
P1
P2
P3
P4
P5
P1
P2
P3
P4
E3
E4
E5
tempo
Memria Principal
A memria principal uma das partes essenciais para o funcionamento do computador, uma vez
que nela que os programas e dados so executados. O que se esperar da memria? Tamanho infinito,
ultra-rpida (no atrase o processador) e barata (afinal ningum quer gastar dinheiro!). possvel
conciliar isso? Isso ser discutido mais tarde.
A memria organizada atravs de clulas, unidades elementares de memria, que compem
segmentos (pedaos alocados por um programa que podem conter mais de uma clula). Vamos imaginar
uma memria de 1Megabyte (220 bytes = 1024*1024) com clulas de 32 bits (22 bytes), retemos ento:
Total de Clulas= Total de memria /Tamanho da clula
= 220 bytes/22 bytes
= 218 clulas
Ou seja teramos 218 clulas a serem endereadas. Vamos supor agora que o sistema operacional
precisa de 26 bytes para executar uma determinada instruo (IX) de um programa em Pascal (compilador
de alto nvel). O sistema operacional ficar responsvel em alocar segmentos de memria (contnuos ou
no) para que esta informao possa ser trabalhada pelo processador.
Vazio
IY
IX
IX
IX
IX
IX
IX
IX
Vazio
199
200
201
202
203
204
205
206
207
208
cache
preo
principal
discos rgidos
velocidade
unidades de fita
Memria RAM
Cache
256MB
5
Nota-se que esta composio mecnica dos discos no pode superar, em velocidade, o mtodo
digital dos semicondutores utilizados na memria RAM e memria cache.
Dispositivos de Entrada e Sada
Antes de serem tratados os dispositivos de E/S importante salientar que a transferncia de dados
entre processador, memria principal, memria secundria (discos rgidos, flexveis e ticos) feita
atravs dos barramentos.
Cada dispositivo de entrada e sada composto de uma controladora e do dispositivo propriamente
dito. Esta controladora d acesso ao barramento do computador sem que haja uma interveno o
processador executando um acesso direto memria (DMA). E quando esta transferncia de dados
transmitida, a controladora fora uma interrupo, fazendo com qu o processador suspenda o processo em
execuo a fim de rodar um procedimento para verificar possveis erros de transferncia de dados, este
procedimento denominado rotina do tratamento de interrupo.
J que o barramento acessado por todos os dispositivos, o que aconteceria se dois ou mais
dispositivos brigarem pelo acesso ao barramento? Nos projetos dos computadores atuais est presente um
dispositivo que executa esta seleo chamada de arbitro do barramento. A prioridade geralmente dos
discos magnticos, uma vez que as paradas sucessivas podem ocasionar perda de dados.
Atualmente estas controladoras esto
presentes dentro da placa-me
Processador
Memria
HD
Monitor
Teclado
Controladora
HD
Controladora
Vdeo
Controladora
6
Software
Sistema
operacional
Hardware
Arquitetura de um SO
Esta arquitetura simples e intuitiva de ser
entendida. O kernel presta servio aos programas de
usurios e recebe servios do microkernel. A
separao entre estes dois nveis diz respeito a
separao dos servios bsicos oferecidos.
Chamadas de
Sistema
Programas
Kernel
Microkernel
Dados
Solicitados
Hardware
Figura 11 Arquitetura de um SO
Um sistema operacional pode oferecer servios tambm na
camda de utilitrios (programas de usurio) confundindo muitas vezes
o usurio, uma vez que tais servios so distribudos pelo prprio
forncedor do software. O Windows Explorer e o task manager manipulador de arquivos e diretrios e gerenciador de tarefas,
respectivamente so exemplos no Microsoft Windows. J o comando
Kernel
top e time so bons exemplos no Linux. Talvez o mais importante eles
seja o interpretador de comandos, uma vez que o usurio comea sua
seo de trabalhos (sem interface visual!).
Figura 12 Interpretador de comandos
C:\ dir /s
Interpretador
de Comandos
Arquitetura Interna de um SO
A eficincia do SO decorrente das facilidades impostas e multiprogramao (veremos a seguir), que
por sua vez s ocorrem pois ele est organizado internamente, viabilizando dois tipos de eventos:
7
Chamada de sistema uma solicitao de recurso por parte de um programa que est sendo
executado. Diversas preocupaes associadas podem ser listadas, como por exemplo: permisso do
usurio a este recurso.
Interrupo de perifrico o processador para o processador que est executando para atender a
um retorno de um perifrico (controladora dele) informando que o recurso est disponvel.
C
F
Quando esto em operao, dois ou mais processos podem entrar em uma situao da qual mo
conseguem sair, esta situao chamada de deadlock.
Memria
Todo computador tem uma memria principal para guardar o estado dos programas em execuo.
Em sistemas operacionais muito simples, somente um programa por vez ocupa a memria.
Sistemas operacionais modernos permitem que mltiplos programas residam na memria principal
ao mesmo tempo. Para que no haja conflito com outros programas ou com o sistema operacional
necessrio construir um mecanismo de proteo a ser controlado pelo sistema operacional.
Outro ponto importante como gerenciar e distribuir os espaos de endereamento dos processos
guardados em memria principal? O que pode ser feito para que um processo que requer mais memria
que o computador dispe? Sistemas operacionais modernos utilizam memria virtual.
Arquivos
Como uma das funes do sistema operacional deixar transparente o aceso aos recursos (entre
eles o disco!) sero necessrias criao de chamadas de sistema para facilitar o acesso aos arquivos
gravados no disco.
Para poder guardar organizadamente os arquivos, vrios sistemas operacionais utilizam o conceito
de diretrio. Cada arquivo dentro desta hierarquia de diretrios pode se acessado fornecendo-se o
caminho (path name) a partir do topo da hierarquia, chamado de diretrio raiz.
8
Multiprogramao
Como os programas que esto em execuo provavelmente precisaro de acesso aos dispositivos
de E/S e acesso a disco, neste momento o processador ficaria ocioso (o que no verdade, pois o mouse
se mexe e voc o v no monitor!). Nota-se uma necessidade de otimizar a eficincia de utilizao do
computador. Uma soluo seria manter mais de um programa (ou parte dele) na memria principal e
escalonar a utilizao do processador dividindo o tempo de utilizao de forma a no deix-lo ocioso e
atendendo todos os processos.
Com a multiprogramao, a execuo dos processos passa por diversas fases, alternando a
utilizao do processador de forma que reduza o tempo ocioso do processador e o distribua de forma justa
entre processos. Alm disso, muitos processos (quase todos) no precisam de toda memria virtual, logo
se um processo ficasse exclusivo na memria, isto acarretaria um desperdcio.
Gerncia de Processos
Um processo um programa em execuo incluindo os valores armazenados nos registradores e o
valor das variveis.
As mquinas atuais utilizam o Conceito de pseudoparalelismo paralelismo aparente forma de
chavear o processador em diferentes processos (programas) criando a aluso de simultaneidade de
execuo. Para tal necessrio o rpido chaveamento do processador entre diversos programas em
execuo, chamado de Multiprogramao.
Como o processador est sendo chaveado entre diversos processos pode-se observar que a
velocidade de execuo no constante, por isso a programao de processos no pode ter restries de
tempo.
9
Estados do processo
Embora cada processo seja uma entidade independente, muitas vezes os processos precisam
interagir com os outros. Para gerenciar esta interao e o escalonamento dos processos necessrio
definir os possveis estados que um processo pode ficar:
1. Em execuo, realmente utilizando a CPU
2. Pronto, capaz de executar a qualquer instante, mas no tem CPU
3. Bloqueado, incapaz de executar
Executando
Destruio
1
Criao
3
Bloqueado
2
Pronto
...
n-1
Escalonador
Figura 15 Escalonador e os processos
Comunicao interprocessos
Como visto acima, freqentemente os processos precisam se comunicar com outros processos,
preferencialmente de maneira estrutura e sem interrupes (nem sempre possvel). Neste tpico
devemos nos preocupar com 3 pontos: a troca de informaes entre processos; a garantia de que um
processo no invada o espao fsico do outro; e a garantia de que um processo no altere os dados que
esto sendo trabalhados por outro (que deve estar no estado pronto neste momento).
O Sistema Operacional deve ento evitar que quando dois ou mais processos que acessam dados
compartilhados o resultado destes processos no dependa do escalonamento, ou seja, um processo no
interferiu no outro. Isto chamado de condio de corrida.
Uma forma de se isolar este problema a definio e tratamento das regies que possam levar
condies de corrida, tais regies so chamadas de regies crticas. Para tal 4 regras foram definidas:
1.
2.
3.
4.
10
Algoritmos de Escalonamento
Round Robin
Quantum constante
Sem prioridade
Polmica: Quantum x troca de contexto
Com Prioridade
Garantido
Loteria
Filas mltiplas
11
Gerncia de Memria
Alguns sistemas operacionais mais simples no trabalham com multiprogramao, ou seja, alocam
um processo na memria o executam at que seja terminado. Porm a troca de processos entre memria
e disco para sistemas multiprogramados uma realidade. Para este caso, em que a soma dos espaos de
memria requeridos por todos os processos maior que a memria primria, necessrio levar os dados
no utilizados para o disco, sendo necessrio um controle atravs de mapa de bits.
A utilizao de memorial virtual recomendada, mas o algoritmo de substituio de pginas deve
ser eficiente para garantir o desempenho do processo. Recomenda-se o uso do algoritmo do
envelhecimento (aging) e o WSClock. Um resumo dos algoritmos de substituio de pginas segue abaixo:
timo
NUR
(no usada recentemente)
FIFO
Muito rudimentar
Melhoria do FIFO
Relgio
Realista
MRU
(menos recentemente usada)
NFU
(no frequentemente usada)
Envelhecimento (aging)
Conjunto de trabalho
Implementao cara
WSCLOCK
12
13
o
o
o
o
o
o
o
o
o
Pesquise
1.
2.
3.
4.
5.
Programao Concorente
MINIX
SOSIM
Bibliografia
[1] TANENBAUM, A., Organizao Estruturada de Computadores, 5 Edio, 2006.
[2] TANENBAUM, A. Sistemas Operacionais Modernos. 2 Edio 2006.
[3] TOSCANI, S.; OLIVEIRA, R.; CARISSIMI, A. Sistemas operacionais. 3 Edio Sagra Luzzatto, 2004.
14