Você está na página 1de 72

Tcnico em Informtica

Operao de Computadores e Sistemas Operacionais

Fbio Justo dos Santos

Instituto Federal de Educao, Cincia e Tecnologia de So Paulo - IFSP

So Joo da Boa Vista - SP 2011

Presidncia da Repblica Federativa do Brasil Ministrio da Educao Secretaria de Educao a Distncia

Este Caderno foi elaborado em parceria entre o Instituto Federal de Educao, Cincia e Tecnologia de So Paulo - Campus So Joo da Boa Vista e o Sistema Escola Tcnica Aberta do Brasil e-Tec Brasil.
Equipe de Elaborao IFSP Coordenao Institucional Campus So Joo da Boa Vista Professor-autor Fbio Justo do Santos Comisso de Acompanhamento e Validao Gustavo Aurlio Prieto Yara Maria Guisso de Andrade Facchini Projeto Grfico Eduardo Meneses e Fbio Brumana Diagramao Matheus Flix de Andrade Reviso Elizabeth Gouveia da Silva Vanni

Apresentao e-Tec Brasil


Amigo(a) estudante! O Ministrio da Educao vem desenvolvendo Polticas e Programas para expansoda Educao Bsica e do Ensino Superior no Pas. Um dos caminhos encontradospara que essa expanso se efetive com maior rapidez e eficincia a modalidade adistncia. No mundo inteiro so milhes os estudantes que frequentam cursos a distncia. Aqui no Brasil, so mais de 300 mil os matriculados em cursos regulares de Ensino Mdio e Superior a distncia, oferecidos por instituies pblicas e privadas de ensino. Em 2005, o MEC implantou o Sistema Universidade Aberta do Brasil (UAB), hoje, consolidado como o maior programa nacional de formao de professores, em nvel superior. Para expanso e melhoria da educao profissional e fortalecimento do Ensino Mdio, o MEC est implementando o Programa Escola Tcnica Aberta do Brasil (e-TecBrasil). Espera, assim, oferecer aos jovens das periferias dos grandes centros urbanose dos municpios do interior do Pas oportunidades para maior escolaridade, melhorescondies de insero no mundo do trabalho e, dessa forma, com elevado potencialpara o desenvolvimento produtivo regional. O e-Tec resultado de uma parceria entre a Secretaria de Educao Profissionale Tecnolgica (SETEC), a Secretaria de Educao a Distncia (SED) do Ministrio daEducao, as universidades e escolas tcnicas estaduais e federais. O Programa apia a oferta de cursos tcnicos de nvel mdio por parte das escolaspblicas de educao profissional federais, estaduais, municipais e, por outro lado,a adequao da infra-estrutura de escolas pblicas estaduais e municipais. Do primeiro Edital do e-Tec Brasil participaram 430 proponentes de adequaode escolas e 74 instituies de ensino tcnico, as quais propuseram 147 cursos tcnicosde nvel mdio, abrangendo 14 reas profissionais. O resultado desse Edital contemplou193 escolas em 20 unidades federativas. A perspectiva do Programa que sejam ofertadas10.000 vagas, em 250 polos, at 2010.

Assim, a modalidade de Educao a Distncia oferece nova interface para amais expressiva expanso da rede federal de educao tecnolgica dos ltimos anos: aconstruo dos novos centros federais (CEFETs), a organizao dos Institutos Federaisde Educao Tecnolgica (IFETs) e de seus campi. O Programa e-Tec Brasil vai sendo desenhado na construo coletiva e participaoativa nas aes de democratizao e expanso da educao profissional no Pas,valendo-se dos pilares da educao a distncia, sustentados pela formao continuadade professores e pela utilizao dos recursos tecnolgicos disponveis. A equipe que coordena o Programa e-Tec Brasil lhe deseja sucesso na sua formaoprofissional e na sua caminhada no curso a distncia em que est matriculado(a). Braslia, Ministrio da Educao setembro de 2008.

Sumrio

Apresentao e-Tec Brasil Sumrio Outros - instituio validadora Unidade 1 - Introduo


1.1 Sistemas operacionais de computadores de grande porte 1.2 Sistemas operacionais de servidores 1.3 Sistemas operacionais de computadores pessoais 1.4 Sistemas operacionais de computadores de tempo real 1.5 Sistemas operacionais embarcados 1.6 Outros Conceitos 1.7 Consideraes Finais Exerccios

3 5 9 11
13 13 13 13 14 14 17 18

Unidade 2 - Gerncia de Processo


2.1 Escalonamento de Processos 2.1.1 FIFO 2.1.2 Menor Job Primeiro No Preemptivo 2.1.3 Menor Job Primeiro Pre-emptivo 2.1.4 Round Robin 2.1.5 Maior Prioridade Preemptivo 2.2 Consideraes Finais Exerccios

19
20 22 24 25 26 28 30 30

Unidade 3 - Gernciamento de Momento


3.1 Monoprogramao sem swapping ou paginao 3.2 Multiprogramao e utilizao da memria 3.3 Multiprogramao com parties fixas 3.4 Multiprogramao com parties variveis 3.5 Gerncia de memria com lista ligadas

33
34 34 36 37 38

3.6 Memria Virtual 3.6.1 Paginao 3.6.1.1 Algoritmo timo de substituio de pginas 3.6.1.2 Troca de pginas no usadas recentemente (NUR) 3.6.1.3 Algoritmo FIFO 3.6.1.4 Algoritmo segunda chance 3.6.1.5 Algoritmo da pg. usada h mais tempo 3.6.2 Segmentao Exerccios

39 40 42 42 43 44 44 45 47

Unidade 4 - Sistema de Arquivos


4.1 Arquivos 4.2 Diretrios 4.3 Implementao do sistema de arquivos 4.3.1 Alocao Contgua 4.3.2 Alocao por lista encadeada 4.3.3 Lista encadeada com tabela na memria 4.3.4 I-nodes 4.4 Consideraes Finais Exerccios

50
51 52 54 54 55 56 56 57 58

Unidade 5 - Gerncia de Entrada e Sada


5.1 Princpios de Hardware 5.1.1 Dispositivos de E/S 5.1.2 Controladores de dispositivos 5.1.3 Acesso direto memria (DMA) 5.2 Princpios de Software 5.2.1 Drivers 5.2.2 Software de E/S independente dos dispositivos 5.3 Discos 5.3.1 Hardware de Disco 5.3.2 Software de Disco Exerccios

60
61 61 62 63 63 64 64 66 66 68 70

Referncias

68

Outros - instituio validadora


O Decreto presidencial n 7.566, de 23 de setembro de 1909, institucionalizou o ensino profissional no Brasil. Em 1910 surgiu a Escola de Aprendizes e Artfices de So Paulo, assemelhando-se a das criadas em outras capitais de Estado. Ela se destinava inicialmente as camadas mais desfavorecidas, aos deserdados da fortuna e menores marginalizados, ministrando o ensino elementar. Em 1937 passou a denominar-se Liceu Industrial de So Paulo, oferecendo ensino equivalente ao de primeiro ciclo. Em 1942 foi promulgada a Lei orgnica do ensino industrial. A nova orientao visava preparao profissional dos trabalhadores da indstria, dos transportes, das comunicaes e da pesca. Em 1976, procedeu-se mudana para a nova sede e, em 1978, criaram-se os cursos de eletrnica, telecomunicaes e processamento de dados. Em 1981, instalam-se os cursos complementares de mecnica, eletrotcnica e edificaes, destinados clientela, em grande parte integrada ao mercado de trabalho, mais que necessitava de uma formalizao profissional por meio de disciplinas de nvel tcnico de 2 grau. Estes cursos tcnicos tinham a durao de dois anos, prevendo um estgio obrigatrio. No ano de 1987 foi implantada a primeira Unidade de Ensino Descentralizada (UNED) no Municpio de Cubato e, em 1996, ocorreu o incio do funcionamento da UNED Sertozinho. Em 1999, a Escola Tcnica Federal de So Paulo, foi transformada em Centro Federal de Educao Tecnolgica de So Paulo CEFET, conforme Decreto de 18 de janeiro de 1999. No ano de 2005, foi autorizado o funcionamento da UNED Guarulhos. As UNED de So Joo da Boa Vista e Caraguatatuba foram autorizadas a funcionar a partir do 1 semestre do ano de 2007, enquanto que as UNED de Bragana e Salto passaram a funcionar no 2 semestre do ano de 2007. Em 2008 foram criadas as unidades de So Carlos, So Roque e Campos do Jordo. No mesmo ano o CEFET-SP se transformou no Instituto Federal de Educao Cincia e Tecnologia pela Lei 11.892 de 29 de Dezembro de 2008, que instituiu a rede federal de educao profissional, cientfica e tecnolgica. De acordo com esta lei os institutos federais (IF) tornaram-se instituies de educao superior, bsica e profissional, pluricurriculares e multicampi, especializados na oferta de educao profissional e tecnolgica nas diferentes modalidades de ensino, com base na conjugao de conhecimentos tcnicos e tecnolgicos com as suas prticas pedaggicas. A expanso do CEFET-SP tem ainda previstas os Campus de Araraquara, Avar, Barretos, Birigui, Campinas, Catanduva, Itapetininga, Piracicaba, , Presidente Epitcio, Registro, Suzano e Votuporanga.

e-Tec Brasil

Tcnico em Informtica para Internet

A Unidade de Ensino Descentralizada de So Joo da Boa Vista uma unidade educacional subordinada ao Centro Federal de Educao Tecnolgica de So Paulo, autorizada pela Portaria n 1715 do Ministro da Educao, publicada no Dirio Oficial da Unio de 20/10/2006. Tem estrutura administrativa definida pela resoluo n 136/06 de 16/11/2006 do Conselho Diretor do CEFET-SP. A histria do campus se inicia no ano de 1998 quando formulado o projeto para a criao do CEPRO em So Joo da Boa Vista. No ano seguinte o anteprojeto aprovado pelo Programa de Expanso da Educao Profissional (PROEP). No mesmo ano se d o incio das obras para construo do prdio em terreno doado por Paulo Roberto Merlin e Flvio Augusto Canto. Em 2004, o prdio entregue com 2529m, sendo constitudo de onze laboratrios, seis salas de aulas, um auditrio com capacidade para 150 lugares, sala de multimdia e demais dependncias. As atividades do Centro de Educao Profissional so iniciadas em 2005. Em 2006 firmado o convnio entre o CEPRO e CEFET-SP, com apoio da prefeitura municipal para a federalizao da unidade. Em Janeiro de 2007 o CEFET-SP / UNED SBV iniciou suas atividades no municpio. O IFSP, no municpio de So Joo da Boa Vista, veio para atender a necessidade de educar os jovens so joanenses e da regio, a fim de habilit-los para o ingresso nos setores de indstria e informtica, os quais demandam trabalhadores capacitados para o progresso no desenvolvimento econmico e para o fortalecimento do plo educacional na regio leste do estado. Atuao do IFSP na Educao a Distncia No contexto da poltica de expanso da educao superior no pas, implementada pelo MEC, a EaD coloca-se como uma modalidade importante no seu desenvolvimento. Nesse sentido, criou-se uma direo para EaD dentro do IF SP. No mbito da poltica de expanso da educao profissionalizante, o Ministrio da Educao, por meio da articulao da Secretaria de Educao a Distncia e Secretaria de Educao Profissional e Tecnolgica, lana o Edital 01/2007/SEED/SETEC/MEC, dispondo sobre o Programa Escola Tcnica Aberta do Brasil (e-Tec Brasil). Tal iniciativa constitui-se uma das aes do Plano de Desenvolvimento da Educao. Visando oferta de cursos da educao tcnica e profissional o IF SP foi selecionado pelo programa e-Tec Brasil para iniciar suas atividades em 2009. Tais atividades foram efetivamente implantadas em agosto de 2009 com a criao de dois cursos tcnicos a saber: tcnico em informtica para internet e tcnico em administrao atingindo 5 municpios do estado de So Paulo (Araraquara, Barretos, Itapevi, Franca e Jaboticabal) e ampliando em 500 a oferta de vagas do Instituto.

Operao de Computadores e Sistemas Operacionais

e-Tec Brasil

UNIDADE 1 - INTRODUO

Objetivos da aula
- Compreender os conceitos bsicos, referentes aos sistemas operacionais

