SO - Introdução

8
24/07/2015 SO Introdução http://www.ppgia.pucpr.br/~laplima/ensino/soeed/so_common/materia/01_intro.html 1/8 [topo] Disciplina Introdução Processos & Threads Gerência de Memória Entrada e Saída Sistemas de Arquivos Tópicos Introdução Visões do Sistema Operacional Componentes de um Sistema Operacional Classes de Sistemas Operacionais Evolução e histórico dos SOs Conceitos de hardware Conceitos básicos de SOs Processos Gerência de Memória Entrada e Saída Arquivos Chamadas de Sistema Introdução aos Sistemas Operacionais 1. Introdução e Visão Geral Um sistema computacional é composto de: hardware (HW)+ software (SW). 1.1. Hardware (HW): 1 ou + processadores memória principal (RAM) discos impressoras teclado + mouse monitor de vídeo interface de rede outros dispositivos de entrada e saída (E/S)... O gerenciamento destes dispositivos envolve grande complexidade. 1.2. Software (SW): Dividido basicamente em duas categorias: programas do sistema: o próprio sistema operacional programas de aplicação: demais programas O Sistema Operacional: controla recursos e fornece base para a construção de aplicações permite a utilização do computador de forma eficiente e segura O SO "esconde" a complexidade do HW subjacente fornecendo ao programador um conjunto de instruções mais conveniente. Software: como os recursos serão utilizados Programas de Aplicação (ex: Internet Explore, Word, Firefox, etc.) Programas do sistema (shell, compiladores, editores) SO: Controle e coordenação dos recursos Programa do sistema Hardware: recursos básicos (CPU, memória, dispositivos de E/S, etc.) Shell: interpretador de comandos (modo texto) GUI (Graphical User Interface Interface Gráfica com o Usuário) O código fonte de sistemas operacionais como Windows e Linux: > 5.000.000 de linhas. SOs possuem programação complexa e, portanto, geralmente evoluem ao invés de serem simplesmente substituídos. Linux e Sistema Operacional "Linux": se refere apenas ao kernel desenvolvido por Linus Torvalds e outros. No entanto, o termo tem sido usando comumente como sendo o kernel mais vários outros programas (ferramentas e bibliotecas) que formam um SO completo. Os chamados "distribuidores" Linux empacotam software para automatizar o processo de instalação incluindo sistema de arquivos, kernel e outros programas. Assim, o termo "Sistema Operacional" (SO) pode ter 2 sentidos: 1. Todo o "pacote" com os programas usados para gerenciar todos os recursos computacionais juntamente com as ferramentas (por exemplo, interpretadores de comandos, interfaces gráficas, utilitários de arquivos e editores). 2. Mais precisamente, se refere ao programa central que gerencia e aloca recursos computacionais (CPU, RAM e dispositivos). 2. Visões do Sistema Operacional Sistemas Operacionais I PUCPR ‑ Escola Politécnica © Luiz A. P. Lima Jr.

description

Sistemas Operacionais - Introdução

