You are on page 1of 8

24/07/2015

SOIntroduo

Introduo aos Sistemas Operacionais


Disciplina

Introduo

Processos & Threads

Gerncia de Memria

Entrada e Sada

SistemasOperacionaisI
PUCPREscola
Politcnica
LuizA.P.LimaJr.

Sistemas de Arquivos

Tpicos

1.Introduo e Viso Geral

Introduo
VisesdoSistemaOperacional

Umsistemacomputacionalcompostode:hardware(HW)+software(SW).

ComponentesdeumSistema
Operacional

1.1.Hardware (HW):

ClassesdeSistemasOperacionais
EvoluoehistricodosSOs

1ou+processadores
memriaprincipal(RAM)
discos
impressoras
teclado+mouse
monitordevdeo
interfacederede
outrosdispositivosdeentradaesada(E/S)...

Conceitosdehardware
ConceitosbsicosdeSOs
Processos
GernciadeMemria
EntradaeSada
Arquivos
ChamadasdeSistema

Ogerenciamentodestesdispositivosenvolvegrandecomplexidade.

1.2.Software (SW):
Divididobasicamenteemduascategorias:
programasdosistema:oprpriosistemaoperacional
programasdeaplicao:demaisprogramas
OSistemaOperacional:
controlarecursosefornecebaseparaaconstruodeaplicaes
permiteautilizaodocomputadordeformaeficienteesegura
OSO"esconde"acomplexidadedoHWsubjacentefornecendoaoprogramadorumconjuntodeinstruesmaisconveniente.

Software:comoosrecursossero
utilizados

ProgramasdeAplicao(ex:InternetExplore,Word,
Firefox,etc.)

Programasdosistema(shell,compiladores,editores)

SO:Controleecoordenaodos
recursos

Programadosistema

Hardware:recursosbsicos(CPU,memria,dispositivosdeE/S,etc.)
Shell:interpretadordecomandos(modotexto)
GUI(GraphicalUserInterfaceInterfaceGrficacomoUsurio)
O cdigo fonte de sistemas operacionais como Windows e Linux: > 5.000.000 de linhas. SOs possuem programao complexa e, portanto,
geralmenteevoluemaoinvsdeseremsimplesmentesubstitudos.

LinuxeSistemaOperacional
"Linux":serefereapenasaokerneldesenvolvidoporLinusTorvaldseoutros.Noentanto,otermotemsidousandocomumentecomosendookernelmais
vrios outros programas (ferramentas e bibliotecas) que formam um SO completo. Os chamados "distribuidores" Linux empacotam software para automatizar o
processodeinstalaoincluindosistemadearquivos,kerneleoutrosprogramas.
Assim,otermo"SistemaOperacional"(SO)podeter2sentidos:
1. Todoo"pacote"comosprogramasusadosparagerenciartodososrecursoscomputacionaisjuntamentecomasferramentas(porexemplo,interpretadores
decomandos,interfacesgrficas,utilitriosdearquivoseeditores).
2. Maisprecisamente,serefereaoprogramacentralquegerenciaealocarecursoscomputacionais(CPU,RAMedispositivos).

2.Vises do Sistema Operacional


http://www.ppgia.pucpr.br/~laplima/ensino/soeed/so_common/materia/01_intro.html

[topo]

1/8

24/07/2015

SOIntroduo

OSOpodeservistoapartirdedoisngulosouperspectivasdiferentes,conformeafiguraabaixo:

2.1.O Sistema Operacional como Mquina Estendida


Viso"topdown".

Controladordeentradaesadadeumaunidadededisquete(PD765):
16comandos:leitura,escritamovimentaodobraododisco,formatao,etc...
Bsicos:READeWRITEcom13parmetroscada:
endereodoblocoaserlido(trilha/setor);
nmerodesetoresportrilha;
mododegravaonomeiofsico;
espaamentoentresetores;
etc.
Valorderetorno:estruturacom23camposdeestadoedeerros.
Almdisso:deveacionarmotorantesdepoderler/escrever,masnopodedeixloligadoininterruptamentesobpenadedanificarodisco.
TudoissoencerraumagrandeCOMPLEXIDADE.
ComoSistemaOperacional,acomplexidade"escondida"doprogramador(edousurio)pormeiodasseguintesabstraes:
Disco=coleodearquivosidentificadospornomes.
Manipulaodearquivos:
Abrearquivoparaleitura/escrita;
L/escrevedadosnoarquivo;
Fechaoarquivo.
EstaavisodosistemaoperacionalcomoumaMquinaEstendida:equivalenteaohardware,pormmaissimples.Osistemaoperacionaltem
porobjetivodaraousurioailusodequeamanipulaodosrecursoscomputacionaismaissimplesdoquenarealidade.