As recentes mudanas na indstria da informtica tornaram os computadores pessoais (PC Personal Computer), ou desktop, mais baratos e ao mesmo tempo mais poderosos. Atualmente, possvel encontrar no mercado desde computadores pequenos e baratos, at grandes e poderosos. Independente de seu tamanho, custo e capacidade, todos os computadores possuem vrias caractersticas em comum, sendo a principal delas a necessidade de um sistema operacional para seu correto funcionamento. Mas ento, o que um sistema operacional (SO)? Basicamente um SO tem duas funes principais. A primeira delas gerenciar o funcionamento de todo o hardware do computador e, a segunda, fornecer os recursos lgicos para que os aplicativos possam funcionar corretamente. Desta forma podemos definir um sistema operacional como: O software responsvel por gerenciar todos os recursos de hardware e por fornecer a base lgica sobre a qual diversos programas e aplicativos so executados. A partir desta definio podemos concluir que, se o SO quem gerencia todos os recursos de hardware, tambm ele quem d as instrues ao mesmo, ou seja, o usurio utiliza-se do SO para aproveitar da melhor maneira seus recursos de hardware. Desta forma, cabe ento ao sistema operacional servir de interface entre os usurios e os recursos de hardware disponveis. A Figura 1.1 ilustra este processo. Shay (1996) utiliza uma analogia bastante interessante para descrever a funo de um SO. Imagine que voc tenha a nica calculadora disponvel em um determinado reino totalmente isolado do resto da populao e que neste lugar houvesse muitas pessoas querendo usar esta calculadora.

Operao de Computadores e Sistemas Operacionais

11

e-Tec Brasil

Figura 1: Atuao do sistema operacional como intermediador entre o hardware, os aplicativos e o usurio

Como voc atenderia a necessidade de todos com apenas uma calculadora? Quem usaria a calculadora primeiro? O que voc faria se algum se apossasse da calculadora por muito tempo? O que faria se algum insistisse que seus clculos so secretos e que ningum poderia ter conhecimento? O que faria se quisessem armazenar seus resultados em algum lugar? Estas situaes so semelhantes s que um SO enfrenta corriqueiramente. Desta forma, um sistema operacional responsvel por muitas coisas, dentre as quais podemos destacar (Shay, 1996): Permite que os programas armazenem e obtenham informaes; Isola (livra) os programas dos detalhes especficos de hardware; Controla o fluxo de dados entre os componentes do computador; Permite que os programas sejam executados sem a interferncia de outros programas; Responde aos erros ou a solicitaes do usurio. Ao contrrio do que muitos imaginam, existe uma ampla variedade de SO. Neste documento estaremos apresentando cinco diferentes tipos de sistemas operacionais, conforme abordagem apresentada em Tanenbaum (2003).

e-Tec Brasil

12

Tcnico em Informtica para Internet

1.1 Sistemas operacionais de computadores de grande porte


No topo de todos os tipos de sistemas operacionais, esto os SO para computadores de grande porte. Sua principal diferena para os computadores pessoais, est na capacidade de E/S (Entrada/Sada). Um computador de grande porte com mil discos e dezenas, centenas ou at milhares de terabytes de dados no algo incomum. Estes computadores esto ressurgindo, principalmente como sofisticados servidores Web. Os sistemas operacionais para grandes computadores so, sobretudo, desenvolvidos para o processamento simultneo de muitos jobs (tarefas/processos), sendo que a maioria precisa de quantidades prodigiosas de E/S. Um exemplo de sistema operacional de grande porte o OS/390, um descendente do OS/360.

1.2 Sistemas operacionais de servidores


Um nvel abaixo esto os sistemas operacionais de servidores que so como grandes computadores pessoais. Estes computadores tm como caracterstica servir mltiplos usurios de uma s vez em uma rede, permitindo-lhes compartilhar recursos de hardware e software. Servidores podem fornecer servios de impresso, servios de arquivos ou Web. Sistemas operacionais tpicos de servidores so Unix, Windows 2003 e Linux.

1.3 Sistemas operacionais de computadores pessoais


Esta categoria de sistemas operacionais certamente a mais conhecida (ou talvez a nica) pela maior parte dos usurios. Basicamente os sistemas operacionais desta classe tm como objetivo fornecer uma boa interface para os usurios. Sua aplicao tem foco no uso de processadores de texto, planilhas e acesso Internet. Exemplos comuns so: o Windows XP, Windows Vista e a distribuio Ubuntu do Linux.

1.4 Sistemas operacionais de tempo real


O principal parmetro de referncia para estes sistemas o tempo. Em sistemas de controle de processos industriais, computadores de tempo real devem coletar dados e utiliz-los para controlar as mquinas na linha de produ-

Operao de Computadores e Sistemas Operacionais

13

e-Tec Brasil

o. Por exemplo, se um carro est se movendo por uma linha de montagem, determinadas aes devem ser realizadas em momentos especficos. Se um rob soldador adiantar ou atrasar o momento em que deve efetuar seu servio (soldar), certamente aquele veculo ser perdido. Dois exemplos de sistemas operacionais de tempo real bastante conhecidos so o VxWorks e o QNX.

1.5 Sistemas operacionais embarcados


Os sistemas operacionais de computadores de mo so denominados sistemas operacionais embarcados. Um computador de mo ou PDA (personal digital assistent) pode se utilizar de um SO embarcado. Entretanto, a ocorrncia mais comum deste sistema, est em dispositivos que muitas vezes nem so considerados computadores, como: aparelhos de TV, microondas, telefones mveis e ar condicionado. Muitos destes sistemas apresentam caractersticas semelhantes ao de tempo real, mas tambm possuem restries de tamanho, memria e consumo de energia. Exemplos comuns destes sistemas so o PalmOS e o Windows CE.

1.6 Outros conceitos


Antes de darmos sequncia ao estudo de nosso contedo, essencial que abordemos algumas definies bsicas relacionadas ao estudo de Sistemas Operacionais. Dentre elas podemos destacar os conceitos sobre processos, multiprocessamento, multiprogramao, interpretador de comandos, chamadas de sistemas e deadlock. Um processo nada mais do que um programa em execuo. Cada programa em execuo pode ser considerado como uma entidade ativa, que compete por recursos oferecidos pelo sistema (acesso a discos, perifricos e CPU) alm de interagir com outros processos (entidades ativas ou programas). Existem trs estados possveis para um processo, dos quais ele pode estar somente em um por vez. Executando (usando a CPU para executar as instrues do programa), Bloqueado (aguardando a liberao de recursos de hardware no disponveis no momento alm da CPU) ou Ativo (aguardando apenas a CPU para ser executado pronto para ser executado). Outro conceito importante o de multiprogramao. Para a compreenso deste conceito preciso entender o que um sistema monoprogramado e um sistema multitarefa. Um sistema monoprogramado tem a capacidade de executar somente um processo por vez, no suportando a execuo de pro-

e-Tec Brasil

14

Tcnico em Informtica para Internet

cessos concorrentes. Um sistema multitarefa gerencia vrios processos em execuo ao mesmo tempo, transparecendo ao usurio que todos eles so executados simultaneamente. Multiprogramao um conceito mais amplo do que multitarefa, e denota um sistema operacional que realiza o gerenciamento total dos recursos de hardware, como: CPU, memrias, sistemas de arquivos, dentre outros, alm de suportar a execuo concorrente de processos. Para exemplificar melhor o conceito de sistema multiprogramado, a Figura 1.2 representa seu uso comparado a um sistema monoprogramado.

Figura 2: (a) Sistema monoprogramvel; (b) Sistema multiprogramvel

Ainda que a boa parte dos computadores possua uma nica CPU que executa instrues uma a uma, certos projetos permitiram que a velocidade de processamento fosse incrementada, tornando possvel a execuo de vrias instrues ao mesmo tempo. Um computador com mltiplos processadores que compartilhem uma memria principal, chamado de multiprocessador ou sistemas fortemente acoplados. Desta forma, o conceito de multiprocessamento est diretamente relacionado ao uso de dois ou mais processadores em um mesmo sistema. H outro conceito relacionado, denominada multicomputadores ou sistemas fracamente acoplados. Nestes casos, estes sistemas caracterizam-se por possuir dois ou mais sistemas computacionais conectados atravs de linhas de comunicao. Cada sistema funciona de forma independente, possuindo seu prprio sistema operacional e gerenciando seus prprios recursos, como: UCP, memria e dispositivos de E/S (Machado & Maia, 2007). O Shell, ou interpretador de comandos, um processo responsvel pela interface entre o sistema operacional e o usurio. Esse processo l um dispositivo de entrada espera de comandos, analisa-os e passa seus parmetros ao sistema operacional. Servios como login e logout do usurio, execuo de programas e manipulao de arquivos so solicitadas atravs do interpretador de comandos. Da mesma forma que o interpretador de comandos a interface entre o sistema operacional e o usurio, as chamadas de sistema (system

Operao de Computadores e Sistemas Operacionais

15

e-Tec Brasil

calls) constituem a interface entre programas aplicativos e o sistema operacional. As chamadas de sistema so funes que podem ser ligadas com os aplicativos, provendo servios como leitura do relgio interno, operaes de E/S (Entrada e Sada) e comunicao interprocessos. A Figura 1.3 representa o modo de atuao de uma chamada de sistema dentro de um sistema operacional.

Figura 3: Relao entre kernel, chamadas de sistemas, interpretador de comandos e aplicativos

O ncleo da Figura 1.3, identificada pelo nmero 1, representa o kernel do sistema operacional, onde esto os cdigos responsveis por manipular o hardware da mquina e gerenciar todo o funcionamento da mesma. Para esconder os comandos de baixo nvel existentes no ncleo do sistema operacional, a camada identificada pelo nmero 2 representa as chamadas de sistemas e o interpretador de comandos j explicados anteriormente. Por fim, interagindo com a camada 2, esto os aplicativos e os usurios, respectivamente. Outro termo relativamente comum nos estudos de sistemas operacionais o deadlock. Um deadlock uma ocorrncia de sistemas multiprogramados, onde um ou mais processos aguardam por um evento ou recurso que jamais ir ocorrer. Um bloqueio perptuo, ou deadlock, ocorre em duas situaes diferentes. Na primeira delas um processo colocado em espera por algo que SO no possui nenhuma previso de quando o atendimento desta espera poder ocorrer. Neste caso, dizemos que ocorreu um deadlock de um processo nico (one-process deadlock). A segunda situao culmina em um arranjo circular onde um processo A, que detm um recurso R1, necessita de um recurso R2 para ser executado. Entretanto, R2 encontra-se alocado para um processo B, que por sua vez, est aguardando o recurso R1 alocado para o processo A. Como nenhum dos dois processos se dispe a liberar o recurso alocado para ele, ocorre ento uma situao de deadlock.

e-Tec Brasil

16

Tcnico em Informtica para Internet

1.7 Consideraes finais


Um sistema operacional certamente o principal software de um computador. Entretanto, estes sistemas simplesmente atuam como um intermediador entre os diversos aplicativos que utilizamos para realizar as mais variadas tarefas do dia a dia. Ou seja, na verdade pouco, ou quase nada, utilizamos de um sistema operacional para desenvolver um texto, criar um desenho ou ouvir uma msica. Porm, a compreenso de seu funcionamento de extrema importncia para o bom uso de um computador, aplicativos e seus recursos hardware e/ou software. Nos captulos seguintes sero apresentados os conceitos relativos a processos, gerncia de memria, sistemas de arquivos e gerncia de entrada e sada. Atividades 1. Pesquise sobre outros conceitos de SO alm dos apresentados aqui. Aps a leitura, crie uma definio de SO de acordo com o seu entendimento. 2. Explique resumidamente cada um dos tipos de sistemas operacionais abaixo. Cite ao menos um exemplo de SO para cada um deles. a. Sistemas operacionais para computadores de grande porte; b. Sistemas operacionais de computadores pessoais; c. Sistemas operacionais embarcados; d. Sistemas operacionais servidores; e. Sistemas operacionais de tempo real; 3. Faa uma comparao entre sistemas monoprogramados, multitarefas e multiprogramados. 4. O que um deadlock? 5. Pesquise a respeito de DMA (Direct Access Memory). Descreva seu objetivo, funcionamento e benefcios.

Operao de Computadores e Sistemas Operacionais

17

e-Tec Brasil

6. Descreva em uma linha processos. 7. Qual a relao entre chamadas de sistema e interpretador de comandos? O que eles possuem em comum? 8. Monte uma apresentao (ou discuta no frum) a respeito das caractersticas tcnicas de um sistema operacional alternativo. Pesquise na Internet sobre estes tipos de sistema e discuta com o professor atravs dos fruns no ambiente virtual sobre qual a melhor opo de tema para estudo (individual). Procure levantar caractersticas como a aplicao do SO em estudo, plataforma, caractersticas de hardware necessrio, tipo de SO, dentre outras. O estudo e o desenvolvimento de sistemas operacionais requerem a compreenso de um conceito fundamental: processo computacional. Como mencionado no captulo anterior, um processo nada mais do que um programa em execuo. Este programa certamente possui um objetivo definido, requer o uso de determinados recursos e possui uma durao finita. Dentre as propriedades pertencentes a um processo, duas delas merecem destaque. A primeira o resultado de sua execuo, independente da velocidade com que ela ocorre. A segunda propriedade diz que se um processo for executado novamente com os mesmos dados, necessariamente ele passar pelo mesmo conjunto de instrues, executados na mesma sequncia e, o resultado fornecido ser o mesmo em todas as vezes que for executado (Tanenbaum, 2003). Atualmente, todos os computadores modernos so capazes de realizar diversas tarefas em paralelo. Enquanto executa o programa de um usurio, o mesmo computador capaz de ler uma unidade de armazenamento de dados ou utilizar um perifrico qualquer. Normalmente, o que ocorre internamente o compartilhamento da CPU por parte dos processos que a requer, em perodos da ordem de milsimos de segundos, dando ao usurio a impresso de paralelismo. Isso nos leva concluso de que o tempo total para a execuo de um processo em funo da quantidade de processos competindo pela CPU. Isto implica que o tempo de execuo de um processo varia a cada nova execuo, dependendo diretamente da carga da mquina, em razo da concorrncia entre os processos pela CPU. Entretanto, o quando executado com os mesmos dados e instrues, o resultado da execuo ser o mesmo independente do tempo requerido para sua concluso.

