liceninf 2ºe 1p sistoper fasciculo

74
EVERSON SCHERRER BORGES LICENCIATURA EM INFORMÁTICA Sistemas Operacionais CACHOEIRO DE ITAPEMIRIM IFES/CEAD 2011

Upload: poliana-denys-nara

Post on 03-Oct-2015

38 views

Category:

Documents


3 download

DESCRIPTION

livro bom

TRANSCRIPT

  • EVERSON SCHERRER BORGES

    LiCENCiatuRa Em iNfORmtiCa Sistemas Operacionais

    CaCHOEiRO dE itapEmiRimifES/CEad

    2011

  • instituto federal do Esprito Santo Governo federalministro de EducaoFernando Haddad

    instituto federal do Esprito Santo (ifes)ReitorDnio Rebello Arantes

    pr-Reitora de EnsinoCristiane Tenan Schlittler dos Santos

    diretora do CEad Centro de Educao a distnciaYvina Pavan Baldo

    Coordenadores da uaB universidade aberta do Brasil Yvina Pavan BaldoMaria das Graas Zamborlini

    Curso de tecnologia em anlise e desenvolvimento de SistemasCoordenao de Curso

    Jonathan Toczek Souza

    designer instrucionalEdmundo Rodrigues Junior

    professor Especialista/autorEverson Scherrer Borges

    Catalogao da fonte: Rogria Gomes Belchior - CRB 12/417S593 Borges, Everson Scherrer

    Sistemas operacionais / Everson Scherrer Borges. 2011. Cachoeiro de Itapemirim: Ifes, 2009. 100p. : il ISBN

    1. Informtica - Sistemas operacionais. 2. Sistemas operacionais - Processos. I. Ttulo. II. Ttulo

    diREitOS RESERVadOSinstituto federal do Esprito Santo (ifes)Avenida Rio Branco, n 50 Santa Lcia - CEP. 29056-255 Vitria ES - Telefone: 3227-5564

    Crditos de autoria da editoraoCapa: Juliana Cristina da SilvaProjeto grfico: Juliana Cristina e Nelson Torres

    Iconografia: Nelson TorresEditorao eletrnica: CEAD

    Reviso de texto: Esther Ortlibe Faria de Almeida

    COPYRIGHT proibida a reproduo, mesmo que parcial, por qualquer meio, sem autorizao escrita dos autores e do detentor dos direitos autorais.

  • Ol, Aluno(a)!

    um prazer t-lo(a) conosco.

    O Ifes oferece a voc, em parceria com as Prefeituras e com o Governo Federal, o Curso de Licenciatura em Informtica, na modalidade a distncia. Apesar de este curso ser ofertado a distncia, esperamos que haja proximidade entre ns, pois, hoje, graas aos recursos da tecnologia da informao (e-mails, chat, videoconfernca, etc.), podemos manter uma comunicao efetiva.

    importante que voc conhea toda a equipe envolvida neste curso: coordenadores, professores especialistas, tutores a distncia e tutores presenciais. Assim, quando precisar de algum tipo de ajuda, saber a quem recorrer.

    Na EaD - Educao a Distncia - voc o grande responsvel pelo sucesso da aprendizagem. Por isso necessrio que se organize para os estudos e para a realizao de todas as atividades, nos prazos estabelecidos, conforme orientao dos Professores Especialistas e Tutores.

    Fique atento s orientaes de estudo que se encontram no Manual do Aluno!

    A EaD, pela sua caracterstica de amplitude e pelo uso de tecnologias modernas, representa uma nova forma de aprender, respeitando, sempre, o seu tempo.

    Desejamos a voc sucesso e dedicao!

  • Fala do Professor

    Conceitos importantes. Fique atento!

    Atividades que devem ser elaboradas por voc, aps a leitura dos textos.

    Indicao de leituras complemtares, referentes ao contedo estudado.

    Destaque de algo importante, referente ao contedo apresentado. Ateno!

    Reflexo/questionamento sobre algo importante referente ao contedo apresentado.

    Espao reservado para as anotaes que voc julgar necessrias.

    iCONOGRafia

    Veja, abaixo, alguns smbolos utilizados neste material para gui-lo em seus estudos

  • introduo Sistemas Operacionais 9

    1.1 iNtROduO 91.1.1 facilidade de acesso aos recursos do sistema 101.1.2 Compartilhamento de recursos de forma organizada e

    protegida 101.2 mquiNaS dE NVEiS 121.3 atiVaO E dESatiVaO dO SiStEma 13

    tipos de Sistemas Operacionais 17

    2.1 iNtROduO 172.2 SiStEmaS mONOpROGRamVEiS / mONOtaREfa 182.3 SiStEmaS muLtipROGRamVEiS / muLtitaREfa 19

    2.3.1 Sistemas Batch 212.3.2 Sistemas de tempo Compartilhado 212.3.3 Sistemas de tempo Real 21

    2.4 SiStEmaS COm muLtipROCESSadORES 222.4.1 Sistemas fortemente acoplados 23 2.4.1.1 Sistemas assimtricos 24 2.4.1.2 Sistemas Simtricos 252.4.2 Sistemas fracamente acoplados 26 2.4.2.1 Sistemas Operacionais de Rede 27 2.4.2.2 Sistemas Operacionais distribudos 28

    processos 31

    3.1 iNtROduO 313.2 GERENCiamENtO dE pROGRamaS 333.3 EStadOS dO pROCESSO 35

    3.3.1 Estados de um processo ativo 35 3.3.1.1 Executando (running) 35 3.3.1.2 apto ou pronto (ready) 35 3.3.1.3 Bloqueado ou Espera (wait) 36

    3.4 EStadOS dE CRiaO E dEStRuiO dE um pROCESSO 36

    3.5 tRaNSiES dE EStadO dO pROCESSO 373.5.1 apto Executando 383.5.2 Execuo apto 38

    J^J^

  • 3.5.3 Execuo Bloqueado 383.5.4 Bloqueado apto 39

    3.6 tRaNSiES dE EStadO COm Swapping 393.7 pROCESSOS iNdEpENdENtES, SuBpROCESSOS E

    tHREadS 403.7.1 processos Foreground e Background e pipes 42 3.7.1.1 processo Foreground 42 3.7.1.2 processo Background 42 3.7.1.3 pipe entre processos 43

    3.8 pROCESSOS dO SiStEma OpERaCiONaL 433.8.1 processos Cpu-bound e i/O-bound 44

    3.9 SiNaiS 45

    Sistemas de arquivos 49

    4.1 iNtROduO 494.2 ORGaNizaO dE um SiStEma dE aRquiVOS 504.3 pROpRiEdadES dOS aRquiVOS 514.4 ORGaNizaO dOS aRquiVOS 534.5 NOmEaO dOS aRquiVOS E diREtRiOS 554.6 mEtadadOS dOS aRquiVOS 554.7 CLaSSifiCaO dOS SiStEmaS dE aRquiVOS 56

    Gerncia de memria 59

    5.1 iNtROduO 595.2 pROtEO da mEmRia 605.3 ORGaNizaO da mEmRia 615.4 LimpEza da mEmRia 625.5 COmpaRtiLHamENtO da mEmRia 625.6 mEmRia ViRtuaL 635.7 mEmRia paGiNada 645.8 mEmRia SEGmENtada 65

    Gerncia de dispositivos 67

    6.1 iNtROduO 676.2 dRiVER dE diSpOSitiVO 676.3 diSpOSitiVOS pLuG aNd pLay 716.4 DriveS NO WiNdOWS E LiNux 71

    J^J^

  • apRESENtaO

    Caro Aluno,

    meu nome EVERSON SCHERRER BORGES, responsvel pela disciplina Sistemas Operacionais.

    Atuo como professor do IFES h trs anos. Sou graduado em Sistemas de Informao (2004) pelo Centro Universitrio So Camilo - Esprito Santo. Atualmente, sou responsvel pelas disciplinas de Introduo a Redes, Im-plementao de Redes, Projetos de Redes e Sistemas Operacionais. Minhas reas de interesse so Redes de Computadores e Sistemas Operacionais.

    Nesta disciplina, voc conhecer o que um sistema operacional e suas funcionalidades, identificar os diferentes tipos de sistemas operacionais, compreender como ocorre a concorrncia em sistemas operacionais, en-tender a estrutura e organizao da estrutura do sistema operacional e conhecer os sistemas de arquivos.

    A disciplina de Introduo Informtica auxiliar no entendimento de al-guns conceitos que sero abordados nesta disciplina, apesar de no serem necessrios conhecimentos prvios acerca dos assuntos aqui abordados.

    O objetivo deste material auxili-lo no estudo da disciplina Sistemas Operacionais, por meio de dicas e sugestes que destacam os pontos mais importantes a serem estudados.

    Aqui, voc encontrar conceitos com os quais trabalharemos ao longo de todo o curso, o que no dispensa a utilizao dos outros livros que fazem parte da bibliografia sugerida.

    Em geral, para ser bem sucedido neste curso, importante que faa os exerccios e estude regularmente, evitando-se, dessa forma, o acmulo de contedo.

    Estudar s bom quando se estuda o que gosta. Portanto, passe a gostar de Sistemas Operacionais.

    Sbio aquele que conhece os limites da prpria ignorncia. (Scrates)

    Assim, espero que alcance o sucesso!

    Prof. Everson Scherrer Borges

  • Caro aluno,

    iniciaremos nossa primeira aula com a introduo aos sistemas operacionais (SO). Este primeiro captulo contm os conceitos bsicos para o entendimento de Sistemas Operacionais.

    Em geral, essa disciplina acumulativa, ou seja, a compreenso dos conceitos estudados em um captulo a base para o entendimento dos captulos posteriores.

    Um gnio uma pessoa de talento que faz toda a lio de casa.(Thomas A. Edison)

    Bom estudo!

    1.1 Introduo

    Os sistemas operacionais possuem duas funes bsicas que se apresentam de extrema importncia para o entendimento do sistema operacional; sendo assim, antes de estudarmos os conceitos bsicos, veremos suas funes.

    Por mais complexo que possa parecer, um sistema operacional um grupo integrado de programas que permitem a comunicao entre o computador e o usurio. Sua principal funo controlar o funcionamento do computador, como um gerente dos diversos recursos disponveis no sistema.

    O sistema operacional o primeiro programa que o computador executa no momento em que ligado e, a partir de ento, s para de funcionar quando o computador desligado. O sistema operacional reveza sua execuo com a de outros programas, que trabalham em conjunto, como se estivesse organizando e orquestrando todo o processo computacional.

    iNtROduO SiStEmaS OpERaCiONaiS

  • 10Everson Scherrer Borges

    O nome sistema operacional no nico para designar esse conjunto de programas. Nomes como monitor, executivo, supervisor ou controlador possuem, normalmente, o mesmo significado. [1]

    Um sistema operacional, porm, possui inmeras funes e resumimos essas funes, basicamente, em duas, que so descritas a seguir.

    1.1.1 facilidade de acesso aos recursos do sistema

    Um sistema de computao possui, normalmente, diversos componentes, como terminais, impressoras, discos e fitas. Quando utilizamos esses dispositivos, no nos preocupamos com a maneira como realizada a comunicao entre eles e o processador, nem nos preocupamos com os inmeros detalhes envolvidos.

    Para a maioria de ns, uma operao habitual, como a leitura de um arquivo em disquete, por exemplo, pode parecer simples. Na realidade, existe um conjunto de rotinas especiais, controladas pelo sistema operacional, responsvel por acionar a cabea de leitura e gravao da unidade de disco, posicionar essa cabea na trilha e no setor onde esto os dados, transferir os dados do disco para a memria e, finalmente, informar ao programa a chegada dos dados. [3]

    O sistema operacional serve de interface (intermedirio) entre os usurios e os recursos disponveis no sistema, tornando esta comunicao transparente e permitindo ao usurio um trabalho mais eficiente e com menores chances de erros (Figura 1).

    O conceito de ambiente simulado, criado pelo sistema operacional, denominado mquina virtual (virtual machine) e est presente, de alguma forma, na maioria dos sistemas atuais.

    1.1.2 Compartilhamento de recursos de forma organizada e protegida

    Quando pensamos em sistema multiusurio, onde vrios usurios podem estar compartilhando os mesmos recursos, como memria e discos, por exemplo, necessrio que todos tenham oportunidade de ter acesso a esses recursos de forma que um usurio no interfira no trabalho do outro.[1]

  • 11

    Sistemas Operacionais

    Se imaginarmos que uma impressora possa ser utilizada por vrios usurios do sistema, dever existir algum controle para impedir que a impresso de um usurio interrompa a impresso de outro. o sistema operacional o responsvel por permitir o acesso concorrente a cada recurso, de forma organizada e protegida, dando ao usurio a impresso de ser o nico a utilizar tal recurso.

    O compartilhamento de recursos permite, tambm, a diminuio de custos, na medida em que mais de um usurio possa utilizar as mesmas facilidades concorrentemente, como discos, impressoras, linhas de comunicao, etc.

    No apenas em sistemas multiusurios que o sistema operacional importante. Se pensarmos que um computador pessoal nos permite executar vrias tarefas, como imprimir um documento, copiar um arquivo pela internet ou processar uma planilha, o sistema operacional deve ser capaz de controlar a execuo concorrente de todas essas tarefas.

    A Figura 1 mostra uma viso do sistema operacional como interface entre os usurios e os recursos do sistema.

    Programadorese Analistas usurios Aplicativos

    Usurios

    Sistema Operacional

    Hardware

    Figura 1: Viso do sistema operacional como interface entre os usurios e os recursos do sistema.Fonte: Machado e Maia, 2004. Adaptao.

  • 12Everson Scherrer Borges

    1.2 mquiNaS dE NVEiS

    Um computador visto somente como um gabinete composto de circuitos eletrnicos, cabos e fontes de alimentao (hardware), no tem nenhuma utilidade. atravs de programas (software) que o computador consegue armazenar dados em discos, imprimir relatrios, gerar grficos, realizar clculos, entre outras funes. O hardware o responsvel pela execuo das instrues de um programa, com a finalidade de realizar alguma tarefa.

    Uma operao efetuada pelo software pode ser implementada em hardware, enquanto uma instruo executada pelo hardware pode ser simulada via software. Esta deciso fica a cargo do projetista do computador em funo de aspectos como custo, confiabilidade e desempenho. Tanto o hardware como o software so logicamente equivalentes, interagindo de uma forma nica para benefcio do usurio.[3]

    Nos primeiros computadores, a programao era realizada em painis, atravs de fios, exigindo um grande conhecimento do hardware e de sua linguagem de mquina. Mas isso era uma grande dificuldade para os programadores da poca.

    Ento, a soluo para esse problema foi o surgimento do sistema operacional, que tornou a interao entre usurio e computador mais simples, confivel e eficiente. A partir desse acontecimento, no existiu mais a necessidade de o programador se envolver com a complexidade do hardware para poder trabalhar. Ou seja, a parte fsica do computador tornou-se transparente para o usurio, conforme podemos observar na Figura 2. [1]

    Sistema Operacional

    Hardware

    usurio

    Figura 2 - Viso do computador pelo usurioFonte: Machado e Maia, 2004. Adaptao.

  • 13

    Sistemas Operacionais

    Partindo do princpio acima mencionado, podemos considerar o computador como uma mquina de nveis ou camadas, onde inicialmente existem dois nveis: o nvel 0 (hardware) e o nvel 1 (sistema operacional). Dessa forma, o usurio pode enxergar a mquina como sendo apenas o sistema operacional, ou seja, como se o hardware no existisse. Essa viso modular e abstrata chamada mquina virtual.[1]

    Na realidade, um computador no possui apenas dois nveis, e sim tantos nveis quantos forem necessrios para adequar ao usurio suas diversas aplicaes. Quando o usurio est trabalhando em um desses nveis, no necessita da existncia das outras camadas acima ou abaixo de sua mquina virtual.

    Ultimamente, a maior parte dos computadores possui uma estrutura como a mostrada na Figura 3, podendo conter mais ou menos camadas. A linguagem utilizada em cada um desses nveis diferente, variando da mais elementar (baixo nvel) mais sofisticada (alto nvel).

    Aplicativos

    Utilitrios

    Sistema Operacional

    Sistema Operacional

    Microprogramao

    Dispositivos Fsicos

    Hardw

    are

    Figura 3 - Mquina de nveis.Fonte: Machado e Maia, 2004. Adaptao.

    1.3 atiVaO E dESatiVaO dO SiStEma

    O sistema operacional essencial para o funcionamento de um computador. Sem ele, grande parte dos recursos do sistema computacional no estaria disponvel, ou se apresentaria de uma forma complexa para utilizao pelos usurios.

  • 14Everson Scherrer Borges

    Toda vez que um computador ligado, necessrio que o sistema operacional seja carregado da memria secundria para a memria principal. Esse processo, denominado ativao do sistema (boot), realizado por um programa localizado em uma posio especfica do disco (disco block), geralmente o primeiro bloco. O procedimento de ativao varia em funo do equipamento, podendo ser realizado atravs do teclado, de um terminal ou por manipulao de chaves de um painel (Figura 4).

    MemriaPrincipalHard Disk

    Sistema Operacional

    BOOT

    Figura 4 - Ativao do sistemaFonte: Machado e Maia, 2004. Adaptao.

    A inicializao do sistema operacional ocorre com a carga inicial do sistema do disco para a RAM. Uma pequena rotina armazenada em ROM, chamada de CARREGADOR de BOOTSTRAP ou IPL (Carregador de Programa Inicial), l uma rotina especial de carga no disquete, cd-rom, hard disk, pendrive, etc. Essa rotina normalmente reside na trilha 00, setor 00 (ou 01), (em sistemas baseados em disquete) e chamado de setor de booting. O cdigo contido no setor transferido para a RAM, e ento executada. Esse CARREGADOR tem a responsabilidade exclusiva de carregar o resto do sistema operacional na memria.

    Em computao, boot o termo em ingls para o processo de iniciao do computador, que carrega o sistema operacional quando a mquina ligada. Muitos computadores podem executar apenas cdigos existentes na memria de trabalho (ROM ou RAM). Os sistemas operacionais modernos so normalmente armazenados em disco rgido, CD-ROM ou outros dispositivos de armazenamento.

    Logo que o computador ligado, ele no tem um sistema operacional na memria. Portanto, ele ficaria apenas energizado, j que o hardware do computador no pode fazer nenhuma operao por si mesmo. Ento, preciso que o sistema operacional

  • 15

    Sistemas Operacionais

    seja carregado na memria principal assim que ligarmos o computador. Feito isso, podemos realizar qualquer ao via hardware, como carregar na memria um programa que est no disco, por exemplo.

    Na maioria dos sistemas, tambm existe o processo de desativao (Desligar). Este procedimento permite que as aplicaes e componentes do sistema operacional sejam desativados de forma ordenada, garantindo sua integridade.[1]

    1. Durante os estudos sobre a introduo dos sistemas operacionais, verificamos sua importncia para a utilizao do computador. Assim, defina: quais as principais razes para se estudar Sistemas Operacionais?

    2. O que um sistema operacional faz?

    3. Quais so as principais funes do Sistema Operacional? Explique-as.

    4. Defina o conceito de uma mquina de nveis ou camadas.

    5. Descreva o processo de ativao do sistema operacional.

    6. Qual a importncia dos aplicativos para o sistema operacional?

    7. A partir de quais dispositivos possvel realizar a carga do sistema operacional?

    8. Descreva o processo de boot.

    9. O que o bootstrap?

    [1] MACHADO, F.B. e MAIA, L.P. Arquitetura de Sistemas Operacionais. 4.ed. local? LTC, 2007.

    [2] SILBERSCHATZ, A., GALVIN, P.B., GAGNE, G. Fundamentos de Sistemas Operacionais. 6.ed. local? LTC, 2004.

    [3] TANENBAUM, A.S. Sistemas Operacionais Modernos. 2.ed. local? Pearson Brasil, 2007.

  • 16Everson Scherrer Borges

    ___________________________________________________

    ___________________________________________________

    ___________________________________________________

    ___________________________________________________

    ___________________________________________________

    ___________________________________________________

    ___________________________________________________

    ___________________________________________________

    ___________________________________________________

    ___________________________________________________

    ___________________________________________________

    ___________________________________________________

    ___________________________________________________

    ___________________________________________________

    ___________________________________________________

    ___________________________________________________

    ___________________________________________________

    ___________________________________________________

    ___________________________________________________

    ___________________________________________________

    ___________________________________________________

    ___________________________________________________

    ___________________________________________________

    ___________________________________________________

    ___________________________________________________

    ___________________________________________________

    ___________________________________________________

    ___________________________________________________

    ____________________________________________________

  • Caro aluno,

    esta a segunda aula. Nela, veremos os tipos de Sistemas Operacionais, e isso importante para entendermos as diferentes aplicaes, conceitos e funcionalidades que envolvem os Sistemas Operacionais.

    As pessoas que vencem neste mundo so as que procuram as circunstncias de que precisam e, quando no as encontram, as criam. (Bernard Shaw)

    Bom estudo!

    2.1 iNtROduO

    A evoluo dos hardwares relaciona-se diretamente com a evoluo dos sistemas operacionais, que popularizou diversos conceitos e tcnicas, antes s conhecida em ambientes de grande porte.

    Os sistemas operacionais podem ser classificados segundo diversos parmetros e perspectivas, como tamanho, velocidade, suporte a recursos especficos, suporte a usurios, acesso rede, etc.

    Esses sistemas so divididos em grupos, conforme a Figura 5, e esto relacionados com o tipo de computador que controlam e o tipo de aplicativos que suportam.

    Tipos de Sistemas Operacionais

    Sistemas Monoprogramveis/

    Monotarefa

    Sistemas Monoprogramveis/

    Multitarefa

    Sistemas com Mltiplos Processadores

    Figura 5: Tipos de Sistemas OperacionaisFonte: Machado e Maia, 2004. Adaptao.

    tipOS dE SiStEmaS OpERaCiONaiS

  • 18Everson Scherrer Borges

    2.2 SiStEmaS mONOpROGRamVEiS / mONOtaREfa

    Os primeiros sistemas operacionais eram tipicamente voltados para a execuo de um nico programa. Qualquer outra aplicao, para ser executada, deveria aguardar o trmino do programa corrente. [1]

    Aqueles tipos de sistema, tambm conhecidos como sistemas monotarefa, caracterizavam-se por permitir que todos os recursos do sistema computacional (o processador, a memria e os perifricos) permanecessem exclusivamente dedicados execuo de um nico programa ou a uma nica tarefa.

    Neles, enquanto um programa aguardava por um evento, como a digitao de um dado, o processador permanecia ocioso, sem realizar qualquer tipo de processamento.

    A memria ficava subutilizada caso o programa no a preenchesse totalmente, e os perifricos, como discos e impressoras, dedicados a um nico usurio, nem sempre eram utilizados de forma integral.

    Nos sistemas monotarefa, no existia muita preocupao com problemas decorrentes do compartilhamento de recursos como memria, processador e dispositivos de E/S. A Figura 6 mostra a organizao de um sistema Monoprogramvel ou Monotarefa.

    Programa / Tarefa

    Memria

    Dispositivos de E/S

    UCP

    Figura 6: Sistemas Monoprogramveis / MonotarefaFonte: Machado e Maia, 2004. Adaptao

  • 19

    Sistemas Operacionais

    O sistema operacional monotarefa foi criado para que um nico usurio pudesse fazer uma coisa por vez. Nos dias atuais, ainda podemos encontrar esses tipos de sistemas operacionais e, embora paream um tipo de sistema antigo, ainda existem sistemas operacionais monoprogramveis ou monotarefa. Um bom exemplo o sistema operacional Nokia OS S40, que trabalha nos celulares mais simples da Nokia, como no modelo 6212 (Figura 7); outro exemplo o O Palm OS, dos computadores Palm, um moderno sistema operacional monousurio e monotarefa.

    Figura 7: Sistemas Monoprogramveis / MonotarefaFonte: http://www.gdhpress.com.br/blog/celulares-nokia/

    2.3 SiStEmaS muLtipROGRamVEiS / muLtitaREfa

    Este o tipo de sistema operacional mais utilizado em computadores de mesa e notebooks. As plataformas Microsoft Windows e Apple MacOS so exemplos de sistemas operacionais que permitem que um nico usurio utilize diversos programas ao mesmo tempo. Por exemplo, possvel para um usurio de Windows escrever uma nota em um software editor de texto ao mesmo tempo em que faz download de um arquivo da internet e impresso de um e-mail.

    Verificamos que nesse tipo de sistema, os recursos computacionais so compartilhados entre diversos usurios e aplicativos. Neles, enquanto um programa espera uma operao de leitura ou gravao em disco, outros programas podem estar sendo processados simultaneamente, ou seja, no mesmo intervalo de tempo.

  • 20Everson Scherrer Borges

    Podemos observar, nesse caso, o compartilhamento da memria e do processador. O sistema operacional se preocupa em gerenciar o acesso concorrente aos seus recursos, como memria, processador e perifricos, de forma ordenada e protegida, entre os diversos programas.[1]

    O uso de sistemas multiprogramveis proporciona a reduo de tempo de resposta das aplicaes processadas no sistema e a reduo de custo. Sistemas multiprogramveis, embora sejam mais eficientes que os monoprogramveis, so de implementao muito mais difcil.

    De acordo do nmero de usurios que esto interagindo com o sistema, podemos classificar os sistemas multiprogramveis como monousurio e multiusurio.

    Sistemas multiprogramveis monousurio so encontrados em computadores pessoais ou em estaes de trabalho, onde h apenas um nico usurio interagindo com o sistema. Neste caso, existe a possibilidade da execuo de diversas tarefas ao mesmo tempo, como a edio de texto, uma impresso e o acesso Internet. [1]

    Sistemas operacionais multiprogramveis multiusurio (Figura 8), so ambientes que possibilitam que diversos usurios possam conectar-se ao sistema de forma simultnea

    Programa / Tarefa

    Programa / TarefaPrograma / Tarefa

    Programa / Tarefa

    Memria

    Dispositivos de E/S

    UCP

    Figura 8: Sistemas Multiprogramveis / MultitarefaFonte: Machado e Maia, 2004. Adaptao

    Sistemas operacionais multiprogramveis so os mais utilizados em computadores de mesa e notebooks. Um sistema operacional multitarefa permite que diversos programas utilizem simultaneamente os recursos do computador. O sistema operacional deve se certificar de que as solicitaes de vrios programas estejam balanceadas.

  • 21

    Sistemas Operacionais

    Os ambientes multiprogramveis ou multitarefa classificam-se pela forma com que suas aplicaes so gerenciadas ou interadas com os usurios, podendo ser divididos em sistemas batch, de tempo compartilhado ou de tempo real.

    2.3.1 Sistemas Batch

    Foram os primeiros sistemas operacionais multiprogramveis a serem implementados na dcada de 1960. Os programas, que tambm eram chamados de jobs, eram submetidos para execuo atravs de cartes perfurados, e eram armazenados em disco ou fita, onde aguardavam para serem processados. Posteriormente, em funo da disponibilidade de espao na memria principal, os jobs eram executados produzindo uma sada em disco ou fita. [1]

    Este tipo de processamento tem a caracterstica de no interagir com o usurio e a aplicao. Todas as entradas e sadas de dados da aplicao so implementadas por algum tipo de memria secundria.

    Atualmente, os sistemas operacionais implementam e simulam o processamento batch, no existindo sistemas exclusivamente dedicados a este tipo de processamento. [1]

    2.3.2 Sistemas de tempo Compartilhado

    Sistemas de tempo compartilhado ou time-sharing possibilitam a execuo de diversos programas a partir da diviso do tempo de processamento em intervalos, chamados fatia de tempo (time-slice). Caso a fatia de tempo no seja satisfatria para a concluso da execuo do programa, este tempo interrompido pelo sistema operacional e substitudo por um outro, enquanto fica aguardando por uma nova fatia de tempo. Com isso, o sistema cria um ambiente de trabalho prprio, dando a impresso de que todo o sistema est dedicado, exclusivamente, para cada usurio.

    Grande parte dos aplicativos comerciais ultimamente so processados em sistemas de tempo compartilhado, que permitem tempos curtos de respostas a seus usurios, e menores custos em funo da utilizao compartilhada dos diversos recursos do sistema.

    2.3.3 Sistemas de tempo Real

    Nos sistemas de tempo real ou real-time, os tempos de resposta devem estar dentro de limites rgidos, que devem ser satisfeitos. Caso contrrio, podero ocorrer problemas irreparveis. Neste tipo de sistema, no existe

  • 22Everson Scherrer Borges

    a idia de pedao/fatia de tempo. Um programa utiliza o processador durante o tempo que for necessrio ou at que aparea outro cujo uso seja prioritrio. A autoridade ou prioridade de execuo definida pelo prprio programa/ aplicativo e no pelo sistema operacional, como nos sistemas de tempo compartilhado.

    Esses sistemas, normalmente, esto presentes em aplicaes de controle de processos, como no monitoramento de refinarias de petrleo, controle de trfego areo, de usinas termoeltricas e nucleares, ou em qualquer aplicao onde o tempo de respostas fator fundamental. [1]

    (RTOS - Real-time operating system). o Sistema Operacional de Tempo Real, utilizado para controlar mquinas, instrumentos cientficos e sistemas industriais. Geralmente, um RTOS no tem uma interface muito simples para o usurio e no destinado para o usurio final, pois esse tipo de sistema entregue como uma caixa selada.

    A funo do RTOS gerenciar os recursos do computador para que uma operao especfica seja sempre executada durante um mesmo perodo de tempo. Numa mquina complexa, se uma parte se move mais rapidamente s porque existem recursos de sistema disponveis, isto pode ser to catastrfico quanto se uma parte no conseguisse se mover porque o sistema est ocupado.

    2.4 SiStEmaS COm muLtipROCESSadORES

    Sistema monoprocessado - Caracteriza-se por possuir um nico processador, sendo este controlado pelo sistema operacional instalado. Ex.: Microcomputador PC com Windows 98.

    Sistema multiprocessado - Caracteriza-se por possuir mais de um processador, sendo que estes podem compartilhar o mesmo sistema operacional, ou cada um pode possuir o seu prprio sistema.

    A principal vantagem desse tipo de sistema permitir que vrios processos possam ser executados simultaneamente, sem a necessidade de compartilhamento do tempo do processador, ou ento que um determinado processo possa ser dividido entre as unidades de processamento para agilizar a sua concluso.

  • 23

    Sistemas Operacionais

    Como o sistema operacional responsvel por gerenciar a execuo das tarefas, deve estar devidamente adaptado para operar em sistemas com mais de uma unidade de processamento, para poder distribuir a execuo dos programas e maximizar a utilizao dos recursos disponveis.

    A construo de Sistemas com suporte a Mltiplos processadores foi feita pensando-se em aplicaes voltadas para o processamento cientfico, explorao de minerais e petrleo, simulaes e computao grfica. Grande parte dos supercomputadores instalados ao redor do mundo est em uso em Laboratrios de Pesquisa dos EUA, Europa e Japo, e em grandes empresas como Dupont, Petrobrs, entre outras.

    Os Sistemas com mltiplos processadores so divididos, conforme Figura 9.

    Tipos de Sistemas Operacionais

    Sistemas Monoprogramveis/

    Monotarefa

    Sistemas Assimtricos

    Sistemas Simtricos

    SistemasOperacionais de

    Redes

    SistemasOperacionais de

    Distribudos

    Sistemas com Mltiplos Processadores

    Figura 9: Sistemas com Mltiplos ProcessadoresFonte: Machado e Maia, 2004. Adaptao.

    2.4.1 Sistemas fortemente acoplados

    Nos sistemas fortemente acoplados (Figura 10), existem vrios processadores compartilhando uma nica memria e gerenciados por apenas um sistema operacional. Mltiplos processadores permitem que vrios programas sejam executados ao mesmo tempo, ou que um programa seja dividido em subprogramas, para execuo simultnea em mais de um processador. Dessa forma, possvel ampliar a capacidade de computao de um sistema, adicionando-se apenas novos processadores, com um custo muito inferior aquisio de outros computadores.[1]

  • 24Everson Scherrer Borges

    Com a introduo do multiprocessamento, novos problemas surgiram, pois vrios processadores podem acessar as mesmas reas de memria, e a isso chamamos de concorrncia. Alm disso, existe o problema de organizar, de forma eficiente, os processadores, a memria e os perifricos.

    Em decorrncia do multiprocessamento, houve o aparecimento dos computadores voltados, principalmente, para processamento cientfico, aplicado, por exemplo, ao desenvolvimento aeroespacial, prospeco de petrleo, s simulaes, ao processamento de imagens e a CAD (desenhos tcnicos).

    A princpio, qualquer programa que faa uso intensivo do processador ser beneficiado pela adio de processadores ao sistema computacional.

    Memria

    Dispositivos de E/SDispositivos de E/S

    UCPUCP

    Figura 10: Sistemas Fortemente AcopladosFonte: Machado e Maia, 2004. Adaptao.

    2.4.1.1 Sistemas assimtricos

    No sistema assimtrico ou mestre/escravo (Figura 11), somente um processador (mestre) pode executar servios do sistema operacional, como, por exemplo, realizar operaes de entrada/sada, gerenciar processos, inicializar o sistema. Sempre que um processador do tipo escravo precisar realizar uma operao de entrada/sada ou escalonar um processo ter que solicitar o servio ao processador mestre. Dependendo da quantidade de operaes de entrada/sada destinadas aos processadores escravos, o sistema pode se tornar ineficiente, devido ao elevado nmero de interrupes que devero ser tratadas pelo mestre.

  • 25

    Sistemas Operacionais

    UsuriosUsuriosS.O

    UCP Master UCP Slave

    Dispositivosde E/S

    Figura 11: Sistemas AssimtricosFonte: Machado e Maia, 2004. Adaptao.

    Se o processador mestre falhar, todo o sistema ficar incapaz de continuar o processamento. Nesse caso, o sistema deve ser reconfigurado, fazendo um dos processadores escravos assumirem o papel do mestre.

    Mesmo sendo uma organizao simples de implementar e quase uma extenso dos sistemas multiprogramveis, esse tipo de sistema no utiliza eficientemente o hardware, devido assimetria dos processadores, que no realizam as mesmas funes.

    2.4.1.2 Sistemas Simtricos

    No multiprocessamento simtrico (Figura 12), tambm conhecido como SMP (Symmetric Multi-Procesors), ao contrrio da organizao mestre/escravo (master/slave), implementa a simetria dos processadores, ou seja, todos os processadores desempenham as mesmas funes. Apenas algumas poucas funes ficam a cargo de um nico processador, como, por exemplo, a inicializao (boot) do sistema.

    UsuriosS.O

    UCP UCP

    Dispositivosde E/S

    Figura 12: Sistemas SimtricosFonte: Machado e Maia, 2004. Adaptao.

  • 26Everson Scherrer Borges

    Como vrios processadores esto utilizando, independentemente, a mesma memria e o mesmo sistema operacional, natural a ocorrncia de acessos simultneos s mesmas reas de memria. A soluo desses conflitos fica a cargo do hardware e do sistema operacional.

    No processamento simtrico, um programa pode ser executado por qualquer processador, inclusive por vrios processadores ao mesmo tempo (paralelismo). Alm disso, quando um processador falha, o sistema continua em funcionamento sem nenhuma interferncia manual, porm com menor capacidade de computao, pois o sistema agora esta com um processador a menos.

    Os sistemas simtricos so mais poderosos que os assimtricos, pois possibilitam uma melhor diviso do processamento e das operaes de entrada/sada, apesar de sua implementao ser muito mais difcil.

    Para exemplificar a diferena entre sistemas Assimtricos e Simtricos, vamos fazer a seguinte analogia: imagine dois funcionrios que sabem realizar as mesmas tarefas e trabalham em dias alternados; porm, mesmo trabalhando em dias alternados, o trabalho tem sua devida continuidade, funcionando em simetria. assim que ocorre nos Sistemas Simtricos.

    J nos sistemas assimtricos isso no acontece, pois cada funcionrio realiza tarefas distintas, de forma assimtrica.

    2.4.2 Sistemas fracamente acoplados

    Os sistemas fracamente acoplados caracterizam-se por possuirem dois ou mais sistemas de computao interligados, sendo que cada sistema possui o seu prprio sistema operacional, gerenciando os seus recursos, como processador, memria e dispositivos de entrada/sada.[1]

    Durante a dcada de 80, os sistemas operacionais e os aplicativos suportados por eles eram tipicamente concentrados em sistemas de grande porte (centralizados), com um ou mais processadores.

  • 27

    Sistemas Operacionais

    Nos sistemas centralizados, os usurios utilizam terminais no inteligentes conectados a linhas seriais dedicadas ou linhas telefnicas pblicas para a comunicao interativa com esses sistemas. Nesse modelo de sistema, os terminais no tm capacidade de processamento, ou seja, sempre que um usurio deseja alguma tarefa, o pedido encaminhado ao sistema, que realiza o processamento e retorna uma resposta, utilizando as linhas de comunicao.

    Com a evoluo dos computadores pessoais e das estaes de trabalho, juntamente com o avano das telecomunicaes e da tecnologia de redes, surgiu um novo modelo de computao, chamado de modelo de rede de computadores (Figura 13). [1]

    N NN

    Rede

    NN

    Figura 13: Sistemas Fracamente AcopladosFonte: Machado e Maia, 2004. Adaptao.

    2.4.2.1 Sistemas Operacionais de Rede

    Basicamente, um sistema operacional de rede um conjunto de mdulos que ampliam as tarefas dos sistemas operacionais locais, complementando-os com um conjunto de funes bsicas, e de uso geral, que tornam transparente o uso de recursos compartilhados da rede. Portanto, um computador de rede tem o sistema operacional local interagindo com sistema operacional de rede, para que possam ser utilizados os recursos de rede to facilmente quanto os recursos na mquina local. Com efeito, o sistema operacional de rede coloca um redirecionador entre o aplicativo do cliente e o sistema operacional local para redirecionar as solicitaes de recursos da rede para o programa de comunicao que vai buscar os recursos na prpria rede.

  • 28Everson Scherrer Borges

    Aplicao do Usurio

    Redirecionador

    Software de Comunicao

    Hardware de Rede

    Sistema OperacionalLocal

    BIOS do Computados

    Hardware do Computador

    O funcionamento de um computador em rede, depende da instalao de recursos de hardware e software, que complementam os dispositivos existentes e o sistema opera-cional local.

    Figura 14: Sistemas Operacionais de Redes

    O sistema operacional de rede (Figura 14), portanto, controla os sistemas e dispositivos dos computadores em uma rede, permitindo que se comuniquem uns com os outros. Normalmente, o modelo de operao desse sistema o modelo Cliente/ Servidor, ou seja, o ambiente onde o processamento da aplicao partilhado entre um outro cliente (solicita servio e um ou mais servidores prestam servios). Os tipos de arquiteturas para sistemas operacionais de rede podem ser:

    Peer-to-Peer (ou ponto a ponto): - Nessas redes, todos poderiam ser (ou no) servidores, mas certamente todos so clientes.

    Cliente/Servidor - Nessas redes, podem existir dois tipos: o Servidor Dedicado e o Servidor no Dedicado.

    No caso dos sistemas Cliente/Servidor, o sistema cliente possui caractersticas mais simples, voltadas para a utilizao de servios, enquanto que o sistema do servidor possui maior quantidade de recursos, com o nico propsito de serem disponibilizados aos clientes da rede.

    Os sistemas baseados em Unix (sistema operacional cuja plataforma serviu de base para o atual Linux) so potencialmente clientes e servidores, sendo feita a escolha durante a instalao dos pacotes de aplicativos, enquanto que nos sistemas Windows existem verses clientes (Windows 2000 Professional, Windows XP) e verses servidores (Windows 2000 Server, Windows 2003 Server e Windows 2008 Server).

  • 29

    Sistemas Operacionais

    Um bom exemplo da utilizao dos sistemas operacionais de rede so as redes locais. Nesse ambiente, cada estao pode compartilhar seus recursos com o restante da rede. Caso uma estao sofra qualquer problema, os demais componentes da rede podem continuar o processamento, apenas no dispondo dos recursos oferecidos por aquela.

    2.4.2.2 Sistemas Operacionais distribudos

    Assim como nos sistemas operacionais de rede, cada estao tambm possui seu prprio sistema operacional, mas o que o caracteriza como sendo um sistema distribudo, tambm conhecido como cluster, a existncia de um relacionamento mais forte entre os seus componentes, onde geralmente (mas no necessariamente) os sistemas operacionais so os mesmos, funcionando como um nico sistema centralizado. Um sistema distribudo formado por um conjunto de mdulos processadores interligados por um sistema de comunicao.

    Como as aplicaes so distribudas, a redundncia uma grande vantagem, pois, quando h problema com um dos componentes, outro assume a tarefa em questo.

    Estudiosos classificam os Sistemas Distribudos em Mquinas de Arquitetura Distribuda e Redes de Computadores.

    Um sistema de cmputo com Arquitetura Distribuda pode possuir um nmero ilimitado de mdulos autnomos para processamento, interconectados de tal forma que, para o usurio final, o sistema todo se apresente como uma nica mquina, no qual o controle geral implementado atravs da cooperao de elementos descentralizados. Uma Rede de Computadores tambm pode (em teoria) estar formada por um nmero ilimitado de estaes, mas a independncia dos vrios mdulos de processamento preservada em razo da tarefa de compartilhamento de recursos e troca de informaes.

    Um exemplo prtico (e muito interessante) de um sistema distribudo o projeto SETI (Search for Extra Terrestrial Intelligence). O projeto SETI, desenvolvido pela Universidade de Berkeley, na Califrnia, um experimento cientfico que utiliza o tempo ocioso dos computadores conectados Internet para seu objetivo principal de procura por vida inteligente extraterrestre. Qualquer pessoa conectada Internet pode participar, basta rodar o programa gratuito disponvel no site BOINC (http://boinc.berkeley.edu). Basicamente, este programa permite que sua mquina disponibilize o tempo ocioso dela para fazer parte de

  • 30Everson Scherrer Borges

    projetos cientficos. Esse projeto constitudo de diferentes screen savers (protetores de tela) e est disponvel para Windows, MacOS, e Linux.

    Toda vez que sua mquina est ociosa sem que esteja desligada, ativadoa uma proteo de tela (screen saver). Cada um dos screen savers permite que a sua mquina faa parte de algum dos seguintes projetos: SETI@home, Climateprediction.net, Rosetta@home, World Community Grid, entre outros. Quando um desses screen savers inicializado, a sua mquina passa automaticamente a fazer parte do sistema distribudo do projeto SETI. Assim que o screen saver desativado, a sua mquina deixa o sistema de computao distribuda desse projeto.

    Usurio

    Rede

    Figura 15: Sistemas Operacionais DistribudosFonte: Machado e Maia, 2004. Adaptao.

    A grande vantagem dos Sistemas Operacionais Distribudos (Figura 15), a possibilidade do balanceamento de carga, ou seja, quando um programa admitido para execuo, a carga de processamento de cada sistema avaliada e o processador menos ocupado escolhido. Depois de aceito para processamento, o programa executado no mesmo processador at o seu trmino.

    Tambm possvel o compartilhamento de impressoras, discos e fitas, independentemente do sistema em que a aplicao esteja sendo processada.

    1. Por que dizemos que existe uma subutilizao de recursos em sistemas monoprogramveis?

    2. Qual a grande diferena entre sistemas monoprogramveis e sistemas multiprogramveis?

    3. Um sistema monousurio pode ser um sistema multiprogramvel? D exemplo.

  • 31

    Sistemas Operacionais

    4. Quais so os tipos de sistemas multiprogramveis?

    5. Como funcionam os sistemas de tempo compartilhado? Quais as vantagens em utiliz-los?

    6. O que so sistemas com mltiplos processadores e quais as vantagens em utiliz-los?

    7. Qual a grande diferena entre sistemas fortemente acoplados e fracamente acoplados?

    8. O que um sistema fracamente acoplado? Qual a diferena entre sistemas operacionais de rede e sistemas operacionais distribudos?

    9. Pesquise em livro ou internet sobre os sistemas operacionais da famlia Windows e faa um histrico da sua evoluo.

    10. Pesquise em livros ou internet sobre os sistemas operacionais da famlia Linux e faa um histrico da sua evoluo.

    [1] MACHADO, F.B. e MAIA, L.P. Arquitetura de Sistemas Operacionais. 4.ed. local? LTC, 2007.

    [2] SILBERSCHATZ, A., GALVIN, P.B., GAGNE, G. Fundamentos de Sistemas Operacionais. 6.ed. local? LTC, 2004.

    [3] TANENBAUM, A.S. Sistemas Operacionais Modernos. 2.ed. Pearson Brasil, 2007.

    [4] SOARES, RICARDO DE MAGALHES. Sistemas Operacionais. 1 ed. local? Esab, 2008.

  • 32Everson Scherrer Borges

    ___________________________________________________

    ___________________________________________________

    ___________________________________________________

    ___________________________________________________

    ___________________________________________________

    ___________________________________________________

    ___________________________________________________

    ___________________________________________________

    ___________________________________________________

    ___________________________________________________

    ___________________________________________________

    ___________________________________________________

    ___________________________________________________

    ___________________________________________________

    ___________________________________________________

    ___________________________________________________

    ___________________________________________________

    ___________________________________________________

    ___________________________________________________

    ___________________________________________________

    ___________________________________________________

    ___________________________________________________

    ___________________________________________________

    ___________________________________________________

    ___________________________________________________

    ___________________________________________________

    ___________________________________________________

    ____________________________________________________

  • Caro aluno,

    nesta terceira aula, vamos entender um pouco como o Sistema Operacional Gerencia os programas em execuo, ou, mais precisamente, os Processos em Sistemas Operacionais.

    Voc entender como acontece a execuo de um programa ou processo no sistema operacional e tambm como acontece o gerenciamento e controle das prioridades da execuo nos ambientes multiprogramveis.

    Alm disso, importante que voc termine este captulo compreendendo a importncia do compartilhamento de recursos em um Sistema Operacional, as trocas de contexto, o escalonamento e os vrios estados de transio dos processos.

    Imaginao mais importante que inteligncia. (Albert Einstein)

    Bom estudo!

    3.1 iNtROduO

    Tradicionalmente, um processo definido como sendo um programa em execuo. Porm, devido s caractersticas dos ambientes multiprogramveis, nos quais diversos usurios ou programas devem ser executados ao mesmo tempo, pode-se definir processo como sendo a estrutura responsvel pela manuteno de todas as informaes necessrias execuo de um programa, como contedo de registradores e espao de memria.

    Programa um conjunto de instrues organizadas e escritas em uma linguagem de programao. Um programa est em execuo quando o processador est executando suas instrues em um instante do tempo.

    pROCESSOS

  • 34Everson Scherrer Borges

    O gerenciamento de processos um dos conceitos fundamentais dos sistemas operacionais modernos. Nesse gerenciamento, so definidas as propriedades dos processos em execuo e a maneira como cada um receber o tempo de execuo no processador.

    Voc j deve ter visto um show de malabarismo com pratos que giram em cima de bastes, no ? Como cada prato precisa por um momento do malabarista para dar novo impulso no basto e continuar girando, o malabarista procura distribuir o seu tempo entre os pratos para que todos continuem girando durante toda a apresentao. Ento, consideremos os pratos como se fossem processos e o malabarista como o processador.

    A principal funo do gerenciador de processos exatamente a execuo do processo no processador de maneira adequada (considerando a prioridade do processo e a quantidade de processos gerenciados).

    Nos sistemas multiprogramveis, os processos so executados concorrentemente, compartilhando, dentre outros recursos, o uso do processador, da memria principal e dos dispositivos de E/S. Nos sistemas com mltiplos processadores, temos a execuo simultnea de processos nos diferentes processadores.[1]

    Dependendo de como o programa foi desenvolvido, mais de um processo pode estar pertinente a ele durante sua execuo, sendo que cada processo representa um determinado conjunto de instrues do programa original.

    No Internet Explorer, por exemplo, enquanto uma pgina est carregando, o usurio j est visualizando outra pgina; neste caso, existe um programa em execuo e pelo menos dois processos associados tambm em execuo.

    Podemos at pensar em um processo como um aplicativo, mas isso d uma ideia incompleta de como os processos se relacionam com o sistema operacional e com o hardware. O aplicativo que voc v (processador de texto, planilha eletrnica ou jogo) , de fato, um processo. Porm, os aplicativos podem ativar outros processos para se comunicarem com outros dispositivos ou computadores. Tambm existe uma srie de processos que so executados sem que voc perceba. O Windows e o UNIX podem executar, em background, dezenas de processos para lidar com a rede, gerenciar a memria e o disco rgido, verificar vrus, etc.

  • 35

    Sistemas Operacionais

    O Windows e UNI, so dois Sistemas Operacionais bastante conhecidos e utilizados no mercado atual. Estes, entre outros Sistemas Operacionais modernos, so capazes de fazer vrias coisas ao mesmo tempo, baseado na ideia de paralelismo ou multitarefa, realizada atravs do compartilhamento do tempo do processador

    3.2 GERENCiamENtO dE pROGRamaS

    O sistema operacional, sendo multitarefa, realiza o compartilhamento do processador entre os processos por meio da ativao, momentnea, do processo que ser executado no processador. Como apenas um processo pode estar ativo no processador, os outros devero esperar alguns instantes, at que o processo em execuo tenha sido executado pelo tempo que o sistema operacional designou a ele.

    Quando o tempo do processo atual terminar, o sistema operacional realizar uma operao chamada Troca de Contexto, em que o processo atual ser substitudo por outro processo que estava esperando a liberao do processador.

    Conforme destacado na seo anterior, a definio de um processo um pouco mais abrangente do que um programa em execuo, envolvendo outras estruturas necessrias ao seu funcionamento, as quais so chamadas de CONTEXTO de processo.

    A Troca de Contexto a etapa em que o sistema operacional armazenar todas as informaes relativas execuo do processo atual para permitir que o mesmo possa continuar a execuo em outro momento, e, ento, incluir um outro processo para ser executado. Veja a Figura 16.

  • 36Everson Scherrer Borges

    1 - Salva registradores de Processo A2 - Carrega registradores do Processo A3 - Salva registradores do Processo B4 - Carrega registradores do Processo A

    Sist

    ema

    Ope

    raci

    onal

    1 2 3 4

    Exec

    utan

    do

    Exec

    utan

    do

    Exec

    utan

    do

    Processo A

    Processo B

    Figura 16: Troca de ContextoFonte: [1] Machado e Maia, 2004. Adaptao.

    Esta etapa deve ser executada de maneira quase instantnea, pois o processador deve ser utilizado principalmente para executar os programas. Existem trs eventos que podem iniciar a Troca de Contexto: Escalonamento de Processo, Ocorrncia de Interrupo e Ocorrncia de exceo, conforme explicado a seguir:

    Escalonamento de Processo: nesta etapa, cada processo em execuo ir utilizar um ncleo do processador por uma fatia de tempo; quando este tempo se esgotar, o processo atual dever ser substitudo por outro processo;

    Ocorrncia de Interrupo ou exceo: quando h a ocorrncia de uma interrupo/exceo, o sistema operacional deve entrar em operao para tratar da interrupo/exceo, e, para isso, o prprio sistema operacional iniciar um (ou mais) processo (s) prprio(s).

    Quando o processador possuir mais de um ncleo de processamento, mais de um processo poder estar em execuo no processador!

  • 37

    Sistemas Operacionais

    3.3 EStadOS dO pROCESSO

    Durante o funcionamento do computador, os vrios processos executados passaro por diferentes estados: em espera, em execuo, bloqueado. Esses estados definem a maneira como sero tratados pelo sistema operacional. O funcionamento especfico de cada estado depende do sistema operacional utilizado.

    3.3.1 Estados de um processo ativo

    Um processo ativo pode se encontrar em trs diferentes estados: execuo (running), pronto (ready) e espera (wait). Veja Figura 17.

    Apto Executando

    Bloqueado

    Figura 17: Estados de um processo ativoFonte: Oliveira, Carissimi e Toscani, 2004. Adaptao

    3.3.1.1 Executando (running)

    Considera-se que um processo est no estado de execuo quando ele est sendo processado pela UCP. Em sistemas com um nico processador, somente um processo pode ser executado em um dado momento. O sistema operacional alterna (escalona) a utilizao do processador entre os processos, segundo alguma poltica estabelecida por ele.

    Em sistemas com mltiplos processadores, existe a possibilidade de mais de um processo estar sendo executado ao mesmo tempo. Nesse tipo de sistema, tambm possvel um mesmo processo ser executado simultaneamente em mais de uma UCP (processamento paralelo).

    3.3.1.2 apto ou pronto (ready)

    Um processo est no estado de apto ou pronto quando aguarda sua vez de ser executado. Em geral, existem vrios processos no sistema em estado de pronto, organizados em uma fila. Por meio dessa fila, chamada de fila de aptos ou fila de prontos, o sistema operacional

  • 38Everson Scherrer Borges

    determina a ordem e os critrios pelos quais os processos em estado de pronto devem utilizar o processador. Esse mecanismo conhecido como escalonamento.

    Existem vrios critrios de escalonamento de processos, tais como: fila simples (FIFO), sigla em ingls para First In First Out ou Primeiro a Entrar Primeiro a Sair, circular, fila com prioridades, etc. Tais critrios sero vistos posteriormente. Neste material, os termos fila de prontos e fila de aptos sero utilizados como sinnimos.

    3.3.1.3 Bloqueado ou Espera (wait)

    Um processo no estado bloqueado ou espera aguarda por algum evento externo ou por algum recurso para prosseguir seu processamento. Como exemplo, podemos citar um processo que aguarda o trmino de uma operao de entrada/sada ou a espera de uma determinada data e/ou hora para continuar sua execuo.

    O sistema operacional organiza os vrios processos no estado de espera em listas. Quando ocorre um evento, o sistema operacional verifica qual processo estava aguardando aquele evento, e o processo transferido para o estado de pronto. Em outras palavras, o processo volta fila de aptos e est pronto para prosseguir sua execuo.

    3.4 EStadOS dE CRiaO E dEStRuiO dE um pROCESSO

    Para um processo entrar na fila de aptos e aguardar sua vez de executar, necessrio que seja criado pelo sistema operacional (loader ou carregador).

    Primeiro, o sistema operacional deve alocar na memria principal as reas de cdigo, dados e pilha. Em seguida, o programa deve ser transferido da memria secundria para a memria principal nas reas alocadas. Por ltimo, o PCB criado e inicializado apropriadamente, com as informaes do processo. A partir desse momento, o sistema operacional j reconhece a existncia do processo.

    Aps criar o processo, o sistema operacional normalmente o coloca na fila de aptos para que ele concorra utilizao do processador, conforme pode-se observar na Figura 18, que mostra os estados do processo. No entanto, algumas vezes podem faltar recursos (por exemplo: nmero mximo de processos ativos alcanado); nesse caso, o sistema operacional manter o processo no estado de criao, at que haja recursos para ele se tornar ativo.

  • 39

    Sistemas Operacionais

    Apto Executando

    Bloqueado

    DestruioCriao

    Figura 18: Estados do processoFonte: Oliveira, Carissimi e Toscani, 2004. Adaptao

    Quando um processo finalizado, todos os recursos do processo devem ser desalocados e o PCB deve ser eliminado pelo sistema operacional. O trmino de um processo pode ocorrer pelas seguintes razes:

    trmino normal de execuo; eliminao forada por erros de proteo; eliminao por outro processo; eliminao forada por ausncia de recursos disponveis no sistema.

    Algumas vezes, o sistema operacional pode manter em memria as informaes de um processo finalizado. Nesse caso, o processo no considerado mais ativo, mas, como o PCB ainda existe, o sistema operacional pode obter informaes sobre o processo, como contabilizao e uso de recursos. Aps as informaes serem extradas, geralmente o processo deixa de existir.

    3.5 tRaNSiES dE EStadO dO pROCESSO

    Um processo muda de estado, durante seu processamento, em funo de eventos originados por ele prprio (eventos voluntrios) ou pelo sistema operacional (eventos involuntrios). Basicamente, existem quatro mudanas de estado que podem ocorrer a um processo. Veja a Figura 19.

    Apto Executando

    Bloqueado

    DestruioCriao

    Ocorrnciade evento

    (interrupo)

    Seleo Trmino

    Tempo/voluntrio

    Chamadade sistema

    Figura 19: Transio de Estados do processoFonte: Oliveira, Carissimi e Toscani, 2004. Adaptao

  • 40Everson Scherrer Borges

    3.5.1 apto Executando

    Aps a criao de um processo, o sistema o coloca em uma fila de processos no estado de apto, onde aguarda por uma oportunidade para ser executado. Cada sistema operacional tem seus prprios critrios e algoritmos para a escolha da ordem em que os processos sero executados (poltica de escalonamento). Esses critrios e seus algoritmos sero analisados em detalhes nos captulos seguintes.

    A transferncia de um processo do estado apto para o estado de execuo indica que outro processo saiu do estado de execuo (perdeu o processador). Um processo perde o processador quando sua fatia de tempo (time slice) termina, quando faz uma chamada de sistema ou quando chega ao fim de sua execuo (normal ou forada). Isso faz com que o sistema operacional selecione um processo no estado apto para ser executado.

    3.5.2 Execuo apto

    Um processo em execuo passa para o estado de apto por eventos gerados pelo sistema, como o trmino da sua fatia de tempo (time slice) ou para ceder a vez a um processo de maior prioridade. Nesse caso, o processo volta para a fila de aptos, onde aguarda por uma nova oportunidade para continuar seu processamento.

    3.5.3 Execuo Bloqueado

    Um processo em execuo pode passar para o estado de bloqueado, por eventos gerados pelo prprio processo. Por exemplo, quando um processo em execuo necessita realizar uma operao de E/S, realiza a solicitao por meio de uma chamada de sistema. Ao fazer isso, o sistema operacional chamado, retira o processo da execuo e o coloca no estado bloqueado. Em seguida, instrui o controlador de dispositivos de E/S, para que a operao seja realizada, e seleciona um processo da fila de aptos para executar. O processo que foi bloqueado aguardar nesse estado at que sua operao de E/S seja concluda.

    Alm disso, um processo em execuo tambm pode passar para o estado de bloqueado em funo de eventos externos. Um evento externo gerado, por exemplo, quando o sistema operacional suspende, por um perodo de tempo, a execuo de um processo.

    J^

    J^

    J^

  • 41

    Sistemas Operacionais

    3.5.4 Bloqueado apto

    Um processo no estado bloqueado passa para o estado de apto quando a operao solicitada atendida ou o recurso esperado concedido. Por exemplo, um processo que solicitou uma operao de E/S ficar no estado bloqueado at que o controlador de dispositivos informe que a operao foi concluda. O controlador sinaliza a concluso da operao de E/S atravs de uma interrupo de hardware que, imediatamente, chama o sistema operacional para transferir o respectivo processo do estado bloqueado para apto.

    Em geral, um processo no estado bloqueado sempre ter de passar pelo estado de apto antes de poder ser novamente selecionado para execuo. Normalmente, no existe a mudana do estado bloqueado para o estado de execuo diretamente. Em casos raros, um processo poder fazer isso caso a chamada de sistema seja extremamente rpida, como, por exemplo, a leitura da hora do sistema.

    3.6 tRaNSiES dE EStadO COm Swapping

    Um processo no estado apto ou bloqueado pode no se encontrar residente na memria principal. Essa condio ocorre quando no existe espao suficiente para todos os processos na memria principal e parte do contexto do processo levada para a memria secundria. Uma tcnica conhecida como swapping retira o processo da memria principal e o traz de volta, seguindo os critrios de cada sistema operacional.

    Nesse caso, os processos em estado bloqueado e apto podem estar residentes ou no-residentes na memria principal.

    Na Figura 20, voc pode observar o esquema de funcionamento das transies de estado com swapping.

    Apto Executando

    Bloqueado,suspensoBloqueado

    AptoSuspenso

    Destruio

    Criao

    Seleo

    Suspenso

    SuspensoAdmissoAdmisso

    Ativo

    Ativo

    Tempo/voluntrio

    Evento(espera)

    Evento(ocorr)

    Evento(ocorr)

    Figura 20: Transies de estado com SwappingFonte: Oliveira, Carissimi e Toscani, 2004. Adaptao

    J^

  • 42Everson Scherrer Borges

    3.7 pROCESSOS iNdEpENdENtES, SuBpROCESSOS E tHREadS

    Processos independentes, subprocessos e threads so maneiras diferentes de implementar a concorrncia dentro de uma aplicao. Nesse caso, busca-se subdividir o cdigo em partes para trabalharem de forma cooperativa. Em aplicaes acessadas simultaneamente por vrios usurios, a concorrncia pode proporcionar um tempo de espera menor, melhorando o desempenho da aplicao e beneficiando os usurios.

    O uso de processos independentes a maneira mais simples de implementar a concorrncia em sistemas multiprogramveis. Nesse caso, no existe vnculo entre o processo criado e seu criador. A criao de um processo independente exige a alocao de um PCB, possuindo contextos de hardware, contexto de software e espao de endereamento prprios. [1].

    Subprocessos so processos criados dentro de uma estrutura hierrquica. Nesse modo, o processo criador denominado processo pai e o novo processo chamado de processo filho ou subprocesso. O subprocesso pode criar outras estruturas de subprocessos. Uma caracterstica dessa implementao a dependncia existente entre o processo criador e o subprocesso. Caso um processo pai deixe de existir, o sistema operacional pode ser configurado para eliminar automaticamente os processos filhos.

    Alm da dependncia hierrquica entre processos e subprocessos, uma outra caracterstica nesse tipo de implementao que subprocessos podem compartilhar quotas com o processo pai. Nesse caso, quando um subprocesso criado, o processo pai cede parte de suas quotas ao processo filho.

    Pode-se observar, na Figura 21, a relao entre processos e subprocessos.

    Processo A

    Processo B Processo C

    Processo D Processo E

    Figura 21: Processos dependentesFonte: Machado e Maia, 2004. Adaptao.

  • 43

    Sistemas Operacionais

    O uso de processos independentes e subprocessos no desenvolvimento de aplicaes concorrentes demanda consumo de diversos recursos do sistema. Ou seja, sempre que um novo processo criado, o sistema deve alocar recursos (contexto de hardware, contexto de software e espao de endereamento), consumindo tempo de UCP nesse trabalho. No momento do trmino dos processos, o sistema operacional tambm dispensa tempo para desalocar recursos previamente alocados. Outro problema existente a comunicao e a sincronizao entre processos, considerada pouco eficiente visto que cada processo possui seu prprio espao de endereamento.

    O thread representa uma tentativa de reduzir o tempo gasto na criao, eliminao e chaveamento de contexto de processos nas aplicaes concorrentes, bem como de economizar recursos do sistema.

    Em um ambiente multithread, um nico processo pode suportar mltiplos threads, cada qual associado a uma parte do cdigo da aplicao. Nesse caso, no necessrio haver diversos processos para a implementao da concorrncia. Threads compartilham o processador da mesma maneira que um processo, ou seja, enquanto um thread espera por uma operao de E/S, outro thread pode ser executado.

    Veja, na Figura 22, um esquema de funcionamento de processos multithread.

    Tabela 1 Tabela 2 Tabela 3

    Espao de endereamento

    Contexto de Hardware

    Contexto de Hardware

    Contexto de Hardware

    Cont

    exto

    de

    soft

    war

    e

    Figura 22: Processo multithreadFonte: Machado e Maia, 2004. Adaptao.

    Cada thread possui seu prprio contexto de hardware, porm, compartilha o mesmo contexto de software e espao de endereamento como os demais threads do processo. Por compartilharem o espao de endereamento, a comunicao entre os threads de um mesmo processo pode ser feita de forma simples e rpida. E o compartilhamento do

  • 44Everson Scherrer Borges

    contexto de software torna mais rpido a criao, a eliminao e o chaveamento de contexto dos threads.

    3.7.1 processos Foreground e Background e pipes

    Um processo possui, sempre associado sua estrutura, pelo menos dois canais de comunicao por onde so realizadas todas as entradas e sadas de dados ao longo do seu processamento. Os canais de entrada (input) e sada (output) de dados podem estar associados a terminais, arquivos, impressoras e at mesmo a outros processos.

    3.7.1.1 processo Foreground

    Um processo foreground aquele que permite a comunicao direta do usurio com o processo durante o seu processamento.

    Nesse caso, tanto o canal de entrada quanto o de sada esto associados a um terminal com teclado, mouse e monitor, permitindo, assim, a interao com o usurio. O processamento interativo tem como base processos foreground.

    Observe, na Figura 23, o funcionamento de um processo foreground.

    Terminal Terminal

    SadaEntrada

    Figura 23: Processo foregroundFonte: Machado e Maia, 2004. Adaptao.

    3.7.1.2 processo Background

    Um processo background aquele em que no existe a comunicao com o usurio durante o seu processamento. Nesse caso, os canais de E/S no esto associados a nenhum dispositivo de E/S interativo, mas, em geral, a arquivos de E/S. Em outras palavras, no h interao com o usurio, pois tanto a entrada quanto a sada so realizadas por meio de arquivos. O processamento do tipo batch (lote) realizado atravs de processos background.

    Observe, na Figura 24, o funcionamento de um processo background.

  • 45

    Sistemas Operacionais

    SadaEntrada

    Arquivo de entrada Arquivo de sada

    Figura 24: Processo backgroundFonte: Machado e Maia, 2004. Adaptao.

    3.7.1.3 pipe entre processos

    possvel associar o canal de sada de um processo ao canal de entrada de outro processo. Nesse caso, dizemos que existe um pipe ligando os dois processos. Por exemplo, se um processo A gera uma listagem e um processo B tem como funo orden-la, basta associar o canal de sada do processo A ao canal de entrada do processo B.

    Verifique, na Figura 25, o funcionamento de um processo foreground.

    Sada doProcesso A

    Sada doProcesso BProcesso A Processo B

    Entrada doProcesso B

    Entrada doProcesso A

    Figura 25: Pipe entre processosFonte: Machado e Maia, 2004. Adaptao.

    3.8 pROCESSOS dO SiStEma OpERaCiONaL

    O sistema operacional fornece um ambiente para a execuo de programas atravs de servios para os programas e para os usurios desses programas. Alguns servios no tm como preocupao apenas tornar a mquina mais confortvel para o usurio, mas, tambm, para que o prprio sistema seja mais eficiente e seguro. Apesar da forma como esses servios so oferecidos variar de sistema para sistema, existem algumas classes de servios que so comuns a todos os sistemas operacionais.

  • 46Everson Scherrer Borges

    Por vezes, possumos uma viso comum do sistema operacional, considerando-o como um software que como uma extenso da mquina. Fornecendo mais servios para os aplicativos e outros programas bsicos. No entanto, o sistema operacional pode ser considerado tambm um administrador e fornecedor de recursos (incluindo servios), pois ele cuida de todos os recursos que esto disponveis no computador, permitindo ao usurio utilizar a mquina (hardware + S.O) de maneira amigvel. Isso fundamental em qualquer mquina, tornando-se mais crtico naquelas que permitem mais de um usurio ao mesmo tempo.

    O conceito de processo, alm de estar associado a aplicaes de usurios, tambm pode ser implementado na prpria arquitetura do sistema operacional.

    Quando processos so utilizados para a implementao de servios do sistema, estamos retirando cdigo do seu ncleo, tornando-o menor e mais estvel. No caso de um ou mais servios no serem desejados, basta no ativar os processos responsveis, o que permitir liberar memria para os processos dos usurios. [1].

    A listagem a seguir apresenta alguns servios que o sistema operacional pode implementar por meio de processos:

    auditoria e segurana; servios de rede; contabilizao do uso de recursos; contabilizao de erros; gerncia de impresso; gerncia de jobs batch; temporizao; comunicao de eventos; interface de comandos (shell).

    3.8.1 processos Cpu-bound e i/O-bound

    Os processos podem ser classificados como CPU-bound (ligado Unidade Central de Processamento) ou I/O-bound (ligado a E/S), de acordo com a utilizao do processador e dos dispositivos de E/S. [5]

  • 47

    Sistemas Operacionais

    Um processo definido como CPU-bound quando passa a maior parte do tempo no estado de execuo, ou seja, utilizando o processador, o que pode ser observado na Figura 26. Esse tipo de processo realiza poucas operaes de leitura e gravao e encontrado em aplicaes cientficas que efetuam muitos clculos.

    Tempo

    E/S

    UCP

    Figura 26: Processo CPU-boundFonte: Machado e Maia, 2004. Adaptao.

    Um processo classificado como I/O-bound quando passa a maior parte do tempo no estado bloqueado, pois realiza um elevado nmero de operaes de E/S, o que se pode observar na Figura 27. Esse tipo de processo encontrado em aplicaes comerciais, que se baseiam em leitura, processamento e gravao.

    Tempo

    E/S

    UCP

    Figura 27: Processo I/O-boundFonte: Machado e Maia, 2004. Adaptao.

    Os processos interativos tambm so bons exemplos de processos I/O-bound, pela forma de comunicao entre o usurio e o sistema, que normalmente lenta devido utilizao de terminais. [5]

    3.9 SiNaiS

    O uso de Sinais um mecanismo que permite notificar processos sobre eventos gerados pelo sistema operacional ou por outros processos. A utilizao de sinais fundamental para a gerncia de processos, alm de possibilitar a comunicao e sincronizao entre processos.

  • 48Everson Scherrer Borges

    Um exemplo de uso de sinais quando algum utiliza uma sequncia de caracteres do teclado, como [Ctrl-C], para interromper a execuo de um programa (sugiro mudar o exemplo, pois Ctrl-C usado largamente como comando [Windows, Word, Excel, etc] para copiar um objeto selecionado).

    Nesse caso, o usurio gerou uma interrupo de hardware (teclado) por meio da digitao dessa combinao de teclas e, a partir dela, o sistema operacional gera um sinal indicando ao processo a ocorrncia do evento. No momento em que o processo identifica a chegada do sinal, uma rotina especfica de tratamento executada.

    Grande parte dos eventos associados a sinais gerada pelo sistema operacional ou pelo hardware, como a ocorrncia de excees, interrupes geradas por terminais, limites de quotas excedidos durante a execuo dos processos e alarmes de tempo. Em outras situaes, os eventos so gerados a partir de outros processos, com o propsito de sincronizar suas execues.

    InterrupesExcees

    Sinais

    ProcessoProcesso

    Hardware

    Sistema Operacional

    Figura 28: SinaisFonte: Machado e Maia, 2004. Adaptao.

    A gerao de um sinal (Figura 28) ocorre quando o sistema operacional, a partir da ocorrncia de eventos sncronos ou assncronos, notifica o processo atravs de bits de sinalizao localizados no seu PCB. Um processo no responde instantaneamente a um sinal, ou seja, os sinais ficam pendentes at que o processo seja escalonado, quando, ento, sero tratados. Por exemplo: quando um processo eliminado, o sistema ativa

  • 49

    Sistemas Operacionais

    o bit associado a esse evento. Assim, o processo somente ser excludo do sistema quando for selecionado para execuo, o que, nesse caso, possvel que demore algum perodo de tempo at ser eliminado de fato.

    Em algum momento, voc j fechou um programa em algum sistema operacional da famlia Windows e precisou execut-lo novamente, mas ele no iniciou? E voc recebeu uma exceo de que uma instncia do processo j estava em execuo? Fique tranquilo, este um problema muito fcil de resolver. O que aconteceu que, por algum motivo, o processo do programa no foi finalizado corretamente. O que voc precisa fazer acessar o Gerenciador de Tarefas atravs do conjunto de teclas CTRL+ALT+DEL, acessar o gerenciador de tarefas e finalizar o aplicativo em questo. Agora que voc j est mais entendido sobre processos, explore mais o Gerenciador de Tarefas e veja quantas execues inteis voc pode finalizar. O computador pode ficar mais rpido se voc finalizar algumas tarefas que no esto sendo utilizadas no momento (com menos tarefas simultneas). Mas tenha cuidado: se voc no tem certeza, ento deixe o processo como est.

    O tratamento de um sinal muito semelhante ao mecanismo de interrupes. Quando um sinal tratado, o contexto do processo salvo e a execuo desviada para um cdigo de tratamento de sinal (signal handler), geralmente no ncleo do sistema. Aps a execuo do tratador de sinais, o programa pode voltar a ser processado do ponto onde foi interrompido.

    Em certas implementaes, o prprio processo pode tratar o sinal por meio de rotinas de tratamento definidas no cdigo do prprio programa. possvel tambm que um processo bloqueie temporariamente ou ignore por completo alguns sinais. O mecanismo de sinais assemelha-se ao tratamento de interrupes e excees vistos anteriormente, porm, com propsitos diferentes. O sinal est para o processo assim como as interrupes e excees esto para o sistema operacional. [5]

  • 50Everson Scherrer Borges

    1. Defina o conceito de processo.

    2. Por que o conceito de processo to importante no projeto de sistemas multiprogramveis?

    3. Quais partes compem um processo?

    4. Defina os cinco estados possveis de um processo.

    5. Diferencie processos multithreads, subprocessos e processos independentes.

    6. Explique a diferena entre processos foreground e background.

    7. Cite 5 processos do sistema operacional.

    8. Qual a relao entre processo e a arquitetura microkernel?

    9. D exemplos de aplicaes CPU-bound e I/O-bound.

    10. Como posso finalizar um processo em um sistema operacional da famlia Windows?

    11. Pesquise e descubra como finalizar um processo no sistema operacional Linux em modo texto.

    12. O sistema operacional possui diversos servios que auxiliam o sistema operacional para seu adequado funcionamento, e dentre esses servio est a interface de comandos (shell). Descubra sua finalidade.

    13. Justifique com um exemplo a frase O sinal est para o processo assim como as interrupes e excees esto para o sistema operacional.

    [1] MACHADO, F.B. e MAIA, L.P. Arquitetura de Sistemas Operacionais. 4.ed. local? LTC, 2007.

    [2] SILBERSCHATZ, A., GALVIN, P.B., GAGNE, G. Fundamentos de Sistemas Operacionais. 6.ed. local? LTC, 2004.

    [3] TANENBAUM, A.S. Sistemas Operacionais Modernos. 2.ed. local? Pearson Brasil, 2007.

    [4] OLIVEIRA, R.S., CARISSIMI, A.S., TOSCANI, S.S. Sistemas Operacionais. 3.ed. local? Sagra-Luzzato. 2004.

    [5] SIMES, SERGIO NERY. Sistemas Operacionais I.1 ed. local ?IFES, 2008.

    6] SOARES, RICARDO DE MAGALHES. Sistemas Operacionais. 1 ed. local? Esab, 2008.

  • Caro aluno,

    nesta quarta aula voc entender como o funcionamento de um sistema de arquivos, suas propriedades, organizao dos arquivos, nomeao dos arquivos e diretrios, entre outros.

    Estes conceitos so muito importantes, pois atravs deles que

    podemos entender como internamente a organizao dos arquivos

    diretrios e pastas.

    O insucesso apenas uma oportunidade para recomear de novo com mais inteligncia. (Henry Ford)

    Bom estudo!

    4.1 iNtROduO

    Um sistema de arquivos o conjunto de normas que definem o modo como os dados do usurio, programas, informaes de configurao, entre outras, sero gravados e gerenciados nos dispositivos de armazenamento acessados pelo computador. Essas informaes sero armazenadas fisicamente nos dispositivos, e gerenciadas pelo sistema operacional atravs de estruturas de dados, que sero a representao lgica das informaes.

    O sistema de arquivos um conjunto de estruturas lgicas e de rotinas, que permitem ao sistema operacional organizar e controlar o acesso ao disco rgido (HD). Diferentes sistemas operacionais empregam diferentes sistemas de arquivos. Conforme aumenta a capacidade dos discos e aumenta o volume de arquivos, bem como o tamanho dos arquivos e os acessos, esta tarefa torna-se mais e mais complicada, exigindo o uso de sistemas de arquivos cada vez mais complexos e robustos.

    SiStEmaS dE aRquiVOS

  • 52Everson Scherrer Borges

    Existem diversos sistemas de arquivos diferentes, que vo desde sistemas simples como o FAT16, que utilizamos em cartes de memria, FAT32, que usado em pendrives e HD externos, at sistemas como o NTFS, EXT3 e ReiserFS, que incorporam recursos muito mais avanados.

    Um sistema operacional, em sua grande maioria, caracterizado pelo sistema de arquivos que utiliza, mas um mesmo sistema operacional pode utilizar mais de um sistema de arquivos para gerenciar o computador.

    4.2 ORGaNizaO dE um SiStEma dE aRquiVOS

    Grande parte dos sistemas de arquivos trabalha organizando os dados em blocos de informao, sendo que o tamanho de cada bloco depender de algumas caractersticas especficas de cada sistema de arquivos, e do dispositivo de armazenamento utilizado.

    Um exemplo de utilizao de blocos de informao pode ser o seguinte: em um disco-rgido de 40 GB utilizam-se blocos de informao de 4 KB de tamanho, assim o disco dividido em 10 milhes de blocos de informao.

    Os blocos de informao so utilizados, pois todo o controle da informao feito utilizando os blocos como unidade bsica de informao. Esse conceito surgiu no incio da utilizao de computadores, pois a limitao dos computadores impedia um controle mais apurado.

    O ideal era que cada unidade de informao correspondesse a um byte, mas, se isso fosse feito, seriam necessrios 40 bilhes de unidades de informao separadas no disco-rgido de 40 GB (em um computador de 32bits, o maior nmero que pode ser interpretado pelo processador um pouco maior que quatro bilhes).

    Como os computadores trabalham com nmeros binrios, os blocos de informao so mltiplos de dois e geralmente abrangem o seguinte intervalo: 512 bytes, 1024 bytes, 2048 bytes, at 65536 bytes, este ltimo

  • 53

    Sistemas Operacionais

    praticamente no utilizado nos sistemas operacionais atuais. No existe atualmente nenhum sistema que utiliza um bloco de informao inferior a 512 bytes, pois todos os discos-rgidos so divididos em blocos fsicos (chamados clusters) de informao de 512 bytes. Os blocos de informao podem ser entendidos como sendo formados por grupos de blocos fsicos de dados.

    No h possibilidade de gravar dados em um Hard Disk(HD) ou em disquete sem um sistema de arquivos, que consiste em uma estrutura que indica como os arquivos devem ser gravados e armazenados nos discos. Atravs do sistema de arquivos, possvel determinar o espao utilizado no disco, alm de ser o mtodo que permite gerenciar como partes de um arquivo podem ficar espalhadas no dispositivo de armazenamento. Outro detalhe importante que o sistema de arquivos determina como arquivos podem ser gravados, copiados, alterados, nomeados e at apagados, ou seja, toda e qualquer manipulao de dados em uma mdia necessita de um sistema de arquivos para que essas aes sejam possveis.

    Os dados gravados no sistema recebem o nome de arquivo. Um arquivo pode conter um relatrio de trabalho, um desenho, uma msica ou um programa. Cada arquivo possui um conjunto de propriedades que definiro a maneira como a informao dentro dele poder ser acessada. Se no houver estrutura de armazenamento e manipulao (sistema de arquivos), impossvel gravar dados.

    4.3 pROpRiEdadES dOS aRquiVOS

    Os arquivos possuem uma srie de propriedades que so utilizadas para definir a maneira como os dados sero lidos, atualizados, apagados, como ser mostrado o arquivo para o usurio, a data em que o arquivo foi criado, dentre outras. As principais propriedades de um arquivo encontradas nos sistemas operacionais atuais so:

    Modo de Acesso: esta propriedade define a maneira como o arquivo ser acessado, podendo ser basicamente da seguinte forma: o arquivo poder ou no ser lido, poder ou no ser escrito, e, se for um programa, o programa poder ou no ser executado;

    Modo de Exibio: aqui definido se o arquivo ser exibido ao usurio normalmente, ou se ficar oculto, no sendo exibido;

    Data de Criao: quando o arquivo criado, a data de criao armazenada;

  • 54Everson Scherrer Borges

    Data de Alterao: a cada instante em que o contedo do arquivo for modificado, ficar armazenada a data da alterao. Em sistemas que possuem apenas uma data como propriedade do arquivo, utiliza-se geralmente a data de alterao do arquivo na propriedade Data;

    Nome do Arquivo: esta propriedade identifica o arquivo, e atravs do nome que se tem acesso ao contedo do arquivo;

    Extenso do Arquivo: aqui ser definido o tipo do arquivo. Esta propriedade geralmente faz a associao do contedo de um arquivo com o programa utilizado, por exemplo, um arquivo relatrio de trabalho.doc possui o nome: relatrio de trabalho e a extenso.doc, que o associa com o programa MS-Word.

    Nos sistemas operacionais mais avanados, que utilizam critrios para diferenciar os usurios que utilizam o computador, os arquivos podem ter algumas propriedades que iro armazenar informaes sobre o usurio que criou o arquivo, e o modo de acesso que os outros usurios tero ao arquivo. O conjunto completo de propriedades que um arquivo possuir depender diretamente do sistema de arquivos utilizado pelo sistema operacional. Veja a Figura 29.

    Figura 29: Propriedades dos Arquivos

  • 55

    Sistemas Operacionais

    4.4 ORGaNizaO dOS aRquiVOS

    A organizao de arquivos consiste em como os seus dados esto internamente armazenados. A estrutura de dados pode variar em funo do tipo de informao contida no arquivo. Arquivos textos possuem propsitos completamente distintos de arquivos executveis, consequentemente, estruturas diferentes podem adequar-se melhor a um tipo do que a outro.

    Os arquivos ficam armazenados no disco-rgido e, para facilitar o gerenciamento dos arquivos, vrias tcnicas so empregadas, sendo que as principais so: a separao dos arquivos em Diretrios e a utilizao de uma Tabela de Arquivos.

    Arquivo um conjunto de registros definidos pelo sistema de arquivos e que podem ser armazenados em diferentes dispositivos fsicos. constitudo de informaes logicamente relacionadas, podendo representar programas ou dados.

    Cada arquivo possui informaes de controle denominadas atributos. Os atributos variam dependendo do sistema de arquivos, porm, alguns, como tamanho do arquivo, proteo, identificao do criador e data de criao esto presentes em quase todos os sistemas. [1].

    Um diretrio um mecanismo de organizao dos arquivos. Os arquivos so, sob um aspecto lgico-computacional, organizados primariamente em diretrios. Os diretrios podem ser criados e removidos pelo usurio e, por meio deles, o usurio consegue realizar a separao dos arquivos a partir de critrios definidos previamente. Alguns sistemas operacionais, durante a instalao do sistema no computador, criam alguns diretrios iniciais, que so utilizados para organizar os arquivos do prprio sistema operacional, e tambm para auxiliar o usurio apresentando uma pr-organizao que poder ou no ser seguida. Os diretrios recebem vrios nomes, entre eles: pastas e caminhos. No MS-Windows XP, a pasta Meus Documentos na rea de trabalho, corresponde ao diretrio: C:\Documents and Settings\\Meus documentos.

    A estrutura de diretrios como o sistema organiza logicamente os diversos arquivos contidos em um disco. O diretrio uma estrutura de dados que contm entradas associadas aos arquivos onde cada entrada armazena informaes como localizao fsica, nome, organizao e demais atributos. [1].

  • 56Everson Scherrer Borges

    A Tabela de Arquivos outro mecanismo utilizado pelos sistemas operacionais para organizar os arquivos (Figura 30), mas, nesse caso, a organizao pretendida para o tratamento dos dados fisicamente gravados no disco-rgido. Graas utilizao dessa tabela, os arquivos podem ser encontrados e editados sem que haja necessidade de mecanismos complexos ou demorados para se realizar esse trabalho. Na Tabela de arquivos, ficaro armazenadas basicamente as seguintes informaes: um identificador do arquivo (geralmente sendo o caminho do arquivo que inclui o diretrio completo e o nome do arquivo, mais um nmero de identificao nico para cada arquivo), e o nmero do primeiro bloco fsico de dados no disco-rgido.

    Quando um arquivo aberto, o sistema operacional procura a sua entrada na estrutura de diretrios, armazenando as informaes sobre atributos e localizao do arquivo em uma tabela mantida na memria principal. Esta tabela contm todos os arquivos abertos, sendo fundamental para aumentar o desempenho das operaes com arquivos. E importante que, ao trmino do uso de arquivos, este seja fechado, ou seja, que se libere o espao na tabela de arquivos abertos. [1].

    Fazendo uma analogia com uma situao de nosso doa a dia, essa organizao assemelha-se a uma biblioteca escolar. O bibliotecrio organiza os livros conforme o seu gosto, cuja busca, convenientemente, procura deixar mais fcil, sem ocupar muitas prateleiras e assegurando a integridade deste. Ainda, certamente, os livros so dispostos segundo suas caractersticas (assunto, censura, etc.). Depois de organizados, ou durante a organizao, o bibliotecrio cria uma lista com todos os livros da biblioteca, com seus assuntos, localizaes e cdigos respectivos.

    Figura 30: Organizao dos ArquivosFonte: http://pt.wikipedia.org/wiki/Sistema_de_ficheiros

  • 57

    Sistemas Operacionais

    4.5 NOmEaO dOS aRquiVOS E diREtRiOS

    Os sistemas de arquivos atualmente utilizados nos sistemas operacionais permitem a criao de arquivos e diretrios com nomes de at 255 caracteres. Mas, no incio, esse nmero era bem inferior. Na dcada de 1980 era comum o uso do MS-DOS, e este sistema permitia a criao de arquivos com no mximo 11 caracteres (8 caracteres no nome + 3 caracteres de extenso).

    Um detalhe importante na nomeao dos arquivos e diretrios o cuidado que se deve ter para no utilizar nenhum caractere especial, pois alguns so utilizados para auxiliar a organizao, exibio e administrao dos arquivos, como, por exemplo, os caracteres: /, ?, $, etc. Estes dependem do sistema de arquivos, que depende do sistema operacional.

    Por exemplo, nos sistemas Unix, se um arquivo comea com o caractere ., indica que o arquivo ficar oculto, e se comea com ~ significa que uma cpia de segurana.

    O sistema MS-Windows 95, ao ser lanado, permitiu a utilizao de nomes de arquivos com 255 caracteres, mas isso teve que ser feito com uma Tabela de Arquivos especial, pois deveria ser compatvel com o sistema MS-DOS e MS-Windows 3. Ou seja, quando o arquivo era visualizado a partir do MS-Windows 95, o nome era exibido corretamente; mas quando era visto no MSDOS ou MS-Windows 3, o nome era exibido no formato 8.3 caracteres.

    4.6 mEtadadOS dOS aRquiVOS

    Os