2.2.O Sistema Operacional como Gerente de Recursos


Viso"bottomup".
Osistemaformadoporgrandenmerodedispositivos:
processador(es);
memria;
temporizadores;
discos;
impressoras;
etc.

Oqueacontecesevriosprocessosresolvemimprimirdadossimultaneamentenamesmaimpressora?Ousequiseremacessaraomesmo
tempoamesmaposiodememriaoudisco?
OutroexemploaquestodaproteodememriadedosdemaisdispositivosdeE/S.
Ocompartilhamentoderecursoscomputacionais:notempo(diferentesprogramasouusuriosaguardamcadaumasuavezdeusarorecurso
exemplos: CPU ou impressora) e no espao (diferentes programas usam simultaneamente diferentes "partes" dos recursos exemplos: memria e
disco).
OSistemaOperacionaltemoobjetivoderesolverestesproblemasatravsdagerncia do compartilhamento de recursos. O seu objetivo
gerenciarosusuriosdecadaumdosrecursosdamquinagarantindooacessoordenadodeusuriosarecursosatravsdamediaodeeventuais
conflitos(oquebastantecrticoemsistemasmultiusurio).

3.Componentes de um Sistema Operacional


http://www.ppgia.pucpr.br/~laplima/ensino/soeed/so_common/materia/01_intro.html

[topo]

2/8

24/07/2015

SOIntroduo
Kernel(ncleo)
GernciadeProcessos
GernciadeMemria
GernciadeEntradaeSada
GernciadeArquivos
Controledeusurios
GernciadeJanelaseGUI(interfacegrfica)
GernciadeRedes
GernciadeErros
Contabilidadedeusoderecursos
Gernciadesegurana

3.1.O Kernel
OkerneldoSOconcentraoacessoaohardware:
driversdedispositivos;
gernciadeacesso.
Funesbsicas:
operaesdeacessoaohardware
noobsicadeprocessos(escalonador)
comunicaoentreprocessos
Okernelexecutadoemmodoprivilegiadooumodokernel(tendoacessoatodooHWesendocapazdeexecutarqualquerinstruoquea
CPUcapazdeexecutar).OrestantedoSWdosistemacomputacional(restodoSO+aplicaes)executadoemmodousurio(ondesomenteparte
doconjuntodeinstruesdamquinaestdisponvel,porquestesdeseguranadeoperaodosistema).

4.Classes de Sistemas Operacionais

[topo]

Tiposbsicosdesistemasoperacionais:

4.1.Monotarefa
1processo,1usurio
Exemplo:MSDOS
Sistemasemlote(batch)
Sistemasantigos

4.2.Multitarefa
Vriosprocessos,1usurio(Windows,Linux,MacOS).
TempodeesperaparaE/S:80a90%dotempototaldeprocessamento=>divisodamemria:
enquantoumatarefaesperavaqueaE/Ssecompletasse,outrapoderiausaraCPU.
Estatcnicaconhecidacomomultiprogragramao
Umamultiprogramaodestetipo(cedendoavezquandofazE/S)noadaptadaparaprocedimentosinterativos,eoprogramador,por
exemplo,tinhaqueesperaratquehouvesseacompilaodoseuprogramaparaidentificarumerroe,ento,podercorrigilo.Istopoderia
levarmaisde1dia.
AssimsurgiuocompartilhamentodetempodeCPU(outimesharing),comovariantedamultiprogramaoparasistemasinterativos.
Exemplos:UNIX(Linux),Windows,MacOSX,...(amaioriadossistemasoperacionaisatuais).

4.3.Multiusurio
Vriosprocessos,vriosusurios
Exemplos:Mach,Amoeba,Chorus.

4.4.Sistemas operacionais em rede


Usuriossabemdaexistnciadeoutroscomputadoresconectadosrede.
Podemconectarseamquinasremotasecopiararquivos.
Cadamquinaexecutaoseuprpriosistemaoperacional.

4.5.Sistemas operacionais distribudos