e-Tec Brasil

18

Tcnico em Informtica para Internet

UNIDADE 2 - GERNCIA DE PROCESSO


Objetivos da aula
- Compreender como o sistema operacional gerencia os processos - Diferenciar e compreender os diferentes tipos de escalonamento de processos

2.1 Escalonamento de processos


Uma das caractersticas comuns aos sistemas multiprogramados, a existncia de mais de um processo ativo (pronto para executar) competindo pelo uso da CPU. Nestes casos dever ser feita a escolha de qual processo dever ser executado primeiro, dentre todos os que esto na fila (ativos). A parte do sistema que faz a escolha denominada escalonador, que utiliza um algoritmo de escalonamento para determinar a sequncia de execuo dos processos que competem pela CPU (Tanenbaum, 2003). Segundo Tanenbaum (1999), com o advento dos sistemas de compartilhamento de tempo, com mltiplos usurios, que muitas vezes devem combinar a execuo das tarefas destes usurios com a execuo de jobs, em batch rodando em background, o algoritmo de escalonamento tornou-se mais complexo. As principais caractersticas que um bom algoritmo de escalonamento deve apresentar so: Justia: garantir que todos os processos do sistema tenham chances iguais de uso da CPU; Eficincia: manter o processador ocupado 100% do tempo; Tempo de resposta: minimizar o tempo de resposta para os usurios de programas interativos; Turnaround (tempo de espera): minimizar o tempo que os usurios batch

Operao de Computadores e Sistemas Operacionais

19

e-Tec Brasil

(de programas no interativos como, por exemplo: compilao e impresso) devem esperar pela sada; Throughput (vazo): maximizar o nmero de jobs processados e finalizados em uma unidade de tempo (usualmente uma hora). Embora cada processo seja uma entidade independente, muitas vezes eles precisam concorrer por recursos e interagir com outros processos. Na Figura 2.1, extrada de Tanenbaum (2003), so apresentados os trs estados de um processo e suas possveis interaes.

Figura 4: Estados de um processo e suas transies

Conforme descrito em Tanenbaum (2003), quatro mudanas de estado so possveis de acordo com a figura acima. A transio 1 ocorre sempre que um processo descobre que no tem mais condies lgicas de prosseguir em seu processamento, seja por ter que aguardar algum dado ou alguma instruo do usurio, ou ento por precisar aguardar o resultado de outro processo ou a liberao de um recurso. Em alguns sistemas, para ir ao estado de bloqueado, executada uma chamada de sistema block, alterando o estado de um processo de executando para bloqueado. As transies 2 e 3 so causadas pelo escalonador de processos quando um processo preemptado, sem que o mesmo tome conhecimento das rotinas responsveis por esta mudana. A transio 2 ocorre, quando o escalonador decide que o processo corrente j ocupou o processador por tempo suficiente ou ento pelo fato de existir outro processo de maior prioridade no estado pronto, sendo, portanto, o momento de deixar que outro processo assuma a CPU e v para o estado executando. A transio 3 ocorre quando um outro processo libera a CPU e d a oportunidade para que o primeiro da fila seja executado. A funo do escalonador de processos (decidir qual processo vai rodar e por quanto tempo) importantssima, sendo nosso prximo objeto de estudo. Sempre que um evento externo pelo qual o processo bloqueado estava aguardando ocorrer, esta ao resultar na ocorrncia da transio 4. Como

e-Tec Brasil

20

Tcnico em Informtica para Internet

exemplo, a concluso de uma operao de E/S pode alterar o estado de um processo de bloqueado para pronto. Se nenhum outro processo estiver rodando neste momento, a transio 3 acionada imediatamente, e o processo que aguardava uma determinada ocorrncia ser executado. Caso contrrio, ele permanecer no estado pronto at que o processador fique disponvel e o escalonador o escolha para rodar. Existem duas classes de polticas de escalonamento de processos, a preemptiva e a no preemptiva. O escalonamento no preemptivo foi o primeiro tipo de escalonamento implementado nos sistemas multiprogramveis, onde predominava tipicamente o processamento batch. Neste tipo de escalonamento, quando um processo assume a CPU, nenhum evento externo ir interromp-lo at que ele seja concludo, ou seja, ele somente ir sair do estado de execuo quando for concludo ou se houver alguma instruo do prprio cdigo que ocasione uma mudana para o estado de espera (Machado & Maia, 2007). No escalonamento preemptivo, o sistema operacional pode interromper um processo em execuo a fim de liberar processamento para outro processo que se encontra na fila de pronto. Com o uso da preempo possvel ao sistema priorizar a execuo de determinados processos, como no caso de aplicaes de tempo real, onde o fator tempo crtico (Machado & Maia, 2007). Outro benefcio a possibilidade de implementar polticas de escalonamento que compartilhem o processador de maneira uniforme, aumentando assim o throughput, diminuindo o tempo de espera e permitindo uma programao concorrente mais justa Dentre os algoritmos de escalonamento no preemptivos que iremos estudar, sero abordados o First-In-First-Out (FIFO) e o Shortest-Job-First (SJF), este ltimo tambm conhecido como Menor Job Primeiro No Preemptivo. Os algoritmos preemptivos apresentados neste documento so o de Menor Job Primeiro Preemptivo, o Round Robin e o de Maior Prioridade Preemptivo.

2.1.1 FIFO
Tambm conhecido como First-Come-First-Served (FCFS) o FIFO talvez seja a estratgia de escalonamento mais simples que exista. Neste algoritmo os processos so selecionados para execuo de acordo com sua ordem de chegada na fila de processos prontos do sistema. Uma vez que um processo assuma o controle da CPU, ele ir rodar at ser concludo. Por esta caracterstica FIFO considerado um algoritmo de escalonamento no preemptivo.

Operao de Computadores e Sistemas Operacionais

21

e-Tec Brasil

Esta poltica de escalonamento justa no sentido de que todos os processos sero executados e na ordem de chegada, mas injusta no sentido que grandes processos podem fazer pequenos processos esperarem. Outro problema, que jobs sem grande importncia podem ser executados antes de jobs de maior importncia, fazendo com que estes ltimos tenham que esperar. Apesar de garantir que, em situaes onde no ocorra, por exemplo, um deadlock, todos os processos/jobs sejam executados, este algoritmo no apresenta bons resultados no escalonamento de processos interativos e em sistemas multitarefa/multiprogramado, por no garantir bons resultados nos tempos de resposta. Para exemplificar o funcionamento deste algoritmo, suponha que quatro processos (P1, P2, P3 e P4) tenham sido criados e que cada um possua, respectivamente, a durao (Burst Time) de 4, 8, 6 e 5 unidades de tempo (u.t.) cada um. Vamos supor que estes processos chegaram para ser executados no mesmo instante (zero) e na ordem acima (P1, P2, P3 e P4). Para representar a execuo destes processos podemos construir o grfico de Gantt conforme apresentado na Figura 5.

Figura 5: Grfico de Gantt

Mas quais so as informaes mais importantes que podemos extrair deste grfico? Uma informao importante o tempo mdio de espera apresentado por cada algoritmo. O procedimento para calcular este valor simples. Basta saber o quanto cada processo aguardou para ser executado. A mdia aritmtica destes valores apresentar o Tempo Mdio de Espera do algoritmo analisado para uma determinada situao. A frmula abaixo nos permite calcular o tempo de espera para cada processo Pi , com i = 1,2,...,n , onde n representa o nmero total de processos criados e o processo em anlise. (1)

e-Tec Brasil

22

Tcnico em Informtica para Internet

Onde:

Depois de calculado o TEPi para todos os processos, o Tempo Mdio de Espera (TME) do algoritmo para uma determinada situao calculado pela mdia aritmtica, conforme a Equao (2). (2) Este parmetro torna-se um importante valor de referncia para determinar qual o melhor algoritmo em cada uma das situaes possveis. As Equaes (1) e (2) podem ser utilizadas para calcular o tempo mdio de espera em qualquer um dos algoritmos de escalonamento de processos apresentados neste material.

2.1.2 Menor Job Primeiro No Preemptivo


A maior parte dos algoritmos analisados neste documento foram projetados para sistemas interativos. O algoritmo do menor job, primeiro foi desenvolvido para aplicaes no interativas (em batch), onde o tempo mdio de execuo de um processo conhecido com antecedncia (Tanenbaum, 1999). Assim, o processo em estado de pronto que precisar do menor tempo de CPU para ser finalizados, ser selecionado para execuo. A Figura 2.3, adaptada de Silberschatz, et. al (1999), apresenta o momento da chegada (quando entraram no estado de pronto) e a durao de quatro processos.

Operao de Computadores e Sistemas Operacionais

23

e-Tec Brasil

Figura 6: Grfico de Gantt para a execuo de quatro processos com o algoritmo SJF No Preemptivo

Algum poderia perguntar. Por que o processo P3 executado depois do P1 , sendo que o algoritmo prioriza o menor job (processo) para ser executado primeiro? A resposta simples e, para entender o porqu, temos que nos atentar coluna do momento da chegada do processo. Por se tratar de um algoritmo no preemptivo, aps assumir a CPU, o processo ser executado at ser concludo, permanecendo na CPU durante todo seu tempo de durao. Como o P1 entrou no processador no instante 0 (zero), ele ficar l at ser concludo. Se observarmos bem, o processo P3 chega fila de pronto somente no instante 4. Assim, como ele chegou fila no instante 4, era praticamente impossvel atend-lo antes deste momento. Ao final, as equaes (1) e (2) so aplicadas no clculo do TME que apresenta como valor 4,75 u.t. (unidades de tempo) para este algoritmo com estes processos.

2.1.3 Menor Job Primeiro Preemptivo


Este algoritmo bastante semelhante ao apresentado no captulo 2.1.2, entretanto, sempre que houver um processo na fila com tempo de processamento estimado menor que o restante para o processo em execuo ser concludo, haver a preempo do processo (troca de contexto). Considerando a mesma situao apresentada no captulo anterior, o grfico de Gantt e o TME dos mesmos processos executados com o algoritmo do SJF Preemptivo so apresentados na Figura 2.4, adaptada de Silberschatz, et. al (1999). Este algoritmo certamente apresentar o menor TME em todas as situaes. Como podemos constatar na Figura 2.4, toda vez que um processo entrar no estado de Pronto, seu tamanho ser comparado com o que resta do processo em execuo.

e-Tec Brasil

24

Tcnico em Informtica para Internet

Caso seja menor, como ocorre com os processos P2 e P3 ,o processo em execuo ser preemptado e a CPU ser entregue ao processo de menor tamanho.

Figura 7: Grfico de Gantt para a execuo de quatro processos com o algoritmo SJF Preemptivo

Da mesma forma como ocorre em todos os clculos do TME independente do algoritmo aplicado, as Equaes (2) e (3) so utilizadas para determinar o TME apresentado na Figura 2.4.

2.1.4 Round Robin


Um dos algoritmos mais antigos, simples, justos e amplamente utilizados o escalonamento Round Robin. Cada processo recebe um intervalo de tempo, denominado quantum, durante o qual ele pode executar. Se o processo ainda estiver executando ao final do quantum, o processador dado a outro processo. Caso o processo em execuo seja bloqueado ou concludo antes do final do quantum, a troca de CPU para outro processo feita assim que um destes dois eventos ocorrer. O escalonamento Round Robin de fcil compreenso. Tudo que o escalonador tem a fazer manter uma lista dos processos no estado de Pronto. Quando o quantum de um processo acaba, ele colocado no final da lista. A Figura 2.5, extrada de Tanenbaum (1999), ilustram este processo.

Figura 8: Escalonamento Round Robin. (a) A lista de processos prontos. (b) A lista de processos aps o quantum de B haver expirado

Operao de Computadores e Sistemas Operacionais

25

e-Tec Brasil