Transcript of SO - Introdução

  • 24/07/2015 SOIntroduo

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

    [topo]

    Disciplina Introduo Processos & Threads Gerncia de Memria Entrada e Sada Sistemas de Arquivos

    Tpicos

    Introduo

    VisesdoSistemaOperacional

    ComponentesdeumSistemaOperacional

    ClassesdeSistemasOperacionais

    EvoluoehistricodosSOs

    Conceitosdehardware

    ConceitosbsicosdeSOs

    Processos

    GernciadeMemria

    EntradaeSada

    Arquivos

    ChamadasdeSistema

    Introduo aos Sistemas Operacionais

    1.Introduo e Viso GeralUmsistemacomputacionalcompostode:hardware(HW)+software(SW).

    1.1.Hardware (HW):

    1ou+processadoresmemriaprincipal(RAM)discosimpressorasteclado+mousemonitordevdeointerfacederedeoutrosdispositivosdeentradaesada(E/S)...

    Ogerenciamentodestesdispositivosenvolvegrandecomplexidade.

    1.2.Software (SW):

    Divididobasicamenteemduascategorias:

    programasdosistema:oprpriosistemaoperacionalprogramasdeaplicao:demaisprogramas

    OSistemaOperacional:

    controlarecursosefornecebaseparaaconstruodeaplicaespermiteautilizaodocomputadordeformaeficienteesegura

    OSO"esconde"acomplexidadedoHWsubjacentefornecendoaoprogramadorumconjuntodeinstruesmaisconveniente.

    Software:comoosrecursosseroutilizados

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

    Programasdosistema(shell,compiladores,editores)

    SO:Controleecoordenaodosrecursos

    Programadosistema

    Hardware:recursosbsicos(CPU,memria,dispositivosdeE/S,etc.)

    Shell:interpretadordecomandos(modotexto)GUI(GraphicalUserInterfaceInterfaceGrficacomoUsurio)

    O cdigo fonte de sistemas operacionais comoWindows e Linux: > 5.000.000 de linhas. SOs possuem programao complexa e, portanto,geralmenteevoluemaoinvsdeseremsimplesmentesubstitudos.

    LinuxeSistemaOperacional

    "Linux":serefereapenasaokerneldesenvolvidoporLinusTorvaldseoutros.Noentanto,otermotemsidousandocomumentecomosendookernelmaisvrios outrosprogramas (ferramentas e bibliotecas) que formamumSO completo.Os chamados "distribuidores" Linux empacotam softwarepara automatizar oprocessodeinstalaoincluindosistemadearquivos,kerneleoutrosprogramas.

    Assim,otermo"SistemaOperacional"(SO)podeter2sentidos:

    1. Todoo"pacote"comosprogramasusadosparagerenciartodososrecursoscomputacionaisjuntamentecomasferramentas(porexemplo,interpretadoresdecomandos,interfacesgrficas,utilitriosdearquivoseeditores).

    2. Maisprecisamente,serefereaoprogramacentralquegerenciaealocarecursoscomputacionais(CPU,RAMedispositivos).

    2.Vises do Sistema Operacional

    SistemasOperacionaisIPUCPREscola

    PolitcnicaLuizA.P.LimaJr.

  • 24/07/2015 SOIntroduo

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

    [topo]

    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.Osistemaoperacionaltemporobjetivodaraousurioailusodequeamanipulaodosrecursoscomputacionaismaissimplesdoquenarealidade.

    2.2.O Sistema Operacional como Gerente de Recursos

    Viso"bottomup".

    Osistemaformadoporgrandenmerodedispositivos:

    processador(es);memria;temporizadores;discos;impressoras;etc.

    Oqueacontecesevriosprocessosresolvemimprimirdadossimultaneamentenamesmaimpressora?Ousequiseremacessaraomesmotempoamesmaposiodememriaoudisco?

    OutroexemploaquestodaproteodememriadedosdemaisdispositivosdeE/S.

    Ocompartilhamentoderecursoscomputacionais:notempo(diferentesprogramasouusuriosaguardamcadaumasuavezdeusarorecursoexemplos:CPUou impressora)enoespao (diferentesprogramasusamsimultaneamentediferentes "partes"dos recursosexemplos:memriaedisco).

    OSistemaOperacionaltemoobjetivoderesolverestesproblemasatravsdagernciadocompartilhamentoderecursos.Oseuobjetivogerenciarosusuriosdecadaumdosrecursosdamquinagarantindooacessoordenadodeusuriosarecursosatravsdamediaodeeventuaisconflitos(oquebastantecrticoemsistemasmultiusurio).

    3.Componentes de um Sistema Operacional

  • 24/07/2015 SOIntroduo

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

    [topo]

    [topo]

    Kernel(ncleo)GernciadeProcessosGernciadeMemriaGernciadeEntradaeSadaGernciadeArquivosControledeusuriosGernciadeJanelaseGUI(interfacegrfica)GernciadeRedesGernciadeErrosContabilidadedeusoderecursosGernciadesegurana

    3.1.O Kernel

    OkerneldoSOconcentraoacessoaohardware:

    driversdedispositivos;gernciadeacesso.

    Funesbsicas:

    operaesdeacessoaohardwarenoobsicadeprocessos(escalonador)comunicaoentreprocessos

    Okernelexecutadoemmodoprivilegiadooumodokernel(tendoacessoatodooHWesendocapazdeexecutarqualquerinstruoqueaCPUcapazdeexecutar).OrestantedoSWdosistemacomputacional(restodoSO+aplicaes)executadoemmodousurio(ondesomentepartedoconjuntodeinstruesdamquinaestdisponvel,porquestesdeseguranadeoperaodosistema).

    4.Classes de Sistemas OperacionaisTiposbsicosdesistemasoperacionais:

    4.1.Monotarefa

    1processo,1usurioExemplo:MSDOSSistemasemlote(batch)Sistemasantigos

    4.2.Multitarefa

    Vriosprocessos,1usurio(Windows,Linux,MacOS).TempodeesperaparaE/S:80a90%dotempototaldeprocessamento=>divisodamemria:

    enquantoumatarefaesperavaqueaE/Ssecompletasse,outrapoderiausaraCPU.Estatcnicaconhecidacomomultiprogragramao

    Umamultiprogramaodestetipo(cedendoavezquandofazE/S)noadaptadaparaprocedimentosinterativos,eoprogramador,porexemplo,tinhaqueesperaratquehouvesseacompilaodoseuprogramaparaidentificarumerroe,ento,podercorrigilo.Istopoderialevarmaisde1dia.AssimsurgiuocompartilhamentodetempodeCPU(outimesharing),comovariantedamultiprogramaoparasistemasinterativos.Exemplos:UNIX(Linux),Windows,MacOSX,...(amaioriadossistemasoperacionaisatuais).

    4.3.Multiusurio

    Vriosprocessos,vriosusuriosExemplos:Mach,Amoeba,Chorus.

    4.4.Sistemas operacionais em rede

    Usuriossabemdaexistnciadeoutroscomputadoresconectadosrede.Podemconectarseamquinasremotasecopiararquivos.Cadamquinaexecutaoseuprpriosistemaoperacional.

    4.5.Sistemas operacionais distribudos

    Ilusodeumprocessadornico.Usurionosabeondeoseuprocessoestsendoexecutado,ouondeosseusarquivosestolocalizados.AtrasosdecomunicaonaredeeatualizaoderplicasdedadosprecisamserconsideradospeloSOdistribudos(oqueminimizadoemsistemasemumanicamquina).

    5.Evoluo dos Sistemas Operacionais

  • 24/07/2015 SOIntroduo

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

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

    fimdosanos60

    MIT,BellLabseGEiniciamodesenvolvimentodosistemaoperacionalMULTICS(MultiplexedInformationandComputingService).

    1969KenThompsoneDennisRitchiedesenvolvemumaversosimplificadadoMULTICSemumPDP7abandonadonoBellLabs.EssesistemaserbatizadoporBrianKernighancomoUNICSedepoisUNIX.

    197273

    PortagemdoUNIXparaoPDP11/20,PPDP11/40ePDP11/70;parasimplificaraportagem,KenThompsontentareescreveroUNIXemumalinguagemdealtonvel(B,simplificaodeBCPL);aequipemelhoraalinguagemBecriaalinguagemCparareescreveroUNIX,antesescritoemassembly.

    anos70

    UNIXusadonasuniversidades;oBellLabsliberalicenciafontesparaensinoepesquisa.

    1976 Primeiraversocomercial(Verso6).

    1978 IniciaodesenvolvimentodoUNIXBSD(BerkeleySoftwareDistribution),comBillJoyeOzalpBabaoglu.

    anos80

    UNIXumprodutocomercialgrandeecomplexo.

    1983ApstertentadosemsucessoobterocdigofontedofirmwaredeumaimpressoraXeroxparacorrigirumdefeitodeoperao,RichardStallman(MIT)criaoProjetoGNU.Esseprojetovisaconstruirferramentasparaproduzirsoftwarelivre.

    1984 OambientegrficoXWindowsdesenvolvidonoProjetoAthenadoMIT.

    1987 AndrewTanenbaum,umprofessordaHolanda,escreveumaversodidticasimplificadadoUNIX,denominadaMINIX.

    1987 SolanadososprimeirosPCsbaseadosnaCPUIntel386,quetrazmecanismosavanadosparaproteodeacessomemria.

    1988 OambienteXWindows11r2divulgadoaopblico.

    1991

    CriaodoLinux(ncleo0.01)porLinusTorvalds,estudantedeinformticafinlandscombasenoMINIX.

    1992OncleoLinuxjsuportaasferramentasdoprojetoGNUeoambientegrficoXWindows,constituindoumambientecompletodesoftwarelivre.

    1992 PrimeirasdistribuiesLinux:MCCInterimLinux,TAMUeSLS.

    1994 LanadookernelLinux1.0

    1996 LanadookernelLinux2.0

    2004 LanadookernelLinux2.6

    2011 LanadookernelLinux3.0emcomemoraoaos20anosdoLinux.

    VejaalinhadotempodoUNIX.

    5.2.Breve Histrico do Windows

    1974LanadooIntel8080(1aCPUde8bits).AEmpresaDigitalResearchdominaomercadocomoSOCP/M(ControlProgramforMicrocomputers).

    1980IBMlanaoPC.PessoaldaDigitalResearchserecusaacriarumSO.BillGatesadquireoDOS(DiskOperatingSystem)daSeatleComputerProductsporUS$50.000,00,fundaaMicrosoft,eorenomeiaparaMSDOS.

    dcadade1980

    AtesedeDougEngelbart(anos60)propunhaummodelodejanelas,cones,menus,etc.comumaInterfaceGrficacomoUsurio(GUI)noimplementadadevidoquantidadedememrianecessria(muitocaranapoca).Nestadcada,aXeroxdesenvolveuumainterfaceparaassuasmquinascopiadorasbaseadanatesedeEngelbart.SteveJobs,criadordaApple,percebeopotencialdainterfacedaXeroxeaincorporaemseuproduto:oMacintosh.

    1985

    AMicrosoftcriaoWindows(verso3.1)numatentativadeincorporarGUIaoMSDOS.Durante10anos(i.e.at1995),oWindowsfoimeramenteumambientegrficorodandosobreoMSDOS.

    1995Windows95:oprimeiroSOdaMicrosoftindependentedoMSDOS.

    1998

    Windows98:praticamenteumaatualizaodoWindows95paracorrigirbugs.

    EmparaleloaMicrosoftdisparaoprojetodoWindowsNT(NewTechnology)cujoobjetivoerareescreverinteiramenteoWindows95comoobjetivodeaposentarversesantigas.Masapenasaverso4.0doNTfoiquerealmentedeslanchou.

    Lanadaaverso5.0doWindowsNT,maisconhecidacomoWindows2000.

  • 24/07/2015 SOIntroduo

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

    [topo]

    1999

    TambmlanadooWindowsME(umaversoatualizadadoWindows98).

    2001

    LanadoWindowsXP,baseadononcleodoNTcomaintenodejuntarNT/200e95/98/MEemumnicoproduto.

    2007

    WindowsVista:alteraonainterface(Aero)edemecanismosdesegurana.

    2009Windows7:umreprojetodeinterfacecomousuriocomumanovabarradetarefas,umsistemaresidencialderede(HomeGroup)emelhoriasdedesempenho.

    2012

    Windows8:Foconamelhoradaexperinciadousurioemdispositivosmveis(tentativadeunificaodainterface).Outrasmelhorias:suportecomputaoemnuvem,segurana(suporteembutidoaantivrus;suporteabootseguro:UEFI),...

    VejaimagemdarvoredeevoluodoWindows:

    LinhadotempodafamliaWindows[REF]

    6.Conceitos Bsicos de Hardware

    6.1.Processadores

    CPU(UnidadeCentraldeProcessamento):buscarinstruesnamemriaeexecutlas.CadaCPUpossuiumconjuntoespecficodeinstruesquecapazdeexecutar.TodasasCPUpossuemregistradoresinternosparaarmazenamentodevarveisimportanteseresultadostemporrios:

    contadordeprograma(ProgramCounter=PC):contmoendereodememriadaprximainstruoaserbuscadaparaexecuo.ponteirodepilha(StackPointer=SP):topodapilhadeprogramaatualnamemria(informaesnapilha:parmetrosdeentrada,variveislocais,endereoderetornodePC,etc.).

  • 24/07/2015 SOIntroduo

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

    [topo]

    ModosdefuncionamentodasCPUs:Modokernel:executaqualquerinstruodoseuconjuntodeoperaesepodeusartodososatributosdohardware(SOrodaemmodokernel);Modousurio:execuodeapenasumsubconjuntococonjuntodeinstrueseacessolimitadoaohardware(E/Seproteodememriasogeralmenteinacessveisnomodousurio).

    ParaacessarserviosdoSO:chamadasdesistema(abaixo).

    6.2.Memria

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

    6.3.Entrada/sada e Interrupes

    Controladores:hardwarequecontrolafisicamenteosdispositivos("placa").Drivers:programasquesecomunicamcomoscontroladoresenviandocomandoserecebendorespostas.Precisamserexecutadosemmodokernel.Paratanto,soincorporadosaoSOnomomentodobootdosistemaouoSOpodesercapacitadoainstalarnovosdriversdinamicamentesemanecessidadedereboot.

    7.Exemplos de sistemas operacionais em diversos equipamentosComputadoresdegrandeporte: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

    8.1.Processos

    OconceitodeprocessoschaveemSistemasOperacionais.

    Processo=instnciadeumprogramaemexecuo.

    Oespaodeendereamentodoprocessoformadode:

    texto:instruesdoprograma;dados:variveiseconstantesestticasusadaspeloprograma;heap:reaondememriadinmicareservada.pilha:readememriaquecresceeencolhemedidaemquefunessochamadasouquandoseretornadelas.Armazenaigualmenteasvariveislocais.

    PrincipaisregistradoresdaCPUenvolvidos:

    contadordeprograma(PCProgramCounter)ponteirodepilha

    Compartilhamento do tempo de CPU produz a iluso de processos rodando simultaneamente. Como o SO interrrompe os processos, h anecessidadedereinicilosmaistardeapartirdopontoondeforaminterrompidos.

    Escalonamento: recuperar informaes sobre o estado do processo quando foi interrompido. Esta informao armazenada em estruturachamadatabeladeprocessos.

    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)

  • 24/07/2015 SOIntroduo

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

    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)

    Umachamadadesistemaumpontodeentradacontroladoparaokernelquepermitecomqueprocessossolicitemalgumaaodokernelemnomedoprocesso.Usadaspelosprogramasdosusuriosparasolicitarserviosdosistemaoperacional.CadasystemcallnormalmenteespecficadeumSO.

    Aseo2dasmanpageslistaaschamadasdesistemadoLinux.

    Execuodeumachamadadesistema:

    "Trap":instruesdechamadaaosistematransferemocontroleparaoSO(alternandodomodousurioparaomodokernel);Trapsdehardwareavisamsobresituaesexcepcionais(exemplo:divisoporzero)oSOassumeocontroleedecideoquefazernestescasos.chamadasdesistema:semelhantesachamadasdeprocedimentos,excetopelofatodequefazemcomqueosistemaentreemmodokernel.

  • 24/07/2015 SOIntroduo

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

    Exemplodesystemcall(UNIX):

    contador=read(fd,buffer,nbytes);

    +seo2dasmanpages.

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