Ilusodeumprocessadornico.
Usurionosabeondeoseuprocessoestsendoexecutado,ouondeosseusarquivosestolocalizados.
AtrasosdecomunicaonaredeeatualizaoderplicasdedadosprecisamserconsideradospeloSOdistribudos(oqueminimizadoem
sistemasemumanicamquina).

5.Evoluo dos Sistemas Operacionais


http://www.ppgia.pucpr.br/~laplima/ensino/soeed/so_common/materia/01_intro.html

[topo]

3/8

24/07/2015

SOIntroduo

5.1.Breve histrico do UNIX, Linux e software livre [2]


fim
dos
anos
60

MIT,BellLabseGEiniciamodesenvolvimentodosistemaoperacionalMULTICS(MultiplexedInformationandComputingService).

1969

KenThompsoneDennisRitchiedesenvolvemumaversosimplificadadoMULTICSemumPDP7abandonadonoBellLabs.Essesistemaser
batizadoporBrianKernighancomoUNICSedepoisUNIX.

PortagemdoUNIXparaoPDP11/20,PPDP11/40ePDP11/70;parasimplificaraportagem,KenThompsontentareescreveroUNIXemuma
1972
linguagemdealtonvel(B,simplificaodeBCPL);aequipemelhoraalinguagemBecriaalinguagemCparareescreveroUNIX,antesescrito
73
emassembly.
anos
70

UNIXusadonasuniversidades;oBellLabsliberalicenciafontesparaensinoepesquisa.

1976

Primeiraversocomercial(Verso6).

1978

IniciaodesenvolvimentodoUNIXBSD(BerkeleySoftwareDistribution),comBillJoyeOzalpBabaoglu.

anos
80

UNIXumprodutocomercialgrandeecomplexo.

1983

ApstertentadosemsucessoobterocdigofontedofirmwaredeumaimpressoraXeroxparacorrigirumdefeitodeoperao,Richard
Stallman(MIT)criaoProjetoGNU.Esseprojetovisaconstruirferramentasparaproduzirsoftwarelivre.

1984

OambientegrficoXWindowsdesenvolvidonoProjetoAthenadoMIT.

1987

AndrewTanenbaum,umprofessordaHolanda,escreveumaversodidticasimplificadadoUNIX,denominadaMINIX.

1987

SolanadososprimeirosPCsbaseadosnaCPUIntel386,quetrazmecanismosavanadosparaproteodeacessomemria.

1988

OambienteXWindows11r2divulgadoaopblico.
CriaodoLinux(ncleo0.01)porLinusTorvalds,estudantedeinformticafinlandscombasenoMINIX.

1991

1992

OncleoLinuxjsuportaasferramentasdoprojetoGNUeoambientegrficoXWindows,constituindoumambientecompletodesoftware
livre.

1992

PrimeirasdistribuiesLinux:MCCInterimLinux,TAMUeSLS.

1994

LanadookernelLinux1.0

1996

LanadookernelLinux2.0

2004

LanadookernelLinux2.6

2011

LanadookernelLinux3.0emcomemoraoaos20anosdoLinux.
VejaalinhadotempodoUNIX.

5.2.Breve Histrico do Windows


1974

LanadooIntel8080(1aCPUde8bits).AEmpresaDigitalResearchdominaomercadocomoSOCP/M(ControlProgramfor
Microcomputers).

1980

IBMlanaoPC.PessoaldaDigitalResearchserecusaacriarumSO.BillGatesadquireoDOS(DiskOperatingSystem)daSeatleComputer
ProductsporUS$50.000,00,fundaaMicrosoft,eorenomeiaparaMSDOS.

AtesedeDougEngelbart(anos60)propunhaummodelodejanelas,cones,menus,etc.comumaInterfaceGrficacomoUsurio(GUI)no
dcada
implementadadevidoquantidadedememrianecessria(muitocaranapoca).Nestadcada,aXeroxdesenvolveuumainterfaceparaas
de
suasmquinascopiadorasbaseadanatesedeEngelbart.SteveJobs,criadordaApple,percebeopotencialdainterfacedaXeroxeaincorpora
1980
emseuproduto:oMacintosh.
AMicrosoftcriaoWindows(verso3.1)numatentativadeincorporarGUIaoMSDOS.Durante10anos(i.e.at1995),o
WindowsfoimeramenteumambientegrficorodandosobreoMSDOS.
1985

1995

Windows95:oprimeiroSOdaMicrosoftindependentedoMSDOS.
Windows98:praticamenteumaatualizaodoWindows95paracorrigirbugs.

1998