O algoritmo Round Robin semelhante ao um FIFO, com a diferena de ser preemptivo. Nele os processos no executam at o seu final, mas sim durante um certo tempo (quantum), um por vez. Assim, executando sucessivamente em intervalos de tempo determinados pelo quantum, em algum momento o job acaba por terminar sua execuo. Neste algoritmo, um aspecto que merece ateno especial a durao (tamanho) do quantum. Mudar de um processo para outro requer um certo tempo para a administrao de tarefas burocrticas, como: salvar e carregar registradores e mapas de memria, atualizar tabelas e listas do SO, dentre outras. Suponha que esta troca de processos, denominada troca de contexto, tenha durao de 5 ms. Suponha tambm que o quantum est ajustado em 20 ms. Com esses parmetros, aps fazer 20 ms de trabalho til, a CPU ter que gastar 5 ms com troca de contexto. Assim, 20% do tempo de CPU ser gasto com o overhead administrativo (Tanenbaum, 1999). Para melhorar a eficincia da CPU, poderamos ajustar o quantum para 500 ms. Agora o tempo gasto com a troca de contexto menor do que 1% (um por cento). Entretanto, imagine se dez usurios apertassem a tecla <ENTER> exatamente ao mesmo tempo, cada um deles disparando processo. Dez processos seriam colocados no estado de pronto e ficariam na lista de processos aptos a executar. Se a CPU estiver ociosa, o primeiro comear imediatamente. O segundo processo no comear antes de segundo (500 ms) depois, e assim sucessivamente. O azarado do ltimo processo ser executado somente 5 segundos aps o usurio ter pressionado <ENTER>, considerando que todos os outros processos utilizaram todo o seu quantum. Muitos usurios vo achar que o tempo de resposta de 5 segundos para um simples comando um tempo demasiadamente grande (Tanenbaum, 1999). A partir destas informaes, podemos concluir que ajustar um quantum muito pequeno causam muitas trocas de contexto e diminui a eficincia da CPU. Por outro lado, ajust-lo para um valor muito alto, causa um tempo de resposta inaceitvel para pequenas tarefas interativas. Assim, um valor frequentemente utilizado para quantum est em torno de 100 ms. Assim como nos grficos de Gantt mostrados nos algoritmos anteriores, o tempo necessrio para troca de contexto ser desconsiderado no clculo do TME. A Figura 2.6, adaptada de Silberschatz, et. al (1999), apresenta o grfico de Gantt com o escalonamento dos processos apresentados.

e-Tec Brasil

26

Tcnico em Informtica para Internet

Figura 9: Escalonamento Round Robin com quantum de 20 u.t.

A Figura 9 apresenta o grfico de Gantt com 4 processos de diferentes tamanhos em diferentes instantes de chegada. Como prtica de exerccio, faa uma anlise dos momentos em que os processos so preemptados e calcule o Tempo Mdio de Espera (TME) para a situao acima.

2.1.5 Maior Prioridade Preemptivo


O algoritmo de escalonamento Round Robin considera que todos os processos so de igual importncia. Entretanto, certas aplicaes como controle de processos industriais, demandam um algoritmo com escalonamento de prioridades, onde em determinadas situaes de emergncia requerem maior nvel de prioridade que outros processos. Conforme apresentado em Tanenbaum (1999), algumas vezes pode ser conveniente agrupar processos em classes de prioridades e usar o escalonamento com prioridade entre as classes e o Round Robin dentre de cada classe. A Figura 2.7, extrada de Tanenbaum (2003), apresenta um sistema com quatro classes. Enquanto houver processos prontos na classe de maior prioridade (Prioridade 4), estes processos sero executados segundo a poltica de escalonamento Round Robin. Quando a fila dos processos de prioridade 4 estiver vazia, os processos da classe 3 sero executados pelo Round Robin. Se as filas de classes 4 e 3 estiverem vazias, a escolha recai sobre os processos da classe 2, e assim por diante.

Operao de Computadores e Sistemas Operacionais

27

e-Tec Brasil

Figura 10: Algoritmo de escalonamento com quatro classes de prioridades

Um problema comum neste tipo de algoritmo, que, se as prioridades no estiverem bem sintonizadas, pode ocorrer dos processos das classes mais baixas nunca serem executados. Para ilustrar o funcionamento deste algoritmo, a Figura 11, adaptada de Silberschatz, et. al (1999), apresenta o grfico de Gantt para quatro processos com seus nveis de prioridade.

Figura 11: Escalonamento com prioridade e Round Robin por fila

Os resultados apresentados por este tipo de algoritmo podem variar de acordo com a prioridade dos processos, o tamanho e seus momentos de chegada. Desta forma, em determinadas situaes, este algoritmo pode ter um excelente desempenho e, em outras, um desempenho ruim quando o valor de referncia para isso for o TME.

2.2 Consideraes finais


O objetivo deste captulo foi mostrar algumas formas de como pode

e-Tec Brasil

28

Tcnico em Informtica para Internet

ser realizado o controle de qual processo assumir o controle do processador em determinadas situaes. Inmeras so as alternativas de algoritmo e suas possveis combinaes, entretanto, certamente a que apresentar o menor TME o escalonamento SJF Preemptivo. Atividades 1. Suponha uma situao na qual um processo A, de alta prioridade, e um processo B de baixa prioridade interagem de forma a levar A a um loop eterno no uso da CPU. Tal situao persistiria se utilizssemos o escalonamento Round Robin em vez do escalonamento com prioridade? Comente. 2. Pesquise a respeito de Threads. Descreva seu objetivo, funcionamento e benefcios. 3. Suponha que voc deseja minimizar na mdia o tempo de espera no seu escalonamento, que poltica voc deveria usar? Qual a maior dificuldade em aplicar esta poltica na prtica? 4. Suponha que os seguintes processos chegaram para execuo nos tempos indicados. Cada processo rodar a quantidade de tempo listada na tabela. Processo P1 P2 P3 P4 Chegada 0 1 3 6 Tamanho 8 5 1 4

Calcule o tempo mdio de espera e para os escalonamentos: a) FCFS; b) SJF (no preemptivo); c) SJF (preemptivo);

Operao de Computadores e Sistemas Operacionais

29

e-Tec Brasil

d) Round Robin (Quantum = 2); e) Prioridade Preemptivo, sendo 2, 3, 1, 5, respectivamente as prioridades de P1 a P4; 5. Em um sistema operacional, o escalonador de curto prazo utiliza duas filas. A fila A contm os processos do pessoal do CPD e a fila B contm os processos dos alunos. O algoritmo entre filas fatia de tempo. De cada 13 unidades de tempo de processador, 5 so fornecidas para os processos da fila A, e 8 para os processos da fila B. O tempo de cada fila dividido entre os processos tambm por fatias de tempo (Round Robin), com quantum igual a 2. A tabela a seguir mostra o contedo das duas filas no instante zero. Considere que est iniciando um ciclo de 13 unidades, e agora a fila A vai receber as suas 5 unidades de tempo. Mostre a sequncia de execuo dos processos, com os momentos em que feita a troca de contexto e calcule o Tempo Mdio de Espera. Fila A A A B B B B B Processo P1 P2 P3 P4 P5 P6 P7 P8 Tamanho 8 7 5 1 5 2 6 3 Chegada 0 1 3 3 7 12 13 25

Obs.: Se terminar a fatia de tempo da fila X no meio da fatia de tempo de um dos processos, o processador passa para a outra fila. Entretanto, esse processo permanece como primeiro da fila X, at

e-Tec Brasil

30

Tcnico em Informtica para Internet

que toda sua fatia de tempo seja consumida. A Lei de Parkinson aplicada ao uso e gerncia de memria, diz que o tamanho dos programas utilizados tende a crescer de forma a ocupar toda a memria disponvel para armazen-los. Mesmo atualmente com a reduo de custo e consequente aumento da capacidade da memria principal, seu gerenciamento um dos fatores mais importantes no projeto de sistemas operacionais. O mdulo do sistema operacional responsvel pela gerncia da memria disponvel denominado Gerenciador de Memria. Dentre suas funes, seu trabalho controlar quais partes da memria esto em uso e quais no esto, de forma a alocar memria aos processos quando estes precisarem. Outra funo do gerenciador de memria ao ser concludo um processo, liberar a memria que ele estava utilizando, alm de tratar do swapping entre a memria principal e secundria, quando a memria principal no for grande o bastante para armazenar todos os processos (Tanenbaum, 1999). Os sistemas de gerncia de memria podem ser divididos em duas grandes categorias: aqueles que movem os processos entre a memria principal e os discos realizando operaes de swapping, e aqueles que no movimentam os processos entre tais dispositivos de armazenamento. Os itens 3.1, 3.2 e 3.3 tratam de uma abordagem mais simples, sem o uso de swapping. A partir do item 3.4 os sistemas de gerncia de memria abordados permitem o uso de swapping de memria. Seguindo a abordagem apresentada em Tanenbaum (1999), algumas das polticas de gerncia de memria existentes sero apresentadas na sequncia.

Operao de Computadores e Sistemas Operacionais

31

e-Tec Brasil

UNIDADE 3 - GERNCIAMENTO DE MOMENTO


Objetivos da aula
- Compreender como os sistemas operacionais gerenciam a memria - Diferenciar e compreender os diferentes tipos de gerenciamento de memria

3.1 Monoprogramao sem swapping ou paginao


A forma mais fcil de alocao de memria a processos aquele no qual s existe um processo na memria em cada instante. Neste esquema o usurio carrega para a memria principal um processo oriundo de um disco ou de outro meio de armazenamento. Por sua vez, este processo assume o controle de todos os recursos da mquina e ter disponvel toda a memria do sistema exclusivamente para si. Entretanto, caso a memria disponvel no seja suficiente, o processo ter sua execuo rejeitada. Quando o sistema organizado dessa maneira, somente um processo pode estar em execuo por vez. O usurio entra com um comando no terminal e o sistema operacional carrega o programa requerido do disco para a memria e o executa. Quando o processo termina, o sistema operacional reassume a CPU e espera por um novo comando para carregar outro processo na memria j liberada pelo primeiro. No h nenhum tipo de controle que permita ao usurio utilizar recursos como multiprogramao ou multitarefa.

3.2 Multiprogramao e utilizao da memria


Ainda que a monoprogramao tenha sido utilizada em pequenos computadores, em sistemas computacionais maiores, com mltiplos usurios ou que necessitem apresentar um desempenho melhor, ela proibitiva. Alm de suportar vrios processos simultneos, outra razo para multiprogramar um computador (tambm aplicvel em sistemas batch) o fato de vrios processos despenderem uma parcela substancial de seu tempo para operaes de E/S.

Operao de Computadores e Sistemas Operacionais

33

e-Tec Brasil

Outro fator comum, que, para um processo em loop de leitura um bloco de dados de um arquivo em disco, tambm comum a realizao de alguma operao sobre o contedo dos blocos lidos. Em sistemas multiprogramados esta ao perfeitamente possvel e implementvel. Para exemplificar seu grau de importncia, se for gasto 40ms para ler um bloco e o processamento deste bloco demandar apenas 10ms, durante 80% do tempo total que o processo levar para ser concludo a CPU estar ociosa. Com o uso da multiprogramao possvel incrementar o percentual de utilizao da CPU. Colocando a questo de forma bem grosseira, se tivermos 5 processos carregados na memria e cada um utilizar o processador apenas 20% de seu tempo (tempo de espera na memria + tempo de execuo), a CPU dever estar ocupada o tempo todo. Entretanto, este modelo muito otimista e irreal, uma vez que assume que nunca dois ou mais processos estaro esperando por E/S ao mesmo tempo. Um modelo mais realista procura considerar o uso do processador de forma probabilstica. Suponha que determinado processo gaste uma frao de seu tempo esperando por E/S. Com n processos na memria simultaneamente, a probabilidade de todos eles aguardarem por entrada e sada ao mesmo tempo, caso em que o processador ficar ocioso, Pn. Desta forma, um clculo mais realista do uso aproximado de um processador pode ser realizado com a Equao (3). (3) Onde:

Com base na Equao (3), a Figura 3.1, extrada de Tanenbaum (2003), apresenta a percentagem de utilizao do processador em funo do grau de multiprogramao (quantidade de processos na memria).

e-Tec Brasil

34

Tcnico em Informtica para Internet

Figura 12: Utilizao do processador em funo do nmero de processos na memria principal

Com uma rpida anlise na figura, possvel concluir que quando os processos consomem 80% de seu tempo aguardando por E/S, no mnimo 10 processos devem estar ao mesmo tempo na memria para manter o grau de ociosidade do processador abaixo de 10%. Como prtica de exerccio, realize uma anlise do grfico de multiprogramao apresentado.

3.3 Multiprogramao com parties fixas


Como voc j deve ter percebido, muitas vezes conveniente manter mais de um processo na memria ao mesmo tempo. Entretanto, para isso devemos estabelecer uma estratgia de organizao da memria. A forma mais simples consiste em dividir a memria em n parties, possivelmente de tamanhos diferentes. Ao ser inicializado, um processo pode ser colocado em uma fila de entrada para ocupar a menor partio de tamanho suficiente para armazen-lo. Em razo das parties possurem tamanho fixo, qualquer espao no utilizado dentro de uma partio ser perdido. A Figura 3.2, extrada de Tanenbaum (2003), apresenta as duas maneiras de organizar os processos dentro desta poltica de gerenciamento de memria.

Operao de Computadores e Sistemas Operacionais

35

e-Tec Brasil

