You are on page 1of 49

Introduo aos Sistemas Operacionais

Definies de Sistema Operacional


O software de computador pode ser dividido em dois tipos: programas de sistema e programas
aplicativos. O principal programa de sistema o sistema operacional, que controla todos os recursos
do computador e fornece a base lgica sobre a qual os programas aplicativos so escritos. Sua
principal funo isolar os programadores da complexidade do ardware. ! importante salientar
que o sistema operacional propriamente dito aquela parcela que roda no modo "ernel #supervisor$.
Os compiladores, editores e interpretadores de comando #Sell$ executam no modo usu%rio. &%
duas fun'es principais de um S.O.:
m%quina estendida: o S.O. deve apresentar ao usu%rio o equivalente a uma m%quina
estendida ou m%quina virtual, teoricamente mais f%cil de programar que o ardware(
gerenciador de recursos: o S.O. deve oferecer uma alocao ordenada e controlada dos
processadores, memrias e quaisquer dispositivos de )*S que os programas podem competir.
Ou se+a, o S.O. tem como funo gerenciar eficientemente as diferentes partes do sistema.
)xistem quatro modelos de S.O.:
sistemas monol,ticos: o S.O. escrito como uma coleo de procedimentos, que podem
camar quaisquer outros sempre que precisar, sem nenum tipo de estrutura ier%rquica(
sistemas em camadas: um S.O. organi-ado em uma ierarquia de camadas, constru,da uma
sobre a outra(
m%quinas virtuais: formado por um monitor de m%quina virtual, que rodava no ardware
b%sico e coordenava a multiprogramao, fornecendo v%rias m%quinas virtuais . camada
superior #no m%quinas estendidas, e sim cpias exatas do ardware b%sico$(
modelo cliente/servidor: minimi-ao do "ernel #atravs da remoo de cdigo do S.O.,
movendo para as camadas mais altas$, implementando as fun'es do S.O. como processos
de usu%rio. Os processos de usu%rio #clientes$ enviam requisi'es para os processos
servidores, que reali-am a operao e retornam a resposta necess%ria.
0m S.O., tipicamente, tem quatro grandes componentes: gerenciamento de processos,
gerenciamento de dispositivos de )*S, gerenciamento de memria e gerenciamento de arquivos.
Histria dos Sistemas Operacionais
1radicionalmente, os S.O. podem ser divididos, istoricamente, em quatro gera'es:
23. 4erao: os programadores desenvolviam o programa e as fun'es que, atualmente, esto
sob a superviso do S.O(
53. 4erao: o sistema de processamento em lote, que constitu,a no arma-enamento prvio
de diversos +obs para serem processados sequencialmente no computador, marcou esta
gerao. 0m +ob s iniciava seu processamento quanto o seu antecessor terminava(
63. 4erao: desenvolvimento do conceito de multiprogramao, ou se+a, a partio da
memria do computador em diversas parcelas para que m7ltiplos +obs pudessem ser
executados, dando a sensao para o usu%rio de um paralelismo no existente. 8or exemplo,
enquanto um +ob esperava por uma operao de )*S #potencialmente mais demorada$, a
980 poderia reali-ar o processamento de outro +ob +% arma-enado na memria(
:3. 4erao: com o surgimento das esta'es de trabalo e dos computadores pessoais, o
desenvolvimento de interfaces gr%ficas se torna comum. ;s redes de computadores
impulsionam o surgimento de sistemas operacionais de rede e os sistemas operacionais
distribu,dos.
Estruturas dos Sistemas Operacionais
0m sistema operacional fornecia o ambiente no qual os programas #softwares$ so executados. Os
SOs variam internamente entre si devido .s diversas necessidades e restri'es de softwares e
ardwares.
Sistemas monolticos
0m micro/computador 89 <1 rodando o =S >OS ?.@.
1ambm conecida como estrutura simples, esta a estrutura dos primeiros SOAs. 9onsistida,
basicamente, por um programa dividido em sub/rotinas, na estrutura monol,tica permitido a
qualquer uma dessas sub/rotinas em qualquer parte do programa camar outra#s$ sub/rotina#s$. ;
construo do programa final dada com base nos mdulos compilados separadamente, unidos
atravs de um lin"er. ; boa definio de parBmetros de ligao entre as diferentes rotinas existentes
aumenta e muito o desempeno, porm o sistema pode parar devido a algum erro ocasionado por
uma dessas rotinas. ; exemplo temos o prprio 0CD<, o =S >OS, o EreeFS>, dentre outros.
Sistemas em camadas
G medida que os sistemas operacionais tornaram/se mais complexos e maiores, pro+etos puramente
monol,ticos tornaram/se invi%veis e, ento a arquitetura em camada, ou modular, tornou/se uma boa
opo, agrupando HcamadasH de componentes, ou se+a, con+unto de procedimentos, que reali-am
tarefas similares.
9ada camada comunica/se somente com as suas camadas imediatamente inferior e superior. 0ma
camada inferior sempre presta um servio . sua camada superior, sendo que a camada superior no
sabe como o servio feito, apenas o solicita. ; implementao de uma camada pode ser
modificada sem exigir modificao em outra camada, pois possuem componentes autocontidos.
)m uma abordagem em camadas, a solicitao de um servio pode precisar passar por muitas
camadas antes de ser atendida, assim o desempeno se degrada em comparao ao de n7cleos
monol,ticos.
; exemplo temos o Iindows C1, o 1&) e o =0J1D9S.
Maquina Virtual
0ma m%quina virtual uma cpia via software que busca simular uma m%quina real. 0ma m%quina
virtual #Kirtual =acine L K=$ pode ser definida como Muma duplicata eficiente e isolada de uma
m%quina realN. ; DF= define uma m%quina virtual como uma cpia isolada de um sistema f,sico, e
esta cpia est% totalmente protegida, a O9 # 8rimeira empresa a criar m%quinas virtuais atuais $
events de 9omputao +a promoveu eventos em relao as m%quinas virtuais.
;o invs de ser uma m%quina real, isto , um computador real, feito de ardware e executando um
sistema operacional espec,fico, uma m%quina virtual um computador fict,cio criado por um
programa de simulao. Sua memria, processador e outros recursos so virtuali-ados. ;
virtuali-ao a interposio do software #m%quina virtual$ em v%rias camadas do sistema. ! uma
forma de dividir os recursos de um computador em m7ltiplos ambientes de execuo.
Sistemas ClienteSer!idor
; comunicao entre os mdulos do "ernel do SO feita atravs de solicita'es de servios atravs
de mensagens de processos clientes a processos servidores #memria, arquivo, terminal...$.
; diviso do sistema operacional em v%rias partes facilita o desenvolvimento e evoluo de um
sistema operacional, alm de permitir que uma fala em um servidor L por exemplo, o de arquivos L
no afete toda a m%quina.
)ste modelo oferece f%cil adaptabilidade a sistemas distribu,dos.
"tili#ao dos recursos de sistemas
Monopro$ramao ou monotarefa
)m computao, cama/se monotarefa um sistema operacional que permite a reali-ao de apenas
uma tarefa #job$ de cada ve-. O processador, memria e perifricos ficam dedicados a um 7nico
usu%rio, e cada tarefa para ser executada, deve aguardar o encerramento da tarefa atual. Cos
sistemas monoprogramados, enquanto uma aplicao aguarda um evento, o processador pode
permanecer ocioso, sem reali-ar qualquer tipo de processamento, a memria pode acabar sendo
sub/utili-ada quando o programa no a utili-a totalmente e os perifricos so dedicados a um 7nico
usu%rio. >esta forma, os sistemas monoprogram%veis acabam sendo por sua nature-a de f%cil
implementao e com pouca preocupao com proteo.
Multipro$ramao ou multitarefa
=ultiprogramao ou =ultitarefa o nome dado . caracter,stica de alguns sistemas operacionais de
rodar diversas aplica'es de forma que parecem serem executadas simultaneamente. Ca realidade,
na execuo multitarefa, o tempo do processador dividido entre as aplica'es em execuo, e a
execuo das tarefas passa rapidamente de uma para a outra, criando a iluso de que as aplica'es
ocorrem de forma con+unta.
%ipos de Sistemas Operacionais
Sistemas &atc'
Os sistemas batc ou sistemas em lote foram os primeiros sistemas multiprogram%veis a serem
implementados #primeira fase da computao$, caracteri-ando/se por programas arma-enados em
disco ou fita, que uma ve- iniciados, exigem pouca ou nenuma interao do usu%rio, processando
de forma sequencial e cont,nua at o fim do servio #job$, quando ento devolvido o resultado
final do processamento. O tempo de execuo da tarefa conecido como turnaround.
Sistemas multipro$ramados
Cos sistemas monoprogramados o que temos a existPncia de um 7nico processo sendo executado
de cada ve- na memria. 9om a multiprogramao existem v%rios processos na memria aptos .
executar e um em execuo. Sem d7vida, o conceito de multiprogramao um dos mais
importantes nos sistemas operacionais modernos. Se existirem v%rios programas carregados na
memria ao mesmo tempo, a 980 pode ser compartilada entre eles, aumentando a eficiPncia da
m%quina e produ-indo mais resultados em menos tempo. ; idia por detr%s da multiprogramao
bastante simples. Quando um programa libera a 980, se+a para reali-ar alguma operao de )*S ou
por outro motivo, ela fica parada. )nquanto espera que o programa volte para executar, a 980 no
reali-a nenum trabalo 7til. 8ara acabar com a ociosidade deste tempo v%rios programas so
mantidos ao mesmo tempo na memria e o sistema operacional se encarrega de escoler um deles
para executar. ;ssim, sempre que um programa interrompido, um outro escolido para ser
executado em seu lugar. 9om isso, a 980 estar% durante grande parte do tempo ocupada
processando instru'es de programas. Os benef,cios da multiprogramao so v%rios: aumento da
utili-ao da 980 e da taxa de sa,da do sistema computacional, isto , da quantidade de trabalo
reali-ada dentro de um intervalo de tempo #trougput$.
Sistemas de %empo Compartil'ado ()S)*
So sistemas que compartilam o tempo de uso da 980 entre diversos programas. 1ambm
conecido como time/saring, consegue executar diversas tarefas simultaneamente, pois existe a
diviso do tempo do processador em pequenos intervalos, denominados fatia de tempo. 9aso a
tarefa no termine durante a fatia a ela determinada, % uma interrupo e ela volta para a fila de
escalonamento, aguardando novamente sua ve-.
>iferente do sistema batc, esse tipo de sistema operacional permite a interao do usu%rio. >essa
maneira, os terminais possuem teclado, v,deo e mouse.
Sistemas de %empo +eal
So sistemas no qual o tempo tem uma funo essencial. )m geral, um ou mais dispositivos f,sicos
externos ou computador geram est,mulos, e o computador deve reagir apropriadamente a eles
dentro de um dado intervalo de tempo.
Sistemas multiprocessados
Sistemas multiprocessados so sistemas constru,dos sobre m%quinas computacionais que possuem
mais de um processador para propsitos gerais. )ntre suas vantagens esto:
=aior produo #throughput$
Reconfigurao
Falanceamento
Simetria
Se torna um Sistema =ultiprogramado
,coplamentoSistemas multiprocess-!eis
=odo de comunicao entre os processadores e o grau de compartilamento de memria e dos
dispositivos de entrada*sa,da.
Componentes do Sistema
Ser!ios de Sistemas Operacionais
C'amadas ao Sistema
Dnstru'es que um programa utili-a para acessar* conversar com o Sistema Operacional. O
aplicativo HcamaH o S.O., requisitando algo.
.er/ncia de )rocessos
.er/ncia de Memria
; maioria dos computadores trabala com o conceito de ierarquia de memria, possuindo uma
pequena quantidade de memria cace, muito r%pida, uma quantidade de memria principal #R;=$
e uma quantidade muito grande de memria de arma-enamento em disco #&>$, considerada lenta.
O problema b%sico para o gerenciamento de memria que os programas atuais so muito grandes
para rodarem, completamente, na memria cace. O gerenciador de memria deve ser capa- de
controlar parte da memria est% em uso #e quais no esto$, alocar memria para processos quando
eles necessitam e desalocar quando eles terminam e, principalmente, gerenciar a troca entre a
memria principal e o disco, quando a memria principal muito pequena para arma-enar todos os
processos.
)xistem dois tipos de memria principal: a memria lgica e a memria f,sica. ; memria lgica
aquela manipulada pelos programas, ela vis,vel para os programas( sempre que um programa
necessita alocar um espao na memria esse espao alocado em memria lgica. ; memria f,sica
a memria implementada pelos circuitos integrados nela que os espaos alocados em memria
lgica vo realmente residir, portanto a memria f,sica tem tamano menor que a memria lgica,
geralmente. 8ara isso necess%rio reali-ar uma traduo de endereos lgicos para endereos
f,sicos, pois assim um programa que aloca uma memria lgica possa ter de fato uma memria
f,sica alocada para si. )sse processo de traduo de endereos lgicos em endereos f,sicos
reali-ado por uma unidade de gerPncia de memria camada ==0 #Memory Management Unit$.
Memria l$ica 0 Memria fsica
Os processos no enxergam a memria f,sica, ardware usado para enderear os circuitos
integrados de memria, e sim a memria lgica, que a memria capa- de ser endereada e
acessada pelo con+unto de instru'es do processador, sendo que cada processo possui a sua
memria lgica que independente da memria lgica dos outros processos. ; memria f,sica
implementada pelos circuitos integrados de memria, pela eletrSnica do computador. )la possui
espao de endereamento f,sico que o con+unto formado por todos os endereos dos circuitos
integrados que formam a memria, normalmente esses endereos so em formato exadecimal. ;
memria lgica possui um espao de endereamento lgico, maior que o espao de endereamento
f,sico, formado por todos os endereos lgicos gerado pelo processo, sendo gerado pela 980 e
7nico por processo.
9omo o processo HenxergaH endereo de memria lgico e o ardware HenxergaH endereo de
memria f,sico necess%rio ter a converso de endereo de memria lgico para endereo de
memria f,sico. )sse mapeamento de endereo lgico em endereo f,sico feito pela ==0,
unidade de gerPncia de memria. Fasicamente a ==0 que vai mapear os endereos lgicos
gerados pelos processos nos correspondentes endereos f,sicos que sero enviados para a memria.
)xistem duas formas bem simples de transformao do endereo lgico para o f,sico:
; ==0 verifica se o endereo lgico maior que o registrador limite inferior e menor que
o registrador limite superior, se sim encamina o acesso com esse endereo v%lido, se no,
gera uma interrupo de endereamento inv%lido. Cesse caso o endereo lgico igual ao
endereo f,sico.
; ==0 verifica se o endereo lgico menor que o registrador limite superior, se sim
adiciona o registrador base ao endereo lgico e encamina o acesso com esse endereo
resultante, se no gera interrupo de endereamento inv%lido. Cesse caso o endereo lgico
diferente do endereo f,sico.
; ==0 consiste de um cip ou uma coleo de cips.
Modelo de memria de processos
8ara que um programa se+a executado ele precisa ser transformado em processo#s$, assim
necess%rio alocar o descritor de processos, alocar espao na memria para o cdi$o #%rea
conecida como 1)<1, onde se locali-a o programa principal, as fun'es e as bibliotecas est%ticas$,
os dados #>ata, %rea onde as vari%veis so alocadas / globais, locais est%ticas, buffers internos$e a
pil'a #que possui o &);8, %rea onde se locali-a as vari%veis dinBmicas, e o S1;9T, endereos de
retorno de camadas e parBmetros de fun'es$.
; atribuio de endereo f,sico para as %reas de cdigo e %reas de dados pode ser feita de trPs
formas: em tempo de compilao, em tempo de carga e em tempo de execuo. )m tempo de
compilao o programador +% fa- a converso de endereo lgico em endereo f,sico, pois ele tem
conecimento de qual %rea da memria ira utili-ar. )m tempo de carga o cdigo precisa ser
reloc%vel de forma que todas as referPncias a memria se+am corrigidas para que o endereo de
carga corresponda #carregador relocador$, em outras palavras no momento da carga o programa
execut%vel interpretado e os endereos corrigidos, dispensando a ==0. )m tempo de execuo
tem/se o cdigo absoluto e reali-ada uma relocao dinBmica usando a ==0, no sendo
necess%rio corrigir os endereos no momento da carga do programa em memria.
.erenciamento &-sico de Memria
Os Sistemas de 4erenciamento de =emria podem ser divididos em duas classes: aqueles que
levam e tra-em processos entre a memria principal e o disco durante a execuo #fa-endo troca de
processos e paginao$ e aqueles que mantm os processos fixos em memria prim%ria. ;s
prximas se'es apresentam os mesmos.
Monopro$ramao
; monoprogramao consiste em executar um processo por ve- na memria, dessa forma todos os
recursos de ardware so exclusivos para execuo do mesmo.
Monopro$ramao sem troca ou pa$inao
)ste o esquema mais simples poss,vel: s poss,vel executar um programa de cada ve-,
compartilando a memria entre o programa e o S.O. )xistem trPs varia'es para este modelo:
O SO carregado na parte inferior da memria, em R;= #Random ;ccess =emorU$, e
deixa a parte superior da memria dispon,vel para o processo do usu%rio. O endereamento
por parte do processo usu%rio inicia do fim da R;= at o limite da memria.
O SO carregado na parte superior da memria, em RO= #Read/OnlU =emorU$, e deixa a
parte inferior da memria dispon,vel para o processo do usu%rio. O endereamento do
processo usu%rio vai do endereo @ ao in,cio da RO=.
Os drives do SO so carregados em RO= #parte superior$ e o restante do SO carregado em
R;= #parte inferior$.
Quando o sistema est% organi-ado desta maneira, somente um processo por ve- pode estar
executando, desta forma esse tipo de sistema usado em aplica'es de car%ter muito espec,fico,
como por exemplo sistemas de controle de temperatura ou presso.
Multipro$ramao
; multiprogramao nada mais que manter diversos processos na memria, e essa memria
precisa ser dividida de maneira eficiente para que possamos manter o n7mero m%ximo de processos.
)xistem diversas tcnicas para gerenciar memria que variam de acordo com o ardware do
processador.
Multipro$ramao com )arties 1i0as
; maneira mais simples de implementar a multiprogramao, em termos de memria, dividir a
mesma, primeiramente em uma parte para uso do sistema operacional e outra para uso dos
processos de usu%rios. >epois, a parte dos usu%rios dividida em n parti'es de tamanos
diferentes, porm com valores fixos. Quando um programa cega, % duas possibilidades: ele
colocado em uma fila de entrada da menor partio capa- de arma-en%/lo ou ele colocado em uma
fila de entrada 7nica.
9om o esquema das parti'es de tamano fixos, qualquer espao no ocupado por um programa
perdido. Ca maioria das ve-es o programa a ser executado menor do que a partio alocada para
ele. ; partio alocada no pode ser menor que o tamano do programa e improv%vel que o
tamano do programa se+a exatamente igual ao da partio alocada. ;ssim, muito prov%vel que
ocorra desperd,cio de memria para cada programa alocado. )sse desperd,cio camado
fra$mentao interna, ou se+a, perde/se memria dentro do espao alocado ao processo.
&% outra possibilidade de desperd,cio de espao de memria, camada de fra$mentao e0terna.
)la ocorre quando se desperdia memria fora do espao ocupado por um processo. 8or exemplo,
supona que % duas parti'es dispon,veis e o processo necessita de uma partio de tamano maior
que qualquer uma das duas livres, e ainda, menor que o total de memria livre, somando/se o
tamano de todas parti'es livres. Ceste caso, o processo no ser% executado devido ao esquema
que a memria gerenciada, mesmo que exista memria total livre dispon,vel.
Outra desvantagem de classificar os programas em entradas separadas apresentada quando uma
fila para uma partio grande est% va-ia e filas para parti'es pequenas esto muito ceias. 0ma
poss,vel alternativa colocar todos os programas em uma 7nica fila de entrada e sempre que uma
partio encontrar/se livre, alocar para o prximo programa da fila. 8ara no desperdiar espao
pode/se reali-ar uma pesquisa para selecionar o programa que melor se a+uste ao tamano da
partio. Co entanto, isto pode deixar programas pequenos de fora, o que tambm indese+%vel.
Ceste caso, interessante dispor de pelo menos uma partio pequena para programas pequenos ou
criar uma regra que limite o n7mero de ve-es que um programa pode ser ignorado, obrigando que o
mesmo se+a selecionado em um determinado momento.
>ois conceitos importantes devem ser introdu-idos quando % ocorrPncia de multiprogramao:
realocao e proteo.
8rogramas #+obs$ diferentes so colocados em endereos diferentes #parti'es$. Quando um
programa vinculado, o lin"editor deve saber em que endereo o programa deve comear na
memria. 9omo o gerenciador de memria s decide em qual partio #endereo$ o programa vai
executar quando este cegar, no % garantia sobre em qual partio um programa vai realmente ser
executado. )ste problema conecido como realocao: modificao dos endereos especificados
dentro do programa de acordo com a partio onde ele foi colocado.
Outra questo importante est% na proteo: programas diferentes no podem ter acesso a dados e*ou
instru'es fora de sua partio. Sem esta proteo, a construo de sistemas maliciosos seria
facilitada. 0ma poss,vel alternativa para ambos os problemas equipar a m%quina com dois
registradores especiais de ardware camados registradores de base #RF$ e registradores de limite
#RJ$. Quando um processo agendado, o registrador de base carregado com o endereo de in,cio
de sua partio e o registrador de limite com o comprimento de sua partio. ;ssim, instru'es so
verificadas em relao ao seu endereo de arma-enamento e para verificar se o mesmo no est% fora
da partio. O ardware protege os RF e RJ para impedir que programas de usu%rio os
modifiquem.
Multipro$ramao com )arties Vari-!eis
Cesse modelo, o tamano das parti'es so a+ustados de acordo com as necessidades dos processos.
Os espaos livres na memria f,sica so mantidos pelo sistema operacional em uma lista, camada
de lista de lacunas. Quando um processo criado essa lista percorrida em busca de uma lacuna
de tamano maior ou igual ao requisitado pelo processo, se a lacuna possuir um tamano maior do
que o necess%rio, ser% criada uma nova lacuna com a poro extra, dessa forma, o processo receber%
o tamano exato de que necessita.
)xistem quatro formas de percorrer a lista de lacunas:
1irst1it: utili-a a primeira lacuna com tamano suficiente(
&est1it: utili-a a lacuna que possuir a menor sobra(
2orst1it: utili-a a lacuna que possuir a maior sobra(
Circular1it: igual ao Eirst/Eit, mas inicia a procura na lacuna seguinte . 7ltima sobra.
Quando o processo termina, e a memria liberada, criada uma nova lacuna. Se essa lacuna for
ad+acente a outras, elas so unificadas.
9om as parti'es vari%veis deixa/se de ter fragmentao interna mas continua com a fragmentao
externa #espaos va-ios no cont,guos$, uma soluo para resolver este problema seria relocar as
parti'es de forma a eliminar os espaos entre parti'es criando uma 7nica %rea cont,gua porm
essa soluo consome muito o processador e o acesso ao disco, visto que a cada acesso na memria
seria necess%rio verificar a possibilidade de realocao.
.erenciamento de memria li!re
;lm de gerenciar quais espaos em memria esto em uso, tambm necess%rio controlar os
espaos de memria livres. )xistem duas tcnicas mais utili-adas para resolver este problema, estas
sero vistas nas prximas se'es.
.erenciamento de memria li!re com mapas de 3its
9om mapas de bits, a memria dividida em unidades de alocao. 9ada bit do mapa representa
uma unidade de alocao, sendo que se o bit for @, a unidade est% livre( caso contr%rio, a unidade
est% ocupada. Quanto menor for a unidade de alocao, maior ser% o mapa de bits e vice/versa. O
maior problema com os mapas de bits que procurar uma lacuna #seqVPncia de @s$ suficientemente
grande para um determinado processo pode ser uma operao muito lenta.
O SO mantm um 2 bit para indicar se cada bloco da memria #ou unidade de alocao$ est%
ocupado #2$ ou livre #@$. ; =emria dividida em unidades de alocao. 9onsidera'es sobre o
tamano do bloco de memria:
Quanto menor a unidade de alocao, maior ser% o mapa de bits.
/ 8equeno: necessidade de muitos bits uso ineficiente da memria. )xemplo: se tamano do
bloco W 2 bUte, 2*X da memria sero utili-ados para o mapa de bits.
/ 4rande: memria sub/utili-ada, pois se o tamano do processo no for m7ltiplo do tamano da
unidade de alocao, uma quantidade de memria consider%vel ser% desperdiada no 7ltimo bloco.
Kantagens do uso de mapa de bits: Simplicidade: o tamano do mapa depende apenas do tamano
da memria e das unidades de alocao.
>esvantagens: Quanto um processo necessita de " unidades de alocao, o gerenciador de memria
deve encontrar uma sequPncia de " bits @, o que se constitui um processo lento.
.erenciamento de memria li!re com listas encadeadas
Ceste caso, mantida uma lista encadeada com os segmentos de memria livres e encadeados. 0ma
poss,vel configurao seria manter, em cada entrada, o endereo em que inicia, o seu comprimento
e, evidentemente, o ponteiro para a prxima entrada.
; principal vantagem de utili-ar uma lista encadeada classificada por endereo que sua
atuali-ao simples e direta. K%rios algoritmos podem ser utili-ados para encontrar uma lacuna de
memria para alocao de um processo:
2. 8rimeiro a+uste: varre a lista desde o in,cio e aloca no primeiro espao #lacuna$
suficientemente grande(
5. 8rximo a+uste: varre a lista da posio atual e aloca no primeiro espao suficientemente
grande(
6. =elor a+uste: varre a lista completamente e aloca no espao que gerar a menor lacuna de
memria(
:. 8ior a+uste: varre a lista completamente e aloca no espao que gerar a maior lacuna de
memria dispon,vel, de modo que a lacuna resultante possa ser suficientemente grande para
ser 7til(
?. ;+uste r%pido: mantm diversas listas separadas para os tamanos de processos mais
comuns.
Memria Virtual
; base do funcionamento da =emria Kirtual o )rincpio da 4ocalidade que estabelece que %
uma tendPncia que os futuros endereos de memria de instru'es e dados se+am prximos a
endereos de memria recentemente acessados. )sse comportamento se deve as caracter,sticas
peculiares aos programas, que frequentemente fa-em uso de endereos em sequPncia #vetores$,
locali-ados em blocos de cdigo bem definidos e frequentemente invocados #fun'es$, ou de
cdigos repetitivos #laos de repetio$.
; ideia b%sica da memria virtual que o tamano combinado do programa, dos seus dados e da
pila pode exceder a quantidade de memria f,sica dispon,vel para ele, ou se+a, neste caso, a
simples troca, vista anteriormente, no resolveria o problema. O Sistema Operacional, ento,
mantm partes do programa atualmente em uso, em forma de p%ginas ou segmentos, na memria
principal e o restante em disco. )ssas p%ginas*segmentos so HtrocadosH entre memria principal e
secund%ria conforme o SO as solicita, conforme a demanda do programa.
; memria virtual tambm pode trabalar em um sistema de multiprogramao, com pedaos de
v%rios programas na memria simultaneamente. )nquanto um programa est% esperando parte dele
prprio ser tra-ido para a memria #ele fica esperando a )*S e no pode executar$ a 980 pode ser
dada a outro processo, assim como em qualquer sistema de multiprogramao.
8ara a implementao desta tcnica, alguns recursos m,nimos so necess%rios: locali-ao da
p%gina atravs do ardware ==0, carga de p%gina, substituio de p%gina e %rea de troca, partio
ou arquivo especial de troca #swap ou p%gina$ destinada a arma-enar p%ginas.
=uitos sistemas de =emria Kirtual utili-am uma tcnica denominada paginao, vista mais
adiante.
%roca (S5appin$*
)m algumas situa'es no poss,vel manter todos os processos na memria e uma soluo para
essas situa'es o mecanismo conecido como swapping #troca$. ; gerPncia de memria reserva
uma %rea do disco para esse mecanismo, que utili-ada para receber processos da memria. ;
execuo desse processo suspensa, com isso dito que o mesmo sofreu uma s5apout. =ais
tarde, esse mesmo processo ser% copiado do disco para a memria, mecanismo conecido como
s5apin. )sse mecanismo de trocas de processos no disco tem como ob+etivo permitir que o
sistema operacional consiga executar mais processos do que caberia na memria.
)sse processo gera um grande custo de tempo de execuo para os programas. Ea-er a cpia do
processo da memria para o disco e depois fa-er o inverso demorado.
)a$inao
O espao de endereo virtual dividido em unidades camadas p%ginas. ;s unidades
correspondentes na memria f,sica so camadas molduras de p%gina #ou quadros$. ;s p%ginas e as
molduras #quadros$ tPm sempre exatamente o mesmo tamano.
Co espao f,sico #memria$ tem/se v%rias molduras de p%gina. 8or exemplo, podem existir @?
p%ginas situadas no espao de endereo virtual que so mapeadas na memria f,sica. Co entanto, o
espao de endereo virtual maior que o f,sico. ;s outras p%ginas no so mapeadas. Co ardware
real, um bit presente*ausente em cada entrada monitora se a p%gina mapeada ou no.
Quando um programa tenta utili-ar uma p%gina no mapeada em uma moldura, a ==0 detecta o
acontecimento #que a p%gina no est% mapeada$ e gera uma interrupo, passando a 980 para o
Sistema Operacional. 1al interrupo camada fala de p%gina. O S.O., ento, seleciona uma
moldura de p%gina pouco utili-ada e grava o seu conte7do de volta ao disco, substituindo/a pela
p%gina requisitada.
Quanto . forma como a paginao pode ser implementada, podemos considerar a paginao simples
e a paginao por demanda. Ca primeira, todas as p%ginas lgicas do processo so mapeadas e
carregadas para a memria f,sica, isso supondo/se que o espao de endereamento de memria para
um processo tena o tamano m%ximo igual . capacidade da memria f,sica alocada para processos.
Co caso da paginao por demanda, apenas as p%ginas lgicas efetivamente acessadas pelos
processo so carregadas. Cesse caso, uma p%gina marcada como inv%lida na tabela de p%ginas de
um processo pode tanto significar que a p%gina est% fora do espao lgico de endereamento do
processo ou que simplesmente a p%gina ainda no foi carregada. 8ara descobrir qual das situa'es
a verdadeira basta conferir o descritor de processo, que contm os limites de endereamento lgico
do processo em questo.
%a3elas de )-$ina
O propsito de tabelas de p%gina mapear p%ginas virtuais em molduras de p%gina. Co entanto,
existem duas quest'es que devem ser consideradas:
; tabela de p%ginas pode ser extremamente grande, sendo que cada processo necessita de
sua prpria tabela de p%ginas(
O mapeamento deve ser r%pido: o mapeamento do virtual para o f,sico deve ser feito em
cada referPncia da memria, o que pode ocorrer diversas ve-es em uma 7nica instruo,no
devendo tomar muito tempo para no se tornar um gargalo na execuo da instruo.
Ceste caso, % a necessidade de um mapeamento de p%ginas r%pido e grande. )xistem duas formas
b%sicas de pro+etar tabelas de p%ginas:
2. ter uma 7nica tabela de p%ginas, atravs de uma matri- de r%pidos registradores de ardware,
com uma entrada para cada p%gina virtual, indexada pelo n7mero da p%gina. )sta uma
soluo cara se a tabela de p%ginas grande(
5. manter a tabela de p%ginas inteiramente na memria principal, sendo que o ardware precisa
de apenas um registrador que aponta para o in,cio da tabela de p%ginas.
)sta 7ltima soluo possui algumas varia'es que tPm desempeno melor. 0ma das propostas que
busca evitar o problema de ter enormes tabelas de p%ginas na memria todo tempo a de 1abelas de
8%ginas =ultin,vel. Ceste caso, existe uma tabela de primeiro n,vel e diversas tabelas de segundo
n,vel. O importante aqui que somente as tabelas mais utili-adas esto presentemente na memria.
;s demais se encontram em disco. ;pesar de permitir um espao de endereamento muito grande, o
espao ocupado de memria principal muito pequeno.
O sistema de tabela de p%ginas de dois n,veis pode ser expandido para trPs, quatro ou mais n,veis,
sendo que n,veis adicionais do mais flexibilidade, mas a complexidade da implementao acima de
trPs n,veis dificilmente vale a pena. )m relao aos detales de uma 7nica entrada de uma tabela de
p%ginas, seu arran+o pode depender da m%quina, mas os tipos de informao usualmente so os
mesmos.
O campo mais importante o n7mero da moldura de p%gina, pois o ob+etivo do mapeamento de
p%ginas locali-ar este valor. ;o lado dele, tem/se o bit de presente*ausente. Se este bit for 2,
significa que a entrada v%lida e pode ser utili-ada. Se for @, a p%gina virtual a que esta entrada
pertence no est% atualmente na memria. ;o acessar uma entrada da tabela de p%ginas com este bit
configurado como -ero ocorrer% uma fala de p%gina.
Os bits HproteoH informam que tipos de acesso so permitidos. )m sua forma simples, este campo
contm apenas um bit, com @ para leitura*gravao e 2 par leitura somente. 0m arran+o mais
sofisticado manter 6 bits, cada um para abilitar leitura, gravao e execuo da p%gina. Os bits
HmodificadaH e HreferenciadaH monitoram a utili-ao da p%gina. ;mbos os bits tem como ob+etivo
auxiliar no momento da substituio de p%ginas. O 7ltimo bit permite que o cace se+a desativado
para a p%gina, recurso importante para p%ginas que so mapeadas em registradores de dispositivo
em ve- da memria.
;lguns bits auxiliares so, normalmente, adicionados na tabela de p%ginas para facilitar na
substituio de p%ginas quando a memria f,sica estiver ceia e for necess%rio retirar uma p%gina
lgica da memria f,sica para alocar outra p%gina lgica. 1em/se o bit de modificao #dirtU bit$
assim que a p%gina for carregada tem valor -ero se a p%gina for alterada, na memria f,sica, altera/
se o valor para 2, portanto se a p%gina for a p%gina v,tima e o bit de modificao for -ero no ser%
necess%rio fa-er a cpia da p%gina lgica em memria para a p%gina lgica em disco pois as duas
so iguais. Fit de referPncia: -ero assim que a p%gina lgica alocada na p%gina f,sica, se a p%gina
for acessada altera o valor para um #a ==0 altera o valor$. Fit de trava: usado em p%ginas que no
podem sair da memria f,sica, o Sistema Operacional HtrancaH uma p%gina lgica na memria f,sica
ativando esse bit.
%4&s 6 %ranslation 4oo7side &uffers 6 Memria ,ssociati!a
; 1JF, tambm conecida como memria associativa, um dispositivo de ardware cu+o propsito
mapear endereos virtuais em endereos f,sicos sem passar pela tabela de p%ginas. 0sualmente,
ela fa- parte da ==0.
)la constitui/se de um banco de registradores que arma-enam um pequeno n7mero de entradas,
muito r%pidas, contendo as tabelas de p%ginas mais utili-adas. Quando um endereo virtual
enviado a ==0, ela primeiramente verifica se o seu n7mero de p%gina virtual est% presente na
1JF. Se o resultado for positivo #it$, a moldura de p%gina tomada diretamente da 1JF sem a
necessidade de passar pela tabela de p%ginas na memria #mais lento$. 9aso contr%rio #miss$, a
pesquisa feita normalmente na tabela de p%ginas presente na memria. )nto, uma das entradas
removida da 1JF e a entrada da tabela de p%ginas pesquisada colocada em seu lugar.
; 1JF melora bastante o desempeno no acesso . tabela de p%ginas, visto que registradores so
muito mais r%pidos que a memria R;=. Suas desvantagens esto em seu custo #registradores so
caros$, seu tamano limitado e o fato de existir uma 7nica 1JF na ==0, sendo esta compartilada
por todos os processos.
8ara calcularmos o desempeno da 1JF, podemos tomar como taxa de acerto #taxa em que a
p%gina necess%ria estar% na 1JF$. )nto o erro seria 2/. Sendo assim, a tempo de acesso it #tempo
necess%rio para pegar a p%gina da 1JF$ dada pelo tempo de acesso . 1JF mais o tempo de acesso
. memria uma 7nica ve-. )nquanto o tempo de acesso miss #quando falta a p%gina na 1JF$ dada
pelo tempo de acesso . 1JF mais o tempo de dois acessos . memria. O tempo de acesso mdio
dado pelo tempo de acesso it multiplicado por somado do tempo de acesso miss multiplicado por
#2/$. Resumindo em frmulas, temos:
1acesso&it W 1acesso1JF Y 1acesso=emoria
1acesso=iss W 1acesso1JF Y 1acesso=emoria Y 1acesso=emoria
1acesso=edio W x 1acesso&it Y #2/$ x 1acesso=iss
; taxa de acerto #$ depende do tamano da 1JF e do algoritmo que a controla, mantendo as
p%ginas mais utili-adas.
%a3elas de )-$inas In!ertidas
Outra abordagem para trabalar com p%ginas manter uma tabela onde cada entrada representa uma
moldura de p%gina ao invs de um endereo virtual. >esta forma, a entrada deve monitorar qual
p%gina virtual est% associada .quela moldura de p%gina. )mbora as tabelas de p%ginas invertidas
economi-em quantidade significativas de espao #pelo menos nas situa'es em que o espao de
endereo virtual muito maior que a memria f,sica$, elas tem a desvantagem de que o
mapeamento #traduo$ do endereo virtual para o f,sico mais complexo e potencialmente mais
lento. 0ma forma de facilitar a traduo do virtual para o f,sico a utili-ao da 1JF pesquisada
por software. ; pesquisa pode ser feita a partir de um encadeamento de p%ginas p%ginas virtuais que
possuam um mesmo endereo as.
%aman'o de p-$ina
0m ponto do qual o pro+etista deve se preocupar com o tamano da p%gina. 9onforme visto
anteriormente, se esse tamano de p%gina for grande, pode ocorrer de o processo utili-ador no
ocupar todo o espao a ele destinado. Se a p%gina tiver um tamano demasiadamente pequeno, a
tabela de p%ginas ser% muito grande.
! poss,vel uma modelagem matem%tica. 9onsidere que cada processo tena tamano de s bUtes, e
cada p%gina tena tamano de p bUtes. ; tabela de p%ginas ter% um espao de e bUtes por entrada.
;ssim, o numero de p%ginas que um processo precisar% de s/p. O espao que esse processo ocupa
na tabela de p%ginas s*e/p. O tamano perdido na 7ltima p%gina devido a fragmentao interna
ser% de p/2.
;ssim, aver% um custo de s*e/p + p/2 da tabela de p%ginas. 8ara que o tamano da p%gina se+a
ideal, o custo ser% -ero. >essa forma, derivando a expresso anterior e igualando a -ero obtemos
que o tamano ideal de p%gina de s*e*sqrt(2).
%'ras'in$
)stado no qual o sistema operacional ao invs de executar instru'es efetivas HgastaH tempo
efetuando a troca de p%ginas entre memria f,sica e memria lgica, em outras palavras desperdia
um tempo significante tra-endo ou removendo p%ginas da memria. 8ara o usu%rio a sensao que
o sistema est% travado ou congelado e para o ardware % um significante acesso ao disco ao invs
de processamento.
,l$oritmos de su3stituio de p-$inas
9omo visto anteriormente, sempre que uma p%gina #endereo virtual$ no estiver em uma moldura
de p%gina, uma interrupo ocorre e ela deve ser carregada para uma moldura antes de ser
executada. Co entanto, alguma p%gina que est% atualmente em uma moldura deve ser retirada
#gravada em disco$. Ke+a que o algoritmo escolido afeta diretamente o desempeno do sistema
como um todo, pois Huma escola errada significa que a p%gina removida ser% novamente acessada em seguida,
gerando uma nova falta de p%gina. ! importante que o algoritmo usado se+a capa- de remover da memria f,sica
p%ginas que provavelmente no sero necess%rias em seguida.HZR. da S. Oliveira, ;. da S. 9arissimi e S. S. 1oscani(
Sistemas Operacionais 53 ed[
Os algoritmos de substituio de pginas se preocupam em escolher a melhor
pgina a ser retirada da moldura. Existem vrias alternativas:
algoritmo de substituio de p%gina timo: deve ser retirada a p%gina que s ser%
referenciada o mais tarde poss,vel. ;pesar de, teoricamente, ser um algoritmo interessante,
extremamente dif,cil prever quando uma p%gina ser% referenciada(
algoritmo de substituio de p%gina no recentemente utili-ada#CR0$: o S.O. e o ardware
mantPm uma coleo de estat,sticas sobre as p%ginas referenciadas e*ou modificadas #atravs
dos bits de referPncia e modificao das entradas da tabela de p%ginas$ e do preferPncia
para a troca de p%ginas no referenciadas e*ou no modificadas(
algoritmo de substituio de p%gina Mprimeira a entrar, primeira a sair #EDEO L first/in first/
out$: a p%gina mais antiga removida.Co entanto, pode estar sendo removida uma p%gina
bastante utili-ada(
algoritmo de substituio de p%gina de segunda cance#S9$: uma modificao do algoritmo
EDEO, que busca no substituir uma p%gina antiga e, no entanto, bastante utili-ada. ; soluo
inspecionar o bit R #referenciada$ da p%gina mais antiga( se o bit for 2 #foi referenciada$ o
bit ser% limpo e a pesquisa continua. Se todas as p%ginas tiverem sido referenciadas, o
algoritmo EDEO acaba sendo executado e a p%gina mais antiga #que agora estar% com o bit R
limpo$ ser% substitu,da(
algoritmo de substituio de p%gina menos recentemente utili-ada #JR0 L least recentlU
used$: a idia que as p%ginas que foram intensamente utili-adas nas 7ltimas instru'es
provavelmente sero utili-adas de forma intensa no futuro prximo. >esta forma, deve ser
removida a p%gina que no foi utili-ada por mais tempo.
algoritmo de substituio de p%gina relgio: O algoritmo S9, apesar de mais eficiente do que
algoritmo EDEO, reinsere p%gimas no final da lista constantemente. 0ma soluo para isso
q a lista se+a ordenada em uma circularmente tal como um relgio. O ponteiro do relogio
aponta para a pagina mais antiga e assim que ocorrer uma falta a pagina mais antiga
inspecionada. Se o bit R dessa pagina for @ ele substituida, se no esse bit setado como @
e o ponteiro aponta para a proxima pagina mais antiga. )sse proesso ento repetido at a
proxima pagina com o bit @ ser encontrada.
algoritmo de substituio de p%gina menos recentemente utili-ada#=R0$:1rabala de forma
oposta ao algoritmo otimo, pois % a possibilidade de que as paginas que no foram
referenciadas continuem no sendo referenciadas. ; tarefa de implementa/l trabalosa
mas possivel. )le pode ser implementado de uma maneira mais simples com um contador de
\:/bits que incrementado automaticamente aps cada intruo e a tabel de paginas deve ter
um campo extra para arma-enar o valor do contador. O valor ento arma-enado neste
campo correpondente . pagina que acabou de ser referPnciada. Quando o corre a falta o S.O.
examina esse campo e substitui a pagina que tiver o menor deles.8ode/se tambem
implementalo com o aux,lio de um ardware especial.
Se$mentao
; memria virtual apresentada anteriormente unidimensional, ou se+a, os endereos virtuais vo
de @ at algum valor m%ximo. Co entanto, em alguns casos, ter dois ou mais espaos de endereos
virtuais separados uma estratgia interessante. ; segmentao prove . m%quina v%rios espaos de
endereo completamente independentes, camados segmentos, liberando o programador da tarefa
de gerenciar a expanso e a contrao de tabelas, da mesma forma que a memria virtual elimina a
preocupao de organi-ar o programa em overlaUs.
Os comprimentos de cada segmento podem ser diferentes e podem variar durante a execuo. 9omo
cada segmento constitui um espao de endereamento completamente independente e diferente, eles
podem aumentar ou encoler sem afetar um ao outro. 8ara especificar um endereo neste tipo de
memria segmentada, o programa deve fornecer um endereo de duas partes: um n7mero de
segmento e o endereo dentro do segmento. ! importante salientar que cada segmento pode conter
v%rias p%ginas, logo, toda a discusso apresentada anteriormente sobre paginao continua v%lida
aqui. Outra questo fundamental que, diferentemente da paginao, que executada inteiramente
pelo S.O., os segmentos so entidades lgicas das quais o programador est% ciente e as quais ele
pode utili-ar como qualquer entidade lgica. 0m segmento pode conter um procedimento ou uma
matri-, ou uma pila, mas normalmente ele no contm uma mistura de tipos diferentes.
9omo cada segmento forma uma entidade lgica da qual o programador est% ciente #tal como pila,
procedimentos, etc.$ segmentos diferentes podem ter tipos de proteo diferentes: poss,vel
especificar que um procedimento s pode ser executado #sendo proibido ler ou arma-enar nele$,
dados podero ser lidos e gravados e assim por diante. )ste tipo de proteo 7til para detectar
erros de programao. ; proteo na memria segmentada importante porque o usu%rio est% ciente
do que est% em cada segmento. )ste modelo dif,cil de aplicar a paginao, pois a paginao
invis,vel ao programador #que no tem como saber de antemo em que p%gina ou moldura um
determinado pedao de programa est%$, o que no possibilita a separao dos tipos em cada p%gina.
0ma das possibilidades da segmentao que ela pode facilitar o compartilamento de
procedimentos e*ou dados entre v%rios processos. 0m exemplo uma biblioteca compartilada.
Ceste caso, os procedimentos desta biblioteca permanecem em um 7nico segmento que pode ser
utili-ado por diversos programas #processos$, sem que cada um precise possu,/la em seu espao de
endereo.
; implementao da segmentao difere da paginao porque as p%ginas tPm tamano fixo e os
segmentos no. ; substituio dos processos gera lacunas fa-endo com que a memria se
transforme em um tabuleiro de xadre-, formado por segmentos e lacunas, que pode ser tratado com
compactao. Co entanto, se os segmentos so grandes pode ser imposs,vel mantP/los na memria
principal em sua totalidade #segmentao pura$. Ceste caso, pode ocorrer uma segmentao com
paginao: o espao lgico dividido em segmentos, este so divididos em p%ginas lgicas sendo
que cada segmento ter% uma tabela de p%ginas associada. ; segmentao com paginao pode ser
implementada de formas diferentes dependendo do sistema computacional. Co 8entium, por
exemplo, duas tabelas so utili-adas para a implantao da segmentao: a J>1 #Jocal >escriptor
1able$ e a 4>1 #4lobal >escriptor 1able$. 9ada programa tem sua prpria J>1, mas % uma 7nica
4>1 compartilada por todos os programas no computador. ; J>1 descreve segmentos locais para
cada programa e a 4>1 descreve segmentos do sistema, incluindo o prprio S.O. 9om a paginao
ativada, os endereos gerados so considerados virtuais e o mapeamento para o endereo f,sico
ocorre como explicado anteriormente.
Se$mentao com )a$inao
; segmentao com paginao vem como uma soluo aos problemas da segmentao e da
paginao.0tili-ando o meio termo entre os dois mtodos combinaremos suas vantagens:
; fragmentao interna da paginao redu-ida pela segmentao.
; fragmentao externa da segmentao eliminada pela paginao.
; paginao passaria de forma invis,vel ao programador.
; segmentao ofereceria a diviso do processo em mdulos#segmentos$.
1eriamos a facilidade do compartilamento e proteo da memria pela segmentao.
Fasicamente,teriamos um segmento composto por um n7mero fixo e redu-ido de bUtes#p%ginas$. ;
desvantagen seria o uso de 5 tabelas#segmentao e a de paginao$ e devido as p%ginas serem
menores teriamos que a tabela de paginao seria maior.
Concluses
Sistemas computacionais mais simples no precisam reali-ar nenum tipo de gerenciamento pois,
usualmente, seus programas rodam diretamente na memria principal dispon,vel. Co entanto, esta
no a situao mais comum. Ca maioria dos sistemas em uso, os programas so muito maiores
que a quantidade de memria principal dispon,vel e*ou necess%rio rodar mais de um programa ao
mesmo tempo. Cestes casos, a utili-ao de esquemas de troca, p%ginas e segmentos pode ser uma
alternativa. 0m modelo de memria virtual, que fornece um espao de endereamento maior do que
o f,sico, pode ser disponibili-ado para os programadores no desenvolvimento de seus sistemas.
Dnternamente, no entanto, o S.O. deve ser capa- de gerenciar a memria de forma a manter as partes
do programa em uso na memria principal, arma-enando as demais partes em disco.
.er/ncia de Dispositi!os
Definies .erais
0ma das principais fun'es do Sistema Operacional gerenciar os dispositivos de )ntrada e Sa,da
#)*S$ ligados ao computador.
! tarefa do sistema operacional enviar sinais, informando as a'es que o usu%rio espera que o
dispositivo reali-e( tratar as interrup'es e erros gerados pelos dispositivos.
H)xistem duas vis'es sobre o ardware de )*S: ; dos engeneiros, que os vPem como cips,
liga'es eltricas, etc. ) a viso dos programadores, que vPem uma interface de programao para
se comunicar com o dispositivo.H Z9itar de: 1anembaum[
Controladores de dispositi!os
>ispositivos de ardware precisam ser controlados para proporcionar a entrada e sa,da de dados
para o processador. O controle do ardware reali-ado por meio de ardware e software
apropriados.
; poro de ardware denominado controlador de ardware e segue padr'es determinados pelo
barramento #D>), S9SD, 0SF, etc$, assim, ligados a cada tipo de barramento existem controladores
de ardware: controladora de ardware D>), controladora de ardware S9SD, etc.
8ara utili-ar um dispositivo de ardware, necess%rio conect%/lo a interface f,sica da controladora
de ardware. 8or exemplo, um disco r,gido D>) deve ser conectado a uma das quatro interfaces
dispon,veis pela controladora D>). )m geral, o Sistema Operacional pode ter softwares
controladores de dispositivo #driver de dispositivos$. Os drivers de dispositivos para a controladora
de ardware, geralmente so genricos, embutidos no prprio Sistema Operacional. ) os drivers
para dispositivos de ardware so geralmente espec,ficos, uma ve- que controlam funcionalidades
espec,ficas providas pelos fabricantes.
8erifrico dado como qualquer dispositivo de ardware conectado a um computador de forma a
permitir a sua interao com o mundo externo.
)rincpios do soft5are de E8S
Independ/ncia do dispositi!o
)sse conceito trabalo sobre a possibilidade de escrever programas capa-es de acessar um
dispositivo )*S sem que se+a necess%rio um conecimento prvio sobre qual o dispositivo. Ou
se+a, um programa dever% ser capa- de ler*escrever um arquivo da mesma forma para qualquer
dispositivo. 8ara o caso de se obter a entrada de um dispositivo para sa,da em outro / como em
H*dispositivo2*arquivo ] *dispositivo5H, o Sistema Operacional fica incumbido de tratar dos
problemas causados pelo fato de os dispositivos serem desiguais e necessitarem de sequPncias de
comandos muito diferentes para leitura e escrita.
9omeao uniforme
O nome de um arquivo ou de um dispositivo deveria ser uma cadeia de strings ou um n7mero
inteiro totalmente independente do dispositivo. >essa forma, o arquivos e diretrios so
endereados pelo nome do camino.
%ratamento de erros
>e maneira geral, espera/se que os erros, como de leitura por exemplo, se+am tratados em n,veis
mais baixos, o mais prximo do ardware.
%ipos de cone0o e de transfer/ncia de dados
Os dispositivos D*O podem se conectar de forma serial ou paralela. Ca interface serial existe apenas
uma lina por onde os dados trafegam. Ca interface paralela os dados so transmitidos
simultaneamente atravs das v%rias linas para dados, a quantidade de linas um m7ltiplo de 2
bUte #^ bits$.
;s informa'es sobre os endereamentos de D*O ficam arma-enadas, Sistema Operacional Jinux,
no arquivo *proc*ioports
; transferPncia pode ser s,ncrona #bloqueante$ / a 980 inicia uma transferPncia e segue reali-ando
outra atividade at ser sinali-ada por um interrupo #o que acontece na maioria das )*S f,sicas$, ou
ass,ncrona #orientada . interrupo$ / aps um read, o programa suspenso at que os dados
este+am dispon,veis no buffer.
Soft5are de E8S
O principal ob+etivo do software gerenciador de )*S padroni-ar ao m%ximo o acesso e controle
dos dispositivos, permitindo a insero de novos dispositivos no sistema computacional sem a
necessidade de um outro software auxiliar. Dsso se torna uma tarefa bastante complicada devido .
grande variedade, complexidade e particularidades dos dispositivos perifricos encontrados. 8ara
facilitar isso, o software de )*S geralmente dividido em camadas. 9ada camada tem uma funo
bem definida para executar e uma interface tambm bem definida para as camadas ad+acentes, por
meio de uma serie de opera'es comuns a todos os dispositivos. 0ma forma de implementao
dessa estrutura dividir o software em quatro camadas, onde temos a camada superior sendo a )*S
vista pelo usu%rio( a segunda camada o software que enxerga )*S da mesma forma, independente do
dispositivo( a terceira camada serve como interface padro para drivers, e a ultima #mais inferior$,
composta pelos drivers propriamente ditos.
"tili#ao de 3uffer
O buffer pode ser utili-ado em momentos em que os dados no podem ser arma-enadas em seu
destino final / como acontece com os pacotes que so recebidos pela rede e que precisam ser
examinados. Outro exemplo so os dispositivos que apresentam restri'es de tempo real, em que os
dados devem ser antecipadamente colocados em um buffer de sa,da a fim de separar a taxa com a
qual o buffer preencido.)ssa taxa calculada a partir da taxa com a qual ele esva-iado. >essa
forma, evita/se a sobreposio do buffer.
Dispositi!os compartil'ados !s dedicados
;lguns dispositivos, como discos, podem ser usados por v%rios usu%rios simultaneamente. Outros,
como dispositivos de fita, devem ser dedicados a um usu%rio at que este termine sua tarefas. O
Sistema Operacional deve ser capa- de tratar ambos, de forma a evitar problemas.
Impasses (Deadloc7*
9omo dito anteriormente, alguns dispositivos devem ser dedicados a um usu%rio at que este
termine sua tarefa, no podendo ser interrompido para atender a solicitao de outro processo.
Quando dois processos alocam recursos para si de forma que nenum dois possa reali-ar a tarefa,
mas tambm nenum dos dois disponibili-am estes recursos antes de reali-ar a tarefa estes
processos encontram/se em um impasse #deadloc"$ e permaneceram ali at que um fator externo os
retire dessa situao. O princ,pio b%sico do impasse descrito formalmente: H0m con+unto de
processos est% em um impasse se cada processo do con+unto est% esperando um evento que somente
outro processo do con+unto pode causar. 9omo todos os processo esto esperando, nenum deles
+amais causar% qualquer dos eventos que poderiam acordar qualquer dos outros membros do
con+unto e todos os processos continuam a esperar eternamente.HZcitar de: 1enembaum[
Dispositi!os de Entrada e Sada
>ispositivos de entrada e sa,da tambm camados de dispositivos de D*O e so classificados em trPs
tipos: 9aractere, Floco, 8seudo/dispositivos.
)ssa classificao no 2@@_ abrangente, uma ve- que relgios #tempori-adores$ em ardware no
podem ser classificados em nenum destes tipos.
1ais dispositivos se interagem com o SO atravs de interrup'es que podem ser tratadas pelo
proprio SO para que seus dados de D*O se+am encaminadas corretamente.
HCem todos os dispositivos de )*S se enquadram nessas duas categorias, por exemplo o relgio que
apenas gera sinais de interrupo. 1al dispositivo trabala em uma ampla variao de velocidade, o
que imp'e uma consider%vel presso sobre o software, que deve trabalar bem diante das mais
diferentes ordens de magnitude de velocidade.H Zcitar de: 1anembaum[
Dispositi!os de Caractere
Os conecidos dispositivos do tipo dispositios de !ara!tere so assim camados por terem sua
comunicao feita atravs do envio e recebimento de um fluxo de caracteres. So usados, muitas
ve-es, para comunicao com dispositivos de interface serial. 4eralmente as implementa'es desse
tipo priori-am a eficiPncia da comunicao em ve- do seu volume, neste sentido, feita de forma
no Hbufferi-adaH, sendo assim cada caracter lido*escrito no dispositivo imediatamente Znecessita
citao[. ; exemplo de dispositivos de caracteres que priori-am a comunicao e no necessitam de
buffer temos o teclado e o mouse.; exemplo de dispositivos de caracteres que +% priori-am o
volume ao invs da comunicao temos a impressora, devido a quantidade de dados que cega ser
bem maior que sua velocidade de impresso, logo possui um buffer de impresso .Z1anembaum[
H>ispositivo de caracteres: ! aquele que envia*recebe um fluxo de caracteres, sem considerar
qualquer estrutura de blocos, eles no so endere%veis e no disp'e de qualquer operao de
posicionamento. Dmpressoras e mouses so exemplos desses dispositivos.H Zcitar de: 1anembaum[
Dispositi!os de &loco
Os dispositivos do tipo dispositios de blo!o so similares aos dispositivos do tipo caractere, porm
com uma diferena: O modo de transmisso dos dados, que feita na forma de blocos. So
dispositivos que a comunicao feita por meio de blocos de dados como em &>`s, drivers de 9>/
RO=, flas drivers e dispositivos de arma-enamento em geral.
Outra grande diferena que os dispositivos de bloco em geral utili-am opera'es de entrada*sa,das
bufferi"adas, no sentido de otimi-ar o desempeno da transferPncia de dados. O Sistema
Operacional aloca um buffer em um tipo de memria para transferir blocos para cada processo de
)ntrada e Sa,da #)*S$. Quando um processo envia*requisita dados para*de um dispositivo, o buffer
deve ser preencido para concluir a operao de )*S. ;o encer, o buffer completo transferido e
esva-iado para que se+a liberado para uma nova operao.
H>ispositivo de blocos aquele que arma-ena informao em bloco de tamano fixo, cada um com
seu prprio endereo. O tamano dos blocos normalmente variam de ?25 bUtes a 65 T bUtes. ;
propriedade essencial de um dispositivo de blocos que cada bloco pode ser lido*escrito
independente dos outros. >iscos, so exemplos desses dispositivos.H Zcitar de: 1anembaum[
)seudoDispositi!os
)m sistemas do tipo 0CD<, arquivos de dispositivo especiais podem no possuir um dispositivo
f,sico correspondente, estes so camados de Hpseudo/dispositivosH.
)x: *dev*null #recebe dados a serem descartados, como uma `lixeira`$ , *dev*random #gera n7meros
aleatrios$ , *dev*-ero #gera valores com valor `-ero`, 7til para criar arquivos preencidos com esse
valor$.
Interrupo
)edido de Interrupo (I+:*
O Sistema Operacional #SO$ caveia entre os aplicativos ativos para que o usu%rio tena a sensao
de que estes esto executando em paralelo. O SO permite que um aplicativo utili-e o processador
durante um determinado per,odo de tempo e ento permite que outra aplicao o utili-e. 9omo o
caveamento feito de uma forma muito r%pida temos a impresso de que os aplicativos esto
sendo executados ao mesmo tempo.
0m pedido de interrupo #abreviao DRQ #em inglPs$$ a forma pela qual componentes de
ardware requisitam tempo computacional da 980. 0m DRQ a sinali-ao de um pedido de
interrupo de ardware.
8or exemplo: caracteres digitados no teclado, opera'es de leitura sobre o &>, dados recebidos pelo
modem ou mesmo movimentos do mouse devem ser executados mesmo que a m%quina este+a
processando alguma tarefa.
>essa forma DRQas so canais de comunicao com o processador. ;o receber um pedido atravs de
algum destes canais, o processador percebe a solicitao de interrompimento de um dispositivo.
Quando um programa de usu%rio emite uma camada ao sistema, esta encaminada ao driver
apropriado. 8ara evitar que a 980 fique ocupada interrogando se dispositivo terminou a operao
de )*S #espera ociosa$, o driver pede ao dispositivo que le sinali-e quando isso ocorrer. >essa
forma, o Sistema Operacional poder% executar outras tarefas enquanto o programa que o camou
pedindo o servio se encontra bloqueado. ;o final da operao, o controlador do dispositivo gera
uma interrupo, ao cip controlador de interrupo, para sinali-ar . 980.
9aso nenuma outra interrupo este+a pendente ou em tratamento e nenum outro dispositivo fe-
uma requisio de maior prioridade no mesmo momento, a interrupo tratada imediatamente.
9aso contr%rio, ela ignorada, e o dispositivo continuar% emitindo sinal de interrupo.
;ps executar uma instruo, a 980 verifica as linas de interrup'es para saber se alguma
interrupo foi sinali-ada
9aso tena sido sinali-ada uma interrupo, o ardware grava os registradores da 980 na pila do
programa que estava em execuo e carrega o contador de programa com o endereo da rotina
referente . interrupo sinali-ada
Dnterrup'es podem ser geradas por ardware ou por software. Co caso do ardware, pelo
dispositivos perifricos ou pelo relgio #timer$. ;s interrup'es geradas por software so
conecidas como s;stem calls #camadas ao sistema$ ou trap #armadila$. ; diferena primordial
entre as interrup'es geradas por software e as geradas por ardware, est% no fato de que,
conecendo um programa e seus dados, poss,vel prever quando as interrup'es de software iro
acontecer / o que no poss,vel no caso das interrup'es de ardware.
Interrupes re!isitadas
)m ardware, as interrup'es trabalam da seguinte forma: quando um dispositivo de )*S finali-a
seu trabalo ele gera uma interrupo, enviando um sinal pela lina do barramento . qual est%
associado. O sinal detectado pelo cip controlador de interrupo locali-ado na placa me, o qual
decide o que fa-er. 9aso esse cip este+a em uso por outro sinal de interrupo ou se+a enviado para
esse cip outro sinal de maior prioridade, o sinal posto em uma fila para quando o cip ficar
ocioso ele tratar esse sinal.
O ardware sempre salva certas informa'es antes de iniciar a rotina de tratamento da interrupo(
no m,nimo, o contador de programas #89$ deve ser guardado.
)xistem duas categorias de interrup'es:
Dnterrupo precisa b >eixa a m%quina em um estado bem definido. 8ossui : propriedades:
2. O contador de programa salvo em um lugar conecido(
5. 1odas as instru'es anteriores .quela apontada pelo 89 foram totalmente
executadas(
6. Cenuma instruo posterior . apontada pelo 89 foi executada(
:. O estado de execuo da instruo apontada pelo 89 conecido.
Dnterrupo imprecisa b >eixa a m%quina em um estado no bem definido, pois tem
concorrPncia interna. 9omplica bastante a vida do pro+etista do SO, que se vP ento obrigado
a calcular o que +% foi executado e aquilo que ainda no foi executado, para isso necess%rio
guardar muito mais informao que o normal.
%ratadores de interrupo
H;s interrup'es deveriam ser escondidas para que a menor parte poss,vel do so soubesse de sua
existPncia. ; melor maneira bloquear o driver que iniciou uma operao de e*s at que a e*s se
complete e uma interrupo ocorra.
O efeito resultante da interrupo far% com que o driver previamente bloqueado este+a novamente
apto a executar. )sse modelo funciona bem sempre que os drivers so estruturados como processos
do n7cleo do sistema operacional, com seus prprios estados, suas pilas e seus contadores de
programa.H Zcitar de: 1anembaum[
Interrupes em sistemas 4inu0
)m antigos computadores, existiam apenas ^ interrup'es de ardware. Cos atuais, existem 2\ tipos
de interrup'es de ardware, numeradas de @ a 2?. ;s interrup'es que ocorrem em computadores
Jinux podem ser vistas digitando no sell o comando:
c cat *proc*interrupts
@ W ! o timer do SO.
2 W interrupo de teclado.
5 W Eunciona como ponte para a interrupo X, e advinda dos antigos computadores com apenas ^
DRQ`s. >essa forma, ela permite que esses computadores se+am utili-%veis, quando for necess%rio
uso da interrupo ^ para cima.
6 W geralmente usada pela ttUS2, podendo ser usada por outros dispositivos como placas de rede.
: W geralmente usada pela ttUS@. Quando usado um mouse serial, ele trabalo atravs dessa DRQ.
? W ! a segunda porta paralela. 9omo muitos computadores no possuem essa porta, ela muito
usada pela placa de som.
\ W 0sada pelo controlador de disquete
d W ;ntigamente, era a primeira porta da impressora. ;tualmente v%rias impressoras no usam
DRQ`s.
^ W Relgio
X W 8onte com a DRQ5.
2@ W ! uma interrupo geralmente livre. 4eralmente usada por controladores 0SF.
22 W Outra interrupo livre
25 W =ais uma DRQ livre. Quando % um mouse 8S*5, trabalada essa DRQ
26 W 8rocessador de dados numrico.
2: W 0sada pela primeira controladora de discos r,gidos.
2? W 0sada pela segunda controladora de discos r,gidos.
9onvm citar que as DRQ`s 2: e 2? no podem ser compartiladas, devido ao alto grau de
importBncia das mesmas.
Os dispositivos 89D*89D )xpress so feitos para permitir o compartilamento de interrup'es. )sse
trabalo de compartilamento pode ser feito pelo cipset.
"so de memria por dispositi!os
E8S mapeada na memria
9ada controlador tem alguns registradores usados para a comunicao com a 980. 8or meio da
escrita nesses registradores, o SO pode comandar o dispositivo para entregar ou aceitar dados,
alternar em ligar*desligar, ou ainda executar alguma outra tarefa. ; partir da leitura desses
registradores o SO pode descobrir o estado do dispositivo, se ele est% preparado para aceitar um
novo comando, etc. ;lm dos registradores, usualmente os dispositivos tambm possuem um buffer.
)xiste duas formas para a 980 ter acesso a esses registradores e buffers:
2e b 9ada registrador de controle associado a um n7mero de porta de )*S, usando uma
instruo especial de )*S #DC R)4, 8OR1 O01 R)4, 8OR1$ que seria um acesso direto.
5e b =apear todos os registradores de controle no espao de endereamento da memria.
9ada registrador de controle associado a um endereo de memria 7nico ao qual nenuma
memria associada, que seria o mapeamento da )*S na memria.
)ssa segunda forma, nos tr%s duas grandes vantagens, a primeira que o programador pode tratar
esses registradores como se trata a memria normal, isso , como uma vari%vel, isso fa- com que
um driver possa ser completamente escrito em 9*9YY, caso se+a feita a primeira abordagem,
necessariamente o driver ter% algum cdigo em ;SS)=FJf. ; outra vantagem que no
necess%rio qualquer mecanismo de proteo especial para impedir que os processos do usu%rio
executem )*S, tudo o que o SO tem de fa-er deixar de mapear aquela poro do espao de
endereamento associada aos registradores de controle no espao de endereamento virtual do
usu%rio.
,cesso Direto < Memria (DM,*
O ;cesso >ireto . =emria #>=;$ uma das tcnicas utili-adas para otimi-ar o uso de memria
por dispositivos. O >=; um componente de ardware que permite a transferPncia direta de dados
entre dispositivos perifricos e a memria principal, tornando assim dispens%vel a participao da
980 neste processo.
O controlador de >=; um ardware desenvolvido para desempenar toda a sequPncia de
transferPncia de dados acessando diretamente a memria. )le gerencia v%rios canais que podem ser
programados para reali-ar a transferPncia de dados, quer se+a de um dispositivo para a memria ou
vice/versa.
HO SO somente pode usar o >=; se o ardware tem o controlador de >=;. O >=; melora o
desempeno do sistema, pois poupo tempo ocioso da 980, que poderia muito bem executar a tarefa
do >=;, porm como o tempo de )*S grande principalmetne para grandes quantidades de dados
pode fa-er com que a 980 fique muito tempo ociosa. Quando a quantidade pequena as ve-es at
mais vi%vel fa-er a transferPncia direto pela 980 que um ardeware mais r%pido que o >=;, isso
pode causar concorrencia no barramento, pois o barramento utili-ado pelo >=; para acessar a
memria o mesmo utili-ado pela 980. 0tili-ando o >=;, a 980 requisita ao >=; de onde
comear a ler os bUtes, quantos bUtes devem ser lidos*escritos e fica livre para executar outras
tarefas que se+am 980 Found, ento quando o >=; termina de reali-ar sua tarefa, ele transmite
um sinal de interrupo para a 980 que simplesmente usa os bUtes.H Zcitar de: 1anembaum[
HCote que a 980 pode fa-er exatamente o que o >=; fa-, isso fica a cargo de pro+eto. 9oloca uma
requisio de leitura no barramento e fica esperando at receber os bUtes e assim poder usa/lo, a
diferena que usando a 980 para transferencia de uma quantidade maior de dados, poder%
ocasionar em 980 ociosa.H Zcitar de: 1anembaum[
0m computador tem dois gerenciadores de >=;, divididos em canais. Os canais @ a 6 so
gerenciados por um gerenciador, enquanto os canais : a d vo para o outro.
8ara visuali-ar quais canais esto em uso em sistemas Jinux basta digitar no sell o comando:
c cat *proc*dma
Os oito canais e seus usos so descritos a seguir: @ W usado pelo refres da memria Ram dinBmica.
2 W placas de som de ^ bits, adaptadores S9SD, placas de rede. 5 W controladora de disquete 6 W
porta paralela )98, placas de som de ^ bits, adaptadores S9SD, placas de rede, controladores de
scanner antigos. : W ponte para a controladora de >=; @g6 ? a d W placas de som, adaptadores
S9SD, placas de rede.
Os canais 2 a 6 operam sob ^ ou 2\ bits, enquanto os canais ? a d operam apenas sob 2\ bits.
>ispositivos 89D #e outros de alta velocidade$ possuem um controlador de >=; embutido, muito
mais r%pido que o >=; simples. 8or exemplo, esse controlador usado em discos r,gidos atuais e
pode atingir velocidades de \\=F*s.
)rocesso de Entrada e Sada (E8S*
E8S pro$ramada
Ceste mtodo o processador executa o programa e tem o controle total sobre as opera'es de
entrada e sa,da:
D / Os dados so copiados para o n7cleo(
DD / O Sistema Operacional envia, para a sa,da, um caractere de cada ve-(
DDD / ; cada caractere enviado, a 980 verifica se o dispositivo est% pronto para receber outro(
)sse comportamento camado de espera ociosa ou polling.
; desvantagem desse mtodo que como o processador geralmente mais r%pido que o dispositivo
de )*S ocorrer% um desperd,cio de processamento.
E8S orientada < interrupo
>iferentemente da )*S programada, em que a 980 fica verificando o dispositivo para saber se ele
est% pronto para mais opera'es ou se terminou, na )*S orientada . interrupo, a 980 passa a
reali-ar outras tarefas escalonadas at que se+a informada pelo dispositivo, por meio de uma
interrupo, que este est% pronto para mais caracteres ou concluiu sua tarefa. Quando isso acontecer,
o processador para o que est% fa-endo para executar o tratador de interrupo, quando sua
execuo estiver terminada, o processador volta . rotina que foi interrompida inicialmente.
8ara que se+a empregada essa pol,tica de interrup'es existem detales de software e de ardware
que devem ser atendidos, e para que esses detales se+am executados, a maioria dos computadores
possuem um ardware denominado controlador de interrupes. ;s principais fun'es do
controlador de interrup'es so:
2. identificar a fonte da interrupo(
5. priori-ar uma interrupo em relao a outra(
6. selecionar quais interrup'es sero atendidas.
O emprego de interrup'es libera o computador para reali-ar c%lculos, ento o processador fica
respons%vel apenas por iniciar a operao de entrada/sa,da, e quando esta for conclu,da, executar o
tratador de interrupo.
E8S usando DM,
Co mtodo de )*S orientada . interrupo, a cada caractere processado, gerado uma nova
interrupo . 980. 8ara diminuir o peso de processamento sobre a 980, que perderia muito tempo
por conta das cont,nuas interrup'es, passa/se tal tarefa para o >=;, que passar% a administrar as
interrup'es por buffer #no mais por caractere$. O >=; executa ento a )*S programada #neste
caso, no a 980 que fa- o trabalo, mas sim o controlador do >=;$.
Quando existe uma quantidade de dados significante para ser transferida a tcnica de Dnterrup'es
se torna inefica-, sendo melor a utili-ao de um ardware especial #Controlador de DM,$, que
transfere os dados diretamente de um dispositivo de )*S para a memria, ou vice e versa.
; transferPncia por >=; acontece quando o processador iniciali-a o controlador >=;, fornecendo
todas as informa'es necess%rias sobre os dados a serem transferidos #quantidade de dados, origem
e destino dos blocos e ainda o sentido da transferPncia$, depois ele dispara a execuo do >=; e
equanto a transferPncia estiver ocorrendo o processador pode se dedicar a outra tarefa. ;o final da
transferPncia o >=; sinali-a ao processador por meio de uma interrupo de ardware.
Dri!ers
O que so dri!ers
0m driver uma camada de software que fa- a comunicao do sistema operacional com o
controlador do ardware que por sua ve- fa- a interface com o hardware. >rivers escondem as
diferenas entre os diversos dispositivos, atravs de uma interface de programao unica.
>river de dispositivo Hrespons%vel por implementar as rotinas necess%rias ao acesso e . gerPncia
de um dispositivo espec,ficoH Zcitado de: Oliveira, R. S.( 9arissimi, ;. S. ( 1oscani, S. S.[
H; camada de drivers de dispositivo representa uma parte significativa do sistema de entrada e sa,da
em relao .s funcionalidades. )la respons%vel por implementar as rotinas necess%rias ao acesso e
. gerencia de um dispositivo espec,fico.! necess%rio que o software de )*S reali-a a programao
de registradores internos de controladores que comp'em a interface f,sica dos dispositivos e
implementa os respectivos tratadores de interrupo. ;ssim, cada tipo de dispositivo requer um
driver apropriado. )ssa camada fornece uma abstrao a mais genrica poss,vel para a camada
superior, a de )*S independente do dispositivo.H Zcitado de: Simo 1oscani[
H9ada dispositivo de )*S ligado ao computador precisa de algum cdigo espec,fico do dispositivo
para control%/lo. )sse cdigo, camado de driver do dispositivo.
8ara acessar o ardware do dispositivo, o driver normalmente deve ser parte do n7cleo do SO.
Os sistemas operacionais geralmente classificam os drivers dentre algumas poucas categorias. ;s
categorias mais comuns so dispositivos de bloco / os quais contPm v%rios blocos de dados que
podem ser endereados independentemente / e os dispositivos de caractere, os quais geram ou
aceitam uma sequencia de caracteres.
; maioria dos SOs define uma interface/padro para todos os drivers de blocos e uma segunda
interface/padro para todos os drivers de caracteres. )ssas interfaces consistem em um n,mero de
procedimentos que o restante do so pode utili-ar para fa-er o driver trabalar para ele.
0m driver de dispositivo apresenta v%rias fun'es. ; mais bvia aceitar e executar requisi'es
abstratas, de leitura ou gravao, de um software independente de um dispositivo locali-ado na
camada acima da camada de drivers dos dispositivos. =as existem tambm algumas poucas outras
fun'es que ele tem de executar.H Zcitado de: 1anembaum[
Dri!ers no 4inu0 = Dri!ers no 2indo5s
)nquanto no Iindows, os drivers so desenvolvidos pelos prprios fabricantes do dispositivo,
precisando ser instalados manualmente e seguindo de um processo de reboot do sistema. )m
ambientes 4C0*Jinux, a instalao dos HdriversH so incorporados diretamente ao Ternel e vPm
pr/instalados no sistema.
Dri!ers 4inu0
)m sistemas 4C0*Jinux os HdriversH so camados de mdulos. O "ernel desse sistema dito
monol,tico com vantagens de micro/"ernel +% que os sistemas 4C0*Jinux so JT=#Joadable
Ternel =odules$, +% que os HdriversH ou mdulos so carreg%veis ao sistema sem a necessidade de
um novo processo de bootstrap aps a instalao. 8ara maior facilidade com o usu%rio, esse
carregamento feito no processo de bootstrap. Ca verdade na maioria dos sistemas operacionais
que conta com o desenvolvimento da comunidade do software livre, os mdulos so desenvolvidos
pela comunidade de desenvolvimento. Se esse mdulo tem uma boa aceitao pela prpria
comunidade e passou por todos os requisitos propostos pela equipe de desenvolvimento do "ernel
do sistema, esse pode passar a fa-er parte do prprio "ernel do sistema. >essa forma, o usu%rio no
precisa correr atr%s da instalao uma ve- que o driver est% incorporado e instalado no sistema.
Dri!ers 2indo5s
Cem sempre a compania que desenvolveu certo ardware, tambm tem que desenvolver o driver
para o mesmo. &% casos em que o ardware foi desenvolvido sobre um certo padro de ardware.
Cesses casos, um driver genrico desenvolvido pela =icrosoft para esse dado padro. Cem todos
os drivers se comunicam diretamente com o dispositivo. 8ode aver uma pila de drivers para
determinado dispositivo, em que parte deles age como um filtro, transformando os dados de um
formato para o outro, enquanto apenas a base da pila se comunica diretamente com o dispositivo.
Dsso pode ser melor visuali-ado por uma imagem disponibili-ada pela prpria =icrosoft em seu
site:
ttp:**i.msdn.microsoft.com*dUnimg*D9?6?22?.png
1ambm, nem sempre os drivers estaro associados a um dispositivo. 1ambm existe os MSoftware
>riversN. )m determinados momentos, uma aplicao precisa de acessar recursos que ela s poderia
acessar em modo "ernel, porm ela est% em modo usu%rio. )nto, divide/se essa aplicao em dois
componentes: a aplicao que rodar% em modo usu%rio, que far% a interface com o usu%rio e um
driver que rodar% em modo "ernel, dando acesso aos recursos necess%rios. )sse driver que roda em
modo "ernel camado de Software >river. Co site da =icrosoft tambm est% dispon,vel uma
imagem que ilustra isso:
ttp:**i.msdn.microsoft.com*dUnimg*D9?6?22\.png
)m casos em que determinado ardware desenvolvido no segue um padro pr/existente, que
tena driver desenvolvido pela =icrosoft, a compania tambm precisa desenvolver o driver. Co
site da =icrosoft, existem explica'es sobre como construir um driver para Iindows, dicas de
performance e outros. 8odemos encontrar essas informa'es em: ttp:**msdn.microsoft.com*en/
us*windows*ardware*gg:?:?@d
8ara desenvolver esses drivers, o desenvolvedor deve saber conceitos do funcionamento interno do
Iindows, como o gerenciamento de memria, fluxo de entrada e sa,da, entre outros. 8ara a+udar em
seu desenvolvimento, a =icrosoft disponibili-a o Iindows >river Tit #I>T$, com uma srie de
utilit%rios para criar um driver, como bibliotecas, ambiente de desenvolvimento, exemplos, etc.
9omo parte do I>T, tambm disponibili-ado o Iindows >river Eoundation #I>E$. O I>E
define um 7nico modelo de driver que pode ser usado para criar drivers orientado a ob+etos, tanto
para o modo "ernel quanto para o modo usu%rio. )le tambm inclui framewor"s para drivers de
modo "ernel e modo usu%rio, alm de uma srie de utilit%rios de verificao para o driver.
1ormas de instalao
)m Iindows, esses drivers so desenvolvidos pelos fabricantes do dispositivo. ! criado um arquivo
execut%vel somente com o bin%rio desse driver para a instalao e utili-ao. 4eralmente um
arquivo h.exe. )sse processo fa- com que o usu%rio fique totalmente alienado daquilo que est%
acontecendo com a sua m%quina durante a instalao.
)m 4C0*Jinux, os mdulos podem ser de v%rios tipos. O usu%rio pode baixar o cdigo/fonte,
compila/lo e instala/lo na sua m%quina. )sse um processo bastante dificultoso para quem no tem
muito conecimento tcnico nesses sistemas. 1ambm o usu%rio pode recorrer ao mdulo pr/
compilado do sistema. )sse um processo bastante similar ao do Iindows +% que um script
execut%vel pelo gerenciador de pacotes do sistema da m%quina.
Dispositi!os de arma#enamento
! um dispositivo capa- de gravar#arma-enar$ informao#dados$. )ssa gravao de dados pode ser
feita virtualmente, usando qualquer forma de energia. 0m dispositivo de arma-enamento retm
informao, processa informao, ou ambos. 0m dispositivo que somente guarda informao
camado de m,dia de arma-enamento. >ispositivos que processam informao podem tanto quanto
acessar uma m,dia de gravao podem tanto acessar uma m,dia de gravao port%til, ou ter um
componente que arma-ena dados.
%ipos de dispositi!os de arma#enamento
os dispositivos de arma-enamento se diferem quanto ao tipo de m,dia, tipo de
arma-enamento# vol%til e no/vol%til$, capacidade de arma-enamento e velocidade de escrita.
,rma#enamento por meio ma$n>tico
>entre os dispositivos de )*S, podemos considerar o disco magntico como sendo o mais
importante, devido diversos papis que ele desempena +unto ao Sistema Operacional. >entre esses
papis esto:
;rma-enamento de dados(
;rma-enamento de dados com tolerBncia .s falas de segurana de dados #R;D>$(
0tili-ao como memria virtual #auxiliando a memria R;=, quando esta no pode
guardar todos as p%ginas de dados processos, etc$(
Os discos magnticos podem ser confeccionados em diferentes materiais #pl%stico, metal, etc$,
recobertos por uma parte em material magntico. )ssa parte magntica ser% respons%vel pelo
arma-enamento de dados. )sse arma-enamento de dados, d%/se pela escrita por parte de um
dispositivo de &ardware #cabeote de leitura e gravao$, o mesmo incidir% um campo magntico
que definir% de maneira bin%ria a informao. ; unio dessas %reas definidas pelo cabeote formar%
uma informao #dados$.
>a mesma maneira que dados podem ser escritos no disco magntico, eles podem ser recuperados
#pelo mesmo dispositivo de &ardware$ que locali-aria os dados, ento faria a leitura magntica do
que foi anteriormente gravado.
Dndo mais a fundo sobre as regi'es magnticas do disco, tem/se que ele dividido em trilas
circulares concPntricas, separadas por HgapsH #que evita problemas de alinamento entre as trilas$.
)xistem duas arquiteturas diferentes para essas trilas:
9;K / n7mero constante de bits a cada trila. ///
9JK / n7mero de bits por trila, dependedente da posio da trila #mais interna ou mais
externa$.
#$%& #onstant $ngular %elo!ity' 9JK: 9onstant Jinear KelocitU.
0m aumento de temperatura concorrente ao bom arma-enamento de dados, pois ocorre a
desorientao dos HspinsH #bin%rios$. )sses efeitos devem ser prevenidos pelos desenvolvedores do
disco.
9omo dito anteriormente, existem diversos tipos de dispositivos de )*S, bem como diversos tipos
de discos magnticos. So muitas as tecnologias, envolvendo diferentes maneiras de leitura e escrita
no mesmo, diferentes maneiras de se agrupar camadas de disco, diferentes maneiras de trabalar a
velocidade do giro disco, etc.
,rma#enamento por meio ptico
Os tipos de arma-enamento por meio ptico sBo comumente empregados para o arma-enamento de
informa'es multim,dia, como por exemplo som e v,deo.
O funcionamento desses dispositivos se d% por meio de um feixe de laser de alta preciso, que
pro+etado na superf,cie da m,dia, est% por sua ve-, possui sulcos microscpicos capa-es de desviar o
laser em diferentes dire'es, representando assim as informa'es arma-enadas na forma de bits.
)xemplos de dispositivos de arma-enamento pticos so: 9>/RO=s, 9>/RIs, >K>/RO=s,
>K>/RIs, etc.
,rma#enamento por meio eletr?nico
So dispositivos de memrias de estado slido ou SS>s. 8ossuem memria no vol%til e funcionam
por meios de circuitos eletrSnicos.
)ncontramos dispositivos de arma-enamento eletrSnico em pen drives, cart'es de memria e at
mesmo em discos r,gidos, onde so usados como buffer.
;s grava'es de dados em dispositivos de arma-enamento eletrSnico se da pelo carregamento de
eltrons na camada de xido existente entre duas portas feitas de materiais semicondutores, essas
duas portas representam um d,gito bin%rio #bit$. ;ssim, a presena de eltron entre essas duas portas
indica que o ativamento do bit, ou se+a, valor 2, caso no a+a a presena de eltrons representa o bit
inativo ou valor @.
Outros dispositi!os
+,ID
; tecnologia R;D> utili-ada para controlar o uso de v%rias unidades f,sicas #&>s$ em um 7nico
servidor na tentativa de suprir duas de suas necessidades b%sicas, que so a confiabilidade e o
desempeno. ; partir deste ponto, alguns mtodos #paridade, mirroring, stripping$ so utili-ados
isolados ou combinados para compor diferentes estruturas lgicas #R;D>s @, 2, 5, 6, :, ?, \, 2@$ que
podem ser controladas por software ou por ardware. Kale a pena destacar que o primeiro caso, de
controle por software, apresenta pior desempeno, uma ve- que os mtodos so reali-ados
diretamente pelo Sistema Operacional, enquanto que no segundo caso, controlado por ardware, o
mtodo utili-ado transparente para o SO e ocupa apenas o ardware, que necessita ser capa- de
suportar tal tcnica.
OS 9@VEIS DE +,ID
+,ID 9@VE4 A / 1ambm camado de HStripingH ou HEracionamentoH este n,vel usado quando
se dese+a melorar a performance do computador, nele os dados so divididos em segmentos, que
tem um tamano espec,fico de bloco, e divididos entre os discos proporcionando grande velocidade
na gravao e leitura de informa'es pois os dados so gravados ao mesmo tempo nos discos, logo
quanto maior o n7mero de discos mais r%pido a distribuio dos dados. )sse n,vel no aceita
falas uma ve- que no existe redundBncia ao gravar os dados, logo se um d der problema pode
ocasionar perda de informa'es.
+,ID 9@VE4 B / 1ambm camado de H=irroringH ou H)spelamentoH este n,vel usado quando
se dese+a garantir a integridade dos dados, nele os dados so clonados para outro dispositivo, ou
se+a, se um computador com dois disco r,gidos utili-am este n,vel, ao gravar dados em um disco
automaticamente ser% gravado no outro tornando/os cpias idPnticas, a gravao se torna mais lenta
uma ve- que precisa ser gravado duas ve-es, entretando a leitura mais r%pida pois existem duas
fontes de dados idPnticas. Se ouver fala em um disco ou perda de dados basta recuperar o setor
defeituoso copiando os arquivos contidos do outro disco, esse n,vel muito usado em servidores de
arquivos.
+,ID 9@VE4 C / )ste n,vel respons%vel por monitorar os discos quanto a falas garantindo uma
maior consistPncia nos dados caso ocorra falta de energia durante a escrita. )ssa funcionalidade
perdeu utilidade a partir do momento em que os fabricantes de disco r,gidos passaram a
implementar mecanismos internos para detectar falas e garantir a integridade dos dados.
+,ID 9@VE4 D / 8ara utili-ar esse n,vel pelo menos 6 discos so necess%rios, nesse n,vel os dados
so divididos entre dois discos e o terceiro fica respons%vel pelas informa'es de paridade, assim
todos os bUtes tem sua paridade exceto 2 que identifica o erro, atravs dessas informa'es
poss,vel identificar onde o erro ocorreu garantindo a integridade dos dados em caso de recuperao,
a sua montagem via software e exige que todos os eixos das unidades de discos este+am
sincroni-ados.
+,ID 9@VE4 E / 0tili-a a mesma tcnica do n,vel 6, porm em caso de falas os dados so
reconstru,dos em tempo real atravs da utili-ao da paridade calculada a partir dos outros discos,
sendo que cada um pode ser acessado de forma independente. Se algum dos discos estragar a
paridade usada imediatamente para reconstruir o conte7do e os outros discos, que arma-enam
dados, so configurados para utili-arem segmentos grandes permitindo leituras independentes da
informao arma-enada.
+,ID 9@VE4 F / Oferece mais desempeno em relao ao n,vel : pois agora a paridade encontra/
se distribu,da nos discos, fa-endo com que a gravao se+a mais r%pida pois no necess%rio
acessar um 7nico disco a cada gravao, esse o n,vel mais utili-ado.
+,ID 9@VE4 G / Semelante ao n,vel ? porm usa o dobro de bits de paridade garantindo a
integridade de at dois disco r,gidos falarem ao mesmo tempo, o R;D> \ pode ser utili-ado para
sistemas de misso/critica aonde a confiabilidade dos dados essencial.
+,ID 9@VE4 AHB / ! o n,vel mais caro de ser implementado pois exige no m,nimo : discos
r,gidos, esse n,vel implementa rapide- e integridade dos dados pois ele combina os n,veis @ e 2
onde os dados so divididos entre os discos para melorar o rendimento, mas tambm utili-am
outros discos para duplicar as informa'es.
Sistemas de arqui!os
Os sistemas de arquivos estruturam a informao guardada em uma unidade de arma-enamento,
podendo ser representada de forma textual ou graficamente utili-ando um gerenciador de arquivos.
; maioria dos sistemas operacionais possuem seu prprio sistema de arquivos.
O abitual utili-ar dispositivos de arma-enamento de dados que permitem o acesso aos dados
como uma corrente #cadeia$ de blocos de um mesmo tamano, .s ve-es camados setores,
usualmente de ?25 bUtes de largura. O software do sistema de arquivos respons%vel pela
organi-ao destes setores em arquivos e diretrios e mantm um registo de que setores pertencem
a que arquivos e quais no tPm sido utili-ados. Ca pr%tica, um sistema de arquivos tambm pode ser
utili-ado para acessar dados gerados dinamicamente, como os recebidos atravs de uma conexo de
rede #sem a interveno de um dispositivo de arma-enamento$.
)m geral os sistemas de arquivos proveem mtodos essenciais para criar, mover, renomear e
eliminar tanto arquivos como diretrios. Outros permitem a criao de enlaces #lin"s$ adicionais a
um diretrio ou arquivo #enlace duro ou ard lin"s em 0nix$.
; estrutura de diretrios costuma ser ier%rquica, ramificada ou Hem %rvoreH, ainda que pode ser
plana. )m alguns sistemas de arquivos os nomes de arquivos so estruturados, com sintaxes
especiais para extenso de arquivos e n7meros de verso. )m outros, os nomes de arquivos so
simplesmente correntes de texto #ou strings de texto, em inglPs$ e os metadados da cada arquivo so
alo+ados separadamente.
Cos sistemas de arquivos ier%rquicos, usualmente, declara/se a locali-ao precisa de um arquivo
com uma corrente de texto #string de texto, em inglPs$ camada HrotaH ou HcaminoH i ou pat em
inglPs i. ; nomenclatura para rotas / ou camino / varia ligeiramente de sistema em sistema, mas
mantPm pelo geral uma mesma estrutura. 0ma rota vem dada por uma sucesso de nomes de
diretrios e subdiretrios, ordenados ierarquicamente de esquerda a direita e separados por algum
caractere especial que costuma ser uma barra #`*`$ ou barra invertida #`j`$ e pode terminar no nome de
um arquivo presente ao 7ltimo ramo de diretrios especificada.
Caractersticas dos sistemas de arqui!os
Segurana ou permiss'es
listas de controle de acesso #;9Js$
=ecanismo para evitar a fragmentao
9apacidade de enlaces simblicos #sUmbolic lin"s$ ou duros #ard lin"s$
Dntegridade do sistema de arquivos #Oournaling$
Suporte para arquivos dispersos
Suporte para quotas de discos
Suporte de crescimento do sistema de arquivos nativo
=ais informa'es podem ser vistas em 1anenbaum Z2[
Conceitos de arqui!os
Observa'es sobre o mapa conceitual acima:
;rquivos de texto Iindows por padro so codificados em ;S9DD e no em 0nicode.
;rquivos de texto 0nix por padro so codificados em 0nicode e no em ;S9DD.
O termo Harquivos de repositrioH no uma terminologia reconecida, tudo indica que se
quis di-er Harquivos de dadosH.
%ipos de ,rqui!os
4eralmente os Sistemas Operacionais suportam v%rios tipos de arquivos. O 0nix e o Iindows, por
exemplo, suportam diretrios e arquivos organi-ados em sequPncia de bUtes, sequPncia de registros
e %rvores, conecidos como arquivos regulares. O 0nix, em especial, suporta alm dos tipos
regulares, arquivos de dispositivo de caracteres e de blocos. Os arquivos de dispositivo de
caracteres so utili-ados para modelar dispositivos de )*S, tais como terminais, redes, impressoras.
O% os arquivos de dispositivo de blocos do suporte aos dispositivos de arma-enamento em massa
tais como discos e pen/drive.
9omes de ,rqui!os
Comear os arquivos uma tarefa importante, pois ser% atravs do nome que um arquivo ser%
encontrado no sistema de arquivos. 8or exemplo, uma aplicao cria um arquivo camado
Hdados.txtH e com esse nome outras aplica'es podero acessar este mesmo arquivo.
;s regras referentes a nomenclatura de arquivos variam de acordo com o sistema de arquivos.
;lguns sistemas de arquivos no fa-em distino de letras mai7sculas ou min7sculas, enquanto
outros aceitam apenas caracteres em mai7sculo.
O tipo do arquivo pode ser indicado na extenso do mesmo, que uma 7ltima parte escrita aps um
ponto#.$ no nome do arquivo. ;lguns sistemas operacionais utili-am essa extenso para automati-ar
as a'es referentes aquele arquivo. 8or exemplo, no Iindows um arquivo com extenso `.txt`
interpretado como um documento de texto, e ao execut%/lo o sistema +% procura uma aplicao que
trata este tipo de arquivo, como um editor de texto.
Operaes com ,rqui!os
Seguem uma descrio das opera'es em arquivos encontradas na maioria dos sistemas de arquivo:
#ria()o: criao sem escrita de dado algum.
*estrui()o: remoo do arquivo para liberao do espao.
$bertura: abertura do arquivo, para colocar na memria os atributos e a lista de endereos
para tornar as opera'es posteriores mais r%pidas.
+e!hamento: remover as referPncias do arquivos da memria principal.
,eitura: abertura do arquivo para leitura do seu conte7do.
-s!rita: processo de escrita do arquivo. 4eralmente a escrita comea a partir de onde estiver
o ponteiro, caso esse ponteiro este+a no final do arquivo ou durante a escrita o final for
atingido, o arquivo aumentar% de tamano.
#on!atena()o: forma de escrita que s permite adicionar dados no final do arquivo
.us!a: camada que coloca o ponteiro em uma posio espec,fica do arquivo. >epois dessa
camada, dados podem ser lidos*escritos a partir daquela posio.
%er atributos: essa camada verifica certos atributos como permiss'es, por exemplo. Gs
ve-es necess%rio escrever em um arquivo, porm necess%rio verificar se esse arquivo
possui permisso de escrita.
*efinir atributos: Serve para definir ou alterar os atributos de certos arquivos. Elags de
proteo podem ser definidas com essa camada.
/enomea()o: 9amada de sistema para renomear um arquivo.
Implementao de arqui!os
; criao de arquivos exige que o sistema operacional tena controle de quais %reas ou blocos no
disco esto livres. ! importante o controle de quais blocos de discos esto relacionados a quais
arquivos. )ste gerenciamento pode ser feito de v%rias formas: ,locao cont$uaI alocao por
lista encadeadaI alocao inde0ada e alocao com3inada .
,locao cont$ua
! o esquema mais simples de alocar e arma-enar os arquivos no disco. 9onsiste em arma-enar um
arquivo em blocos sequencialmente dispostos. Ceste tipo, o sistema locali-a um arquivo atravs do
endereo do primeiro bloco e da sua extenso em blocos.
)ste tipo de alocao apresenta duas vantagens significativas.
! bastante simples de implementar e de reali-ar o controle sobre os onde os blocos esto.
O desempeno de leitura excelente, pois todo o arquivo pode ser lido em uma 7nica
operao a partir do primeiro bloco de dados.
Co entanto este tipo de implementao apresenta uma grande problema: Eragmentao do disco.
9omo os arquivos podem ser criados e eliminados frequentemente, os segmentos livres vo se
fragmentando em pequenos pedaos por todo o disco. O problema pode tornar/se cr,tico quando um
disco possui blocos livres dispon,veis, porm no existe um segmento cont,guo em que o arquivo
possa ser alocado.
O problema da fragmentao pode ser contornado atravs de rotinas que reorgani-em todos os
arquivos no disco de maneira que s exista um 7nico segmento de blocos livres. )ste procedimento,
denominado desfragmentao, geralmente utili-a uma %rea de trabalo no prprio disco ou em fita
magntica.
; alocao cont,gua amplamente utili-ada em 9>/RO=S e em discos apenas para leitura. Celes o
tamano do arquivo conecido anteriormente e nunca vai ser alterado.
,locao por lista encadeada
;locao encadeada consiste em manter os arquivos, cada um, como uma lista encadeada de blocos
de disco. >essa forma uma parte de cada bloco usada como ponteiro para o prximo bloco. O
restante do bloco usado para dados.
0ma vantagem desse tipo de alocao que o tamano do arquivo no precisa ser conecido antes
de sua criao, +% que cada bloco ter% um ponteiro para o prximo bloco. ;ssim o fato de o disco
estar fragmentado no ocasiona problemas para a criao do arquivo.
O problema deste tipo de alocao o tempo de leitura extremamente lento. O acesso dever% ser
sempre sequencial. ;ssim para acessar um bloco intermedi%rio ser% necess%rio percorrer o arquivo
desde o inicio.
,locao inde0ada
;locao indexada uma forma de resolver o problema do tempo de leitura da alocao por lista
encadeada. Dsso feito por meio de uma tabela de endereos dos blocos ocupados pelo arquivo.
8ara cada novo bloco alocado, inclui/se mais um novo item na tabela.
0sando alocao indexada, o acesso aleatrio fica mais f%cil, pois no necess%rio percorrer todos
os blocos de forma sequencial, o endereo de cada bloco fica arma-enado na tabela de alocao.
; desvantagem desta abordagem que a tabela alocao dever% ser mantida na memria principal e
dependendo do tamano dos blocos do disco ocupar% muito espao de memria o tempo todo.
,locao com3inada
Outra abordagem a alocao combinada, envolvendo o uso de blocos de ,ndices e de
encadeamento dos mesmos. )ssa tcnica combina a baixa ocupao de espao em memria da
tcnica de lista encadeada e o bom desempeno da tcnica de tabela de ,ndices.
Co mtodo de alocao combinada usado uma tcnica camada de n,veis de indireo na
indexao. Cesta tcnica, parte de um bloco utili-ado para apontar diretamente blocos de dados,
camado de apontadores diretos, e outra parte utili-ada pode ser utili-ada para apontadores para
blocos, camado de apontadores indiretos. Se usarmos outros n,veis de apontadores, podemos
estender essa mesma tcnica para apontadores duplamente indiretos e apontadores triplamente
indiretos. Z5[
)sta abordagem tipicamente utili-ada na implementao do sistema de arquivos 0nix, camada de
Inodes. 0m D/node #index/node$ so os metadados, arma-enado em estrutura de dados prpria, que
relaciona atributos e os endereos dos blocos de um arquivo.
MJltiplos sistemas de arqui!os
Os sistemas atuais podem acessar v%rios sistemas de arquivos ao mesmo tempo. Dsto feito de
forma transparente ao usu%rio e as diferenas no formato dos descritores de arquivos de cada
sistema so espeladas em descritores virtuais que o sistema operacional mantm.
Solu'es envolvendo a coexistPncia simultBnea de v%rios sistemas de arquivos no mesmo sistema
operacional, comearam a surgir a partir dos anos ^@. ; princ,pio, surgiram trPs solu'es, que
tiveram um maior destaque nesse sentido#para o sistema operacional 0CD<$, so elas:
File System Switch da ;1k1
arquitetura "gnode" da >igital )quipament 9orporation
Virtual File System da Sun (0olu()o abordada neste trabalho para e1emplifi!ar)
; ideia b%sica abordada por estas solu'es fa-er com que o sistema operacional suporte diversos
sistemas de arquivos diferentes simultaneamente. ; soluo empregada para facilitar a incluso de
novos sistemas de arquivos, foi inspirada na gerPncia de perifricos.
Virtual 1ile S;stem
KES uma camada de abstrao entre a aplicao e as implementa'es do sistema de arquivos. O
KES pode, por exemplo, ser usado para acessar dispositivos de arma-enamento locais e de rede de
forma transparente, sem que a aplicao cliente perceba a diferena.
O propsito principal de um KES permitir que as v%rias aplica'es clientes possam acessar
diversos tipos de sistemas de arquivos concretos de uma maneira uniforme.
Mapa Conceitual ilustrando o conceito de mJltiplos sistemas de arqui!os
Cac'e de sistemas de arqui!os
0ma cace de disco pode ser definida como parte da memria R;= ou memria buffer cace,
utili-ada para acelerar o acesso aos dados que esto sendo mais frequentemente requeridos. 8ara
isso a cace de disco pode ser implementado de duas formas principais:
2 / ;travs da memria R;= inserida no prprio disco r,gido.
5 / 0tili-ao de parte da memria R;=.
Representao da locali-ao da memria Fuffer 9ace:
9aces de disco r,gido so mais eficientes, mas so tambm muito mais caras. 1odos os disco
r,gidos modernos possuem uma cace interna. 8ara complementar a cace interno, os sistemas
operacionais criam um segundo cace usando a memria R;=.
9aces de disco funcionam arma-enando os dados mais acessados. Quando um programa precisa
acessar um novo dado, o SO primeiramente verifica se os dados esto na cace antes de lP/lo do
disco. Dsso porque o acesso . memria R;= muito mais r%pido do que o acesso ao disco.
Vanta$ens e Des!anta$ens da &uffer Cac'e
=inimi-ao do n7mero de transferPncias entre o disco e a memria #cace its$(
O acesso a disco tratado de uma forma uniforme.)xiste apenas uma interface para acessar
os dados de um disco(
;+udar a manter a coerPncias dos blocos. Se dois processos tentam acessar o mesmo bloco a
buffer cace ordena os acessos(
1orna o sistema mais vulner%vel a acidentes de parada total #falta de energia, por exemplo$
#HcrasesH$(
1orna a transferPncia de grandes quantidades de informao mais lenta.
&uffers
O n7mero de buffers configur%vel de acordo com a memria dispon,vel e o tipo de utili-ao do
sistema. 9ada buffer constituido de 5 partes:
2 / lona que contm a cpia de um bloco do disco.O mesmo buffer pode guardar blocos de discos
diferentes em instantes diferentes.
5 / 9abealo que contm informao de controle sobre esse buffer.
Segue um mapa conceitual que ilustra os conceitos de mapeamento da memria cace do sistemas
de arquivos:
.er/ncia de Espao li!re
O monitoramento de espao livre em um disco reali-ado principalmente atravs de dois diferentes
mtodos:lista encadeada e mapa de bits.)sses mtodos so descritos abaixo.
4ista Encadeada
Cesta forma de gerenciamento, primeiramente preciso entender que os blocos livres so blocos
que no contm arquivos #de usu%rios e programas$. )ntretanto os mesmos no ficam em branco,
pois enquanto no esto sendo utili-ados, eles contm informa'es que o Sistema Operacional
arma-ena para mapear o espao livre. Ou se+a, estes blocos esto livres porm no esto va-ios.
>esta forma cada bloco livre no disco possui ponteiros para os seguintes espaos livres em disco.
;ssim, se considerarmos que um bloco possui um tamano de 2 TFUtes, e um ponteiro tem
tamano de 65 bits, dentro de um bloco livre temos 5?? ponteiros para os prximos blocos livres do
disco#uma entrada reservada ao ponteiro para o bloco seguinte$.
Mapa de &its
Cesta forma de gerenciamento, utili-ado um espao fixo adicional em disco especificamente para
o mapeamento do espao livre, de forma que para cada bloco em disco utili-ado um bit no
mapa.Sendo assim, um disco com n blocos requer um mapa de bits com n bits. Co
surpreende,portanto, que os mapas de bits requeiram menos espao, +% que ele usa 2 bit por bloco,
contra 65 bits no modelo de lista encadeada. Somente se o disco estiver quase ceio que o
esquema de lista encadeada precisar% de menos blocos que o mapa de bits. 8or outro lado, se ouver
muitos blocos livres, alguns deles podero ser emprestados para conter a lista de livres sem
qualquer perda de capacidade de disco.
8ara um mapa de bits, poss,vel manter apenas um bloco na memria e usar o disco somente
quando o bloco tornar/se ceio ou va-io.
0ma vantagem dessa estratgia que as aloca'es em um bloco 7nico de mapa de bits fa- com que
os blocos de disco fiquem prximos uns dos outros, minimi-ando assim os movimentos dos braos
de leitura do disco.
Mapa Conceitual so3re a $er/ncia de espao li!re
ttp:**w
ww.lastfm.com.br*music*1eY4reatY4on-o*Yimages*5:2^^^
4i$aes e0ternas
ttp:**www.ieeta.pt*glau*SosdX\Xd*Fuffer9ace.pdf
ttp:**www.forumpcs.com.br*comunidade*viewtopic.ppmtW25^@2d
ttp:**www.webopedia.com*1)R=*>*dis"ncace.tml
ttp:**www.superspeed.com*des"top*supercace.pp
=orimoto, 9arlos. 9ace de >isco #ou Fuffer de disco$. >ispon,vel em
ttp:**www.guiadoardware.net*termos*cace/de/disco/ou/buffer/de/disco ;cessado em
5\*2@*5@2@.
ttp:**www.scribd.com*doc*??\\@Xd*2@4)R)C9D;/>O/SDS1)=;/>)/;RQ0DKOS
+efer/ncias
2. 1;C)CF;0=, ;ndrew. Sistemas Operacionais =odernos. 5a ed. 8earson / 8rentice &all.
5@@6. DSFC ^?/^dX2^/?d/?
5. OJDK)DR;, RSmulo, 9;RDSSD=D, ;lexandre e SD=oO, 1oscani. Sistemas Operacionais.
6a ed. )ditora Sagra Ju--ato, 5@@?
Conceitos de diretrios
Implementao de diretrios
Sistemas Distri3udos
Sistemas Em3arcados
Introduo aos Sistemas Em3arcados
Sistemas embarcados so sistemas computacionais completos e independentes, mais simples que
um computador de propsito geral #des"tops$, encarregados de executar apenas uma funo
determinada / tarefas pr/determinadas, com requisitos espec,ficos / na qual executam geralmente
repetidas ve-es. 1ambm camado de sistema embutido, seu computador completamente
encapsulado, totalmente dedicado ao dispositivo que controla. )sses dispositivos so compostos
fundamentalmente pelos mesmos componentes de um computador pessoal, s que com tamano e
capacidade limitadas para o fim se destina. So muito utili-ados no cotidiano, e seus usu%rios
geralmente no os consideram com um computador. So exemplos: aparelo de som, televiso,
cBmera digital, brinquedos, modem ;>SJ, entre muitos outros dispositivos. ; evoluo da
microeletrSnica e o barateamento das 980`s viabili-aram o emprego de sistemas embarcados nos
diversos equipamentos.
8or serem muito simples, muitas ve-es esses sistemas no tPm flexibilidade #de software e de
ardware$ que les permita fa-er outras tarefas quaisquer que no se+am aquelas para as quais
foram desenados e desenvolvidos. ; 7nica flexibilidade permitida e dese+ada no caso de um
upgrade de novas vers'es, fa-endo com que o sistema possa ser reprogramado, geralmente com
corre'es ou novas fun'es que o tornem melor. =as isto feito sempre pelos fabricantes e quase
nunca pelos usu%rios finais.
Co processo de desenvolvimento do software do sistema embarcado, ocorre que esta desenvolvido
em um computador pessoal comum sendo transferido para o sistema embarcado apenas nos est%gios
finais do desenvolvimento. )m alguns casos isso feito atravs da porta 0SF #ou de uma porta
serial$, mas em outros necess%rio gravar um cip de )8RO= ou memria flas com a a+uda do
gravador apropriado e transferir o cip para o sistema embarcado para poder testar o software.
Cormalmente o usu%rio final no ter% acesso ao software do sistema embarcados, mas interage com
o mesmo atravs de uma interface, que pode ser um displaU, um teclado ou at mesmo por uma
interface web.
0m grande respons%vel pelo expanso do uso e aplicao dos sistemas embarcados foi a utili-ao
do microcontrolador, pelo seu baixo custo, versatilidade e tamano redu-ido. =uitas ve-es ele que
desempena so-ino todas as fun'es do aparelo, incluindo controladores para as diversas fun'es
dispon,veis e at mesmo uma pequena quantidade de memria R;=, entre outros recursos.
)xistem no mercado os mais diversos tipos de microcontroladores, cada um com um con+unto
prprio de perifricos e fun'es. ;o invs de desenvolver e fabricar seus prprios cips, as
empresas passaram a cada ve- mais utili-ar componentes dispon,veis no mercado, que so
fabricados em massa e vendidos a preos incrivelmente baixos.
=uitos microcontroladores podem ser conectados a dispositivos analgicos, permitindo o uso de
sensores diversos. Dsso permite a criao de dispositivos simples, que monitoram temperatura,
umidade, entre outros fatores, executando a'es predefinidas em caso de mudanas
)mbora os computadores pessoais normalmente roubem a cena, os sistemas embarcados so muito
mais numerosos e so respons%veis por toda a estrutura que utili-amos no dia/a/dia. )les so
tambm uma das %reas mais promissoras dentro da %rea de tecnologia, +% que um simples sistema
embarcado pode ser programado para desempenar praticamente qualquer funo.
Conceitos &-sicos de Desen!ol!imento em Sistemas Em3arcados
Introduo
>evido as limita'es das plataformas embarcadas necess%rio uma plataforma mais robusta
para o desenvolvimento das aplica'es.
)sta plataforma camada de desenvolvimento ou simplesmente &ost.
O% as plataformas onde as aplica'es sero executadas so camadas de 8lataforma ;lvo ou
simplesmente 1arget.
)lataforma de Desen!ol!imento 6 Host
4eralmente so computadores de propsito geral #9omputadores 8essoais$.
8ossuem grande capacidade de arma-enamento.
8ossuem grande quantidade de processamento.
>isponibili-a interfaces mais adequadas para o desenvolvedor.
! onde sero executadas as ferramentas necess%rias para o desenvolvimento de aplica'es.
)lataforma ,l!o 6 %ar$et
8roduto propriamente dito.
8lataforma onde as aplica'es sero executadas.
Suas caracter,sticas foram citadas anteriormente.
4eralmente so utili-adas plataformas de referPncia para o desenvolvimento at cegar ao
produto final.
%ipos de Confi$urao Host8%ar$et
! necess%rio uma interface entre a plataforma ost e a plataforma target.
;tualmente existem 6 configura'es para estas interfaces que so mais comuns:
Jin"ed Setup
Removable Storage Setup
Standalone Setup
%ipos de Confi$urao Host8%ar$et 6 4in7ed Setup
9onfigurao mais utili-ada atualmente.
&ost conectado ao 1arget atravs de um cabo.
4eralmente utili-a interface RS/565, 0SF ou )ternet para comunicao com o target.
8ossibilita depurao do cdigo MremotamenteN(
;tualmente, utili-ado este tipo de configurao para a gravao e depurao de software
na plataforma alvo com o aux,lio de O1;4s.
%ipos de Confi$urao Host8%ar$et 6 +emo!a3le Stora$e Setup
0tili-a dispositivos remov,veis para cpia da aplicao desenvolvida para a plataforma alvo.
;ntigamente eram utili-adas placas de gravao contendo soc"ets para a memria a qual era
utili-ada na plataforma alvo.
=odelo quase obsoleto, pois este no permite a depurao da aplicao de forma efica-.
%ipos de Confi$urao Host8%ar$et 6 Standalone Setup
So utili-ados em plataforma alvo bem mais robustas.
;s ferramentas de desenvolvimento so executadas na plataforma alvo.
; plataforma de desenvolvimento utili-ada apenas para acessar a plataforma alvo.
>evido a evoluo das plataformas embarcadas, este modelo +% vem sendo utili-ado.
CrossCompilin$
! a construo de uma aplicao para uma plataforma distinta da qual est% sendo constru,da.
O 9ompilador, executado na plataforma de desenvolvimento, porm gera um bin%rio para
outra plataforma: ; plataforma alvo.
um bin%rio compilado para uma plataforma, s pode ser executado nesta, pois instru'es
geradas so espec,ficas para cada arquitetura de processador.
E0emplos de SOKs Em3arcados
%in;OSL
! um sistema operacional embarcado open/source pro+etado para dispositivos de redes de sensores
sem fio. )le apresenta uma arquitetura baseada em componentes que permite uma r%pida inovao e
aplicao, minimi-ando o tamano do cdigo devido a restrio de memria inerente aos
dispositivos.Sua biblioteca de componentes inclui protocolos de rede, servios distribu,dos, drivers
de sensor, e ferramentas de aquisio de dados. O 1inUOS tem compatibilidade com de-enas de
plataformas e placas de sensor.
Conti7i
9onti"i um sistema operacional com o cdigo aberto, diferentemente to 1inUOS. ! um sistema
operacional altamente port%til e multi/tarefas para redes de dispositivos com memria limitada. !
escrito na linguagem 9 e foi especialmente pro+etado para microcontroladores com pouca memria.
)sse sistema operacional foi desenvolvido no Dnstituto Sueco de 9iPncia da 9omputao #Swedis
Dnstitute of 9omputer Science$ liderado por ;dam >un"els. 9onti"i implementa a camada de
adaptao \JoI8;C, que uma camada que promove a compresso do D8v\, colocando/o para
funcionar nesses dispositivos de memria limitada, possibilitando maior integrao dos mesmos
com a Dnternet. 9om o \JoI8;C, todos os sensores contPm uma 234 sta!5 que rodam sobre 0>8.
VirtuOSL
)le foi ideali-ado para desfrutar dos recursos e do poder de processamento dos processadores
arquitetura x^\ de 65 bits em microcomputadores de 7ltima gerao, de arquitetura compat,vel com
os modelos DF= 89p de modo a cobrir um largo espectro de aplica'es profissionais de propsito
geral.
Sua implementao permite um n,vel de desempeno e de segurana surpreendentes e que
viabili-am, a baixo custo, a instalao de Sistemas >istribu,dos de =isso 9r,tica, pela utili-ao
transparente e simultBnea dos ambientes multitarefa, multiusu%rio, multiterminal e de redes locais e
remotas.
:9=L
! multiusu%rio, multitarefa, trabala com rede e possui uma boa interface. ; semelana visual do
QC< com o Jinux explicada pelo fato de ambos os pro+etos fa-erem uso da interface gr%fica
8&O1OC. Kers'es mais recentes do QC< possuem diversas aplica'es nativas, dentre as quais se
destaca o seu navegador de internet, o KoUager, que renderi-a praticamente todo tipo de conte7do
#streaming de %udio e v,deo, flas, etc.$ usado atualmente na web. 8or se basear em 0CD<, o QC<
confi%vel e est%vel, podendo ser ideal para profissionais da %rea gr%fica #6>, edio de imagem e
v,deo e similares$. J,deres mundiais como a 9isco, 4eneral )letric e Siemens dependem da
tecnologia QC< para roteadores de rede, instrumentos mdicos, unidades telem%ticas de ve,culos,
sistemas de segurana e de defesa, robtica industrial e outras aplica'es de miss'es cr,ticas. )m
5@2@, a Researc Dn =otion #RD=$, fabricante do Flac"FerrU, adquiriu o QC< e o implementou em
seu primeiro tablet 89, o 8laUFoo", concorrente direto do i8ad, da ;pple.
2indo5s CEL
! uma verso da no/popular lina de sistemas operativos Iindows para dispositivos port%teis,
1ablet 89s e sistemas embarcados. )le equipa desde micro/computadores at telefones celulares
mais antigos e o >reamcast. ! suportado no Dntel x^\ e compat,veis, =D8xS, ;R=, e processadores
Super& &itaci.
E0emplos de sistemas em3arcados com 4inu0L
8>; Sarp lauro SJ/962@@
=ultim,dia ;rcos 8=;:@@
Roteador Jin"sUs I1R?:4
1elefones celulares
E0emplos de interao com o Sistema Operacional em3arcado
Os sistemas embarcados no possuem uma interface para acesso aos comandos de execuo do
sistema operacional embarcado. )les utili-am de uma conexo com o computador para se ter acesso
ao sistema operacional e os seus comandos de execuo, assim como acesso ao "ernel, essa
conexo simular% um terminal que ter% acesso ao sistema operacional como se estivesse operando
no prprio ardware embarcado. ; conexo como o computador pode ser via porta eternet
#conexo de rede tanto local como wireless$, porta 0SF, porta serial e porta paralela, sendo que os
dois 7ltimos casos esto cada ve- mais raros na pr%tica devido a ausPncia das duas portas nos
computadores atuais. 9om a conexo f,sica necess%rio que se reali-e a comunicao do
computador com o ardware embarcado atravs de protocolos #regras de comunicao$, sendo que
para cada tipo de protocolo de comunicao existem alguns softwares. 9omentaremos os
protocolos: 1elnet, com dois softwares, e o SS&, com software de mesmo nome.
1elnet um protocolo de terminal virtual que estabelece conexo com outros computadores ou
sistemas embarcados via comunicao 198*D8. )xistem diversos softwares que utili-am o 1elnet,
existe o software com o mesmo nome, 1elnet, que utili-a linas de comandos para a execuo dos
comandos #plataformas: Jinux e Iindows$( existe o &Uper 1erminal que um software muito
utili-ado na configurao de roteadores por meio da porta serial, porm esse um software da
plataforma Iindows, usu%rios Jinux que quiserem utili-%/lo devero instalar o programas
similares, por exemplo o 9/Termit. SS&, na verdade, um protocolo que extende do 1elnet pois
reali-a a conexo por meio de 198*D8 porm com segurana, criptografando as informa'es no
terminal virtual antes de enviar para o cliente e reali-a a autenticao no envio e no recebimento dos
dados, o SS& suportado na plataforma Jinux e assim como o 1elnet executado por linas de
comando, para o Iindows existem softwares que suportam esse protocolo.
,cessando um roteador Cisco BMAA
,cessando um roteador Cisco BMAA
Eigura 2: Roteador 9isco 2d@@ ligado ao computador
Eigura 2@: 9omando sow flas
Eigura 22: comando sow version
O roteador 9isco 2d@@ muito utili-ado em empresas de mdio porte por oferecer alta velocidade
de banda larga e lina dedicada de acesso, segurana e integrao de vo-. O sistema operacional
embarcado o 9isco DOS, ele utili-a uma interface de lina de comando #9JD$ como console de
gerenciamento, a 9JD utili-a de uma ierarquia de modos, sendo que cada modo respons%vel por
executar determinados comandos. )xemplo de cliente que utili-a o roteador 9isco 2d@@: Fanco Dta7
em agPncias de pequeno porte.
; primeira configurao do roteador 9isco 2d@@ deve ser feita atravs da porta serial do micro e da
porta 9onsole ou ;ux do roteador pois o mesmo vem sem a configurao D8, para configura'es
posteriores pode/se usar a porta eternet do computador com uma porta eternet do roteador
utili-ando/se o protocolo 1elnet para comunicao entre os equipamentos. Reali-ado as conex'es
f,sicas, porta serial do micro ligado por um cabo Rollover na porta 9onsole do roteador 9isco 2d@@
#figura 2$, e ligados os equipamentos pode/se utili-ar do emulador de terminal #&Uper 1erminal$
para conectar logicamente o computador no roteador.
O aplicativo &Uper 1erminal exigi algumas configura'es todas as ve-es que ele iniciali-a, a
primeira tela #Eigura 5$ para configurar o nome da conexo(
; prxima configurao #Eigura 6$ de qual porta usar, se for conectar na porta serial deve/se
escoler a porta serial que o roteador est% ligado, 9O=<(
; 7ltima configurao se refere as propriedades de comunicao, que por padro usa/se: Fits por
segundo W X\@@( Fits de dados W ^( 8aridade W Co( Fits de parada W 2( 9ontrole de fluxo W
&ardware #Eigura :$.
>epois das telas de configurao o &Uper 1erminal estar% pronto para acessar o console, porm
nada ser% mostrado #Eigura?$ at que se aperte a tecla )nter #Eigura \$.
8ara comear a usar o console, novamente, dever% apertar a tecla )nter. ;ps o pressionamento da
tecla, parecer% um nome] , nome ser% o nome do roteador, esse primeiro modo o modo )<)9
usu%rio que um modo de usu%rio que executa poucos comandos #Eigura \$.
8ara alterar para o modo )<)9 privilegiado, modo onde poss,vel acessar todos os comandos do
roteador, basta digitar enable, aparecer% na tela nomeq #Eigura d$(
8ara entrar no modo de configurao global o comando configure terminal, dever% estar em modo
)<)9 privilegiado, aparecer% nome#config$q #Eigura ^$(
8ara sair do modo )<)9 privilegiado basta digitar disable( para sair do modo de configurao
global o comando exit( para sair do modo )<)9 usu%rio basta digitar exit, o console ser% fecado.
8ara saber o que cada modo executa basta digitar m que aparecer% na tela os comandos suportados
#Eigura X$.
)m modo )<)9 privilegiado o comando sow mostra uma configurao ou um status espec,fico,
sow running/config: configurao ativa, conte7do da R;=( sow flas: local onde o Sistema
Operacional est% salvo, conte7do da Elas #Eigura 2@$(
Sow version: mostra a verso e qual DOS est% carregado #Eigura 22$( sow interfaces: lista todas as
interfaces dispon,veis no roteador e seus respectivos status.
O ro3? !oador com linu0 em3arcadoI ,rNDrone
M$ pla!a prin!ipal in!lui um #3U !entral 3arrot 34 do $/'*rone' 6 !hip 34 foi
espe!ialmente !on!ebido para o $/'*rone' 2n!lui um 748 M230 $/M924-: /is! #3U e um
a!elerador de ideo' $ pla!a prin!ipal !orre !om ,inu1 juntamente !om o software
$/'*rone' $ pla!a prin!ipal in!lui 2;4 Mb 2<< M=" >2 .its M**/ /$M de >2Mb de ?$?*
+lash' 2n!lui um !hipset @iA+i da $theros e uma porta U0. para flashing direto e e1tensBes
futuras' 6 !hip $tmel 34MU C um !hipset de gest)o de energia para o !hipset 34' $ pla!a
prin!ipal in!lui tambCm uma !Dmera erti!al 4<+30' $ resolu()o de Edeo C F#2+ (GH4*G77
pi1els) queI !ombinado !om os a!elerJmetrosI proiden!ia a elo!idade hori"ontal do
$/'*rone'K (Lohobby)
O brinquedo tem S>T, poss,vel pilot%/lo com um aparelo 89, ;ndroid, i8ad, i8one e qualquer
outro brinquedo nerd program%vel e com comunicao Iifi.
9om a comunicao Iifi poss,vel +ogar em rede com v%rios ;r.>rone. O ;R.>rone inclui uma
unidade de medida inerte, sensores ultra som e uma cBmera vertical, na qual vocP tambm consegue
gravar v,deos e tirar fotos. ;tinge uma velocidade de 2^ "m*, com uma autonomia de vSo de 25
minutos, lices de alta eficiPncia, bateria de l,tio pol,mero #6 clulas, 22,2 K, 2@@@ m; /
0J5@?:$, a frequPncia do v,deo atinge \@ E8S, permite a estabili-ao, mesmo com uma leve brisa
e travamento autom%tico das lices no caso de contato.
9onfigura'es: ;ntes da configurao e compilao mostraremos algumas defini'es para posterior
configurao. 1ilt: ;+usta a velocidade ori-ontal, porm no esquea da sensibilidade do
acelerSmetro que interfere nesta acelerao. KerticalSpeed: >efine velocidade Kertical e o sobe e
desce do aparelo.
fam Speed: >efine a velocidade de rotao, ou se+a sentido or%rio ou anti/or%rio.
O S>T oficial dever% ser obtido atravs do site: ttps:**pro+ects.ardrone.org*. Faixe a 7ltima verso
descompacto/o com o camando tar xvf-, acesse a pasta e compile #ma"e$. ;gora o S>T e as
bibliotecas +% esto compiladas e prontas para uso. 8ara conectar com o ;R.>rone, coloque a sua
interface de rede em modo ;d/&oc, informe o nome da rede, desabilite a criptografia e defina o D8,
conforme comando abaixo:
$ iwconfig wlan0 mode d!"oc essid #$ome!%ede& 'e( off
$ ifconfig wlan0 )*+.),-.).+ netmas' +...+...+...0 up
O ip e a mas"ara de rede depende da estrutura de rede qual o usu%rio est%.
8ara testar o programa exemplo, entre na pasta )xamples*Jinux e execute o bin%rio
ardronennavigation.
$ cd Examples/0inux/
$ ./ardrone1navigation
Se tudo estiver funcionando corretamente, teremos o formul%rio e*ou painel acima. 9lique em H0SF
9onfigurationH para mapear os controles do +oUstic", wiimote, teclado ou outro dispositivo. 8ara
visuali-ar o v,deo das cBmeras do ;R.>rone, entre na opo HSow >rone K,deoH, finali-ando para
define a configurao de voo, clique em HEligt control settingsH.
ImportOncia dos Sistemas Operacionais Em3arcados
Os primeiros sistemas controlados eram feitos com eletrSnica analgica atravs de potenciSmetros e
capacitores, porm esse controle era lento e as ve-es no atendia as especifica'es de um pro+eto
que era reali-ado manualmente. ; descoberta dos transistores possibilitou a criao dos
microcontroladores, que redu-iu o tamano dos computadores e se tornaram digitais, aumentando
assim o seu poder de processamento, alguns computadores ficavam dedicados a uma 7nica tarefa,
mas ainda eram sistemas complexos controlados por processadores.
>iferente de computadores de propsito geral, como o computador pessoal, os microcontroladores
para serem usados em pro+etos espec,ficos precisavam ser programados para poder controlar com
preciso as suas tarefas. O% que o sistema tina que ser dedicado a tarefas espec,ficas, atravs de
engenaria pode/se otimi-ar o pro+eto redu-indo tamano, recursos computacionais e custo do
produto.
Os sistemas embarcados, geralmente contam com uma quantidade redu-ida de recursos como
memria, poder de processamento e outros requisitos como processamento em tempo real, eles no
so pro+etados para utili-ar sistemas operacionais destinados aos computadores pessoais,
geralmente os sistemas embarcados utili-am sistemas operacionais de tempo real especiais que alm
de consumirem muito menos memria e processamento, so muito mais est%veis e confi%veis.
)ssas caracter,sticas dos sistemas embarcados fi-eram com que essa tecnologia alcanasse uma
grande importBncia no mercado, pois alm da sua disponibilidade, os sistemas se tornaram est%veis,
seguros e confi%veis, pois imagine se acontece uma famosa Htela a-ulH em um sistema mdico que
controla a vida de uma pessoa, ou em um sistema de controle de uma aeronave em pleno vSo, assim
esses sistemas so pro+etados para trabalar ininterruptamente, sendo poss,veis de se auto/
recuperarem aps acorrerem erros atravs de tcnicas de watcdog timer, que reinicia o sistema a
menos que o software notifique periodicamente que est% funcionando corretamente.
Outra importBncia fundamental que ganou destaque em pro+etos de sistemas embarcados foi a
reduo do consumo de energia, esse baixo consumo permitiu com que os dispositivos mveis
ganassem fora no mercado oferecendo aos consumidores uma enorme quantidade de recursos,
atualmente basicamente todos os dispositivos mveis utili-am sistemas embarcados sendo
percept,vel a no ocorrencia de erros graves, quanto a resistPncia e durabilidade os sistemas
embarcados so pro+etados para trabalar em ambientes com condi'es adversas #vibra'es, calor,
poeira, varia'es na tenso, interferencias eletromagticas, umidade e etc.$.
;ntes apenas utili-ados em sistemas complexos como sistemas industriais, aeronaves e navios, o+e
vemos softwares embarcados em geladeiras, televisores e fornos de microondas. )stes
equipamentos tornam/se cada ve- mais sofisticados, demandando mais e mais complexidade no seu
ardware e software embarcado. ;lguns n7meros +% demonstram de forma inequ,voca a importBncia
do software embarcado no setor industrial. Quando falamos em diferenciao competitiva, +%
observamos que parcela significativa da diferenciao entre os produtos baseia/se na maior oferta
de funcionalidade, suportada por tecnologia de software. ; revoluo digital tem mudado e vai
continuar mudando a dinBmica de muitas ind7strias. Ca ind7stria de eletroeletrSnicos vemos
claramente a digitali-ao substituindo o mundo analgico.
Os sistemas embarcados vieram para facilitar o dia a dia do ser umano e automati-ar as atividades
que antes eram feitas manualmente, funcionalidades como computador de bordo, an%lise de dados
atr%ves de dispositivos mveis e interfaces de comunicao podem ser facilmente implementadas
com sistemas embarcados, porm parte dessa revoluo est% visivelmente aplicada em segmentos
espec,ficos como em aparelos usados na medicina, nas engenarias, como sensores que verificam
a distancia entre sementes automati-ando assim o plantio na agricultura, entre outras infinidades de
processos, suas aplica'es no tem limites.
2atc'do$
O watcdog time ou computer operating properlU #9O8$ time, como tambm conecido, uma
forma utili-ada para monitorar o sistema embarcado, disparando um reset ao sistema caso o mesmo
no retorne mensagem informando que esta funcionando.
Sendo uma forma de controlar dispositivos que se por algum motivo pararem de funcionar
poderiam levar a panes ou situa'es de riscos como, por exemplo, algum dispositivo interno de um
avio que no pode deixar de responder em pleno voo( alm de outros exemplos. O mesmo
funciona normalmente a parte do sistema embarcado, sendo geralmente um microcontrolador com
tempori-ador, enviando notifica'es ao sistema em intervalos pr/configurados.
O watcdog timer no precisa estar necessariamente +unto ao sistema embarcado para que funcione,
sendo o+e utili-ado watcdog timer atravs dos protocolos 198*D8, sendo enviados aos dispositivos
pacotes de comunicao e em caso de no ouver resposta o mesmo reiniciado.
Outra forma de utili-ao do watcgog timer em na execuo de cdigos no confi%veis em
sandbox, sendo colocado um limite de tempo de execuo da 980 para o cdigo, suspendendo a
execuo caso o tempo limite se+a atingido. )sse modelo normalmente utili-ado para prevenir
ataques de >oS.
+efer/ncias
ttps:**pro+ects.ardrone.org*
ttp:**www.telnet.org*tm*faq.tm_5@
ttp:**penta.ufrgs.br*Roseclea*telnet.tml
ttp:**codigofonte.uol.com.br*artigo*diversos*aprenda/mais/sobre/telnet
ttp:**www.microsofttranslator.com*FK.aspxm
refW9SSTFkfromWenktoWptkaWttp:**support.microsoft.com*"b*562^\\*en/usmfrW2
ttp:**www.gta.ufr+.br*gnatalia*SS&*onqnenss2.tml
ttp:**www.tec/faq.com*Uperterminal.tml Zttp:**www.tec/faq.com*Uperterminal.tml
ttp:**www.columbia.edu*"ermit*c"^@.tml
ttp:**www.ardware.com.br*tutoriais*dominando/ss*
ttp:**www.ardware.com.br*dicas*ss/windows.tml
ttp:**www.cisco.com*en*0S*products*w*routers*ps552*index.tml
ttp:**www.r+unior.com.br*download*Roteadores.pdf
ttp:**www.+uliobattisti.com.br*tutoriais*luisepedroso*modosusuario@@2.asp
ttp:**www.+uliobattisti.com.br*tutoriais*luisepedroso*pcconsole@@2.asp
ttp:**www.+uliobattisti.com.br*tutoriais*luisepedroso*comandosow@@2.asp
ttp:**www.engnetconsultoria.com.br*portal*artigosndetalar.ppmidW?^
ttp:**www.cirp.usp.br*arqs*:ciclo*)mbarcado.pdf
ttp:**pt.wi"ipedia.org*wi"i*Iindowsn9)
ttp:**pt.wi"ipedia.org*wi"i*QC<
ttp:**www.microbase.com.br*produtos*produtosnvirtuos.tm
ttp:**www5.eletronica.org*artigos*eletronica/digital*linux/em/tempo/real

You might also like