EmparaleloaMicrosoftdisparaoprojetodoWindowsNT(New
Technology)cujoobjetivoerareescreverinteiramenteoWindows95
comoobjetivodeaposentarversesantigas.Masapenasaverso4.0
doNTfoiquerealmentedeslanchou.
Lanadaaverso5.0doWindowsNT,maisconhecidacomoWindows2000.

http://www.ppgia.pucpr.br/~laplima/ensino/soeed/so_common/materia/01_intro.html

4/8

24/07/2015

SOIntroduo

1999

TambmlanadooWindowsME(umaversoatualizadadoWindows
98).
LanadoWindowsXP,baseadononcleodoNTcomaintenodejuntarNT/200e95/98/MEemum
nicoproduto.
2001

WindowsVista:alteraonainterface(Aero)edemecanismosdesegurana.

2007

2009

2012

Windows7:umreprojetodeinterfacecomousuriocomumanovabarradetarefas,umsistema
residencialderede(HomeGroup)emelhoriasdedesempenho.
Windows8:Foconamelhoradaexperinciadousurioemdispositivosmveis(tentativade
unificaodainterface).Outrasmelhorias:suportecomputaoemnuvem,segurana(suporte
embutidoaantivrus;suporteabootseguro:UEFI),...

VejaimagemdarvoredeevoluodoWindows:

LinhadotempodafamliaWindows[REF]

6.Conceitos Bsicos de Hardware

[topo]

6.1.Processadores
CPU(UnidadeCentraldeProcessamento):buscarinstruesnamemriaeexecutlas.
CadaCPUpossuiumconjuntoespecficodeinstruesquecapazdeexecutar.
TodasasCPUpossuemregistradoresinternosparaarmazenamentodevarveisimportanteseresultadostemporrios:
contadordeprograma(ProgramCounter=PC):contmoendereodememriadaprximainstruoaserbuscadaparaexecuo.
ponteirodepilha(StackPointer=SP):topodapilhadeprogramaatualnamemria(informaesnapilha:parmetrosdeentrada,
variveislocais,endereoderetornodePC,etc.).

http://www.ppgia.pucpr.br/~laplima/ensino/soeed/so_common/materia/01_intro.html

5/8

24/07/2015

SOIntroduo
ModosdefuncionamentodasCPUs:
Modokernel:executaqualquerinstruodoseuconjuntodeoperaesepodeusartodososatributosdohardware(SOrodaemmodo
kernel);
Modousurio:execuodeapenasumsubconjuntococonjuntodeinstrueseacessolimitadoaohardware(E/Seproteode
memriasogeralmenteinacessveisnomodousurio).
ParaacessarserviosdoSO:chamadasdesistema(abaixo).

6.2.Memria
MemriaRAM(RandomAccessMemory)=memriaprincipal(voltil)
Memriacache:cachehitecachemiss
MemriaROM(ReadOnlyMemory)(novoltil):rpidaebarata:programadadefbrica.
MemriaEPROM(ElectricallyErasableROM)ememriaflash:novolteis,passveisdereescrita.MaislentasqueRAM.

6.3.Entrada/sada e Interrupes
Controladores:hardwarequecontrolafisicamenteosdispositivos("placa").
Drivers:programasquesecomunicamcomoscontroladoresenviandocomandoserecebendorespostas.Precisamserexecutadosemmodo
kernel.Paratanto,soincorporadosaoSOnomomentodobootdosistemaouoSOpodesercapacitadoainstalarnovosdriversdinamicamente
semanecessidadedereboot.

7.Exemplos de sistemas operacionais em diversos equipamentos


Computadoresdegrandeporte:OS/390(sendogradativamentesubstitudosporUNIXouLinux).
Servidores:Solaris,FreeBSD,Linux,WindowsServer.
Multipricessadores:WindowseLinux.
Computadoresportteis:SymbianOS,PalmOS,iOS,Android.
Embarcados:QNXeVxWorks.
Sensores:TinyOS.
Temporeal:verportteiseembarcados.
Smartcards:tipicamente,proprietrios.UsamJVMs(JavaVirtualMachines).

8.Conceitos Bsicos de SO

[topo]