Figura 13: (a) Parties fixas de memria com filas de entrada separadas para cada uma. (b) Parties fixas de memria com uma nica fila de entrada

A desvantagem de se organizar os processos que chegam em filas separadas, torna-se aparente quando a fila para a maior partio est vazia, entretanto, as filas para as parties menores esto cheias, como no caso das parties 1 e 3 da Figura 3.2 (a). Uma forma alternativa de organizar a chegada dos processos, manter uma fila nica como na Figura 3.2 (b). Toda vez que uma partio liberada, a mesma alocada ao primeiro processo da fila que caiba nela. Uma vez que no vivel gastar uma partio grande com um processo pequeno, uma estratgia mais eficaz procurar em toda fila de entrada o maior job que caiba na partio liberada. Observe que, embora a ltima estratgia utilize melhor as parties da memria, ela tambm discrimina os processos menores, quando normalmente desejvel dar a eles melhor tratamento, e no pior.

3.4 Multiprogramao com parties variveis


Quando falamos em swapping de memria, a prtica da multiprogramao com parties fixas no chega a ser atrativa devido perda de espao de memria ocasionada pela sobra de espao ocorrida dentro de uma partio. A principal diferena para o algoritmo com parties de tamanho fixo, que a quantidade, o tamanho e a localizao dos processos, variam dinamicamente em razo da utilizao do sistema. A Figura 3.3, extrada de Tanenbaum (1999), ilustra seu uso.

e-Tec Brasil

36

Tcnico em Informtica para Internet

Figura 14: A alocao muda conforme os processos so criados e copiados do disco para a memria e vice-versa. As regies sombreadas no esto alocadas no momento

Na figura acima, no instante (a) somente o processo A est na memria. Na sequncia, os processos B e C so criados ou trazidos para do disco. No instante (d) o processo A finalizado ou sofre um swap-out (os dados saem da memria principal e retornam para o disco). Na sequncia, D vem para a memria e B sai. Por fim, o processo E chega. Uma das principais questes a serem tratadas neste algoritmo como administrar os buracos criados aps vrias operaes de swap-in (os dados so carregados do disco para a memria principal) e swap-out. Para tratar este problema um procedimento conhecido como compactao de memria dever ser executado, nada mais do que movimentar todos os processos para os endereos mais baixos da memria. Apesar de funcional, esta tcnica bem pouco utilizada pelo fato de requerer muito processamento de CPU para realizar a compactao dos dados. Outro problema deste mtodo como gerenciar o crescimento de um processo. Se um processo for de tamanho fixo, no haver nenhum problema com a quantidade de memria alocada a ele. Entretanto, se um processo aumentar de tamanho e ele tiver outros processos adjacentes a ele, o prprio processo que est crescendo ou um dos processos adjacentes a ele dever ser movido para outro endereo. Em ltima situao, outro processo dever ser removido da memria para liberar o espao necessrio.

3.5 Gerncia de memria com listas ligadas


Uma maneira bastante eficiente de gerenciar a alocao de memria mantendo uma lista ligada dos segmentos livres e ocupados na memria. Entende-se por segmento um processo ou um espao vazio (buraco) entre dois processos.

Operao de Computadores e Sistemas Operacionais

37

e-Tec Brasil

Sempre que os processos e os buracos forem mantidos numa lista ordenada por endereos, vrios algoritmos podem ser utilizados na alocao de memria para um processo que precise ser transferido do disco para a memria principal. Segundo Tanenbaum (1999), quatro so os algoritmos de alocao de espao em memria. O algoritmo mais simples First-fit (primeiro buraco), o primeiro buraco (segmento) livre de tamanho suficiente para carregar o processo ser escolhido para aloc-lo. Caso um segmento de tamanho n aloque um processo de tamanho m, onde n>m, buraco ser quebrado em dois segmentos, sendo que o primeiro ser do tamanho do processo e o segundo ser de tamanho n-m, resultando em um novo segmento livre na memria. Para cada novo processo que precisar ser alocado, o algoritmo iniciar sua busca a partir do incio da lista de segmentos livres. No algoritmo Best-fit (melhor buraco), o buraco escolhido ser o que resultar na menor sobra de espao sem utilizao. O maior problema deste algoritmo so os pequenos buracos resultantes de sequentes alocaes de segmentos aos processos, tornando necessrio o uso da compactao de memria. Por outro lado, por evitar o uso demasiado dos buracos, este algoritmo aumenta as chances de um processo grande encontrar um espao disponvel na memria. Ao contrrio do algoritmo do melhor buraco, o Worst-fit (pior buraco) busca na memria o segmento que resultar na maior sobra de espao sem alocao aps a alocao do processo. Apesar de utilizar as maiores parties, a tcnica do pior buraco deixa espaos livres maiores que permitem a um maior nmero de processos serem carregados para a memria (Machado & Maia, 2007). Um algoritmo semelhante ao do primeiro buraco o Next-fit (prximo buraco). A diferena neste algoritmo que ao ser alocado um segmento a um processo, a busca pelo segmento a ser utilizado pelo prximo processo ser inicializada a partir do segmento resultante desta alocao ou do prximo segmento, caso o processo ocupe todo o segmento a ele destinado.

3.6 Memria Virtual


Desde o incio da informtica, na grande maioria dos sistemas computacionais, o tamanho dos programas tem superado a quantidade de memria disponvel para abrig-los. Outra situao comum a necessidade de manter

e-Tec Brasil

38

Tcnico em Informtica para Internet

vrios programas carregados na memria, situao em que normalmente a quantidade de memria existente acaba sendo inferior a requerida pela soma dos programas. Para sanar este problema, em 1961 Fortheringham props um mtodo denominado memria virtual. Este mtodo foi desenvolvido com o objetivo de particionar os programas e carregar parte deles em memria de disco atravs do processo de swapping. Neste sistema, um programa de 4 MB pode rodar em uma mquina com 1 MB de memria atravs do uso da memria virtual, onde o sistema operacional responsvel por selecionar a parte programa que ser carregada na memria principal e tambm qual parte ficar em disco.

3.6.1 Paginao
A maioria dos sistemas que utilizam o recurso da memria virtual, usam a tcnica de paginao para implement-lo. Todos os sistemas computacionais permitem que um programa faa referncias a um determinado conjunto de endereos. Estes endereos gerados pelos programas so chamados endereos virtuais e formam o espao de endereamento virtual (Tanenbaum, 2003). Qualquer referncia feita a estes endereos no ir direto ao barramento de memria. Antes disso, estas referncias realizadas pelo processador sero encaminhadas unidade de gerncia de memria (MMU Manager Memory Unit), que responsvel por mapear os endereos virtuais em endereos reais, conforme mostrado na Figura 3.4 extrada de Tanenbaum (2003).

Figura 15: A localizao e a funo da MMU

A Figura 15, extrada de Tanenbaum (2003), apresenta um exemplo de como trabalha esse mapeamento. Neste exemplo temos um processador que gera endereos de 16bits, de 0 64K, correspondente ao endereamento virtual

Operao de Computadores e Sistemas Operacionais

39

e-Tec Brasil

do processador. Entretanto, este computador tem apenas 32K de memria fsica. Embora possamos carregar e executar programas de at 64K, no podemos mant-los carregados na memria principal. Sendo assim, uma cpia completa do programa deve ser mantida em disco, de maneira que pedaos dele possam ser carregados memria principal quando necessrios.

Figura 16: A relao entre endereos virtuais e endereos fsicos da memria dada pela tabela de pginas

O espao de endereamento virtual dividido em pginas e suas unidades correspondentes no espao de endereamento fsico so denominadas moldura de pgina. Independente do tamanho das pginas, sua moldura de pgina correspondente necessariamente precisa ser de mesmo tamanho. O exemplo acima, elas so de 4KB, entretanto, em sistemas reais, pginas de 512 bytes 64 KB tm sido utilizadas (Tanenbaum, 2003). Ao fazer referncia ao endereo virtual 0, a MMU detecta que o endereo referenciado est na pgina virtual 0 (de 0 a 4095), que, de acordo com o mapeamento, corresponde moldura de pgina de nmero 2. Desta forma, a MMU transforma o endereo virtual 0 no endereo fsico 8192 e, s ento, envia memria atravs do barramento. Desta forma, de acordo com a Figura 3.5, a MMU mapeia todos os endereos virtuais de 0 a 4095 em seus endereos na moldura de pgina de 8192 a 12287 respectivamente (Tanenbaum, 2003). Mas o que aconteceria se o software realizasse uma referncia a um endereo que no est mapeado como, por exemplo, 40967, correspondente ao

e-Tec Brasil

40

Tcnico em Informtica para Internet

stimo byte dentro da pgina virtual 10? Este evento, denominada falta de pgina (page fault) gera um desvio da CPU para o sistema operacional que deve definir qual das molduras de pginas dever ceder lugar para a pgina virtual referenciada. Esta operao nada mais do que o processo de swap explicado anteriormente. Aps a operao do swap, o mapeamento das pginas dever ser atualizado. Mas qual moldura de pgina dever sair da memria para ceder lugar ao contedo referenciado pelo processo? Para resolver esta questo, Tanenbaum (1999) apresenta alguns algoritmos para troca de pgina.

3.6.1.1 Algoritmo timo de substituio de pginas


Embora classificado como o melhor algoritmo de troca de pginas, a implementao do algoritmo de substituio de pgina timo no possvel de ser implementado. A idia deste algoritmo simples. Em um dado momento, antes de uma moldura de pgina ser substituda, um rtulo indicando quantas instrues sero executadas at que aquela moldura seja referenciada novamente ser analisado. A moldura de pgina com o maior valor, ou seja, dentre as molduras de pgina carregadas a ltima a ser referenciada, indica a moldura a ser substituda. A grande questo que no h como saber quando cada pgina ser referenciada, impossibilitando assim a aplicao prtica deste algoritmo. Entretanto, em uma posterior aplicao deste algoritmo, ele pode ser til como referncia de resultados na comparao do desempenho de algoritmos utilizados na prtica.

3.6.1.2 Troca de pgina no usada recentemente (NUR)


Com o objetivo de permitir que o sistema operacional tenha as informaes necessrias para decidir quais pginas esto sendo utilizadas, a maior parte dos computadores com memria virtual tm dois bits (R e M) associados a cada pgina. O bit R, que indica referncia, assume valor 1 em qualquer operao de leitura ou escrita na pgina. O bit M, que indica modificao no contedo da pgina, sinaliza a necessidade de atualizao do contedo da pgina no momento em que a mesma sofrer uma operao de swap ou simplesmente for retirada da memria principal. A partir das informaes disponibilizadas pelos bits R e M possvel o desenvolvimento de um algoritmo de troca de pginas simples e eficiente. Inicial-

Operao de Computadores e Sistemas Operacionais

41

e-Tec Brasil

mente, para identificar quais pginas no tem sido utilizadas recentemente, o bit R pode ser zerado a cada interrupo de tempo. Na ocorrncia de falta de pgina, o sistema operacional substitui a pgina da menor classe. A definio da classe a qual uma pgina pertence feita com base nos binrios indicados pelos bits R e M, conforme apresentado na Tabela.

Apesar da situao apresentada na classe 1 no parecer possvel, uma pgina pode ser colocada nesta classe quando ela for modificada e, numa interrupo de tempo, o sistema operacional zerar seu bit de referncia. Caso mais de uma pgina seja classificada na menor classe, o algoritmo ir substituir uma pgina randomicamente.

3.6.1.3 Algoritmo FIFO


Na implementao deste algoritmo, o sistema operacional mantm uma lista com o momento em que cada pgina foi carregada. Quando houver a necessidade de troca de pgina, a pgina mais antiga da lista, ou seja, que foi carregada primeiro, ser retirada da memria principal.

3.6.1.4 Algoritmo segunda chance


Para evitar que uma pgina muito utilizada seja substituda, como pode ocorrer no algoritmo FIFO, o algoritmo segunda chance implementa uma modificao que permite-nos avaliar se a pgina mais antiga ainda est sendo utilizada. O princpio o mesmo do FIFO, entretanto, o algoritmo tambm analisa o bit R de cada pgina. Se a pgina mais antiga possuir o bit de referncia igual a 0, ela ser removida imediatamente. Entretanto, se seu bit de referncia for igual a 1, indicando que ela ainda tem sido utilizada e, por isso, no deve ser substituda, ela receber uma segunda chance. Ao invs de ceder lugar para outra pgina, ela ter seu bit R zerado e o algoritmo ir

e-Tec Brasil

42

Tcnico em Informtica para Internet

analisar a pgina mais antiga na sequncia. Este processo se repetir at que o algoritmo identifique a pgina mais antiga e que tenha o bit de referncia igual a 0. Se por ventura todas as pginas tiverem o bit de referncia igual a 1, o comportamento deste algoritmo ser o mesmo do FIFO.

3.6.1.5 Algoritmo da pgina usada h mais tempo