8.1.Processos
OconceitodeprocessoschaveemSistemasOperacionais.
Processo=instnciadeumprogramaemexecuo.
Oespaodeendereamentodoprocessoformadode:
texto:instruesdoprograma;
dados:variveiseconstantesestticasusadaspeloprograma;
heap:reaondememriadinmicareservada.
pilha:readememriaquecresceeencolhemedidaemquefunessochamadasouquandoseretornadelas.Armazenaigualmenteas
variveislocais.
PrincipaisregistradoresdaCPUenvolvidos:
contadordeprograma(PCProgramCounter)
ponteirodepilha
Compartilhamento do tempo de CPU produz a iluso de processos rodando simultaneamente. Como o SO interrrompe os processos, h a
necessidadedereinicilosmaistardeapartirdopontoondeforaminterrompidos.
Escalonamento: recuperar informaes sobre o estado do processo quando foi interrompido. Esta informao armazenada em estrutura
chamadatabeladeprocessos.
Umprocessopodecriaroutrosprocessos(filhos).Cadaprocessopossuiumidentificadorniconosistema(PID).
Anecessidadedecomunicaoentreprocessos.

8.2.Gerncia de Memria
Amemriaprincipaldocomputador(RAM)utilizadaparaarmazenarosespaosdeendereamentodosprocessos.
SOsimples:1programaporveznamemria.
SOsofisticados:vriosprogramassimultaneamentenamemria(necessidadedeproteo).
Omecanismodememriavirtualutilizadopara"estender"amemriaprincipal(fsica)atravsdousododisco.

8.3.Entrada e Sada (E/S)


http://www.ppgia.pucpr.br/~laplima/ensino/soeed/so_common/materia/01_intro.html

6/8

24/07/2015

SOIntroduo

DispositivosdeE/S:
teclado;
mouse;
monitordevdeo;
impressora;
etc.
impemanecessidadedegerenciamentoporpartedoSO.

8.4.Sistemas de Arquivos
OSOdevesercapazdelocalizardadosemarquivosarmazenadosemdiscosmagnticosououtrosmeios.
Organizaodosistemadearquivos:diretrios=agrupamentosdearquivoseoutrosdiretrios.
Hierarquia:rvoregenrica.
NoUNIX:
Diretrioraiz:/(barra)
Diretriosuperior(pai):..(pontoponto)
Diretriocorrente:.(ponto)
Separadordediretrios:/(barra)
NoWindows:
Diretrioraiz:C:\
Diretriosuperior(pai):..(pontoponto)
Diretriocorrente:.(ponto)
Separadordediretrios:\(barrainvertida)
Umarquivoreferenciadode2formas:
refernciaabsoluta:caminhoapartirdaraiz.Exemplo(UNIX):

/home/prof/laplima

refernciarelativa:caminhoapartirdodiretriocorrente.Exemplo(UNIX):

../home/prof/laplima

Arquivosespeciais:paraquedispositivosdeE/Spossamsertratadospelosusurioscomosefossemarquivoscomuns.
UNIX:

stdout:sadapadro(tela)
stdin:entradapadro(teclado)
stderr:sadadeerrospadro(tela)
Arquivosespeciaistemporrioschamados"pipes"soutilizadosparacomunicaoentreprocessos.

8.5.Chamadas de Sistema (System Calls ou Syscalls)


Umachamadadesistemaumpontodeentradacontroladoparaokernelquepermitecomqueprocessossolicitemalgumaaodokernelem
nomedoprocesso.Usadaspelosprogramasdosusuriosparasolicitarserviosdosistemaoperacional.Cadasystemcallnormalmenteespecficade
umSO.
Aseo2dasmanpageslistaaschamadasdesistemadoLinux.
Execuodeumachamadadesistema:
"Trap":instruesdechamadaaosistematransferemocontroleparaoSO(alternandodomodousurioparaomodokernel);
Trapsdehardwareavisamsobresituaesexcepcionais(exemplo:divisoporzero)oSOassumeocontroleedecideoquefazernestes
casos.
chamadasdesistema:semelhantesachamadasdeprocedimentos,excetopelofatodequefazemcomqueosistemaentreemmodokernel.

http://www.ppgia.pucpr.br/~laplima/ensino/soeed/so_common/materia/01_intro.html

7/8

24/07/2015

SOIntroduo

Exemplodesystemcall(UNIX):

contador=read(fd,buffer,nbytes);

+seo2dasmanpages.

Leiaocaptulo1dolivrotexto(Tanenbaum,"SistemasOperacionaisModernos",2aedioemdiante)
Resolvaosexerccios1,2,7,9,16,21,23.

http://www.ppgia.pucpr.br/~laplima/ensino/soeed/so_common/materia/01_intro.html

8/8