Com resultados mais prximos do algoritmo de troca de pginas timo, o algoritmo estudo aqui se baseia na observao que as pginas mais utilizadas nas ltimas instrues, provavelmente tambm sero referenciadas nas prximas. De forma anloga, pginas que no tm sido referenciadas nas ltimas instrues, provavelmente tambm no sero referenciadas nas prximas. Desta forma, este algoritmo sugere que a pgina a ser retirada da memria principal seja a que no tem sido utilizada pelo maior perodo de tempo. Apesar de a idia ser simples, sua execuo bastante onerosa no que diz respeito ao custo computacional. A grande dificuldade est na necessidade de atualizar a lista sempre que ocorrer uma referncia na memria, o que envolve um contador que pode ser implementado tanto em hardware quanto em software. Entretanto, para o objetivo de nossos estudos, vamos generalizar a proposta deste algoritmo de forma a entendermos que a pgina a ser substituda ser a que tiver com o maior intervalo de tempo desde sua ltima referncia at o momento em que a escolha da pgina a ser substituda feita.

3.6.2 Segmentao
A memria virtual apresentada at o momento unidirecional pelo fato de seu endereamento ir de 0 at um limite fsico imposto pela quantidade de memria. Embora a paginao permita que um grande espao de endereamento seja implementado em uma quantidade limitada de memria, processos que manipulam tabelas, pilhas e filas, podem gerar alguns problemas, pois normalmente estas tabelas devem ser alocadas na memria de forma contgua, o que no possvel com a paginao pelo fato das pginas possurem um tamanho fixo. Nestas aplicaes, um espaamento enderevel bidimensional pode ser mais adequado. Esta alternativa suportada atravs do conceito de segmentao, onde posies de memria so identificadas pelo par segmento, deslocamento. Cada segmento tem um espao de endereamento independente dos outros, que tem incio no endereo 0 do segmento e vai at o limite daquele

Operao de Computadores e Sistemas Operacionais

43

e-Tec Brasil

segmento especfico. O crescimento de um segmento no afeta os demais e, geralmente, cada segmento possui um tamanho diferente do outro. A Figura 3.6, extrada de Tanenbaum (2003), mostra como cada segmento organizado. Na segmentao, o sistema operacional deve manter uma tabela mapeando os segmentos para os endereos da memria. Uma diferena importante que segmentos tm dimenses distintas e, portanto, a informao sobre o comprimento de cada segmento deve ser mantida. Se por um lado este mtodo permite que o uso de tabelas, pilhas e filas seja melhor administrado, o fato de se trabalhar com parties de tamanhos variveis implica que aps um tempo de uso a fragmentao poder ocorrer e, para sanar este problema, mecanismos de compactao tambm podero ser aplicados na tcnica de segmentao. A Figura 3.7, extrada de Tanenbaum (2003), ilustra este processo.

Figura 17: Uma memria segmentada permite que cada segmento altere seu tamanho independente das outras tabelas

A fragmentao externa (pertencente aos sistemas segmentados) apresentada na Figura 3.7, removida com a compactao da memria. Vale ressaltar que nos sistemas paginados o tipo de fragmentao que ocorre a interna, ou seja, dentro da pgina. Na fragmentao externa, o espao livre externo ao segmento.

e-Tec Brasil

44

Tcnico em Informtica para Internet

Figura 18: (a)(d). Desenvolvimento de fragmentao externa. (e) Compactao da memria e consequente remoo da fragmentao

A traduo de endereos segmentados para endereos fsicos ocorre de maneira similar traduo de endereos virtuais. Para exemplificar o processo de traduo de endereos, vamos nos basear na Figura 3.8, adaptada de Tanenbaum (2003).

Figura 19: Mapeamento de memria segmentada

Suponha que um processo gere o endereo lgico do byte C2, ou seja, segmento 00 e deslocamento 00001. A tabela de segmentos informa que o segmento 00 possui base 01000 e limite 0110. O deslocamento de 00001 vlido, pois menor que o limite 0110. Somando a base 01000 do segmento 00 com o deslocamento 00001, teremos o endereo fsico 01001. Esse o endereo do byte C2 na memria fsica.

Operao de Computadores e Sistemas Operacionais

45

e-Tec Brasil

Os sistemas mais atuais utilizam uma mistura das tcnicas de segmentao e paginao para gerncia de memria virtual. Caso deseje mais informaes a respeito da gerncia de memria virtual, o aluno poder consultar (Tanenbaum, 2003). Atividades 1. Um computador tem espao suficiente em sua memria para armazenar quatro programas. Estes programas esperam por E/S durante a metade de seu tempo de processamento. Nesta situao, que frao do tempo do processador desperdiada? 2. Usando o modelo da Figura 3.1, podemos prever um acrscimo do throughput como funo do grau de multiprogramao do sistema. Suponha que um computador tenha 2 MB de memria dos quais o sistema operacional ocupe 512 KB, ou seja, um quarto da memria total, e que cada programa tambm ocupe os mesmos 512 KB. Se todos os programas esperarem por 60% do tempo por E/S, qual a porcentagem de aumento do throughput se adicionarmos mais 1 MB de memria. Faa o mesmo clculo considerando a opo de adicionarmos 2 MB de memria, fazendo com que o sistema totalize 4 MB nesta ltima configurao. 3. Qual a diferena entre endereo fsico (real) e endereo virtual? 4. De maneira anloga a discutida na Figura 3.5, uma referncia ao endereo virtual 8192 seria mapeado em qual endereo fsico (real)? 5. Explique a diferena entre fragmentao interna e fragmentao externa. Qual delas ocorre nos sistemas paginados? Qual ocorre em sistemas com segmentao pura? 6. Um computador tem quatro molduras de pginas. O momento da carga, o momento do ltimo acesso e os bits R e M para cada uma das pginas na memria so mostrados abaixo (os tempos so em intervalos de interrupes de tempo): Pgina 0 1 Carga 230 120 ltima referncia 260 272 1 1 R 0 1 M

e-Tec Brasil

46

Tcnico em Informtica para Internet

2 3

160 126

280 279

1 0

1 0

a. Qual pgina ser substituda pelo algoritmo NUR? b. Qual pgina ser substituda pelo algoritmo LRU? c. Qual pgina ser substituda pelo algoritmo FIFO? d. Qual pgina ser substituda pelo algoritmo da segunda chance? Justifique sua resposta para cada uma das alternativas acima 7. Considere um sistema de swapping no qual os seguintes buracos esto na memria, na ordem apresentada: 10K, 4K, 20K, 18K, 7K, 9K, 12K e 15K. Se usarmos o esquema do primeiro buraco, quais espaos de memria sero alocados a segmentos que sucessivamente requisitarem: a) 12K, b) 10K, c) 9K. Repita a questo para os algoritmos do melhor buraco, do pior buraco e do prximo buraco. A parte com que o usurio mais tem contato do SO o sistema de arquivos. Programas aplicativos utilizam o sistema de arquivos constantemente (atravs de chamadas de sistema) para criar, ler, gravar e remover arquivos. Como um acesso a disco demora cerca de vezes mais tempo que um acesso memria principal, surge ento necessidade de uma estrutura de dados e algoritmos que melhore a eficincia dos acessos ao disco. A usabilidade de um sistema operacional fortemente determinada pela interface, estrutura e confiabilidade de seu sistema de arquivos. Uma das principais tarefas do sistema de arquivos implementar em software um recurso no existente em hardware, ou seja, estabelecer uma maneira lgica de armazenar os dados a partir de recursos fsicos existentes no sis-

Operao de Computadores e Sistemas Operacionais

47

e-Tec Brasil

tema computacional. Desta forma, segundo Tanenbaum (2003), para armazenarmos informaes por longo prazo, temos trs requisitos essenciais: (1) Deve ser possvel armazenar uma quantidade muito grande de informao; (2) A informao deve sobreviver ao trmino do processo que a usa; e (3) Mltiplos processos tm de ser capazes de acessar a informao concorrente. Para atender a todos estes requisitos, a soluo apresentada a organizao das informaes em arquivos. Quando falamos sobre sistemas de arquivos, podemos dividi-los em dois grupos de estudo. O primeiro deles tem relao com a interface do usurio, onde tratamos sobre os arquivos e diretrios. O segundo grupo est relacionado implementao dos sistemas de arquivos. Neste material iremos estudar os conceitos bsicos dos dois grupos baseando-se na abordagem apresentada em Tanenbaum (2003).

4.1 Arquivos
Arquivo um mecanismo de abstrao que fornece meios de armazenar dados e informaes no disco para que elas possam ser lidas posteriormente, sendo que estas operaes (leitura e gravao) devem ocorrer de forma transparente ao usurio. Dentro deste contexto, possivelmente a caracterstica mais importante ao usurio a forma como os arquivos devem ser gerenciados e nomeados. No existe uma s regra para definir como deve ser feita a nomeao dos arquivos, pois cada sistema operacional possui suas caractersticas particulares. Entretanto, de uma forma geral, comumente dividimos o nome dos arquivos em duas partes. Um nome seguido de um ponto e uma extenso para identificar seu tipo. Via de regra, a extenso do arquivo no costuma exceder 3 caracteres e seu nome, dependendo do sistema, pode possuir at 255 caracteres. A Tabela 4.1 apresenta alguns tipos comuns de arquivos.

e-Tec Brasil

48

Tcnico em Informtica para Internet

Como mencionado anteriormente, um arquivo normalmente identificado atravs do seu nome e tipo. Alm destas caractersticas, os arquivos possuem outros atributos que so mantidos pelo SO. A lista apresentada abaixo no tem a pretenso de esgotar todas as possibilidades de atributos, pois esta varia de um SO para outro, entretanto, a relao apresenta os principais atributos existentes: Proteo (quem tem acesso ao arquivo e de que maneira); Tamanho (quantidade de bytes do arquivo); Data e hora do ltimo acesso; Data e hora da ltima alterao; Identificao do usurio que criou o arquivo; Password (se necessrio, senha para acesso ao arquivo); Flags de Ocultao, Leitura/Escrita, Sistema, Temporrio, entre outras (0 desativada, 1 ativada). Independente do SO em questo, um arquivo suporta diversas operaes. As principais operaes e suas chamadas de sistema so: Criao do arquivo (Create); Remoo do arquivo (Delete);

Operao de Computadores e Sistemas Operacionais

49

e-Tec Brasil

UNIDADE 4 - SISTEMA DE ARQUIVOS


Objetivos da aula
- Cumpreender como os sistemas operacionais efetuam a gerncia de arquivos. - Diferenciam os diferentes tipos de sistemas de arquivos. Leitura do contedo (Read); Alterao do contedo do arquivo (Write/Append); Troca do nome do arquivo (Rename); Alterao na lista de usurios que podem acessar o arquivo (Set attributes);.

4.2 Diretrios
Para o controle dos arquivos, em geral um SO utiliza diretrios que em alguns sistemas, como o Linux, tambm so tratados como arquivos. Independente de como o diretrio tratado, a forma mais comum de organizar os arquivos atravs da poltica de diretrios hierrquicos. Esta estratgia permite que os usurios agrupem seus arquivos de forma natural, diferente do que ocorreria em uma poltica de diretrio de nvel nico. A Figura 20, adaptada de Tanenbaum (2003), apresenta estas polticas. Existem duas formas de especificar o nome de um arquivo. A primeira delas atravs do caminho relativo, que traz consigo o conceito de diretrio de trabalho ou diretrio corrente (atual), onde um arquivo pode ser referenciado simplesmente pelo seu nome. A outra forma atravs do caminho absoluto, onde para referenciar um arquivo preciso especificar o caminho at ele

e-Tec Brasil

50

Tcnico em Informtica para Internet

partindo do diretrio raiz. Um exemplo nos dois casos, seria o caminho caixapostal.bak para caminho relativo ao arquivo (desde que o diretrio atual seja o do arquivo referenciado) e /usr/ast/caixapostal.bak o cominho absoluto para o mesmo arquivo, onde ele referenciado independente do diretrio atual que o usurio estiver.

Figura 20: (a) Sistema de diretrio de nvel nico; (b) Sistema de diretrios hierrquicos

De forma anloga aos arquivos, as principais operaes sobre diretrios so: Criar um diretrio (Create); Ler diretrio (Open); Excluir diretrios (Delete); Renomear diretrio (Rename); Existem outras chamadas de sistema que podem ser realizadas nos diretrios. Independente do SO, essas so algumas das mais comuns. Ocasionalmente algumas chamadas podem mudar de um SO para outro.

4.3 Implementao do sistema de arquivos


Ao implementar uma gerncia de espao em disco, um projetista pode optar por duas estratgias. A primeira e mais simples alocar o contedo de um arquivo de forma sequencial. A segunda estratgia dividir o arquivo em blocos separados. Outra questo importante definir o tamanho de um cluster. Um clus-

Operao de Computadores e Sistemas Operacionais

51

e-Tec Brasil

ter de tamanho grande significa que pequenos arquivos iro gerar um desperdcio de espao. Por outro lado, clusters de tamanho pequeno podem comprometer a leitura de arquivos maiores pelo fato de aumentar o tempo de seek dos arquivos. Normalmente os clusters variam de um sistema para outro. Entretanto, um tamanho usual est entre 512 bytes e 4 KB. Alguns dos mtodos mais comuns para a implementao de arquivos so apresentados na sequncia.

4.3.1 Alocao Contgua


A estratgia mais simples para alocao de arquivo certamente a de blocos contguos no disco. Para isso, as nicas informaes necessrias para permitir o acesso ao seu contedo so: (1) a posio inicial do arquivo e (2) o tamanho do arquivo. Dentre os problemas apresentados nesta estratgia, o crescimento de um arquivo e a fragmentao ocorrida no disco certamente esto entre os principais. No primeiro caso, ao crescer, um arquivo dever ser removido do local onde est alocado. Aps algumas ocorrncias como esta, o disco ficar fragmentado, situao que tambm ocorrer aps a remoo de alguns arquivos por parte do usurio. A Figura 21, extrada de Tanenbaum (2003), apresenta esta ocorrncia.

Figura 21: (a) Alocao contgua; (b) Fragmentao do disco aps a remoo de dois arquivos

Embora pouco aconselhvel em sistemas de armazenamento de arquivos, onde o usurio realiza diversas operaes sobre eles, em CD-ROM esta estratgia amplamente utilizada e apresenta excelentes resulta-

e-Tec Brasil

52

Tcnico em Informtica para Internet

dos. Isso ocorre pelo fato dos arquivos a serem gravados na mdia serem previamente conhecidos e no sofrerem alteraes aps sua gravao.

4.3.2 Alocao por lista encadeada


Nesta estratgia no ocorre fragmentao como na alocao contnua e a primeira palavra de cada bloco indica o prximo bloco do arquivo, como mostrado na Figura 4.3 extrada de Tanenbaum (2003). Apesar de evitar a fragmentao, esta estratgia extremamente lenta, pois para chegar ao ltimo bloco de um arquivo, o sistema operacional ter de fazer leitura de todos os blocos anteriores.

Figura 22: Arquivos armazenados atravs de uma lista encadeada de blocos

4.3.3 Lista encadeada com tabela na memria


A estratgia de lista encadeada com tabela na memria minimiza o principal problema da alocao por lista encadeada, carregando para a memria principal a tabela de alocao de arquivos, onde um acesso aleatrio a um determinado contedo do arquivo pode ser feito de forma mais gil, pelo fato de toda a tabela estar carregada na memria. A Figura 22, extrada de Tanenbaum (2003), apresenta a organizao dos mesmos arquivos apresentados na Figura 4.3. A principal desvantagem deste mtodo a necessidade de manter toda a FAT (File Allocation Table) carregada na memria. Desta forma, um HD (Hard Disk) de 20 GB com blocos/clusters de 1 KB, ocuparia cerca de 80 MB na memria principal.

Operao de Computadores e Sistemas Operacionais

53

e-Tec Brasil

4.3.4 I-nodes
Esta estratgia mantm uma tabela de i-nodes (index nodes) que contm os endereos em disco dos blocos do arquivo. A grande vantagem deste mtodo que o i-node ser carregado na memria, somente quando o arquivo indexado por ele estiver aberto.

Figura 23: Tabela de alocao de arquivos carregada na memria

Ao abrir um arquivo, os primeiros blocos do arquivo so mantidos no prprio i-node. Caso o i-node o contedo do arquivo no caiba dentro do prprio i-node, ele ir apontar os blocos que compem o arquivo. A Figura 4.5, extrada de Tanenbaum (2003), apresenta a estrutura base de um i-node. Como podemos perceber, alm de apontar para os blocos que compem um arquivo, um i-node tambm armazena os atributos do arquivo. Sistemas GNU/ Linux usam desta estratgia para organizar seus arquivos.

4.4 Consideraes finais


A forma como os arquivos so organizados pelo SO, certamente exerce grande influncia em seu desempenho. Cada um dos mtodos discutidos aqui possui seus problemas e vantagens.

e-Tec Brasil

54

Tcnico em Informtica para Internet

Figura 24: Estrutura bsica de um i-node

Independente de como o sistema de arquivos for implementado, ele deve apresentar uma boa velocidade na leitura e na gravao dos arquivos, alm de ser consistente e confivel. Atividades 1. Identifique e descreva o significado de trs diferentes tipos de arquivos dos apresentados na Tabela 4.1. 2. Cite e explique trs atributos e trs operaes possveis em um arquivo. 3. Qual a diferena entre caminho relativo e caminho absoluto? 4. A alocao contgua de espao em disco leva fragmentao. Por qu? Tal fragmentao interna ou externa? Comente. 5. Alguns Sistemas Operacionais colocam disposio de seus usurios uma chamada rename, para possibilitar a mudana do nome de determinado arquivo. Existe alguma diferena entre usar esta chamada para dar um novo nome a um arquivo, e simplesmente copiar o arquivo velho em outro, apagando o original? 6. A compactao peridica do espao em disco vantajosa? Justifique. 7. Tem sido sugerido que a primeira parte de cada arquivo Unix/Linux seja man-

Operao de Computadores e Sistemas Operacionais

55

e-Tec Brasil

tida no mesmo bloco de disco que seu i-node. Qual a vantagem deste esquema? 8. Quando um arquivo removido, normalmente seus blocos so colocados de volta na lista de blocos livres, no sendo apagados do disco. Voc acha que seria uma boa idia o sistema operacional apagar cada bloco antes de liber-lo? Considere tanto o aspecto da segurana quanto o da performance e explique os efeitos da adoo desta medida em cada um deles. 9. Descreva resumidamente os sistemas de arquivos abaixo. Apresente suas vantagens, desvantagens e limitaes. a. Alocao contgua; b. Alocao por lista encadeada; c. Lista encadeada com tabela na memria d. I-nodes 10 Pesquise a respeito dos sistemas de arquivos FAT-16, FAT-32, ext3 e ext4. Monte um trabalho apresentando as principais caractersticas de cada um, ressaltando suas limitaes, vantagens e desvantagens prticas. Uma das tarefas mais complexas de um sistema operacional a gerncia de entrada e sada. Devido grande diversidade dos dispositivos de E/S, para atender esta necessidade o sistema operacional implementa o que chamamos de subsistema de E/S. Seu cdigo representa uma parte significativa de todo o SO. Desta forma, so vrias as atribuies ao subsistema de E/S. Neste material estudaremos os princpios do hardware e os princpios do software, alm de detalharmos algumas caractersticas inerentes aos discos de armazenamento. De uma forma geral, o subsistema de entrada e sada responsvel por desempenhar as funes comuns a todos os tipos de dispositivos. As particularidades especficas de cada dispositivos fica a cargo dos device drivers (drivers dos dispositivos). Assim, o subsistema de E/S tem com objetivo fornecer uma interface comum a todos os dispositivos (Machado & Maia, 2007). Embora seja um conceito simples, vale ressaltar a diferena entre drive e driver. O primeiro refere-se a um hardware de armazenamento como, por exemplo, um driver de CD-ROM. Por outro lado, driver refere-se ao software

e-Tec Brasil

56

Tcnico em Informtica para Internet

responsvel pelo correto funcionamento de um dispositivo de E/S ou um perifrico qualquer. Sem o driver correto, uma placa de vdeo poderia no fornecer todos os recursos 3D e quantidade que ela dispe, limitando assim o uso de seus recursos mais valiosos.

5.1 Princpios de hardware


Para o sistema operacional no necessrio interpretar o projeto, a construo e o funcionamento interno de um hardware. Este enfoque pertinente aos engenheiros de hardware. O foco de um programador em relao ao hardware est na interface de comunicao software e hardware, com ateno especial aos comandos que o hardware aceita, as funes que realiza e os erros de hardware que podem ser repassados ao software. Desta forma, esta seo tem como objetivo apresentar uma viso geral do relacionamento do hardware de E/S com a programao.

5.1.1 Dispositivos de E/S


Segundo Tanenbaum (2003), de uma forma geral, os dispositivos de E/S podem ser classificados em duas grandes categorias: dispositivos de blocos e dispositivos de caractere. No primeiro caso, os blocos so de tamanho fixo e, normalmente, so implementados em tamanhos que variam de 512 bytes a 32768 bytes. Cada bloco possui seu prprio endereo e, uma caracterstica importante dos blocos que cada bloco pode ser acessado independente dos demais. Normalmente estes dispositivos esto conectados a uma interface paralela. O dispositivo mais comum que faz o uso de endereamento por bloco so os discos. Os dispositivos de caractere enviam e recebem um fluxo de caracteres sem considerar qualquer estrutura de blocos. De uma forma geral, estes dispositivos no so endereveis. Exemplos comuns de dispositivos de caractere so: os mouses, as impressoras e as interfaces de rede (Tanenbaum, 1999). De uma forma geral, normalmente a interface relacionado com este tipo de dispositivo a sequencial. Alguns dispositivos como os relgios internos no se classificam nem como dispositivos de blocos e to pouco como dispositivos de caractere, pelo fato de enviarem e nem receberem fluxo de dados. O que estes dispositivos fazem simplesmente gerar uma interrupo de tempo em tempo.

Operao de Computadores e Sistemas Operacionais

57

e-Tec Brasil

5.1.2 Controladores de dispositivos


A grande maioria dos dispositivos dos computadores no conectada diretamente ao barramento; ao invs disso, so conectados aos controladores de dispositivos que, por sua vez, so conectados aos barramentos (Shay, 1996). Um controlador possui memria e registradores prprios que so utilizados na execuo de instrues enviadas pelo driver do dispositivo (Machado & Maia, 2007). Estas instrues so responsveis pelo funcionamento correto do dispositivo. Por exemplo: a controladora de uma impressora responsvel por gerenciar todos os movimentos mecnicos envolvidos no processo de impresso, alm de definir o quanto de cada tinta tem que ser utilizado em cada linha da impresso. Vale ressaltar que um sistema operacional quase sempre se comunica com o controlador do dispositivo e no com o dispositivo em si. A Figura 5.1 extrada de Tanenbaum (2003), apresenta a estrutura de comunicao de um computador.

Figura 26: Modelo de conexo de dispositivos de E/S, controladores, memria e processador

Alm de servir como intermediadora na comunicao entre o dispositivo e o sistema operacional, uma controladora tambm responsvel por converter um fluxo serial de dados em um bloco de bytes. Por intermdio de seus drivers, os registradores de uma controladora recebem instrues oriundas do processador, que sero interpretadas e executadas na sequncia.

5.1.3 Acesso Direto Memria (DMA)


O acesso direto memria (direct memory access DMA) permite a transferncia de blocos de caracteres. Ele permite que o controlador acesse a me-

e-Tec Brasil

58

Tcnico em Informtica para Internet

mria por si mesmo. Com a E/S programada, a CPU tinha de transferir cada um dos caracteres entre o disco e a memria principal, e o controlador no podia acessar a memria de forma independente (Shay, 1996). De uma forma simplificada, uma operao de leitura de disco utilizando DMA pode ser descrita pelos seguintes passos. O processador, atravs do device driver, inicializa os registradores do controlador DMA e, a partir deste ponto, a CPU fica livre para realizar outras atividades. O controlador DMA por sua vez, solicita ao controlador de disco a transferncia do bloco do disco para o buffer interno. Terminada a transferncia, o controlador de disco verifica a existncia de erros e, caso no haja erros, o controlador DMA acessa a memria principal e transfere o contedo armazenado em buffer. Ao trmino da transferncia, o controlador de DMA gera uma interrupo avisando o processador que o dado j se encontra na memria (Machado e Maia, 2007).

Operao de Computadores e Sistemas Operacionais

59

e-Tec Brasil

UNIDADE 5 - GERNCIA DE ENTRADA E SADA


Objetivos da aula
- Compreender como os sistemas operacionais gerenciam os dispositivos de entrada e sada.

5.2 Princpios de software


Um dos principais objetivos do software de E/S de um sistema operacional prover a independncia dos dispositivos. Isso pode ser feito atravs da padronizao das rotinas de acesso aos mesmos. Como exemplo, a rotina utilizada para a leitura dos arquivos armazenados em um CD-ROM, deve ser a mesma para o acesso aos arquivos armazenados em um disco rgido (Tanenbaum, 2003). Outra caracterstica importante relacionada aos princpios de software a manipulao de erros. Em geral, os erros devem ser tratados o mais prximo possvel do hardware. Se o controlador encontra um erro, ele deve tentar corrigi-lo. Se no conseguir, o driver do dispositivo deve tentar faz-la. (Tanenbaum, 1999).

5.2.1 Drivers
Como mencionado anteriormente, um driver o software responsvel pelo pleno funcionamento de um dispositivo de hardware. Segundo Shay (1996), de uma forma geral, um driver possui duas responsabilidades principais. A primeira preparar-se para as operaes de E/S, o que envolve verificar o estado do dispositivo, aloc-lo e iniciar a transferncia dos dados. A segunda responsabilidade finalizar a operao de E/S, ou seja, verificar o resultado da operao (terminada ou abortada) e responder adequadamente. Aps a emisso de um comando ou vrios comandos, destinados ao driver, podem ocorrer duas situaes. Em muitos casos, o driver deve aguardar at que o controlador conclua as operaes requisitadas. Se estas operaes forem

e-Tec Brasil

60

Tcnico em Informtica para Internet

lentas, o driver deve se autobloquear at que as operaes sejam concludas e uma interrupo seja gerada para desbloque-lo. Em casos onde as operaes so rpidas, o driver no precisa ser bloqueado (Tanenbaum, 1999). Como muitas coisas podem sair erradas durante a execuo das instrues, a resposta aos erros pode ser complexa. Desta forma, geralmente os drivers tambm so responsveis pelo tratamento dos erros. Por exemplo, se uma impressora estiver sem papel ou desligada, as operaes de escrita no podero ser executadas. Assim, o driver responsvel por alertar sobre o erro e esperar que algum corrija (Shay, 1996).

5.2.2 Software de E/S independente dos dispositivos


Uma grande parte do software de E/S independente do dispositivo em questo. De acordo com Tanenbaum (2003), as funes de E/S abaixo so tipicamente realizadas pelo software de E/S independente do dispositivo: Interface uniforme para os drivers de dispositivo; Fornecimento de um tamanho de bloco independente do dispositivo; Bufferizao; Alocao e liberao de dispositivos dedicados; Manipulao de erros; A interface uniforme tem como objetivo fazer com que todos os dispositivos e drivers tenham uma interface padro de comunicao. Isso evita que o sistema operacional tenha que ser modificado a cada novo dispositivo que aparece, tornando a forma de comunicao padro para todos os dispositivos reconhecidos por ele. A Figura 5.2 extrada de Tanenbaum (2003), ilustra a representao de uma interface padro do driver e de uma interface no padronizada para o driver. Discos diferentes podem ter tamanhos de setor diferentes tambm. O fornecimento de um tamanho de bloco independente do dispositivo tem como objetivo esconder este fato fornecendo um tamanho de bloco uniforme para a camada superior. Isso pode ser feito tratando vrios setores como um nico bloco lgico. Desta forma, os nveis mais altos tratam apenas com dispositi-

Operao de Computadores e Sistemas Operacionais

61

e-Tec Brasil

vos abstratos, usando o mesmo tamanho lgico dos blocos, independente do tamanho fsico do setor.

Figura 27: (a) Sem interface padro do driver; (b) com interface padronizada

A utilizao do buffer, ou bufferizao, uma zona de memria onde os dados so temporariamente armazenados enquanto esto sendo transferidos entre as diversas camadas da comunicao. Um exemplo de bufferizao o que ocorre em protocolos de comunicao: o usurio pode desejar transmitir 128 Kbytes de dados, mas a interface de rede capaz de enviar sequncias de 4 Kbytes. Neste caso, a requisio do usurio armazenada em buffer e enviada em blocos de 4 Kbytes. Alguns dispositivos, tais como fitas magnticas, s podem ser utilizados somente por um processo por vez. Desta forma, cabe ao software de E/S, independente do dispositivo, examinar as requisies de uso a um determinado dispositivo e aceitar ou rejeitar os pedidos de alocao do recurso. Ao final de seu uso, o recurso de alocado dever ser liberado. A manipulao de erros tambm feita nesta camada. Um erro tpico causado por um bloco do disco que foi danificado e no pode ser mais lido ou escrito. Aps o driver tentar ler o bloco vrias vezes, ele desiste de realizar a operao e informa ao software independente do dispositivo a razo do erro, para que o mesmo possa ser tratado. Se ocorrer na leitura de um arquivo pertencente a um usurio, suficiente informar o erro para o mesmo. Entretanto, se o erro ocorreu numa rea crtica, o sistema operacional deve apresentar uma mensagem e terminar a execuo (Tanenbaum, 1999).

e-Tec Brasil

62

Tcnico em Informtica para Internet

5.3 Discos
Nesta seo sero apresentadas algumas questes de software e de hardware relativas aos discos magnticos.

5.3.1 Hardware de disco


Os discos magnticos so organizados em cilindros, sendo cada um deles estruturado em trilhas, que por sua vez, so divididas em setores. Uma caracterstica muito til nestes dispositivos a possibilidade da controladora fazer seeks (busca por dados) em uma ou mais unidades ao mesmo tempo. Esta capacidade conhecida como seeks sobrepostos. Enquanto a controladora e o software aguardam que o seek em uma unidade se complete, a controladora pode iniciar um seek em outra unidade. Algumas controladoras conseguem ler ou escrever em uma unidade enquanto um seek realizado em outra. A capacidade de realizar um ou mais seeks ao mesmo tempo, reduz consideravelmente o tempo mdio de acesso. (Tanenbaum, 1999) Um conceito relacionado tanto ao hardware quanto ao software dos discos o RAID. Basicamente, RAID (Redundant Arrays of Inexpensive Disk) so tcnicas de gerenciamento de discos, que tem como objetivo otimizar as operaes de E/S e implementar redundncia e proteo dos dados. As tcnicas RAID podem ser implementadas diretamente nos controladores de discos ou serem gerenciadas por software, sendo este ltimo mtodo conhecido como JBOD (Just a Bunch of Disks) (Machado & Maia, 2007). A Figura 5.3, adaptada de Machado & Maia (2007), ilustra a diferena entre as duas formas possveis de implementao de RAID.

Dentre as tcnicas de implementao do RAID/JBOD, duas tcnicas so utilizadas, a RAID 0 e a RAID 1. H ainda uma terceira tcnica, conhecida como RAID 01, que combina o uso das duas anteriores. O RAID 0, tambm conhecido como Striping, consiste na implementao de dois ou mais discos para trabalharem como um. O RAID 0 tem como objetivo distribuir as operaes de E/S entre os diversos discos do array (dispositivo

Operao de Computadores e Sistemas Operacionais

63

e-Tec Brasil

Figura 28: Subsistema de discos

virtual criado para o tratamento de dois ou mais discos como um s) (Machado & Maia, 2007). O uso do RAID Striping com dois discos chega a otimizar a velocidade das operaes de E/S dos discos em cerca de 98% (noventa e oito por cento). Com trs discos, o ganho de desempenho chega a 180% (cento e oitenta por cento) (Ferreira, 2005). O RAID 1, tambm conhecido como Mirroring, nada mais do que replicar todo o contedo do disco principal em outro disco. Caso haja uma falha no disco principal, a redundncia implementada pelo RAID 1 garante que o disco secundrio seja utilizado de forma transparente pelo sistema de arquivos (Machado & Maia, 2007). Ao implementar o RAID 1, todo o contedo gravado no disco principal, automaticamente tambm ser gravado no mirror (disco espelho), de forma a garantir que seu contedo seja fiel ao do disco principal. Para implementar o RAID 01 surge a necessidade de termos, no mnimo, 4 (quatro) discos, sendo dois para o Striping e dois para o Mirroring.

5.3.2 Software de discos


A seguir sero abordados alguns conceitos relacionados anlise da performance dos drivers de disco. O tempo para ler ou escrever um bloco do disco

e-Tec Brasil

64

Tcnico em Informtica para Internet

determinado por trs fatores: o tempo de seek (o tempo que o brao leva para se mover at o cilindro desejado), a latncia rotacional (o tempo para que o setor procurado se coloque debaixo da cabea de leitura), e o tempo de transferncia propriamente dito (Tanenbaum, 1999). Se o driver do disco receber as requisies e for atend-las executando com a poltica FCFS, por exemplo, pouqussimo poder ser feito para melhorar a performance do seek. No entanto, outras estratgias de busca podem ser implementadas de forma a melhorar o tempo de seek. Vamos considerar um exemplo extrado de Tanenbaum (2003). Imagine um disco com 40 cilindros. A primeira requisio a chegar para a leitura do cilindro 11. Enquanto se d o seek para tal cilindro, novos pedidos chegam para os cilindros 1, 36, 16, 34, 9 e 12, nessa ordem. Quando a requisio atual (para leitura do cilindro 11) for concluda, o driver do disco dever escolher qual requisio ser a prxima a ser tratada. Usando o FCFS, a prxima requisio a ser atendida ser a da leitura do cilindro 1, depois o 36, e assim por diante. Observe que este algoritmo requer movimentos do brao por 10, 35, 20, 18, 25 e 3 cilindros, respectivamente, totalizando 111 cilindros percorridos. Alternativamente o driver poder atender sempre a requisio do posicionamento mais curto primeiro (Shortest Seek First - SSF), de forma a minimizar o tempo do seek. Utilizando o exemplo anterior, os cilindros a serem atendidos sero 12, 9, 16, 1, 34 e 36, conforme mostra a Figura 5.4 extrada de Tanenbaum (2003). Seguindo a sequncia de leitura determinada pelo algoritmo, o brao ser deslocado por 1, 3, 7, 15, 33 e 2 cilindros, num total de 61 cilindros, quase a metade apresentada pelo algoritmo FCFS.

Figura 29: Algoritmo de escalonamento de disco posicionamento mais curto primeiro

Operao de Computadores e Sistemas Operacionais

65

e-Tec Brasil

Um problema apresentado por este algoritmo ocorre no caso de novas requisies irem chegando constantemente. Nesta situao, a tendncia do algoritmo fazer com que o brao fique no meio do disco, atendendo as requisies prximas a ele, fazendo com que as requisies feitas para as extremidades possam nem ser atendidas. Os objetivos de reduo do tempo mdio de resposta e justia igual para todas as requisies esto em conflito neste algoritmo (Tanenbaum, 2003). Uma soluo para o problema apresentado o algoritmo do elevador. O princpio o mesmo do SSF, entretanto, o brao procura manter a mesma direo at que no haja nenhuma requisio pendente nela. Este algoritmo requer um campo que contenha um indicador para a direo do elevador. Quando este campo apresentar o valor 1 (up) sua direo dever ser para cima, e quando apresentar o valor 0 (down) sua direo dever ser para baixo (Tanenbaum, 2003). A Figura 5.5, extrada de Tanenbaum (2003), demonstra sua aplicao no exemplo citado anteriormente.

Figura 30: Algoritmo do elevador para o escalonamento das requisies do disco

Na Figura 30 estamos supondo que o sinal de direo est sinalizado como up. Desta forma, aps a leitura do cilindro 11 a ordem dos cilindros servidos seria 12, 16, 34, 36, 9 e 1, que faz com que o brao percorra 1, 4, 18, 2, 27 e 8 cilindros, perfazendo um total de 60. Neste caso o algoritmo do elevador ligeiramente melhor que o SSF, apesar dele constantemente apresentar um desempenho pior que o deste ltimo (Tanenbaum, 2003).

e-Tec Brasil

66

Tcnico em Informtica para Internet

Atividades 1. Qual a diferena entre drive e driver? 2. Quais as duas grandes categorias de dispositivos de E/S existentes? Explique-as e d dois exemplos de dispositivos para cada uma delas. 3. Quais as principais funes de um controlador de dispositivos? 4. O que e como funciona o DMA? Quais suas vantagens? 5. Explique detalhadamente a funo e as responsabilidades de um driver. 6. Os pedidos para acesso a um disco chegam a seu driver para os cilindros 8, 17, 43, 32, 40, 6 e 33, nesta ordem. O tempo de seek de 6 ms por cilindro. Qual o tempo gasto com posicionamento para atender estas requisies utilizando as polticas de seek abaixo: a) FCFS b) Cilindro mais prximo primeiro c) Algoritmo do elevador (brao inicialmente para cima) Em todos os casos, o brao est inicialmente no cilindro 22. 7. Explique resumidamente RAID 0, RAID 1 e RAID 01. 8. O uso de RAID 01 elimina a necessidade de backups extras peridicos? Por qu? 9. O que independncia de dispositivo?

Operao de Computadores e Sistemas Operacionais

67

e-Tec Brasil

Referncias
Ferreira, Silvio; Hardware Montagem, Configurao e Manuteno de Micros. Editora AXCEL, (2005); Machado, F. B. & Maia, L.P; Arquitetura de sistemas operacionais, 4.ed; LTC (2007); Shay, W. A; Sistemas operacionais; Makron Books (1996); Silberschatz, A; Galvin, P. & Gagne, G; Applied Operating System Concepts 1th. ed; Wiley, (1999); Tanenbaum, A. S; Sistemas operacionais modernos, 2.ed; LTC Livros Tcnicos e Cientficos Editora S.A. (1999); Tanenbaum, A. S; Sistemas operacionais modernos, 2.ed; Person Prentice Hall (2003).

e-Tec Brasil

68

Tcnico em Informtica para Internet

Anotaes

Operao de Computadores e Sistemas Operacionais

69

e-Tec Brasil

e-Tec Brasil

70

Tcnico em Informtica para Internet

Operao de Computadores e Sistemas Operacionais

71

e-Tec Brasil

e-Tec Brasil

72

Tcnico em Informtica para Internet

Você também pode gostar