Você está na página 1de 136

MDULO DE:

SISTEMAS OPERACIONAIS

AUTORIA:

FILIPE DE CASTRO FERREIRA

Copyright 2008, ESAB Escola Superior Aberta do Brasil

Copyright 2007, ESAB Escola Superior Aberta do Brasil

Mdulo de: Sistemas Operacionais Autoria: Filipe De Castro Ferreira Primeira edio: 2008

Todos os direitos desta edio reservados ESAB ESCOLA SUPERIOR ABERTA DO BRASIL LTDA http://www.esab.edu.br Av. Santa Leopoldina, n 840/07 Bairro Itaparica Vila Velha, ES CEP: 29102-040 Copyright 2008, ESAB Escola Superior Aberta do Brasil

Copyright 2007, ESAB Escola Superior Aberta do Brasil

presentao

Se voc possui um computador ou trabalha com um, ento j utilizou um sistema operacional. Todos os computadores vendidos para o uso domstico ou para escritrios, incluindo os notebooks (computadores portteis) utilizam um programa chamado Sistema Operacional. A maioria dos computadores vendidos vem com o MS-Windows XP. Alguns computadores utilizados em empresas, denominados os Computadores Servidores possuem um sistema operacional chamado Unix, e existe um tipo de computador chamado Macintosh cujo sistema operacional denominado Mac-OS X. O Sistema Operacional o primeiro programa que um computador ir executar. Sem o sistema operacional, os computadores atuais seriam inutilizveis. Recentemente os sistemas operacionais tambm so utilizados em telefones celulares, contendo a maioria das funcionalidades que so encontradas nos sistemas operacionais dos computadores. Um celular moderno mais poderoso que um computador de mesa, daqueles de 20 anos atrs. O objetivo de um sistema operacional organizar e controlar o hardware e o software para que o dispositivo funcione de maneira flexvel e previsvel. Neste mdulo, vamos explicar quais as caractersticas que um programa deve possuir para ser chamado de sistema operacional e mostrar como funciona o sistema operacional do seu computador.

Copyright 2007, ESAB Escola Superior Aberta do Brasil

bjetivo

Este mdulo tem como objetivo passar ao alunos os conhecimentos gerais sobre os Sistemas Operacionais: como so construdos, quais so as caractersticas que devem estar presentes, os tipos de sistemas operacionais, quais as diferenas entre os sistemas, dentre outros tpicos.

menta

Esta disciplina ser trabalhada da seguinte maneira: Parte Terica Conceitos Gerais, Estruturao do Sistema Operacional,

Gerenciamento de Processos, Memria, Dispositivos e Arquivos, Diferenas entre os Sistemas de Arquivos, Diferenas entre o MS-Windows e Linux, Sistemas Especficos. Parte Prtica Realizao de exerccios, atividades, leituras adicionais, debates. Material Complementar vdeos informativos e apostilas com assuntos diversos.

Copyright 2007, ESAB Escola Superior Aberta do Brasil

obre o Autor

Bacharel em Sistemas de Informao; Ps-Graduado em Engenharia de Sistemas; Psgraduando MBA em Gerncia de Projetos; Certificado PMP (Project Management Professional); Especialista nas tecnologias MS Project 2007, Project Server 2007 (EPM 2007) e Microsoft SharePoint 2007; Experincia como consultor pela Microsoft Brasil (MCS), Gerente de Fbrica de Software Petrobras, Analista em Projetos de desenvolvimento de Sistemas e administrador de redes Windows e Linux. Atualmente atuo como Gerente de Projetos na Petrobras e Tutor na ESAB (Escola Superior Aberta do Brasil) em Cursos de PsGraduao.

Copyright 2007, ESAB Escola Superior Aberta do Brasil

UMRIO

UNIDADE 1 .............................................................................................................................. 9 Histrico ................................................................................................................................ 9 UNIDADE 2 ............................................................................................................................ 12 Primeiros Microcomputadores............................................................................................. 12 UNIDADE 3 ............................................................................................................................ 17 Sistemas Operacionais Avanados ..................................................................................... 17 UNIDADE 4 ............................................................................................................................ 20 Estrutura Do Sistema Operacional ...................................................................................... 20 UNIDADE 5 ............................................................................................................................ 24 Processos ........................................................................................................................... 24 UNIDADE 6 ............................................................................................................................ 29 Threads ............................................................................................................................... 29 UNIDADE 7 ............................................................................................................................ 34 Comunicao Entre Processos ........................................................................................... 34 UNIDADE 8 ............................................................................................................................ 39 Gerenciamento De Processos ............................................................................................ 39 UNIDADE 9 ............................................................................................................................ 42 Sincronizao Dos Recursos .............................................................................................. 42 UNIDADE 10 .......................................................................................................................... 45 Preveno Contra Bloqueio ................................................................................................ 45 UNIDADE 11 .......................................................................................................................... 49 Gerenciamento Da Memria ............................................................................................... 49 UNIDADE 12 .......................................................................................................................... 52 Memria Virtual ................................................................................................................... 52 UNIDADE 13 .......................................................................................................................... 56 Memria Paginada ..............................................................................................................56
6

Copyright 2007, ESAB Escola Superior Aberta do Brasil

UNIDADE 14 .......................................................................................................................... 62 Memria Segmentada .........................................................................................................62 UNIDADE 15 .......................................................................................................................... 65 Gerenciamento De Dispositivos .......................................................................................... 65 UNIDADE 16 .......................................................................................................................... 70 Sistema De Arquivos ...........................................................................................................70 UNIDADE 17 .......................................................................................................................... 75 Sistema De Arquivos NTFS ................................................................................................ 75 UNIDADE 18 .......................................................................................................................... 80 Linux Ext ............................................................................................................................. 80 UNIDADE 19 .......................................................................................................................... 84 Interface Com O Usurio.....................................................................................................84 UNIDADE 20 .......................................................................................................................... 87 Sistemas Operacionais Para Redes De Computadores...................................................... 87 UNIDADE 21 .......................................................................................................................... 91 Gerenciamento De Usurio .................................................................................................91 UNIDADE 22 .......................................................................................................................... 94 Ldap ....................................................................................................................................94 UNIDADE 23 .......................................................................................................................... 97 Active Directory ................................................................................................................... 97 UNIDADE 24 ........................................................................................................................ 100 Aspectos Relativos A Segurana ...................................................................................... 100 UNIDADE 25 ........................................................................................................................ 106 Sistemas Embutidos.......................................................................................................... 106 UNIDADE 26 ........................................................................................................................ 109 Sistema Virtual .................................................................................................................. 109 UNIDADE 27 ........................................................................................................................ 113 Sistema Operacional Na Internet ...................................................................................... 113 UNIDADE 28 ........................................................................................................................ 116 Computao De Alto Desempenho ................................................................................... 116 UNIDADE 29 ........................................................................................................................ 121 Microsoft Windows ............................................................................................................ 121
Copyright 2007, ESAB Escola Superior Aberta do Brasil 7

UNIDADE 30 ........................................................................................................................ 128 Linux.................................................................................................................................. 128 GLOSSRIO ........................................................................................................................ 134 BIBLIOGRAFIA .................................................................................................................... 135

Copyright 2007, ESAB Escola Superior Aberta do Brasil

NIDADE

Objetivo: Apresentar o desenvolvimento histrico dos sistemas operacionais para que o aluno perceba a evoluo ocorrida desde o incio da informtica at os dias atuais.

Histrico 1. Primeiros Computadores Em 1890, foi desenvolvido o primeiro computador mecnico. A partir de 1930, comearam as pesquisas para substituir as partes mecnicas por eltricas. O Mark I, construdo em 1944 por uma equipe da Inglaterra, o primeiro computador eletromecnico capaz de efetuar clculos mais complexos sem a interferncia humana. Ele media 15m x 2,5m. Em 1946, surgiu o ENIAC (Electronic Numerical Integrator and Computer), primeiro computador eletrnico e digital automtico: pesava 30 toneladas, utilizava cerca de 18 mil vlvulas e realizava 4.500 clculos por segundo. O ENIAC continha a arquitetura bsica de um computador. A inveno do transistor, em 1947, substituiu progressivamente as vlvulas, aumentando a velocidade das mquinas. Os primeiros computadores, por serem eletromecnicos, eram muito difceis de serem operados. Era necessrio ter o conhecimento de toda a sua arquitetura e a programao dessas mquinas era feita em painis contendo cerca de 6.000 interruptores. E, alm disso, esses computadores no possuam monitor ou teclado, nem sistema operacional. A partir de 1950 os computadores comearam a ser construdos com a utilizao de transistores, tornando-se mquinas puramente eletrnicas. Surgiram dispositivos auxiliares para operarem em conjunto com o computador, tais como: disco-rgido, memria RAM, teclado e monitor. Foi nessa poca que surgiu o primeiro computador, o Univac 1103, com um sistema operacional, o ERA, programa que permitia a interao, limitada, entre o operador e a mquina e possibilitava a execuo das tarefas de maneira mais simplificada.

Copyright 2007, ESAB Escola Superior Aberta do Brasil

Na dcada de 60 surgiram os circuitos integrados, que permitiram a criao de computadores por um preo bastante inferior. Um computador de capacidade mdia, da dcada de 50, custava centenas de milhares de dlares, e um com capacidade equivalente, da dcada de 1960, podia ser comprado por cerca de 20.000 dlares. Graas queda nos preos, os computadores tornaram-se equipamentos comuns nas mdias e grandes empresas dos Estados Unidos e Europa. Alm da queda nos preos, houve tambm o surgimento de vrias inovaes, tanto na eletrnica quanto na rea do desenvolvimento de programas. Em 1971, a Intel projetou o processador i4004, dispositivo que reuniu num mesmo circuito, todas as funes do computador, tecnologia que permitiu a criao do computador pessoal, ou microcomputador. O processador a parte mais importante do computador, pois responsvel por coordenar a realizao de todas as tarefas. 1. Primeiros Microcomputadores O primeiro computador pessoal o Apple I, inventado em 1976 pelos americanos Steve Jobs e Stephan Wozniak. Em 1981, a IBM lanou o seu PC (Personal Computer), que se tornou um sucesso comercial, utilizando o processador Intel i8080. Posteriormente, os PC's passaram a usar processadores cada vez mais potentes: i286, i386SX, i386DX, i486SX, i486DX. Na dcada de 90 surgiram os computadores que, alm do processamento de dados, renem fax, modem, secretria eletrnica, scanner, acesso Internet e unidade para CD. Basicamente, o computador formado por: Gabinete, Monitor, Teclado e Mouse. Os outros dispositivos (caixa de som, microfone, impressora, digitalizador, etc.) so dispositivos acessrios. Na dcada de 80 os computadores tornaram-se equipamentos populares, comprados para serem utilizados em casa, auxiliando a organizao e planejamento domstico, alm de ser utilizado no entretenimento familiar. Havia uma diferena essencial nos sistemas operacionais feitos at a dcada de 80 e os sistemas feitos a partir de 1990: a maneira como o usurio realizava as operaes no computador. Ainda em 1980 um determinado tipo de sistema operacional comea a se tornar popular: o Sistema Operacional com Interface Grfica. Em 1984 surge o Apple Macintosh, primeiro
10

Copyright 2007, ESAB Escola Superior Aberta do Brasil

computador popular com interface grfica, e em 1985 surge o MS-Windows 1.0, primeira verso do sistema operacional Windows. 2. Sistemas Operacionais Modernos Em 1993 a empresa Intel, que, na poca, j detinha a liderana no desenvolvimento de processadores, criou o Pentium, e em 1995 a Microsoft lana o Sistema Operacional Windows 95, e a partir dessa data iniciou-se uma nova etapa na Computao, com avanos tecnolgicos em praticamente todas as reas. Atualmente quase todos os sistemas operacionais utilizam interfaces grficas para permitir que o usurio possa realizar todas as tarefas no computador (ou em telefones celulares com vrias funcionalidades). Os sistemas mais utilizados atualmente so: MS-Windows, Mac-OS X, Linux (KDE) e Symbian (utilizado na maioria dos aparelhos de telefone celular). A utilizao de interfaces grficas facilita em muito a utilizao dos computadores, pois a torna mais intuitiva e mais simples.

Copyright 2007, ESAB Escola Superior Aberta do Brasil

11

NIDADE

Objetivo: Apresentar os diferentes tipos de sistemas operacionais que podem existir, e as diferenas entre eles.

Primeiros Microcomputadores 1. Classificao Dos Sistemas Operacionais Os primeiros Sistemas Operacionais foram feitos para executarem uma nica tarefa em um computador especfico, sendo utilizado por um nico usurio a cada tarefa. Com o desenvolvimento da informtica, os sistemas operacionais foram evoluindo, e hoje podem ser classificados de acordo com as seguintes anlises: Caractersticas bsicas da Arquitetura do Sistema: Monoltico, Microkernel ou Hbrido. Capacidade de execuo das tarefas: Monotarefa ou Multitarefa; Quantidade de usurios que podem operar o sistema: Monousurio ou Multiusurio.

2. Classificao Pela Arquitetura Do Sistema Em relao a Arquitetura os Sistemas Operacionais podem ser: Monoltico: possui um conjunto de instrues de alto nvel que possibilitam o gerenciamento de processos, memria e dispositivos atravs de mdulos dedicados que so executados com privilgios especiais. O sistema operacional escrito como uma coleo de rotinas, em que cada uma pode chamar qualquer outra rotina, sempre que for necessrio. Exemplos de sistemas desse tipo so: MS-Windows 98, Linux e Solaris. Microkernel: algumas das funes do sistema operacional foram separadas em programas chamados Servidores. Os servidores se comunicam com um sistema
12

Copyright 2007, ESAB Escola Superior Aberta do Brasil

operacional mnimo, que possui todas as instrues de manipulao e acesso a todos os componentes do computador. O sistema Minix, que uma variao do Unix, possui uma arquitetura de microkernel. Hbrido: nesse caso os Servidores externos so executados em um modo chamado protegido, permitindo assim que esses programas tenham alguns privilgios de acesso a alguns componentes do computador, melhorando o desempenho geral do sistema. Sendo hbrido, tem a capacidade de agregar ou desagregar funcionalidades, sem perder performance ou estabilidade presentes na sua estrutura inicial. Sistemas com arquitetura hbrida so: MacOS X, Windows 2000 e BeOS. 3. Classificao Pela Execuo De Tarefas A capacidade de execuo de tarefas divide os sistemas em: Sistemas Monotarefa: executam uma tarefa de cada vez, como por exemplo: imprimir um arquivo. Praticamente no so mais utilizados hoje em dia, devido ao desperdcio de recursos do computador que eles causam. O extinto MS-DOS da Microsoft um exemplo de sistema operacional monotarefa. Sistemas Multitarefa: executam vrias tarefas simultaneamente, como por exemplo: criar um desenho, tocar uma msica e imprimir um documento. Sistemas Operacionais multitarefa conseguem maximizar a utilizao dos recursos do computador. At mesmo os sistemas operacionais de alguns aparelhos de telefone celular so multitarefa. Um exemplo o MS-Windows XP. Os sistemas multitarefa podem ser classificados de acordo com a forma com que suas aplicaes so gerenciadas, podendo ser divididos em: sistemas de tempo compartilhado e sistemas de tempo real. Sistemas de Tempo Compartilhado: (Time Sharing Systens em ingls) permitem que diversos programas sejam executados a partir da diviso do tempo de utilizao do processador em pequenos intervalos, denominados fatias de tempo (time slice). Se houver a necessidade de executar mais de um programa, o sistema operacional ir
Copyright 2007, ESAB Escola Superior Aberta do Brasil 13

designar uma fatia de tempo para cada um, e se a fatia de tempo concedida a um programa no for suficiente para a concluso do mesmo, ele ser interrompido pelo sistema operacional e seu estado corrente ser armazenado, e um outro programa entrar em execuo. Essa etapa denominada de Troca de Contexto. Essas trocas acontecero enquanto houver algum programa que no tenha concludo a sua tarefa.

Figura 2.1: Diagrama funcional de um Sistema Operacional Monoltico

A figura 2.1 demonstra o funcionamento de um sistema de tempo compartilhado durante a execuo de 2 programas, A e B. Inicialmente o sistema operacional executa o programa A, aps um certo tempo, o programa A ser interrompido, e a execuo passar para o programa B. Quando o sistema operacional volta a executar o programa A, ele continua a execuo do ponto de parada anterior. Sistemas de Tempo Real: a diferena dos sistemas de tempo real para os sistemas de tempo compartilhado a definio do tempo de execuo de cada programa. Nos sistemas de tempo compartilhado, quem define o tempo de processamento dos programas o sistema operacional, j nos sistemas de tempo real quem define o tempo de execuo do programa o prprio programa.
Copyright 2007, ESAB Escola Superior Aberta do Brasil 14

No sistema de tempo real no existe o conceito de fatia de tempo, um determinado programa ser executado no processador pelo tempo que for necessrio, at a sua concluso, ou at que seja iniciado um programa com maior prioridade de execuo. A prioridade tambm definida pela prpria aplicao e no pelo sistema operacional. Praticamente todos os sistemas operacionais utilizados nos computadores hoje em dia so de tempo compartilhado. Os sistemas Windows XP, Linux, MacOS X e Symbian so sistemas operacionais de tempo compartilhado. Os Sistemas de Tempo Real so utilizados em aplicaes de controle de processos, como monitoramento de refinarias de petrleo, controle de trfego areo, de usinas, ou em qualquer aplicao em que o tempo de processamento fator fundamental.

4. Classificao Pela Quantidade De Usurios Por ltimo, abordaremos a classificao quanto a quantidade de usurios que operam um sistema operacional: Monousurio: O sistema operacional foi criado para que um nico usurio utilize os recursos do computador. Na prtica mais de uma pessoa pode utilizar, mas, nesse caso, o sistema operacional no far distino entre as pessoas, tratando todas como se fossem a mesma. Isso significa que um documento escrito por algum poder ser lido (ou alterado) por outra pessoa. Alm disso, qualquer um poder executar qualquer tarefa no computador. As agendas eletrnicas atuais, chamadas PDA (Personal Data Assistent em ingls), utilizam um sistema operacional monousurio. Multiusurio: Um sistema operacional multiusurio permite que diversos usurios utilizem os recursos do computador. O sistema operacional deve garantir que as tarefas dos usurios estejam separadas e no haja interferncia entre as mesmas. Cada um dos programas utilizados deve dispor de recursos suficientes e separados, de forma que o problema de um usurio no afete toda a comunidade de usurios.
Copyright 2007, ESAB Escola Superior Aberta do Brasil 15

Unix e sistemas operacionais mainframe como o MVS so exemplos de sistemas operacionais multiusurio. Os sistemas operacionais Windows XP e MacOS X esto sendo considerados sistemas multiusurio, pois fazem distino entre os vrios usurios que utilizam o computador.

Copyright 2007, ESAB Escola Superior Aberta do Brasil

16

NIDADE

Objetivo: Apresentar os sistemas operacionais utilizados em sistemas avanados, como computadores com mais de um processador, e supercomputadores dedicados ao processamento cientfico.

Sistemas Operacionais Avanados 1. Definio De Sistemas Avanados De Processamento Os Sistemas Avanados de Processamento caracterizam-se por possuir duas ou mais unidades de processamento interligadas e trabalhando em conjunto, podendo ter dois (ou mais) processadores em um computador, ou vrios computadores conectados em rede. A vantagem desse tipo de sistema permitir que vrias tarefas possam ser realizadas simultaneamente, sem a necessidade de compartilhamento do tempo do processador, ou ento que uma determinada tarefa possa ser dividida entre as unidades de processamento para agilizar a sua concluso. Como o sistema operacional responsvel por gerenciar a execuo das tarefas, deve estar devidamente adaptado para operar em sistemas com mais de uma unidade de processamento, para poder distribuir a execuo dos programas e maximizar a utilizao dos recursos disponveis. A construo de Sistemas Avanados de Processamento foi feita pensando-se em aplicaes voltadas para o processamento cientfico, explorao de minerais e petrleo, simulaes e computao grfica. Grande parte dos supercomputadores instalados ao redor do mundo est em uso em Laboratrios de Pesquisa dos EUA, Europa e Japo, e em grandes empresas como Dupont, Petrobrs, entre outras. 2. Computadores Com Vrios Processadores

Copyright 2007, ESAB Escola Superior Aberta do Brasil

17

Os computadores com vrios processadores eram utilizados basicamente em pequenos laboratrios cientficos. Atualmente esto disponveis a todas as pessoas, por um preo muito acessvel. Nesses computadores, o sistema operacional pode distribuir a execuo das tarefas pelos processadores, e em teoria, aumentar o desempenho geral do sistema proporcionalmente quantidade de processadores disponveis na prpria mquina. Atualmente, os sistemas operacionais Windows 2003, MacOS X, e algumas verses do Unix podem ser executados em computadores com vrios processadores. O Windows XP no oferece suporte para execuo nesses computadores. Na prtica o ganho de desempenho no proporcional quantidade de processadores instalados no computador, pois para trabalhar em um computador com vrios processadores o prprio sistema operacional deve executar operaes de gerenciamento e controle das rotinas para distribuir os programas pelos processadores. Alguns sistemas conseguem uma performance superior a 90%, isto , se o computador possui 16 processadores, o desempenho geral ser 14,4 vezes melhor do que um computador com 1 processador. 3. Processador Com Vrios Ncleos Um outro tipo de Sistema Avanado formado por computadores em que o processador central feito com mais de uma unidade principal de processamento. Esses sistemas esto sendo feitos atualmente para serem utilizados tambm em computadores de escritrio e domsticos, principalmente por causa da queda de preos. Os processadores Intel Pentium Dual Core, Intel Core Duo e AMD Athlon X2, entre outros utilizam duas unidades de processamento em cada processador. De maneira anloga aos sistemas com vrios processadores, o ganho de desempenho em processadores com vrios ncleos no proporcional quantidade de ncleos do mesmo. Os processadores Intel QuadCore, e

AMD Phenom utilizam 4 unidades de processamento em um nico processador. E existem outros com vrios ncleos como o SUN UltraSPARC T1 que possui 8 ncleos internos, e o Tile64 com 64 ncleos de 16 bits. 4. Processamento Distribudo

Copyright 2007, ESAB Escola Superior Aberta do Brasil

18

Um computador de Processamento Distribudo um sistema formado por uma rede de computadores interligados, denominados ns da rede, com o objetivo de realizarem o processamento conjunto de uma tarefa de grandes propores. Esta tarefa ser ento dividida em pequenas sub-tarefas, e cada uma das sub-tarefas ser executada em um n da rede, e dessa forma consegue-se um ganho substancial no tempo de execuo da tarefa. Esses sistemas so construdos com alguns sistemas operacionais disponveis para computadores de mesa, a diferena a incluso de alguns programas especiais, o mais utilizado chama-se LAM-MPI, que permite que os computadores da rede realizem a comunicao necessria para a diviso da execuo das tarefas. O LAM-MPI tambm possui uma biblioteca de funes que devem ser utilizadas nos programas a serem executados nos sistemas distribudos, de modo que realizem as devidas comunicaes e transferncias de dados. Os agregados de computadores (computer clusters em ingls) tambm so sistemas distribudos, a diferena entre um Sistema Distribudo Real, como o IBM BlueGene e um cluster que o primeiro possui uma arquitetura eletrnica especializada e um sistema operacional especfico, enquanto que os clusters so formados por computadores comuns conectados via Ethernet e geralmente utilizam o sistema operacional Linux (o Windows NT raro).

Copyright 2007, ESAB Escola Superior Aberta do Brasil

19

NIDADE

Objetivo: Apresentar a estrutura de funcionamento dos sistemas operacionais modernos e a relao existente entre as funes do sistema operacional e os programas executados no computador.

Estrutura Do Sistema Operacional 1. Estrutura Do Sistema O sistema operacional utilizado para organizar e controlar a realizao das tarefas feitas no computador. Para que isso acontea de maneira ordenada, a relao atualmente utilizada entre os componentes do sistema, isto , o computador, o sistema operacional, os programas, e at mesmo o usurio, a seguinte: O Usurio utiliza programas para realizar suas atividades, esses programas so: aplicativos (Word, AutoCAD, Oracle), utilitrios (WinZip, MediaPlayer, MSN) e jogos (FIFA, Ragnarok, Warcraft). At mesmo o Painel de Controle do Windows XP um programa: C:\Windows\System32\control.exe. Os programas em execuo necessitam em determinados instantes realizar o acesso a algum dispositivo, como o monitor de vdeo ou a impressora, para apresentar o resultado de uma tarefa ou interagir com o usurio. Imagine que um programa atualize um arquivo no disco-rgido. O programa no pode acessar diretamente os dados no disco, pois um recurso compartilhado e sua utilizao deve ser gerenciada pelo sistema operacional. Para que isso acontea, os programas executam algumas operaes com o auxlio do sistema operacional, essas operaes so realizadas utilizando-se funes denominadas Chamadas ao Sistema, ou System Calls em ingls. O Sistema Operacional deve verificar qual usurio est utilizando o computador naquele instante, se os programas em execuo esto ativos ou esperando alguma concluso de

Copyright 2007, ESAB Escola Superior Aberta do Brasil

20

uma tarefa, se no existe conflito entre os programas, se os dispositivos conectados ao computador esto disponveis para utilizao, dentre outras tarefas. 2. Funes do Sistema Operacional As principais funes do Sistema Operacional so: Tratamento de Interrupes: Durante a execuo dos programas, o Sistema Operacional deve estar preparado para tratar eventos inesperados. A interrupo gerada por um evento externo ao programa em execuo, no dependente da instruo que est sendo executada, como por exemplo, a movimentao do mouse. Ao trmino de cada instruo do programa, o processador verifica se houve a ocorrncia de alguma interrupo e caso haja, avisa o sistema operacional, para que o mesmo possa realizar as devidas operaes. O programa em execuo ser momentaneamente paralisado, e para que possa retornar execuo posteriormente, um determinado conjunto de informaes sobre sua execuo ser armazenada. As interrupes sempre so geradas por algum dispositivo do computador: disco-rgido, impressora, teclado, processador, etc. Tratamento de Excees: as excees so semelhantes s interrupes, pois ambas ocasionam a paralisao da execuo dos programas ativos no computador. A diferena entre ambas que nas excees a causa da paralisao originada em algum programa em execuo. Por exemplo, em um programa que realiza operaes matemticas no pode existir uma instruo que faa a diviso de um nmero por zero, caso isso acontea, essa instruo no poder ser executada (pois no existe resposta). Quando ocorre uma exceo, o sistema operacional deve emitir um aviso apenas no programa que causou a exceo indicando que uma operao invlida foi executada. (De fato, a operao em si executada, se o sistema operacional estiver preparado para lidar com a situao, apenas um aviso ser exibido ao usurio, caso contrrio, o sistema inteiro pode falhar. Atualmente comum o tratamento preventivo de excees dentro do prprio programa).
Copyright 2007, ESAB Escola Superior Aberta do Brasil 21

Gerenciamento de Programas: o sistema operacional responsvel por colocar em execuo, administrar e finalizar todos os programas executados no computador. No gerenciamento feita a alocao de memria, a disponibilizao de recursos, a administrao dos programas em execuo feita fornecendo a cada programa o devido tempo de utilizao do processador e dos dispositivos do computador.

Gerenciamento da Memria RAM: O sistema operacional deve a todo instante verificar a disponibilidade de memria RAM no computador, para evitar que haja travamento do sistema inteiro por falta de espao para armazenamento dos programas ou dados.

Gerenciamento de Arquivos: a criao, edio e excluso de qualquer arquivo no computador s acontecem com a permisso do sistema operacional. Nesta etapa feita a verificao do usurio que est solicitando acesso a um determinado arquivo, qual programa ser executado para manipul-lo, e em alguns sistemas, feito tambm o registro em um local separado do acesso ao arquivo pelo usurio, para fins de controle.

Gerenciamento de Dispositivos: todos os dispositivos conectados ao computador so gerenciados pelo sistema operacional, onde feita a verificao de utilizao do dispositivo, disponibilidade do dispositivo, liberao para uso, entre outras funes.

Suporte

Redes:

praticamente

todos

os

principais

sistemas

operacionais

comercializados atualmente oferecem mecanismos de gerenciamento e acesso s redes de computadores. Isto feito por meio de controle de computadores interconectados, protocolos de comunicao utilizados e usurios que esto autorizados a utilizar os recursos disponveis na rede. Alm das tarefas citadas, atualmente os sistemas operacionais tem que possuir a seguinte caracterstica: Sistema de Segurana: caracterstica de muita importncia nos dias de hoje, devido grande utilizao da internet e dos recursos por ela oferecidos. O sistema operacional deve garantir entre outras coisas que:
Copyright 2007, ESAB Escola Superior Aberta do Brasil 22

Apenas programas confiveis (que tenham a permisso do usurio) sejam executados no computador;

Apenas usurios cadastrados previamente (ou autorizados momentaneamente) tenham acesso aos recursos do computador;

As informaes armazenadas no computador s podem ser acessadas por usurios e programas autorizados a manipul-las.

3. Chamadas ao Sistema Durante o projeto de Sistemas Operacionais as maiores preocupaes so: proteo do ncleo do sistema (kernel) e controle do acesso aos recursos do computador. Se um determinado programa realizar uma operao que comprometa ou bloqueie, indevidamente, um ou mais recursos do computador, todos os outros programas podem ficar comprometidos. Imagine que um programa acesse o disco-rgido para gravar um arquivo, e no libere o disco mesmo depois de gravar, todos os programas no tero acesso ao disco por causa disso. Para organizar a execuo dos programas, os sistemas operacionais so feitos com um conjunto de rotinas denominado Chamadas ao Sistema. Essas rotinas so responsveis por executarem as operaes especiais de acesso aos recursos do computador e de acesso ao ncleo do sistema. Atravs das informaes passadas a uma rotina, que ser executada pelo prprio sistema operacional, garantindo assim o controle de todos os recursos disponveis no computador. Ao trmino da execuo da rotina uma resposta ser enviada ao programa que solicitou a sua execuo.

Copyright 2007, ESAB Escola Superior Aberta do Brasil

23

NIDADE

Objetivo: Identificar o que so processos, como so formados e executados, e a maneira como o sistema operacional lida com eles.

Processos 1. Definio de Processo Um programa uma seqncia de instrues ordenadas escritas em uma linguagem computacional (Pascal, C++, Java, etc.). Um processo uma instncia de um programa que est sendo executado, ou seja, o programa sendo executado no computador. Dependendo de como o programa foi criado, mais de um processo pode estar associado a ele durante a execuo, sendo que cada processo representa um determinado conjunto de instrues do programa original. Isto acontece no Mediaplayer, por exemplo, quando h uma msica tocando e o usurio est procurando uma outra msica na lista de msicas, neste caso existe um programa em execuo e pelo menos dois processos associados tambm em execuo. Os sistemas operacionais mais utilizados hoje em dia so multitarefa, realizada atravs do compartilhamento do tempo do processador. Desta forma, vrios programas podem ser executados, e consequentemente vrios processos, em um mesmo computador. Para realizar esta tarefa o sistema operacional deve separar os programas, e processos, para que a execuo seja feita de maneira organizada, e para isso as seguintes propriedades devem ser armazenadas para cada processo: Cdigo executvel do programa associado ao processo; Espao de Memria utilizado, onde fica armazenados o cdigo executvel, dados utilizados, estruturas de controle de execuo;

Copyright 2007, ESAB Escola Superior Aberta do Brasil

24

Descritores do Sistema Operacional, como tabela de arquivos em disco ou servidores de banco de dados;

Atributos de Segurana, indicando o nome do usurio que iniciou o processo, as permisses de execuo no computador;

Estado do Processo, que informar se o processo est em execuo, esperando a liberao de algum recurso, bloqueado ou em outra situao.

2. Gerenciamento de Programas O sistema operacional, sendo multitarefa, realiza o compartilhamento do processador entre os processos por meio da ativao, momentnea, do processo que ser executado no processador. Se o processador possuir mais de um ncleo de processamento, mais de um processo poder estar em execuo no processador. Como apenas um processo pode estar ativo em cada ncleo do processador, os outros devero esperar alguns instantes, at que o processo em execuo tenha sido executado pelo tempo que o sistema operacional designou a ele. Quando o tempo do processo atual terminar, o sistema operacional realizar uma operao chamada Troca de Contexto, em que o processo atual ser substitudo por um outro processo que estava esperando a liberao de um ncleo no processador. A Troca de Contexto a etapa em que o sistema operacional armazenar todas as informaes relativas execuo do processo atual, para permitir que o mesmo possa continuar a execuo em outro momento, e incluir um outro processo para ser executado. Esta etapa deve ser executada de maneira quase instantnea, pois o processador deve ser utilizado principalmente para executar os programas. Existem trs eventos que podem iniciar a Troca de Contexto: Escalonamento de Processo: como foi dito anteriormente, cada processo em execuo ir utilizar um ncleo do processador por uma fatia de tempo, quando este tempo se esgotar, o processo atual dever ser substitudo por um outro processo; Ocorrncia de Interrupo ou exceo: quando h a ocorrncia de uma interrupo/exceo, o sistema operacional deve entrar em operao para tratar da
Copyright 2007, ESAB Escola Superior Aberta do Brasil 25

interrupo/exceo, e para isso, o prprio sistema operacional iniciar um (ou mais) processo (s) prprio(s). O terceiro cenrio a troca de modo usurio para modo kernel. Quando tal transio requisitada pelo sistema operacional, uma troca de contexto no necessria, mas dependendo da implementao isso feito.

Os programas so um conjunto de instrues escritos em linguagem computacional. Exemplos de programas so: MS-Word, MS-Excel, AutoCAD, Adobe Photoshop,

MediaPlayer, InternetExplorer, Need for Speed, World of Warcraft, entre outros. Quando um programa est em execuo, pode ter um ou mais processos associados, os prprios sistemas operacionais possuem vrios processos em execuo durante o funcionamento do computador. Alm de controlar a execuo de cada processo, o sistema operacional deve manter a associao entre um processo e o programa que o originou. Quando um programa iniciado, um processo chamado Pai ou Principal criado, e todos os outros existentes associados ao mesmo programa so denominados Processos Filhos. Se o mesmo programa tiver mais de uma execuo simultnea, por exemplo, duas telas do InternetExplorer representam dois programas em execuo, cada programa ser considerado independente do outro, com seus processos tratados de maneira independente. 3. Estados de um processo Durante o funcionamento do computador, os vrios processos executados passaro por diferentes estados: em espera, em execuo, bloqueado. Esses estados definem a maneira como sero tratados pelo sistema operacional. O funcionamento especfico de cada estado depende do sistema operacional utilizado, mas de modo geral os processos so divididos em trs grupos. Quanto um processo criado, ele deve esperar que o sistema operacional conceda a ele um tempo de execuo em um ncleo do processador, ento logo aps a criao o processo fica em Estado de Espera e fica armazenado na memria principal do computador. Quando o
26

Copyright 2007, ESAB Escola Superior Aberta do Brasil

processo recebe do sistema operacional a autorizao para utilizar um ncleo do processador ele passa para o Estado de Execuo, e assim o processo executa suas instrues internas. E assim o processo fica alternando entre os estados de Espera e Execuo, enquanto o programa que o originou no for finalizado. Se durante o estado de Execuo o processo fizer uma solicitao de algum recurso do computador ao sistema operacional, por exemplo, gravar alguma informao no disco rgido, e o recurso no puder ser liberado imediatamente, por exemplo, j houver um outro processo utilizando o discorgido, o processo que ficar esperando a liberao do recurso passar para o Estado de Bloqueio. Neste estado, o processo no participar das trocas de contexto feitas pelo sistema operacional, ou seja, no voltar ao estado de Espera, at que o recurso solicitado seja liberado. Aps a liberao do recurso, o processo passar do estado de Bloqueio para o estado de Espera. 4. Comunicao Entre Processos A comunicao entre os processos algo de extrema importncia, pois sem ela, a execuo dos programas no seria feita de maneira organizada. Veja a seguinte situao: quando um programa imprime um arquivo, o sistema operacional inicia um programa de gerenciamento da impresso. Esse programa dever controlar a lista de arquivos a serem impressos, permitir que outros arquivos sejam includos na lista, e enviar um arquivo por vez impressora. Nesse caso, pelo menos trs processos sero necessrios para organizar o gerenciamento das impresses, e se no houver comunicao entre esses processos, o gerenciador nunca saber quando incluir um arquivo novo na lista de impresso ou quando retirar um arquivo da lista de impresso. Para que essa comunicao exista, tanto os programas quanto o sistema operacional devem ser construdos de modo a permitir a efetivao da comunicao. Esta efetivao garantida utilizando-se mecanismos de controle e estruturas de dados que possibilitem a identificao, organizao e separao entre os processos e informaes trocadas entre os processos. Os sistemas operacionais oferecem algumas funes e rotinas para fornecerem suporte aos programas, sendo que essas funes devem ser includas no programa durante o seu desenvolvimento. Alguns exemplos de mecanismos de comunicao entre processos so:
Copyright 2007, ESAB Escola Superior Aberta do Brasil 27

FIFO (First In First Out): Neste mecanismo, um processo abre um canal de comunicao com outro processo, sendo que o primeiro apenas escreve dados na FIFO, enquanto o segundo processo l dados da FIFO, este mecanismo deve ser utilizado e gerenciado dentro dos programas, e no pelo sistema operacional.

PIPES unidirecionais: tem funcionamento semelhante ao FIFO, a diferena que nesse caso o controle da comunicao feito pelo sistema operacional.

FILA DE MENSAGENS: Uma fila de mensagens (message queue) permite criar uma rea de troca de mensagens entre os processos, sendo que essa rea ser administrada pelo sistema operacional. A caracterstica mais importante da Fila de Mensagens a possibilidade de acesso a uma mensagem de maneira seletiva, pois existe um identificador especial para cada mensagem.

Memria Compartilhada: a memria compartilhada semelhante Fila de Mensagens, a diferena que o controle deve ser feito dentro dos programas que utilizam este mecanismo.

Copyright 2007, ESAB Escola Superior Aberta do Brasil

28

NIDADE

Objetivo: Conhecer o funcionamento das threads, e a relao entre as threads e os processos.

Threads 1. Definio De Thread A traduo literal da palavra thread linha, e em computao pode ser entendida como a linha (ou instruo) de programa em execuo. Mas o conceito de thread estende o simples conceito de linha de programa, pois uma thread no definida isoladamente, e sim em conjunto com outras threads: Threads so partes independentes de um processo em execuo. A diferena bsica entre threads e processos : um processo no compartilha um mesmo recurso do computador simultaneamente com outro processo, enquanto que uma thread pode compartilhar um mesmo recurso simultaneamente com outras threads (dentro do mesmo processo). Vrias threads so executadas simultaneamente pelo processador, pois so partes distintas de um processo, como por exemplo: uma thread que ir realizar a soma de dois nmeros pode ser executada simultaneamente com uma outra thread que ir gravar uma informao no disco-rgido. Dentro do processador, onde realmente ser feito o comando de execuo, ocorrem algumas etapas para se completar uma operao: leitura e decodificao da instruo, leitura dos dados, execuo da instruo, leitura e apresentao da resposta (existem diferenas na quantidade de etapas entre os processadores, e tambm na nomenclatura utilizada por cada um). Quando o processador comea a executar uma thread, aps as primeiras etapas, j fica liberado para iniciar a execuo de outra thread, desta maneira as threads sero executadas de maneira quase simultnea. Os processadores possuem um ou mais ncleos de processamento, e cada ncleo possui internamente vrias unidades de processamento, cada unidade responsvel por um tipo:
Copyright 2007, ESAB Escola Superior Aberta do Brasil 29

comparao numrica, aritmtica, clculos com nmeros decimais (ponto flutuante), etc. Cada unidade pode estar executando uma thread independente, e os processadores que conseguem realizar essa execuo realmente simultnea so denominados de

Processadores Multi-Threading ou Hiper-Threading (dependendo do fabricante). A execuo de threads (parcial ou totalmente simultneas) depender, alm do processador, do sistema operacional, pois o mesmo ir gerenciar a execuo das threads de maneira semelhante realizada com os processos. As threads so administradas por meio das Chamadas ao Sistema. Em ltimo caso, praticamente no mais utilizado nos dias atuais, os prprios programas podem ter internamente estruturas de gerenciamento de suas prprias threads, um exemplo clssico o Internet Explorer utilizado no antigo sistema Windows 3 (anterior ao Windows 95). O Windows 3 no oferecia suporte execuo de vrias threads, mas o Internet Explorer realizava a execuo de vrias threads atravs de mecanismos internos do prprio programa. 2. Diferenas entre Threads e Processos As threads se diferenciam dos processos nas seguintes propriedades: Os processos em execuo no computador utilizam os recursos de modo exclusivo, no permitindo que outro processo (nem mesmo do prprio programa) acesse o mesmo recurso que j estiver em uso; As Threads podem compartilhar apenas a utilizao de de um um nico recurso, processo mas este o

compartilhamento

ocorre

dentro

(pois

compartilhamento entre processos no existe). Os processos possuem uma grande quantidade de informao associada a eles, informaes que so utilizadas pelo sistema operacional para gerenciar a execuo de vrios processos sem que aconteam erros;

Copyright 2007, ESAB Escola Superior Aberta do Brasil

30

Threads no necessitam de muita informao para gerenciamento, pois so especficas de cada processo, tornando seu gerenciamento mais fcil e rpido.

Quando o sistema operacional vai realizar a Troca de Contexto de um processo para outro, vrias informaes tm que ser salvas, os recursos utilizados tm que se manter bloqueados, e o trecho de execuo (linha de cdigo) do processo tm que ser salva para que o mesmo possa continuar a execuo em um segundo momento. Quando a Troca de Contexto feita nas threads de um processo, a operao realizada com uma velocidade maior, pois ser necessrio salvar uma quantidade mnima de informao e o trecho de execuo da thread, os recursos se mantm inalterados. Por isso, atualmente, os programas e sistemas operacionais so feitos para tirarem o mximo proveito das threads, e consequentemente tirar o mximo proveito dos recursos do computador. Em computadores equipados com vrios processadores, ou com um processador de vrios ncleos, a utilizao de threads aumentar significativamente o desempenho do sistema, pois as threads so mais facilmente executadas simultaneamente que os processos.

Um exemplo de programa que utiliza mltiplas threads o Internet Explorer, pois ao montar uma pgina de hiper-texto, cria uma thread para cada item na pgina (texto, figuras, animao, msica, vdeo) assim as mltiplas threads podem ir montando o contedo da pgina medida em que os dados so recebidos pelo computador. Outro programa que utiliza mltiplas threads o Adobe Acrobat Reader, em que um documento PDF exibido ao usurio antes de terminar o seu carregamento, as threads nesse caso compartilham a mesma rea de memria onde esto armazenadas as informaes do arquivo. O programa Word no oferece esse recurso, um documento do Word s exibido ao usurio depois de inteiramente carregado na memria principal do computador. A Troca de Contexto entre as threads pode ser feita de duas maneiras: Preemptiva e Cooperativa. Na Troca Preemptiva o sistema operacional tem total controle da thread, ele que determina o momento de ocorrncia da Troca de Contexto. Na Troca Cooperativa cada thread tem o prprio controle e determina o momento de interromper a execuo e passar o processador para outra thread. A desvantagem na Troca Cooperativa a possibilidade de
Copyright 2007, ESAB Escola Superior Aberta do Brasil 31

uma thread assumir o processador por muito tempo, no permitindo que outra thread seja executada, e a desvantagem da Troca Preemptiva a possibilidade de o sistema operacional interromper uma thread em um momento crtico indevido, causando uma situao anormal no sistema. Alguns sistemas operacionais fazem distino entre as threads executadas por um processo do prprio sistema e as threads executadas por processos relativos a programas do usurio. As threads do sistema so gerenciadas no Modo Kernel, que entre outras coisas realiza a Troca de Contexto Preemptiva, e as threads do usurio so gerenciadas no Modo Usurio, em que as Trocas de Contexto so Cooperativas. 3. Concorrncia As threads em um mesmo processo compartilham os mesmos recursos do computador. Isto implica em Acesso Concorrente aos recursos, e Execuo Concorrente das instrues do programa. Para exemplificar, imagine uma situao em que duas threads iro realizar uma operao de gravao de dados em uma mesma rea de memria (na mesma varivel no cdigo fonte), sendo que as threads s podero realizar a operao se no houver dados naquela rea. Nesse caso, as threads no podero acessar essa rea simultaneamente, pois se isso acontecer, apenas uma gravao de uma das threads ser armazenada, ou ento haver uma mistura dos dados gravados, o que poder comprometer a continuao da execuo do processo (causando travamento no programa). Para evitar que isso acontea, alguns mecanismos de proteo devem ser implementados, mecanismos de comunicao e sincronizao na execuo das threads, mas no podem ser complexos, pois poderiam dificultar o gerenciamento das trocas de contexto entre as threads. Esses mecanismos so criados no Sistema Operacional por meio de rotinas e estruturas de dados que realizem o controle do acesso aos recursos do computador e a rpida manipulao das threads. Essas situaes em que uma thread realiza uma operao simultnea com outra thread so denominadas Condio de Corrida ou Condio de Disputa, em que as threads iro competir

Copyright 2007, ESAB Escola Superior Aberta do Brasil

32

para conseguir o acesso exclusivo ao recurso necessrio para realizar as operaes daquele instante.

Veja a "Cartilha de Segurana para Internet", esta cartilha tem por finalidade sanar dvidas comuns sobre segurana de computadores e redes e sobre o significado de termos e conceitos da Internet. Alm disso, procura enumerar, explicar e fornecer um guia de procedimentos que visam aumentar a integridade do computador e de posturas que um usurio pode adotar para garantir a sua segurana. Local: http://www.terra.com.br/informatica/especial/cartilha

Copyright 2007, ESAB Escola Superior Aberta do Brasil

33

NIDADE

Objetivo: Aprender como realizada a comunicao entre os processos e threads em execuo no computador, e a maneira como ela implementada em alguns sistemas operacionais.

Comunicao Entre Processos 1. Introduo A comunicao entre os processos e threads muito importante, pois uma das ferramentas que torna possvel a execuo de vrias tarefas simultaneamente no computador. A comunicao utilizada quando um processo ou uma thread precisa passar, ou solicitar, algum dado que s pode ser informado por outro processo ou outra thread, por exemplo, o gerenciador de impresso deve ser feito de tal forma que a comunicao entre os seus processos seja eficiente, caso contrrio a utilizao da impressora ficar comprometida. Como foi visto anteriormente, tanto o sistema operacional quanto o programa devem ser construdos de maneira que a comunicao entre os processos e threads possa ser realizada. Para permitir isso, o sistema operacional feito com vrias rotinas que realizaro o gerenciamento da comunicao. Essas rotinas so acessadas pelos programas atravs das API's do sistema operacional. Assim, os programas possuem funes especiais, alm das especficas, que realizaro a comunicao no momento desejado. A API do sistema operacional MS-Windows, denominada Win32, possui um sub-conjunto de rotinas chamada COM (Component Object Model, Modelo de Componente de Objeto) e possui as funes necessrias para realizar a troca de dados entre os processos e threads. Nos sistemas UNIX a API POSIX possui dois sub-conjuntos de funes, um para o tratamento de processos, POSIX Core Services, e outro especfico para o tratamento de threads chamado POSIX-Thread ou PThread. E no MacOS X as funes esto agrupadas no subconjunto Core Foundation.
34

Copyright 2007, ESAB Escola Superior Aberta do Brasil

2. MS-Windows Component Object Model Nas primeiras verses do MS-Windows a API possua um subconjunto de funes para a comunicao entre os processos denominada DDE (Dynamic Data Exchange, Troca Dinmica de Dados). Essas funes ofereciam um conjunto bsico e simplificado para realizar a troca de dados entre os processos de um programa, e entre processos de programas diferentes. Com o lanamento do MS-Windows 3.1 em 1992 um novo conjunto de rotinas para troca de informaes entre os processos foi criado, sendo chamado de COM. As rotinas da COM so includas nos programas por meio de componentes, como por exemplo, para ler o contedo de um arquivo texto. Para realizar a leitura do arquivo para um programa, a rotina de leitura possui os itens necessrios: mecanismo de busca do arquivo no disco-rgido, funo para copiar os dados do disco-rgido para a memria principal, entre outros. Um outro componente que est disponvel nas rotinas da COM o temporizador, que pode ser alterado para executar uma determinada funo em instantes pr-determinados. O programador no precisa (e nem deve) se preocupar com o funcionamento interno das rotinas da COM, o que ele precisa saber so apenas duas: quais as informaes necessrias para executar a rotina da COM, e qual ser a resposta na concluso da rotina. Tanto o componente para ler um arquivo, quanto o temporizador, e todos os outros da COM, possuem os mecanismos necessrios para realizar a troca de informao entre os processos de um programa. Um programa como o MS-Word ir executar uma rotina da COM para abrir um arquivo, essa rotina ser executada por um processo independente (processo filho), que ao terminar, dever avisar ao processo (principal) que o executou, o prprio MS-Word, indicando que a leitura do arquivo terminou, e que o contedo do arquivo est disponvel em uma rea na memria principal. Se o arquivo no pode ser lido no disco-rgido, a rotina da COM dever informar o motivo de no ter conseguido ler, que pode ser, por exemplo, a no existncia do arquivo no disco. A COM tambm possui rotinas para que o programa crie seus prprios processos, ou threads, de acordo com a implementao feita pelo programador, e possui tambm rotinas para que os processos e threads se comuniquem. Os componentes da COM ficam
35

Copyright 2007, ESAB Escola Superior Aberta do Brasil

disponveis aos programadores atravs das ferramentas de desenvolvimento de programas, como: Borland Delphi, MS-Visual Studio, entre outras. Na prtica, o que fica disponvel aos programadores so partes das rotinas, pois as rotinas completas esto no prprio MSWindows. Essas partes contm apenas as regras de utilizao da rotina, que chamada de Interface de Componente. Essa abordagem tem vantagens e desvantagens: as vantagens mais perceptveis so: a economia de tempo no desenvolvimento do programa e a diminuio do espao ocupado pelo programa, tanto na memria principal quanto no disco-rgido; e as desvantagens so: a grande necessidade de espao para o prprio sistema operacional, e a dependncia dos programas a uma determinada verso do MS-Windows, pois cada verso possui uma COM especfica. Algumas rotinas so executadas como um processo dentro do prprio programa do usurio, e outras atravs dos Servios de Componentes, que so pequenos aplicativos executados de forma independente, mas em sincronia com o programa do usurio. As rotinas de comunicao do MS-Windows Vista passaro a ter um novo nome: Windows Communication Foundation. A mudana de nome se deve a mudanas internas na execuo das rotinas de controle de comunicao entre os processos. Por causa dessa mudana, muitos programas feitos para o MS-Windows XP no funcionaram no MS-Windows Vista. As alteraes visavam obter melhorias no desempenho dos programas, e melhor

aproveitamento dos recursos do computador, visto que a maioria dos computadores atuais possui um processador com a capacidade de execuo de vrias threads simultaneamente, e alguns processadores com mais de um ncleo podem executar mais de um processo simultaneamente. 3. POSIX Core Services O padro POSIX foi formalizado em 1990, definido para se criar um padro de funcionamento entre as diversas verses do sistema Unix existentes na poca. O POSIX tornou-se um padro entre os sistemas Unix, sendo adotado praticamente por todos os sistemas, no havendo excees de importncia. As verses iniciais do POSIX continham
Copyright 2007, ESAB Escola Superior Aberta do Brasil 36

rotinas para o gerenciamento de processos, permitindo a criao de vrios simultaneamente e a troca de dados entre eles. A execuo dos processos feita, desde o incio, utilizando-se a tcnica de compartilhamento do tempo do processador. Essas rotinas receberam o nome de POSIX Core Services. Para os programadores de aplicativos, as rotinas de gerenciamento dos processos so acessadas a partir de bibliotecas de funes. Estas so semelhantes aos componentes COM, as diferenas dizem respeito mais a questes conceituais do que prticas. As rotinas que fazem parte do POSIX Core Services permitem aos programadores criarem programas que podem ser utilizados em sistemas HP-UX (Unix da Hewllet-Packard) e IBM AIX, ou qualquer uma das principais distribuies do sistema Linux. Os programas feitos utilizando tais rotinas podem ser executados em diversos sistemas Unix, pois em todos eles as rotinas possuem a mesma definio para os parmetros de entrada e a mesma definio para o resultado delas. Internamente cada rotina ser feita de acordo com os critrios das respectivas equipes de desenvolvimento de cada empresa. Para realizar o gerenciamento de threads nos sistemas Unix, foi criado um outro conjunto de rotinas denominado POSIX Threads. Este novo conjunto permite que um mesmo processo possa criar vrias threads de execuo, otimizando a utilizao dos recursos do computador. Um detalhe importante: os programas s funcionaro em sistemas Unix diferentes se possurem apenas as rotinas disponveis no POSIX. A utilizao de rotinas especficas, ou proprietrias, no definidas no padro POSIX pode tornar um programa feito para um sistema incompatvel com outro sistema. Imagine um sistema Unix hipottico chamado BRIX utilizado para monitorar um processo industrial. Esse sistema conter algumas rotinas especficas para o seu funcionamento. Se um aplicativo for feito para realizar alguns controles adicionais na indstria, como por exemplo, o controle de estoque, utilizando estas rotinas, ele s poder ser utilizado no sistema BRIX. Para o programa ser compatvel com vrios sistemas Unix, os sistemas que iro execut-lo devem possuir os mesmos conjuntos de rotinas. 4. MacOS X Core Foundation
37

Copyright 2007, ESAB Escola Superior Aberta do Brasil

No MacOS X as principais rotinas de gerenciamento do sistema so agrupadas na Core Foundation. Ela possui os tipos de dados fundamentais e servios essenciais para realizar a correta execuo dos programas no computador. As rotinas so definidas como Objetos Gerenciados pelo MacOS X, e acessveis aos programadores graas s ferramentas de desenvolvimento disponveis para os computadores Macintosh, quando for necessria uma utilizao direta das funes contidas na Core Foundation. Os objetos so definidos de modo altamente abstrato, permitindo um grande grau de independncia entre as verses do Mac OS X (atualmente est na 5 verso). A Core Foundation oferece suporte tanto aos aplicativos quanto ao prprio sistema operacional, sendo que algumas funes so realizadas atravs de rotinas includas nos programas, e outras rotinas so executadas pela prpria Core Foundation, por meio de utilitrios denominados Servios do Sistema. Estes servios so semelhantes aos Servios de Componente do MS-Windows XP. Uma caracterstica importante da Core Foundation nos computadores Macintosh a manuteno da compatibilidade com aplicativos desenvolvidos para os sistemas

operacionais anteriores ao MacOS X. Antes do MacOS X os computadores Macintosh utilizavam o sistema operacional MacOS System. Aplicativos simples, que no utilizam comunicao entre processos so gerenciados por um conjunto de rotinas denominadas Carbon, mas o Carbon no possui a capacidade de gerenciar a comunicao entre processos de aplicativos antigos, essa tarefa feita pela Core Foundation de maneira totalmente transparente, no havendo a necessidade de alteraes no programa original.

Copyright 2007, ESAB Escola Superior Aberta do Brasil

38

NIDADE

Objetivo: Entender o mecanismo de gerenciamento dos processos feito pelo sistema operacional, e conhecer os modelos que podem ser utilizados para realizar esta tarefa.

Gerenciamento De Processos 1. Introduo O gerenciamento de processos um dos conceitos fundamentais dos sistemas operacionais modernos. No gerenciamento dos processos sero definidas as propriedades dos processos em execuo, e a maneira como cada um receber o tempo de execuo no processador. A principal funo do gerenciador de processos exatamente a execuo do processo no processador de maneira adequada (considerando a prioridade do processo e a quantidade de processos gerenciados). 2. Tipos de Gerenciadores de Processos Em relao execuo dos processos, os gerenciadores podem ser separados em trs categorias: Gerenciadores por Admisso: neste caso o gerenciador ir escolher quais processos sero selecionados para serem executados no processador. Quando um programa solicita ao sistema operacional a execuo de alguma operao, o gerenciador de processos que ir decidir o momento em que esta solicitao ser atendida. Esta escolha feita verificando-se alguns fatores, sendo que o principal fator a Prioridade do Processo. Esse tipo de gerenciador geralmente utilizado em Sistemas de Tempo Real, em que o controle da execuo das operaes deve ser rigorosamente definido e obedecido. No existe nenhum sistema operacional para computadores pessoais que utilize esse tipo de gerenciador de processos;
Copyright 2007, ESAB Escola Superior Aberta do Brasil 39

Gerenciadores por Tempo Mdio: este est presente em todos os sistemas que trabalham com Memria Virtual (descrito na Unidade 12) que temporariamente ir retirar processos da memria principal e guard-los na memria secundria, e viceversa. A escolha de qual processo ir sair da memria principal para a secundria feita de acordo com o estado do processo. Como visto na Unidade 5, enquanto o processo est nos estados de Espera e Execuo, ficar na memria principal e quando passar para o estado de Bloqueio ser retirado da memria principal e ser armazenado na memria secundria. Quando o processo passar do estado de Bloqueio para Espera, ser enviado da memria secundria para a principal;

Gerenciadores Despachantes: os despachantes designam os processos para serem executados pelo processador baseados em alguma alterao ocorrida no sistema, que pode ser causada por uma interrupo do relgio do processador, por um dispositivo, por uma instruo de Chamada do Sistema, ou por algum outro sinal identificvel. Dessa maneira, no ser nem a prioridade do processo, nem a alterao do seu estado que influenciaro na escolha feita pelo gerenciador. As execues dos processos sero feitas de acordo com o nvel de atividade do sistema. Quando houver uma carga de trabalho muito grande, os processos recebero em intervalos regulares o devido tempo de execuo no processador. Quando a carga de trabalho for menor, cada processo ter mais tempo para executar no processador. (O tempo de interrupo causado pelo relgio pode ser definido pelo programador do sistema operacional).

3. Algoritmos para Gerenciamento de Processos Na informtica o termo algoritmo define o conjunto de instrues que iro executar uma determinada tarefa. Um algoritmo para um Gerenciador de Processos contm as instrues necessrias para que o gerenciamento seja feito de maneira correta e organizada. Atualmente os sistemas operacionais tm uma necessidade por algoritmos extremamente

Copyright 2007, ESAB Escola Superior Aberta do Brasil

40

eficientes, devido ao maior nmero de programas em execuo nos computadores, e da maior quantidade de recursos disponveis. Um algoritmo pode ser escrito definindo-se um Gerenciador Despachante, com a troca entre os processos no processador feita a partir de interrupes do relgio a cada 100ms, e a troca entre os processos ser feito por um mtodo de rodzio. Esse tipo de algoritmo um dos mais simples de ser feito. Os sistemas operacionais atuais necessitam de um algoritmo com maior capacidade de controle dos processos e com maior aproveitamento do processador. Pode-se planejar um algoritmo que trabalhe com prioridade de execuo nos processos, ou com base no Estado de Execuo deles. Essa escolha feita durante o desenvolvimento do Sistema Operacional e influenciar diretamente o desempenho geral do computador. A escolha feita pensando-se no tipo de utilizao que o usurio far dos recursos computacionais e do tipo de aplicao que ser executado. Um exemplo de algoritmo avanado para gerenciamento de processos chamado de Fila de Resposta Multi-nvel. Os objetivos desse algoritmo so: Executar preferencialmente Processos com poucas instrues; Executar preferencialmente Processos que iro fazer acesso a algum dispositivo; Definir rapidamente a natureza do processo, e gerenci-lo adequadamente.

Nesse algoritmo cada processo tem a oportunidade de concluir suas instrues a cada instante. Caso isso no acontea, o gerenciador ir reclassificar o processo, colocando-o em um determinado nvel de controle.

Copyright 2007, ESAB Escola Superior Aberta do Brasil

41

NIDADE

Objetivo: Conhecer o funcionamento do mecanismo de sincronizao entre os processos na utilizao dos recursos do computador.

Sincronizao Dos Recursos 1. Introduo A sincronizao dos recursos do computador uma tarefa muito importante, realizada pelos sistemas operacionais multitarefas e feita em duas reas distintas: Sincronizao dos Dados: nesse caso o objetivo manter os dados do computador em perfeita integridade; Sincronizao dos Processos: refere-se sincronizao da execuo dos processos, com o objetivo de se evitar o conflito na utilizao dos recursos do computador; A sincronizao dos processos s faz sentido em sistemas multitarefa, em que a cada instante, vrios processos podero estar em execuo. O trabalho do sistema operacional ser garantir que cada processo seja concludo corretamente. Aqui, o conceito de processo ser aplicado tanto ao processo em si quanto thread, ou seja, a sincronizao de processos e sincronizao de threads sero tratados de maneiras unificadas, como Sincronizao de Processos. Para realizar a sincronizao algumas medidas podem ser tomadas: a utilizao de Barreiras, Travas, Semforos, Comunicao e vrias outras. Algumas dessas medidas so implementadas no cdigo dos programas, como as Barreiras, e outras medidas so realizadas no sistema operacional, as Travas.

Copyright 2007, ESAB Escola Superior Aberta do Brasil

42

2. Controle da Sincronizao Como foi mencionado, para realizar a sincronizao pode-se utilizar Barreiras, Travas e Semforos, entre outras medidas. As Barreiras so criadas e gerenciadas pelos desenvolvedores de programas aplicativos. Dentro das instrues desses programas, deve-se incluir uma instruo de criao de Barreira. Quando um processo executa tal instruo, entra em estado de Espera (ou Bloqueio), e permanece assim at que todos os processos pertencentes ao mesmo programa tambm executem a instruo de Barreira. Com isso consegue-se colocar todos os processos no mesmo ponto de execuo do programa. Semforos podem ser utilizados tanto pelos programas quanto pelo sistema operacional. So variveis de controle, que indicam se um determinado recurso pode ser utilizado ou no. O modo mais frequente de controle a utilizao de um contador no semforo. O contador indica a quantidade de processos que podem compartilhar o recurso, quando o limite alcanado, nenhum processo a mais pode utilizar o mesmo recurso. Barreiras e Semforos geralmente so utilizados para lidar com situaes em que vrios processos podem (ou devem) compartilhar um mesmo recurso. Nos casos, nos quais um recurso deve ser utilizado exclusivamente por apenas um processo utilizada a Trava. Alguns sistemas implementam Travas Simples, que impedem a utilizao do recurso por outro processo, e outros sistemas implementam Travas Especiais, que emitem um sinal (aviso de erro) quando um processo tenta acessar um recurso j em uso. Existe tambm a possibilidade de se ter uma Trava Compartilhada por vrios processos, mas nesse caso, o acesso ao recurso fica limitado apenas leitura dos dados contidos nele. Para o correto funcionamento dos mtodos de sincronizao, o processador deve estar preparado para permitir que os processos consigam compartilhar um recurso at o limite estabelecido, sem que haja conflito no controle de sincronia. Por exemplo, em um sistema de Trava, se ela estiver aberta significa que um processo poder acessar o recurso. Se em um mesmo instante dois processos tentarem utilizar o recurso, os dois conseguiro acesso ao

Copyright 2007, ESAB Escola Superior Aberta do Brasil

43

recurso e com certeza isso resultar em m utilizao dele (imagine uma impressora imprimindo simultaneamente dois documentos diferentes). Para evitar essa falha, os processadores devem possuir mecanismos de verificao e ativao da sincronia quase instantneos, ou no mnimo, no conflitante. Esses mecanismos no processador so instrues que realizaro a sincronizao de maneira correta, as instrues sero do tipo verificar e travar recurso, uma mesma instruo faz a verificao e, se possvel, o travamento do recurso. Esse mecanismo s vlido em computadores com um processador (podendo o processador ter vrios ncleos). Em computadores com vrios processadores, o controle da sincronizao mais complexo, havendo um maior nmero de consideraes a serem feitas. A etapa de efetivao do sincronismo muito importante, o tempo que ela demora no deve em hiptese alguma ser demorado. A efetivao da sincronizao deve acontecer obrigatoriamente antes de o processador executar mais uma instruo de outro processo (ou do mesmo processo). A etapa de liberao de uma sincronizao tambm deve ser tratado de maneira adequada, pois em um ambiente de execuo de mltiplos processos, para haver a real otimizao da utilizao dos recursos, os processos devem ter acesso aos mesmos assim que eles no estiverem em uso. 3. Granularidade da Sincronizao A granularidade de uma sincronizao a medida da quantidade de dados que esto sendo utilizados pelos processos envolvidos no sincronismo. O tamanho da granularidade ir influenciar diretamente no desempenho do sistema, pois realizar o compartilhamento de uma grande rea de dados por vrios processos exigir um maior controle no processo de alterao desses dados. Por outro lado, realizar vrios compartilhamentos em pequenas reas de dados pode gerar uma situao de Bloqueio de Processo (DeadLock), em que um processo A est com uma rea X travada e esperando o acesso a rea Y, e um processo B est com a rea Y travada esperando o acesso a rea X. Para evitar essas situaes, o compartilhamento de informao e sincronizao dos processos deve ser feito de maneira planejada e para casos estritamente necessrios.
Copyright 2007, ESAB Escola Superior Aberta do Brasil 44

NIDADE

10

Objetivo: Entender os mtodos utilizados para prevenir que acontea algum tipo de bloqueio entre os processos durante o compartilhamento de recursos.

Preveno Contra Bloqueio 1. Introduo Um bloqueio entre processos acontece quando dois ou mais processos esto esperando a liberao de um recurso que est alocado para outro processo, que por sua vez est esperando a liberao do recurso que est travado para o primeiro processo. Nessa situao, se no houver a interveno do sistema operacional, a liberao dos recursos no acontecer. Para que a situao de bloqueio seja caracterizada, as seguintes condies devem ser encontradas: Um recurso est sendo utilizado por um processo; Um processo que j possui um recurso, solicita outro recurso; Apenas o processo que usa o recurso pode liber-lo; Uma seqncia circular de solicitao de um novo recurso e travamento do recurso em uso por uma srie de processos. 2. Preveno A preveno contra bloqueio deve ser feita de maneira a permitir que um processo aguarde a liberao de um recurso, contanto que essa espera no acarrete em uma dependncia circular.

Copyright 2007, ESAB Escola Superior Aberta do Brasil

45

Uma maneira de evitar a dependncia circular entre eles utilizar uma ordenao por precedncia dos recursos do computador. Um determinado recurso ter ndice de ordem N, e se um processo est utilizando o recurso de ordem N, esse processo no poder solicitar um outro recurso de ordem M, pois o novo recurso deveria ter sido solicitado anteriormente. Isto faz com que a utilizao dos recursos seja feita obrigatoriamente de maneira linear e no circular. Para evitar que aconteam bloqueios na utilizao dos recursos do computador, algumas estratgias devem ser adotadas: Nenhum processo ter acesso exclusivo aos recursos; A alocao de recursos computacionais por um processo s ser permitida em modo seqencial; Pr-alocao de recursos no incio da execuo do processo. Assim, antes mesmo de precisar, o recurso j estar reservado para o processo; A alocao de um recurso ser por tempo determinado, assim, a probabilidade de o recurso estar livre maior no sistema. 3. Tratamento de bloqueio Quando no for possvel evitar o surgimento de um bloqueio no computador, outras medidas devem ser tomadas para o tratamento do bloqueio: Caso haja um bloqueio, os processos sero terminados, mas antes de serem finalizados, os dados sero salvos, os recursos reservados para cada processo sero liberados, e ento os processos so finalizados. Aps a finalizao deles, so reiniciados, sendo que a inicializao dos processos ser feita de forma seqencial, evitando assim que dois processos repitam o bloqueio de recursos. Detectar uma situao de bloqueio antes que ela acontea uma tarefa muito complexa, podendo at mesmo gerar falsos avisos de bloqueio. Na maioria dos casos no possvel fazer a diferenciao entre um processo que est aguardando a
Copyright 2007, ESAB Escola Superior Aberta do Brasil 46

liberao de um recurso, e um outro processo que est bloqueando a liberao de um recurso. 4. Bloqueio Aberto Existe um caso particular de bloqueio que no causado pela espera de um recurso. Uma estratgia pouco utilizada para evitar uma situao de bloqueio a seguinte: verificar se um recurso est sendo solicitado por mais de um processo. Nesse caso, se um processo solicitar um recurso, tambm ir verificar se outro processo j solicitou o mesmo recurso, caso haja um outro processo solicitando-o, o primeiro ceder o recurso e ir esperar a liberao do mesmo pelo outro processo. Aqui o bloqueio pode acontecer e o recurso no estar sendo utilizado. Imagine dois processos X e Y, que fazem uma solicitao ao recurso R. Se a solicitao for feita simultaneamente (o que pode ocorrer em um sistema com vrios processadores ou um processador com vrios ncleos), os dois processos no iro utilizar o recurso R e ceder a utilizao um ao outro. O recurso est liberado, podendo ser utilizado, mas os processos no conseguem acesso ao recurso.

Antes de dar continuidades aos seus estudos fundamental que voc acesse sua SALA DE AULA e faa a Atividade 1 no link ATIVIDADES.

Copyright 2007, ESAB Escola Superior Aberta do Brasil

47

Atividade Dissertativa Interfaces Grficas Temos observado novas tecnologias que utilizam interface diferente das atuais: a interao entre o computador e o usurio feita utilizando imagens hologrficas e manipulao direta dos objetivos atravs das mos e, at mesmo, atravs do pensamento, como por exemplo como vimos nos filmes "Minority Report" (Figura 10.1) e Iron Man 2 (Figura 10.2).

Figura 10.1

Figura 10.2

Veja tambm o vdeo Tan Le: Um fone que l as suas ondas cerebrais disponvel em sua SALA DE AULA no link ESTUDO COMPLEMENTAR. Diante deste tema descreva em no mximo 1 pgina: Analisando TODOS os pontos possveis (cultural, sustentvel, motor, etc.), quais os impactos que esta nova metodologia de interao com o computador podem trazer sociedade?

Copyright 2007, ESAB Escola Superior Aberta do Brasil

48

NIDADE

11

Objetivo: Aprender como feito o Gerenciamento da Memria do computador, e entender a importncia de seu funcionamento correto.

Gerenciamento Da Memria 1. Introduo Basicamente, o gerenciamento da memria a ferramenta utilizada para permitir aos programas em execuo no computador utilizarem a memria do computador para armazenar as instrues e dados que sero manipulados. Os principais objetivos a serem alcanados no gerenciamento da memria so: Oferecer uma rea de armazenamento para os processos serem executados; Proteger a execuo dos processos contra eventuais falhas causadas por erro em um determinado processo; Criar um ambiente de execuo com desempenho satisfatrio aos usurios;

Alm dessas caractersticas, adicionalmente deseja-se de um bom gerenciador: Compartilhamento da memria entre os processos (em sistemas avanados); Permitir aos programadores desenvolverem programas que tenham um acesso transparente memria do computador. Nos sistemas operacionais modernos, o gerenciamento da memria realizar essas tarefas atravs da Proteo da Memria.

Copyright 2007, ESAB Escola Superior Aberta do Brasil

49

2. Proteo da Memria A Proteo da Memria a estratgia utilizada pelos sistemas operacionais para controlar a memria em utilizao no computador. A principal funo da proteo da memria a separao dos processos e suas informaes, e impedir que um processo acesse uma rea de memria que no foi reservada para ele. Para realizar a proteo da memria, uma das seguintes medidas pode ser escolhida: Segmentao da Memria ou a Paginao da Memria. Na Paginao da Memria, a memria dividida em pginas, com tamanho fixo. Com a utilizao de um outro mecanismo chamado Memria Virtual, cada pgina pode ser armazenada em qualquer lugar da memria do computador. A Segmentao da Memria a diviso da memria do computador em segmentos de dados. Quando um programa vai acessar uma rea de memria, ele deve informar tambm o nmero do segmento de memria. 3. Compartilhamento da Memria Uma memria chamada de memria compartilhada quando vrios processos podem acess-la simultaneamente. Dependo do processador utilizado no computador, vrios processos podem ser executados ao mesmo tempo, e a comunicao entre os processos pode ser feita utilizando-se uma rea da memria que seja acessvel a todos os processos. A memria compartilhada pode ser criada de duas maneiras: Eletronicamente (Hardware): o compartilhamento feito em uma grande rea de memria RAM que pode ser acessada por vrios processadores, geralmente utilizada em supercomputadores; Logicamente (Software): aqui o compartilhamento feito utilizando-se estruturas de dados especiais nos programas, para que possam realizar a troca de informao durante a sua execuo. 4. Organizao da Memria

Copyright 2007, ESAB Escola Superior Aberta do Brasil

50

A memria geralmente dividida em trs partes: Memria Cache: esta memria fica dentro do processador, muito menor que a Memria Principal, mas possui uma importncia muito grande, pois utilizada para acelerar a obteno de informaes para o processador; Memria Principal: tambm chamada de Memria RAM, ela que armazena os programas e informaes que esto em uso no computador; Memria Secundria: Nesta memria ficam os dados temporariamente no utilizados, para liberar espao na Memria Principal, e aqui tambm ficam armazenados os arquivos do usurio. 5. Coletor de Lixo Uma ltima tarefa sob responsabilidade do Gerenciador de Memria fazer a coleta de lixo. Esta tarefa consiste em coletar os dados no mais utilizados na memria, e liberar espao, para poder ser utilizar-se de outros programas. Os sistemas operacionais modernos, como o MacOS X e MS-Windows XP, possuem esse mecanismo. Verses anteriores desses sistemas que no possuam o Coletor de Lixo no realizavam a limpeza automtica da memria. Se um programa no limpasse a rea da memria que ele mesmo utilizou o sistema operacional no iria detectar que a memria poderia ser utilizada, o que acarretava na perda de recurso durante a utilizao do computador (dependendo do tempo de uso contnuo do computador, nitidamente percebia-se uma queda no seu desempenho).

Copyright 2007, ESAB Escola Superior Aberta do Brasil

51

NIDADE

12

Objetivo: Aprender o conceito de Memria Virtual, como o seu funcionamento, qual a sua relao com a memria principal e como gerenciada pelo sistema operacional.

Memria Virtual 1. Introduo A memria virtual um recurso utilizado na computao que cria para os programas um ambiente de memria contnua e na prtica construdo em um ambiente de memria fragmentada, podendo at ser utilizado dispositivos de armazenamento para o salvamento de informaes de maneira temporria. A utilizao de memria virtual torna o uso da memria principal mais eficiente. O entendimento de Memria Virtual deve ir alm do conceito de memria temporria armazenada em disco. O aumento da memria o primeiro ganho que se tem ao utilizar-se memria virtual. O conceito real de memria virtual : gerenciar a memria de forma que os programas em execuo no computador tenham um ambiente de memria unificada e contnua. Os principais sistemas operacionais em operao atualmente fazem uso da tcnica de Memria Virtual para obter com isso um aumento no desempenho do computador. A tcnica de memria virtual foi inicialmente desenvolvida nos anos de 1959 a 1962, na Universidade Manchester, Inglaterra, para o computador Atlas. Antes da criao da memria virtual gerenciada pelo sistema operacional, os prprios programas eram responsveis por realizarem o gerenciamento da informao, utilizando a memria principal e os dispositivos de armazenamento de acordo com a necessidade inerente ao prprio programa. A principal motivao para a criao da memria virtual foi o pensamento de se proporcionar aos desenvolvedores de programas um recurso mais facilitado de utilizao da memria do computador. Na dcada de 1960 comearam a surgir os primeiros modelos de computadores

Copyright 2007, ESAB Escola Superior Aberta do Brasil

52

comerciais que possuam o recurso de memria virtual disponvel, mas como toda tecnologia recm lanada, passou por um processo de popularizao difcil. Os primeiros sistemas operacionais implementavam tcnicas rudimentares de memria virtual, que em comparao com os sistemas proprietrios, em que os programas gerenciavam sua prpria memria, tinham um desempenho abaixo do desejado para justificar uma substituio. Foi a IBM no final da dcada de 1960 que oficializou a

adoo da memria virtual nos computadores ao lanar alguns modelos que utilizavam esse recurso. A partir de ento, todas as empresas passaram a implantar nos sistemas operacionais a capacidade de gerenciamento da memria atravs da Memria Virtual. A utilizao de memria virtual em um sistema computadorizado depende principalmente da arquitetura do computador, mais especificamente, do modo de endereamento de memria utilizado pelo processador. A Intel, desenvolvedora dos processadores Pentium, adotou o recurso de memria virtual em seus processadores em 1982 com o lanamento do modelo 80286. A Microsoft passou a utilizar o recurso de memria virtual apenas em 1990, no lanamento do MS-Windows 3. Os programas utilizam a memria reservando espaos de dados para serem armazenados o cdigo do programa em si e os dados que sero processados pelo programa. Este espao de dados chamado de rea de Endereamento. Quando um programa iniciado, o prprio sistema operacional reserva um Espao de Endereamento para armazenar o cdigo executvel do programa, e a medida que o programa utilizado pelo usurio, mais espaos de endereamento podem ser solicitados para armazenar os dados que estiverem sendo informados. Para o sistema operacional gerenciar de forma mais eficiente a memria do computador, os espaos de endereamento que um programa est utilizando so agrupados em um bloco nico (a rea de Armazenamento formada pelos Espaos de Endereamento) que manipulado e administrado como uma nica seqncia de dados na memria.

Copyright 2007, ESAB Escola Superior Aberta do Brasil

53

2. Implementao da Memria Virtual A maioria das implementaes de gerenciadores de memria virtual divide a memria em Espaos de Endereamento de pelo menos 2 KB de tamanho, este espao de dados chamado de Pgina de Memria. Cada pgina uma rea contnua de dados, no fragmentada. Quanto maior a quantidade de memria disponvel no computador, maior ser o tamanho de uma Pgina de Memria. Para realizar o mapeamento entre o Endereo Fsico de Memria e o Endereo de Memria Virtual utilizada uma Tabela de Paginao. Cada registro na Tabela de Paginao contm: o endereo da pgina inicial na Memria Virtual e o endereo real na memria fsica (que pode ser um valor na memria principal ou na memria secundria). Pode existir uma nica Tabela de Paginao para todo o sistema ou podem existir tabelas especficas para cada aplicao em uso no computador. A Paginao a tcnica empregada para se realizar a transferncia de dados inativos, que podem ser programas ou informaes no utilizadas, retirando-os da memria principal e colocando-os na memria secundria. Para executar a paginao, a maioria dos sistemas operacionais atuais utiliza o disco-rgido como memria secundria. Para os programas, a soma da memria principal e memria secundria ser a memria disponvel para armazenar informaes. Quando um programa no est em uso, ou quando uma informao no est sendo acessada, a rea de memria que est reservada para guardar o cdigo do programa ou os dados da informao, ser retirada da memria fsica principal e colocada na memria fsica secundria. O endereamento virtual no ser afetado. Quando o programa voltar a ser utilizado ou quando a informao for acessada, a paginao ser feita no sentido contrrio, retirando o que est na memria secundria e colocando na memria principal. O Espao Fsico utilizado na memria principal no necessariamente o mesmo utilizado anteriormente, o que precisa ser mantido o Espao Virtual de Endereamento.

Copyright 2007, ESAB Escola Superior Aberta do Brasil

54

3. Pginas Permanentes Algumas pginas armazenadas na memria virtual no podem, em qualquer hiptese, sofrer paginao. Os programas ou informaes contidas nessas pginas devem obrigatoriamente estar disponveis durante todo o tempo de utilizao do computador, alguns exemplos so: A Tabela de Paginao propriamente dita, uma informao que deve estar sempre disponvel na memria principal; Rotinas ativadas por Interrupo tambm devem estar sempre armazenadas na memria principal; Dispositivos que utilizam o recurso de Acesso Direto Memria (Direct Memory Access, DMA) devem ter sempre disponvel no mesmo espao fsico de memria as informaes que esto sendo manipuladas. Como a paginao no garante que os dados retornaro ao mesmo endereo fsico, as informaes desses dispositivos no podero ser paginadas.

Copyright 2007, ESAB Escola Superior Aberta do Brasil

55

NIDADE

13

Objetivo: Entender o funcionamento da Memria Paginada, como ela administrada e gerenciada pelo sistema operacional.

Memria Paginada

1. Introduo Memria Paginada a estratgia utilizada pelo sistema operacional para melhor gerenciar a memria do computador. Tanto a memria principal quanto a memria secundria ser dividida em Pginas de Memria, formando a Memria Virtual. O contedo armazenado nas pginas de memria estar armazenado na memria principal ou na secundria e a alterao de uma pgina entre a memria principal e secundria chamada de paginao. A principal vantagem alcanada pela utilizao da Memria Paginada a facilidade na recuperao de informaes que esto em pginas na memria secundria. A recuperao acontecer por dois motivos: o processador estar carregando o cdigo executvel de um programa (o processo passou do estado de Bloqueio para o estado de Espera), ou um programa estar acessando alguma informao na memria virtual. O sistema operacional, por meio do gerenciador de memria, detecta que essa informao no est na memria principal (essa situao chamada de Falha de Pgina, ou Page Fault em ingls). Sempre que acontecer uma falha de pgina, o sistema operacional dever realizar o seguinte procedimento: Encontrar a pgina de memria na Memria Secundria; Determinar qual rea da Memria Principal ser utilizada para receber os dados da Memria Secundria, e armazenar esses dados na Memria principal;
Copyright 2007, ESAB Escola Superior Aberta do Brasil 56

Passar para o programa a nova pgina de memria correspondente informao solicitada.

O item dois pode ser expandido, caso no haja uma pgina de memria livre na memria principal (toda a memria principal est em uso) para armazenar os dados da memria secundria. Nesse caso, haver duas paginaes: uma retirando uma pgina da memria principal para a memria secundria, e outra no caminho inverso. Diz-se ento que houve uma Troca de Pginas (Page Swap, em ingls).

2. Troca de Pgina Muitos sistemas operacionais realizam a Troca de Pgina utilizando um algoritmo que verificar qual a pgina de memria menos utilizada. As pginas de memria menos utilizadas so consideradas como candidatas a uma eventual troca de pgina, pois a probabilidade de serem utilizadas logo aps a troca considerada pequena ou menor que a probabilidade de uso de uma pgina de memria que est sendo frequentemente acessada. Por exemplo, quando se est escrevendo um documento em um programa como o MS-Word ou OpenOffice Writer, as pginas de memria mais acessadas so as que possuem as folhas de texto mais prximas do ponto em que se est escrevendo o documento. Quando o documento atinge uma determinada quantidade de folhas, as primeiras folhas passam a ser menos acessadas, e consequentemente, as respectivas pginas de memria tornam-se ento pginas menos utilizadas. A maioria dos programas, quando esto em execuo, assume um comportamento padro no que diz respeito utilizao de memria, pois a freqncia com que a memria solicitada constante. Este comportamento define uma caracterstica importante no gerenciamento da memria virtual: o conjunto de pginas de memria mais utilizadas pelo programa. O programa ir ser executado de maneira mais eficiente se este conjunto estiver armazenado na memria principal do computador. Um programa que, em relao quantidade total de memria principal, trabalhe com uma quantidade reduzida de informao e instrues e que esteja constantemente em uso, ficar sempre na memria principal.
Copyright 2007, ESAB Escola Superior Aberta do Brasil 57

Se houver um programa que tenha uma quantidade de instrues muito grande, e trabalhe com uma quantidade de informao maior que o espao disponvel na memria principal (por exemplo, um programa de edio de vdeo est sendo utilizado para editar um filme, trabalhar com uma quantidade de informao superior a 4 GB), a realizao de Trocas de Pginas ser to grande que prejudicar o desempenho do sistema, pois os principais recursos do computador: processador, memria principal e memria secundria, estaro em uso realizando as trocas de pginas de memria. Para minimizar o problema de excesso de Troca de Pgina, duas medidas podem ser tomadas: Aumentar a quantidade de memria principal: quanto maior for a memria principal do computador, maior ser a quantidade de pginas de memria disponveis dentro da memria principal; Diminuir a quantidade de programas em execuo no computador: quanto menos programas estiverem em execuo, menor ser a necessidade por pginas de memria, aumentando a possibilidade de existirem pginas disponveis. A medida escolhida depender do tipo de utilizao do computador e dos recursos financeiros disponveis.

3. Diferena entre Paginao e Troca de Pgina A Paginao, vista na Unidade 12, a transferncia de dados inativos da memria principal para a memria secundria, enquanto que a Troca de Pgina acontece quando uma pgina da memria secundria ir ocupar o espao de uma pgina em uso na memria principal. A maioria dos sistemas operacionais modernos implementam essas duas tcnicas, mas fazem um tratamento diferenciado quanto nomenclatura utilizada: No Linux, o mecanismo de Troca de Pgina unificado com a Paginao, no havendo separao conceitual. A diferenciao feita apenas na direo da troca:
Copyright 2007, ESAB Escola Superior Aberta do Brasil 58

Entrada de Pgina: termo utilizado para designar a transferncia de uma pgina da memria secundria para a memria principal, Page-In em ingls.

Sada de Pgina: termo utilizado para designar a transferncia de uma pgina da memria principal para a memria secundria, Page-Out em ingls.

No MS-Windows criado um arquivo fsico no disco para armazenar as pginas menos utilizadas, este arquivo chamado de Arquivo de Paginao, pagefile.sys, e tanto a paginao quanto a troca de pgina so tratadas da mesma maneira.

4. Diferenas na Troca de Pgina entre o MS-Windows e o Linux Nos sistemas operacionais MS-Windows, a Troca de Pgina feita utilizando-se o arquivo pagefile.sys. A localizao desse arquivo pode ser definida pelo usurio, mas geralmente fica no diretrio principal do disco onde est instalado o sistema operacional, geralmente C:\pagefile.sys. O tamanho deste arquivo tambm pode ser definido pelo usurio, podendo ser de dois tipos: Tamanho Varivel: medida que mais pginas so necessrias, o arquivo de paginao ir ser incrementado. Tamanho Fixo: um tamanho fixo definido e no ser alterado.

A vantagem de ter o arquivo de paginao com tamanho varivel a garantia de que sempre espao disponvel para armazenar os programas e seus dados (limitado pelo tamanho total da unidade de armazenamento). Mas isso gera o inconveniente de acarretar em uma possvel fragmentao do arquivo pagefile.sys, que implicar em perda do desempenho do computador. A utilizao de um arquivo com tamanho fixo uma garantia de que o arquivo jamais sofrer fragmentao (contanto que o arquivo seja criado logo aps a instalao do sistema operacional), mas limita a quantidade de memria disponvel no computador. Para

Copyright 2007, ESAB Escola Superior Aberta do Brasil

59

contornar esse problema, pode-se definir um arquivo com tamanho grande, mas pode-se comprometer o espao disponvel na unidade de armazenamento. No Linux uma estratgia diferente adotada: o arquivo de paginao fica completamente separado em uma Partio. Uma partio uma diviso funcional da unidade de armazenamento. Se uma unidade de armazenamento for particionada em duas unidades, cada unidade ser gerenciada pelo sistema operacional de maneira independente da outra unidade. O que acontece na prtica que se tem um arquivo de paginao fixo no Linux.

"Linux Device Drivers um livro que tem por objetivo apresentar os princpios bsicos do desenvolvimento de drivers de dispositivo no Linux. Pretende-se com este livro, que o leitor tenha contato com vrias ferramentas e sub-sistemas existentes no kernel, adquirindo assim as bases que lhe permitiro desenvolver o suporte para a grande maioria dos dispositivos. Alguns dos temas introduzidos so: estrutura bsica de um driver, comunicao com os aplicativos, memria dinmica, eventos assncronos, primitivas de sincronizao e comunicao com o hardware.

Copyright 2007, ESAB Escola Superior Aberta do Brasil

60

FRUM II O que voc entendeu sobre a relao entre a memria virtual e memria paginada?

Copyright 2007, ESAB Escola Superior Aberta do Brasil

61

NIDADE

14

Objetivo: Entender como feita a segmentao da memria, e os resultados obtidos com a utilizao de segmentos de memria.

Memria Segmentada 1. Introduo A Segmentao da Memria consiste na diviso da memria em segmentos de dados. Cada segmento possuir as seguintes propriedades: a sua localizao fsica na memria, permisso de acesso, tamanho e um identificador. Se um processo possuir permisso para utilizar um segmento, e se o processo solicitar acesso a uma informao dentro do segmento, poder fazer isso, caso contrrio um aviso de erro ser passado ao processo (e consequentemente ao usurio). Alm das propriedades citadas, dependendo do sistema operacional, o segmento pode possuir um indicador informando se sua localizao est na memria principal ou na memria secundria. Caso esteja na memria secundria, e seja acessado por algum processo, o sistema operacional ir realizar o carregamento do segmento na memria principal para poder acessar as informaes contidas nele. 2. Unidade de Gerenciamento da Memria A segmentao da memria s ser possvel se houver no computador, dentro do prprio processador ou como um circuito eletrnico independente, uma Unidade de Gerenciamento da Memria (Memory Management Unit, MMU). Esta unidade ser responsvel por fazer o mapeamento entre os endereos fsicos e os endereos dos segmentos de memria. Os processos no acessam diretamente as reas de memria do computador, em vez disso, cada processo ao ser iniciado ser associado a um segmento de memria especfico. Quando um processo realiza o acesso a uma determinada rea de memria, dentro do seu segmento, a Unidade de Gerenciamento da Memria ir acessar a rea fsica
Copyright 2007, ESAB Escola Superior Aberta do Brasil 62

correspondente ao segmento designado ao processo. Para fazer isso, a Unidade de Gerenciamento ir executar as seguintes verificaes: O identificador do segmento do processo; A localizao na memria fsica do segmento, isto , qual o endereo inicial do segmento na memria; A localizao rea de memria acessada pelo processo; A quantidade de informao solicitada pelo processo.

Se o processo em questo fizer a solicitao corretamente, isto , solicitar acesso a uma rea de memria dentro do seu segmento, a Unidade de Gerenciamento da Memria ir completar essa operao e passar ao processo os dados contidos na rea de memria que foi solicitada. Se por acaso o processo fizer uma solicitao que no seja permitida, por exemplo, o processo solicita acesso a uma rea de memria dentro do segmento a que pertence, mas que ultrapasse o tamanho do segmento, essa solicitao no ser atendida, e um aviso de erro ser passado ao processo. Se na realizao do acesso ao segmento, este no se encontrar na memria principal, o sistema operacional ir verificar se o segmento encontra-se armazenado na memria secundria. Encontrando o segmento, o mesmo ser carregado na memria principal para que as informaes contidas nele possam ser acessadas. Se um processo tentar acessar uma rea de um segmento de memria que oferece permisso para o processo em questo ou se o processo tentar acessar uma rea de memria fora do seu segmento, o sistema operacional facilmente conseguir identificar esse fato, pois cada segmento possui um identificador e a definio da permisso de acesso. Se o segmento permitir o acesso de vrios processos diferentes, as informaes contidas nele podero ser acessadas por qualquer processo. Se o segmento permitir o acesso apenas a um processo (quem define o tipo de permisso o primeiro processo criado associado ao segmento) a informao s poder ser lida pelo processo que foi inicialmente associado ao segmento. Quando o processo finaliza a sua execuo, o segmento de memria liberado
Copyright 2007, ESAB Escola Superior Aberta do Brasil 63

(ou pelo prprio programa ou pelo coletor de lixo do sistema operacional) e assim o segmento fica disponvel para ser utilizado por outro processo. 3. Memria Virtual Segmentada Em alguns sistemas, a memria virtual no utiliza pginas de memria, e sim segmentos de memria. Nesse caso, sero criados com a possibilidade de terem o seu tamanho alterado durante a utilizao do computador. A Unidade de Gerenciamento da Memria deve estar preparada para lidar com essa situao, pois em um determinado momento um processo pode solicitar acesso a uma rea inicialmente indevida, mas esta mesma rea pode ser adicionada ao segmento posteriormente, permitindo sua utilizao. 4. Combinao da Segmentao e Paginao Nos sistemas IBM System/38 (Mainframes) o gerenciamento da memria feito utilizando-se a paginao e a segmentao. Cada segmento de memria dividido em pginas de memria. Nos processadores Intel x86, os segmentos de memria tambm so divididos em pginas de memria e cada segmento tratado como sendo uma memria virtual independente. Mas esse recurso s poder ser utilizado se o sistema operacional em execuo no computador permitir que se realize essa distino, o que no acontece nos dias de hoje.

Copyright 2007, ESAB Escola Superior Aberta do Brasil

64

NIDADE

15

Objetivo: Aprender os princpios bsicos do gerenciamento de dispositivos realizados pelos sistemas operacionais.

Gerenciamento De Dispositivos 1. Introduo Para gerenciar dispositivos conectados ao computador, tais como: teclado, mouse, monitor, impressora, entre outros, o sistema operacional deve primeiramente ter a capacidade de acessar o dispositivo e enviar comandos e informaes ao mesmo. Para realizar essa tarefa, os sistemas operacionais recebem um conjunto de instrues especficos para o tratamento dos dispositivos, esse conjunto de instrues chamado de Driver de Dispositivo. Cada dispositivo possui um driver especfico, e cada driver criado pela empresa que criou o dispositivo. A empresa Epson desenvolve os drivers para as impressoras Epson Stylus CX que ela fabrica e a empresa Hewlett-Packard desenvolve os drivers para as impressoras HP DeskJet, sendo que os drivers para as Epson Stylus no funcionaro para gerenciar as impressoras HP DeskJet. Alm da dependncia direta entre o driver e o dispositivo, existe a dependncia direta entre o driver e o sistema operacional, pois um driver feito para ser utilizado pelo MS-Windows no pode ser utilizado pelo MacOS X (e vice-versa). Os drivers tambm so criados para permitir ao sistema operacional acessar: conectores USB e Firewire, redes Bluetooth, unidades de CD e DVD. Os drivers so uma pea fundamental para o bom funcionamento do computador, pois os dispositivos conectados nele s sero utilizados se o driver para o dispositivo estiver disponvel para o sistema operacional. Se no houver o driver para um dispositivo conectado ao computador, esse dispositivo no poder ser utilizado, e se for instalado um driver incorreto para um dispositivo, ele no funcionar de maneira adequada.
Copyright 2007, ESAB Escola Superior Aberta do Brasil 65

2. Funcionamento do Driver de Dispositivo O driver de um dispositivo funcionar como um tradutor de comandos entre o sistema operacional e o equipamento eletrnico. O sistema operacional utilizar as rotinas existentes no driver para poder manipular e gerenciar o equipamento. Por exemplo, se o equipamento for uma impressora, o sistema operacional poder solicitar ao driver que imprima um determinado texto. O driver passar impressora o texto a ser impresso e o comando de impresso. Cada nova verso de uma impressora necessita de um novo driver, isso no significa que cada modelo de impressora ir utilizar um driver diferente. Uma mesma verso de impressora pode ser entregue em modelos diferentes, por exemplo: Epson Stylus 5300, Epson Stylus 5500, Epson Stylus 5700, e Epson Stylus 5900. Os drivers so divididos em duas partes: comandos lgicos e comandos fsicos. Os comandos lgicos so acessados pelo sistema operacional e por qualquer programa que utilize o driver para comunicar com o dispositivo. Os comandos lgicos sero utilizados pelo sistema operacional para informar ao driver os comandos que devem ser executados e para transferir dados para o dispositivo. Os comandos fsicos so utilizados pelo prprio driver, para executar no dispositivo os comandos lgicos solicitados. Um exemplo de comando lgico o seguinte: imprimir o documento relatrio.doc. Para realizar esse comando lgico, vrios comandos fsicos devem ser empregados: preparar a impressora pode imprimir o documento, enviar dados do documento relatrio.doc para a impressora, enviar comando de impresso, esperar resposta de fim da impresso. Quando o dispositivo termina de executar a tarefa solicitada, um aviso enviado ao driver do dispositivo, que ir interpretar esse aviso como um comando fsico e passar ao sistema operacional um comando lgico informando que o dispositivo concluiu a tarefa. No caso da impressora, ao terminar a impresso, um aviso de concluso enviado ao driver e passado ao sistema operacional. Para utilizar o driver, o mesmo deve ser instalado para o sistema operacional. No processo de instalao, o sistema operacional registrar o driver, os dispositivos que podem ser utilizados atravs dele, a localizao das rotinas de operao do dispositivo, entre outras
66

Copyright 2007, ESAB Escola Superior Aberta do Brasil

informaes. Essa tarefa de instalao, atualmente, feita de maneira simples e em muitos casos no chega a ser necessria, pois alguns sistemas operacionais j so distribudos com uma srie de drivers pr-instalados, havendo apenas a necessidade de se instalar manualmente o driver para um dispositivo lanado aps a aquisio do sistema operacional. Para gerenciar os dispositivos, os sistemas operacionais contam com gerenciadores especficos: Gerenciador de Impresso, Gerenciador de Disco, Gerenciador de Modem, Gerenciador USB, Gerenciador de Vdeo, entre outros. Cada gerenciador ser responsvel por realizar a administrao e controle da utilizao do respectivo dispositivo. O Gerenciador de Impresso ir controlar quais documentos sero enviados para a impressora, quando ela estar disponvel para ser utilizada, e vrias outras tarefas. 3. Firmware O Firmware um circuito eletrnico que possui internamente um pequeno programa. Um circuito de firmware geralmente utilizado em equipamentos eletrnicos inteligentes, o que inclui vrios dispositivos do computador atualmente. Em um dispositivo que possui um firmware, o prprio pode funcionar como driver para o dispositivo. Os fabricantes de dispositivos podem atualizar o firmware do dispositivo para melhorar o desempenho do equipamento e no existe a necessidade de instalao de driver, pois o sistema operacional utilizar diretamente firmware do dispositivo. Para ser utilizado como driver, o firmware deve ser carregado na memria do computador como se fosse um driver, e ento utilizado. Os computadores Macintosh utilizam muito esse conceito. A maioria dos dispositivos disponveis para essa linha de computadores no possui um driver para ser instalado no sistema MacOS, possuem um firmware para ser utilizado diretamente. A desvantagem nesses sistemas o maior tempo gasto na inicializao do sistema, pois a cada inicializao, todos os dispositivos devem ter o firmware carregado na memria do computador. 4. Drivers Genricos Um grupo especial de drivers so os chamados Drivers Genricos. Esses drivers podem ser utilizados por uma maior variedade de equipamentos eletrnicos, inclusive de fabricantes
67

Copyright 2007, ESAB Escola Superior Aberta do Brasil

diferentes. Os drivers genricos geralmente so feitos para um determinado tipo de dispositivo, por exemplo: driver genrico para impressora matricial. A maioria das impressoras matriciais poder ser utilizada a partir do driver genrico. A vantagem nesse caso poder contar com uma maior liberdade para utilizar o dispositivo, mas a desvantagem de no poder utilizar todos os recursos disponveis. 5. Dispositivos Plug-and-Play (Ligue-e-Use) Em 1994 vrios fabricantes de dispositivos se uniram para definir um novo conceito na utilizao do computador, e na maneira como seria feita a instalao dos drivers de dispositivos. At essa poca, a instalao e utilizao de um dispositivo era muito complexa (causada principalmente pelo MS-DOS). Para melhorar e facilitar a interao entre os sistemas operacionais e dispositivos foi criado o modelo Plug-and-Play. Esse modelo define um conjunto de caractersticas que os dispositivos iro possuir para facilitar a instalao dos drivers. Essas caractersticas so gravadas no firmware do dispositivo e utilizadas durante a instalao do driver do dispositivo. Antes dos dispositivos Plug-and-Play surgirem, o usurio deveria configurar manualmente o dispositivo, passando ao sistema operacional uma sria de informaes: o conector fsico na placa-me estava o dispositivo, o endereo padro para acessar o dispositivo, o nmero de identificao, o nmero do gerador de interrupes, entre outras. 6. Drivers no MS-Windows e no Linux Como o driver dependente dos sistemas operacionais, a sua utilizao deve seguir critrios definidos pelos fabricantes dos sistemas operacionais. Estes critrios definem como ser feita a interao entre o sistema operacional e os comandos lgicos do driver. Os drivers para MS-Windows 3 e MS-Windows 95 eram desenvolvidos segundo um modelo definido pela Microsoft chamado VxD, a sigla VxD representa Virtual X Driver. Nos sistemas MS-Windows 98, MS-Windows 2000 e MS-Windows XP o modelo utilizado chamado de Windows Driver Model e a principal diferena em relao ao modelo anterior refere-se a
68

Copyright 2007, ESAB Escola Superior Aberta do Brasil

melhorias no tratamento de dispositivos Plug-and-Play. Atualmente, no MS-Windows Vista, o modelo para utilizao dos drivers de dispositivo chamado de Windows Driver Foundation. No Linux, os drivers podem ser programas separados, ou podem fazer parte do prprio kernel. Quando os drivers fazem parte do kernel eles so carregados na inicializao do sistema. Os drivers que no fazem parte do kernel so chamados de Mdulos Carregveis, e tem a vantagem de poderem ser carregados na memria apenas no momento de utilizao do dispositivo.

Copyright 2007, ESAB Escola Superior Aberta do Brasil

69

NIDADE

16

Objetivo: Apresentar o funcionamento bsico do gerenciamento dos arquivos feito pelo sistema operacional e as caractersticas gerais que podem ser encontradas nos sistemas atuais.

Sistema De Arquivos 1. Introduo Um sistema de arquivos o conjunto de regras que definem a maneira como os dados do usurio, programas, informaes de configurao, entre outras, sero gravados e gerenciados nos dispositivos de armazenamento acessados pelo computador. Essas informaes sero armazenadas fisicamente nos dispositivos, e gerenciadas pelo sistema operacional atravs de estruturas de dados, que sero a representao lgica das informaes. Um sistema operacional geralmente caracterizado pelo sistema de arquivos que utiliza, mas um mesmo sistema operacional pode utilizar mais de um sistema de arquivos para gerenciar os do computador. 2. Organizao de um Sistema de Arquivos A maioria dos sistemas de arquivos trabalha organizando os dados em blocos de informao, sendo que o tamanho de cada bloco depender de algumas caractersticas especficas de cada sistema de arquivos, e do dispositivo de armazenamento utilizado. Um exemplo de utilizao de blocos de informao pode ser o seguinte: em um disco-rgido de 40 GB utilizam-se blocos de informao de 4 KB de tamanho, assim o disco dividido em 10 milhes de blocos de informao. Os blocos de informao so utilizados, pois todo o controle da informao feito utilizandose os blocos como unidade bsica de informao. Esse conceito surgiu no incio da utilizao
70

Copyright 2007, ESAB Escola Superior Aberta do Brasil

de computadores, pois a limitao dos computadores impedia um controle mais apurado. O ideal era que cada unidade de informao correspondesse a um byte, se isso fosse feito, seriam necessrios 40 bilhes de unidades de informao separadas no disco-rgido de 40 GB (em um computador de 32bits o maior nmero que pode ser interpretado pelo processador um pouco maior que quatro bilhes). Como os computadores trabalham com nmeros binrios, os blocos de informao so mltiplos de dois e geralmente abrangem o seguinte intervalo: 512 bytes, 1024 bytes, 2048 bytes, at 65536 bytes, este ltimo praticamente no utilizado nos sistemas operacionais atuais. O primeiro valor de 512 bytes tambm raramente utilizado, pois foi desenvolvido para discos-rgidos de pequena capacidade (inferior a 32 MB) e unidades de disquete. No existe atualmente nenhum sistema que utiliza um bloco de informao inferior a 512 bytes, pois todos os discos-rgidos so divididos em blocos fsicos (chamados clusters) de informao de 512 bytes. Os blocos de informao podem ser entendidos como sendo formados por grupos de blocos fsicos de dados. Os dados gravados no sistema recebem o nome de arquivo. Um arquivo pode conter um relatrio de trabalho, um desenho, uma msica, ou um programa. Cada arquivo possui um conjunto de propriedades que definiro a maneira como a informao dentro dele poder ser acessada. 3. Propriedades dos Arquivos Os arquivos possuem uma srie de propriedades que so utilizadas para definir a maneira como os dados sero lidos, atualizados, apagados, como ser mostrado o arquivo para o usurio, a data em que o arquivo foi criado, dentre outras. As principais propriedades de um arquivo encontradas nos sistemas operacionais atuais so: Modo de Acesso: esta propriedade define a maneira como o arquivo ser acessado, podendo ser basicamente da seguinte forma: o arquivo poder ou no ser lido, poder ou no ser escrito, e se for um programa, o programa poder ou no ser executado;

Copyright 2007, ESAB Escola Superior Aberta do Brasil

71

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

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

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

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

Nos sistemas operacionais mais avanados, que utilizam critrios para diferenciar os usurios que utilizam o computador, os arquivos podem ter algumas propriedades que iro armazenar informaes sobre o usurio que criou o arquivo, e o modo de acesso que os outros usurios tero ao arquivo. O conjunto completo de propriedades que um arquivo possuir depender diretamente do sistema de arquivos utilizado pelo sistema operacional. 4. Organizao dos Arquivos Os arquivos ficam armazenados no disco-rgido e para facilitar o gerenciamento dos arquivos, vrias tcnicas so empregadas, as principais so: a separao dos arquivos em Diretrios, e a utilizao de uma Tabela de Arquivos. Um diretrio um mecanismo de organizao dos arquivos. Os arquivos so, sob um aspecto lgico-computacional, organizados primariamente em diretrios. Os diretrios podem ser criados e removidos pelo usurio, e por meio deles, o usurio consegue realizar a separao dos arquivos a partir de critrios definidos previamente. Alguns sistemas
Copyright 2007, ESAB Escola Superior Aberta do Brasil 72

operacionais, durante a instalao do sistema no computador, criam alguns diretrios iniciais, que so utilizados para organizar os arquivos do prprio sistema operacional, e tambm para auxiliar o usurio apresentando uma pr-organizao que poder ou no ser seguida. Os diretrios recebem vrios nomes, entre eles: pastas e caminhos. No MS-Windows XP, a pasta Meus Documentos na rea de trabalho, corresponde ao diretrio: C:\Documents and Settings\<usurio>\Meus documentos. A Tabela de Arquivos um outro mecanismo utilizado pelos sistemas operacionais para organizar os arquivos, mas nesse caso a organizao pretendida para o tratamento dos dados fisicamente gravados no disco-rgido. Graas utilizao dessa tabela, os arquivos podem ser encontrados e editados sem que haja necessidade de mecanismos complexos ou demorados para se realizar esse trabalho. Na Tabela de arquivos ficaro armazenadas basicamente as seguintes informaes: um identificador do arquivo (geralmente sendo o caminho do arquivo que inclui o diretrio completo e o nome do arquivo, mais um nmero de identificao nico para cada arquivo), e o nmero do primeiro bloco fsico de dados no disco-rgido. 5. Nomeao dos Arquivos e Diretrios Os sistemas de arquivos atualmente utilizados nos sistemas operacionais permitem a criao de arquivos e diretrios com nomes de at 255 caracteres. Mas no incio, esse nmero era bem inferior. Na dcada de 1980 era comum o uso do MS-DOS, e este sistema permitia a criao de arquivos com no mximo 11 caracteres (8 caracteres no nome + 3 caracteres de extenso). Um detalhe importante na nomeao dos arquivos e diretrios o cuidado que se deve ter para no utilizar nenhum caractere especial, pois alguns so utilizados para auxiliar a organizao, exibio e administrao dos arquivos, como por exemplo, os caracteres: /, ?, $, etc. Estes dependem do sistema de arquivos, que depende do sistema operacional. Por exemplo, nos sistemas Unix, se um arquivo comea com o caractere ., indica que o arquivo ficar oculto, e se comea com ~ significa que uma cpia de segurana.

Copyright 2007, ESAB Escola Superior Aberta do Brasil

73

O sistema MS-Windows 95 ao ser lanado permitiu a utilizao de nomes de arquivos com 255 caracteres, mas teve que ser feito com uma Tabela de Arquivos especial, pois deveria ser compatvel com o sistema MS-DOS e MS-Windows 3. Quando o arquivo era visualizado a partir do MS-Windows 95 o nome era exibido corretamente, mas quando era visto no MSDOS ou MS-Windows 3 o nome era exibido no formato 8.3 caracteres. 6. Metadados dos Arquivos Existe um grupo de informaes que so armazenadas na Tabela de Arquivos, chamada de Meta-dados. Essas informaes podem ser por exemplo: o tamanho em bytes dos dados do arquivo, o formato do contedo, a data de criao, data de modificao, nome do usurio que criou, propriedades do modo de acesso, resumo do contedo do arquivo, e vrias outras informaes (dependendo do sistema operacional). As informaes contidas nos meta-dados so teis para o sistema operacional oferecer algumas funes adicionais ao usurio, como por exemplo, se o usurio precisar acessar os arquivos que uma determinada pessoa criou em uma certa data, o sistema operacional dever possuir essas informaes para poder dar a resposta correta ao usurio. 7. Classificao dos Sistemas de Arquivos: Os sistemas de arquivos podem ser classificados em dois tipos bsicos: Sistemas de Disco: uma unidade de armazenamento no-voltil (disco-rgido, CD-R, flashdrive) utilizada para guardar os arquivos e seus dados. A Tabela de Arquivos geralmente fica armazenada na prpria unidade de armazenamento onde se encontram os arquivos referenciados por ela. Exemplos de sistemas de arquivo em disco so: FAT32, NTFS, HFS, ext2, ext3, isso 9660, etc. Sistemas de Arquivo em Rede: Um sistema de arquivo em rede um sistema em que o gerenciamento e armazenagem dos arquivos de um computador feito em um outro computador conectado rede, que permite o acesso aos dados de maneira transparente, como se estivessem no prprio computador do usurio. O sistema mais utilizado o NFS.
Copyright 2007, ESAB Escola Superior Aberta do Brasil 74

NIDADE

17

Objetivo: Conhecer o funcionamento do sistema de arquivos NTFS introduzido no Windows NT em 1993.

Sistema De Arquivos NTFS 1. Introduo O sistema de arquivos NTFS o sistema padro nos Sistemas Operacionais MS-Windows Server. O padro NTFS foi introduzido em 1993 no sistema operacional MS-Windows NT, destinado aos computadores servidores, que a partir da verso 5 passou a ser denominado MS-Windows Server (houve uma verso destinada a computadores de escritrio, pretendendo substituir o MS-Windows 3 em 1993, mas no houve adeso suficiente por parte dos usurios, sendo abandonada no ano 2000 e substituda pelo MS-Windows XP). A Microsoft, criadora do Windows, optou por utilizar o padro NTFS no sistema Windows NT (Server), pois possui vrias vantagens em relao ao padro FAT utilizado no Windows para computadores pessoais. Essas vantagens incluem maior aproveitamento do espao disponvel nos discos-rgidos, melhor desempenho nas operaes de gravao/leitura dos dados, utilizao de estruturas de dados avanadas para representar os arquivos contidos no disco, mecanismos de criptografia dos dados e outras. Algumas caractersticas de armazenamento do padro NTFS so: Tamanho Mximo do disco-rgido: 264 bytes = 2 Exabytes. Tamanho da Unidade Bsica de Informao: 4 KB. Tamanho Mximo do nome do arquivo: 255 letras (Unicode). Maior Data dos arquivos: 28/05/60056 (sessenta mil anos).

Copyright 2007, ESAB Escola Superior Aberta do Brasil

75

O tamanho da unidade bsica de informao de 4 KB utilizado em discos com mais de 2 GB de espao disponvel, como todos os computadores utilizados atualmente que executam o Windows Server ou Windows XP possuem muito mais que 2 GB, pode-se dizer que 4 KB o tamanho padro da unidade bsica de informao. O menor tamanho da unidade bsica 512 bytes, utilizado apenas em discos com at 512 MB. 2. Tratamento dos Arquivos No NTFS todo o contedo do arquivo, incluindo o nome, data de criao, permisses de acesso, armazenado como sendo um Meta-Dado. Os arquivos so armazenados em uma estrutura denominada Tabela Mestre de Arquivos, e a estrutura de dados que o NTFS utiliza para organizar os arquivos a rvore B+, que mesmo sendo muito complexa para ser desenvolvida, fornece um timo desempenho nas operaes de busca dos arquivos. A Tabela Mestre contm as informaes sobre cada arquivo e diretrio em um disco NTFS. nessa tabela que ficam armazenadas as informaes referentes ao nome do arquivo, sua localizao, tamanho e permisses de escrita, leitura e execuo. Uma caracterstica importante da Tabela Mestre sua capacidade de minimizar a fragmentao dos arquivos. Cada Unidade Bsica de Informao pode conter 4 registros da Tabela Mestre. O padro NTFS possui um tipo especial de arquivo denominado Meta-Arquivo, que utilizado para auxiliar a organizao dos Meta-Dados, que so os arquivos do usurio. Os Meta-Arquivos armazenam informaes referentes a Cpias de Segurana, Dados do Sistema, Dados Temporrios das alteraes dos arquivos, Alocao do Espao Livre, Partes do Disco com defeito, Informaes de Segurana e Informaes sobre a utilizao do disco. 3. Arquivos Residentes e No-Residentes No NTFS foi utilizada uma estratgia para o armazenamento de arquivos pequenos que no comprometesse a utilizao otimizada do espao de armazenamento no disco: os dados dos arquivos pequenos so armazenados na prpria Tabela Mestre, quando possvel fazer desse modo. Esse tipo de gravao denominada Gravao Residente e os arquivos so Arquivos Residentes.
76

Copyright 2007, ESAB Escola Superior Aberta do Brasil

Essa estratgia utilizada quando o arquivo possui menos de 800 bytes de informao (um arquivo de configurao pode ter algumas dezenas de bytes apenas). Dessa forma, arquivos residentes no ocupam espao de armazenamento no disco. Como a Tabela Mestre est no disco, o arquivo em si tambm ficar armazenado no espao de armazenamento do disco, mas sem ocupar uma Unidade Bsica de Informao por completo, evitando armazenar 800 bytes e desperdiar 3200 bytes. Arquivos criptografados ou comprimidos no so armazenados de forma residente. Os arquivos com mais de 800 bytes, ou criptografados ou comprimidos, sero armazenados no espao de armazenamento do disco, ocupando quantas Unidades Bsicas forem necessrias. Os arquivos armazenados desta maneira so denominados Arquivos NoResidentes. 4. Compatibilidade com outros Sistemas Operacionais A Microsoft mantm em segredo os detalhes internos de funcionamento e organizao do padro NTFS, mas alguns desenvolvedores independentes conseguiram acessar discos NTFS a partir de outros sistemas, como o Linux, MacOS X, MS-DOS entre outros. No Linux pode-se operar discos NTFS sem o auxlio de utilitrios extras desde a verso 2.2 do Linux kernel, mas apenas para a leitura das informaes. A gravao s pode ser feita atravs de utilitrios como o NTFSMount. Mas mesmo nesses casos os desenvolvedores informam que pode haver perda de dados no disco, inclusive do disco inteiro, dependendo da maneira como os dados forem acessados. Mesmo a utilizao de redes com verses diferentes do Windows instaladas nos computadores pode danificar as informaes gravadas no disco NTFS, pois cada verso nova do MS-Windows NT, e posteriormente MS-Windows Server e MS-Windows XP, possui caractersticas novas. Isso faz com que o MS-Windows 2000 no reconhea completamente as caractersticas do NTFS presentes no MS-Windows 2003.

Copyright 2007, ESAB Escola Superior Aberta do Brasil

77

O sistema operacional MacOS X 10.3, e posteriores, oferecem suporte leitura do disco NTFS com segurana da integridade da unidade de disco. Um utilitrio chamado NTFS-3G permite a leitura e gravao, mas sem garantia de integridade do disco. O MS-Windows NT desde o lanamento oferece suporte aos padres FAT16, e com o lanamento do padro FAT32 no MS-Windows 95, este tambm passou a ser utilizado no MS-Windows NT 4 em 1996. A Microsoft oferece um utilitrio para realizar a converso dos discos com padro FAT16 e FAT32, presentes no Windows 3 e Windows 95/98, modificandoos para o padro NTFS. Mas no oferece nenhum utilitrio para fazer a operao inversa. 5. Caractersticas Gerais O NTFS desenvolvido para o MS-Windows Server 2003, e tambm utilizado no MS-Windows Vista, possui as seguintes caractersticas: Nome Alternativo do Arquivo: pode-se associar um segundo nome para um arquivo, e fornecer permisses de acesso diferentes para cada nome. Isto pode ser til quando se deseja proteger um arquivo de acesso indevido, um dos nomes fica visvel aos usurios apenas para leituras, e o outro nome fica invisvel, mas permite a leitura e gravao. Mas se o arquivo for copiado para um disco FAT32, o segundo nome ser perdido; Cota de Armazenamento: pode-se definir uma cota de utilizao do espao de armazenamento do disco para cada usurio, limitando a quantidade de dados que se pode gravar no disco. As cotas so utilizadas geralmente em computadores que sero utilizados como servidores de arquivos, dividindo o espao em disco de maneira equalizada entre os usurios; Pontos de Montagem: semelhantes aos sistemas Unix, podendo-se associar uma nova unidade de disco a uma determinada pasta/diretrio dentro do disco atual; Ponto de Juno: propriedade semelhante ao Ponto de Montagem, a diferena nesse caso que no ser criada uma nova unidade de disco, mas o contedo de duas pastas ser exibido em conjunto, por exemplo, se for criada uma ligao de juno
Copyright 2007, ESAB Escola Superior Aberta do Brasil 78

entre C:\Trabalho e D:\discos\segurana, a pasta D:\discos\segurana passar a ser utilizada como uma pasta pertencente C:\Trabalho; Ligao entre Arquivos: similar aos Pontos de Juno, oferecendo a ligao entre arquivos em pastas diferentes; Gerenciamento Hierrquico do Armazenamento: essa caracterstica importante para otimizar a utilizao das unidades de discos, pois ir organizar os arquivos de acordo com a freqncia de acesso aos mesmos. Os arquivos mais acessados ficaro em locais fisicamente mais fceis de serem acessados; Controle de Verso dos Arquivos: as mudanas efetuadas nos arquivos so armazenadas para se manter um histrico das alteraes feitas nos arquivos em disco. Desta maneira, possvel restaurar um arquivo sua condio anterior a uma alterao indevida; Compresso de Arquivos: os discos NTFS podem armazenar os dados dos arquivos utilizando o algoritmo de compresso LZ77, o mesmo utilizado em arquivos .ZIP, economizando espao de armazenamento no disco-rgido; Armazenagem Unificada de Arquivos: quando mltiplos arquivos, com o mesmo contedo, so armazenados em pastas diferentes, o NTFS ir armazenar apenas uma referncia dos arquivos fisicamente no disco, as outras referncias sero feitas apenas na Tabela Mestre. Quando um arquivo for modificado, uma nova referncia fsica ao arquivo ser feita no disco; Criptografia do Sistema de Arquivos: Os arquivos e pastas podem ser gravados de maneira a serem acessveis apenas a partir do disco original, atravs da criptografia, que a modificao dos dados originais tornando-os diferentes, incompreensveis, a qualquer pessoa ou programa que o acesse sem descriptograf-lo, operao esta que feita pelo prprio NTFS. Se o arquivo for copiado para outro disco, ele no ser corretamente lido, pois os dados internos do arquivo esto ilegveis.

Copyright 2007, ESAB Escola Superior Aberta do Brasil

79

NIDADE

18

Objetivo: Conhecer o sistema de arquivos utilizado no Linux, aprender as suas caractersticas e entender o seu modo de funcionamento.

Linux Ext 1. Introduo Durante o desenvolvimento inicial do Linux, entre os anos de 1991 e 1992, foi utilizado um sistema de arquivos chamado ext1. Nesse perodo o Linux era praticamente utilizado apenas pelos programadores. Em 1993 foi desenvolvida uma verso do sistema de arquivos prpria para o Linux, que j podia ser instalado e utilizado por vrios usurios, essa verso recebeu o nome de Linux Extended File System Version 2, ou ext2. Caractersticas gerais do padro ext2: Tamanho Mximo do disco-rgido: 4 Terabytes; Tamanho da Unidade Bsica de Informao: 4 KB; Tamanho Mximo do nome do arquivo: 255 letras (ASCII); Maior Data dos arquivos: 18/01/2038.

De maneira semelhante ao NTFS, o tamanho padro da unidade bsica de informao nos discos ext2 atualmente de 4 KB, podendo variar entre 512 bytes e 4 KB dependendo do espao disponvel no disco. O padro ext2 ainda bastante utilizado, mas j possui um sucessor, denominado ext3, desenvolvido em 2001. A diferena bsica entre os padres ext2 e ext3 a seguinte: o ext3 possui um mecanismo especializado chamado Journaling que utilizado para otimizar o

Copyright 2007, ESAB Escola Superior Aberta do Brasil

80

desempenho nas operaes de busca de arquivos, e proteo contra falhas no sistemas (queda de energia durante a gravao de um arquivo). Um novo padro foi desenvolvido em 2006, denominado ext4, apresentando um aumento no tamanho mximo do disco de 1 Exabyte, alm de melhorias no desempenho geral do sistema de arquivos. 2. Tratamento dos Arquivos No ext2 os arquivos so tratados de maneira diferente do tratamento feito no NTFS. As informaes sobre o arquivo so explicitamente separadas dos dados do arquivo. Basicamente, a estrutura de arquivos do padro ext2 se divide em: Inodes e Blocos de Dados. Os Inodes armazenam as propriedades dos arquivos, como tamanho, o usurio que o criou, o grupo do usurio, data de criao, entre outras. Um arquivo pode ter mais de um Inode, pois cada Inode est associado a um Bloco de Dados. Os Blocos de Dados representam os dados fisicamente gravados no disco. Dependendo de como est a distribuio dos dados no disco, o arquivo possuir um ou mais blocos de dados gravados. O ext2 ir priorizar a gravao de um bloco contnuo de dados, para minimizar as operaes de leitura e gravao das informaes, otimizando o desempenho do sistema de arquivos. Esse modelo de tratamento dos arquivos est sendo mantido nos padres ext3 e ext4. Sendo adicionado neles o mecanismo de Journaling, que consiste na utilizao de uma estrutura de dados semelhante a rvore-B+, e utilizao de Meta-Dados para representar os arquivos. O Journaling no uma adaptao do mecanismo utilizado no NTFS, pois ele foi criado pela IBM em 1990 e utilizado em vrios sistemas operacionais. O mais provvel que a Microsoft tenha adaptado o Journaling no NTFS. No padro ext4 uma nova funcionalidade foi adicionada, chamada de Alocao Dinmica de Inodes. Essa funcionalidade garante espao adicional para os arquivos durante as etapas de

Copyright 2007, ESAB Escola Superior Aberta do Brasil

81

gravao e atualizao dos mesmos, reservando espao adicional no disco-rgido, evitando assim que os dados fiquem fragmentados. Em todas as verses do padro ext os arquivos so organizados em uma tabela chamada: Tabela Descritiva de Grupos, que contm a lista de arquivos e as listas de Inodes associadas a cada arquivo. 3. Compatibilidade com outros Sistemas Operacionais O sistema de arquivos ext2, e ext3, podem ser acessados a partir de outros sistemas operacionais atravs de utilitrios disponveis para cada sistema, como por exemplo: MacOS X: pode-se instalar o utilitrio ext2 driver, permitindo que discos ext2 sejam manipular diretamente pelo MacOS X; MS-Windows Server: tambm possui um utilitrio chamado ext2fsd que tambm permitir aos sistemas MS-Windows 2000 e MS-Windows 2003 manipularem diretamente discos ext2 ou ext3; Explore2fs: este programa est disponvel para praticamente todas as verses do sistema MS-Windows posteriores ao MS-Windows 95. Tem um funcionamento semelhante ao Windows Explorer, permitindo manipular arquivos em discos ext2 ou ext3. Em todos esses casos, os utilitrios e programas, no garantem a total compatibilidade e integridade dos dados acessados. Esses programas foram feitos por desenvolvedores independentes, no tendo garantias na sua utilizao, mas at hoje nenhum dano srio foi identificado ou divulgado. Como o padro ext4 recente, e ainda est em desenvolvimento, no existe um programa. 4. Caractersticas Gerais Atualmente o padro ext3 possui as seguintes caractersticas:

Copyright 2007, ESAB Escola Superior Aberta do Brasil

82

Definio Padro dos atributos de um arquivo: os atributos que um arquivo possui definem a maneira como ser acessado. Tais atributos podem ser definidos de acordo com o diretrio em que o arquivo est armazenado, no havendo necessidade de se modificar os atributos depois de cri-lo;

Definio Padro do Grupo de Usurio a um diretrio: um diretrio pode ser definido para permitir que apenas um determinado Grupo de Usurios tenha acesso de gravao. Outros usurios de outros grupos podem ler os arquivos (se for permitido pelo atributo do arquivo), mas no podero gravar arquivos no mesmo diretrio;

Definio do tamanho da Unidade Bsica de Informao na criao do arquivo: quando o arquivo gravado no disco-rgido, ocupar uma determinada quantidade de unidades bsicas de informao. No padro etx3 o tamanho da unidade bsica de um arquivo pode ser especificado de acordo com o tamanho do arquivo. Arquivos grandes podem ser definidos com unidades de informao grandes, e arquivos pequenos com unidades de informao menores;

Checagem da integridade do sistema de arquivos: em determinados momentos, definidos previamente pelo usurio, o padro ext3 ir realizar a checagem da integridade dos dados armazenados na Tabela Descritiva de Grupos, verificando se no existe falha no sistema. Esta checagem realizada por um programa utilitrio chamado e2fsck;

Um atributo especial no arquivo pode ser definido para que o contedo do arquivo armazenado fisicamente no disco-rgido seja destrudo ao se apagar o arquivo da Tabela Descritiva de Grupos. O ext3 ir gravar dados aleatrios no espao fsico onde se encontrava o arquivo, esta propriedade bastante til, pois evita que outras pessoas acessem os dados de uma empresa diretamente no disco-rgido atravs de um extrator de dados. O sistema operacional MacOS X, por ser derivado de um sistema semelhante ao Unix, possui atualmente um sistema de arquivos semelhante ao ext3, chamado HFS+. O padro HFS+ a juno do padro HFS utilizado nos sistemas MacOS 8 e MacOS 9 com o padro ext3.
Copyright 2007, ESAB Escola Superior Aberta do Brasil 83

NIDADE

19

Objetivo: Aprender as caractersticas das interfaces existentes que permitem a interao entre o usurio e o computador, para a realizao das diversas tarefas.

Interface Com O Usurio 1. Introduo A Interao entre o usurio e o computador alvo de estudos desde o incio da era da Informtica. Abrange estudos na rea da Cincia da Computao, Desenho, Pscicologia, entre outras. Essa interao realizada atravs da Interface com o Usurio. A interface abrange os programas e equipamento, pois o prprio teclado uma interface para operao do computador. O principal objetivo da interface com o usurio permitir a interao entre o usurio e o computador, mais precisamente, permitir que o usurio possa utilizar a mquina para realizar as tarefas de maneira simplificada e eficiente. Atualmente as interfaces de usurio utilizam grficos para simbolizar operaes e organizar as funes, sendo utilizada em praticamente todos os sistemas operacionais modernos. 2. Interface Grfica para o Usurio As interfaces grficas criam um ambiente de interao com usurio atravs de figuras, indicadores e elementos grficos. As figuras so chamadas de cones, e representam uma ao a ser realizada ou um dispositivo a ser utilizado. Geralmente os cones possuem uma legenda, para facilitar o entendimento de sua representao. Os indicadores geralmente so utilizados para representar o andamento de alguma operao como a barra de progresso e os elementos grficos so controles auxiliares, como setas, botes, entre outros. Os sistemas operacionais MS-Windows, MacOS X, Linux, entre outros, tambm oferecem a opo de interao por meio de comandos. Um detalhe existente entre os usurios do Linux:
Copyright 2007, ESAB Escola Superior Aberta do Brasil 84

alguns preferem a utilizao de interface por comando em vez de utilizarem a interface grfica. O primeiro sistema operacional que obteve sucesso na utilizao de uma interface grfica foi desenvolvido em 1981 pela empresa Xerox. A interface recebeu o nome de PARC User Interface (a sigla PARC significa Palo Alto Research Center, nome da unidade da Xerox que desenvolveu a interface). Esta interface bem rudimentar em comparao com as atuais interfaces, mas em sua poca causou uma verdadeira revoluo na maneira como os computadores passaram a ser utilizados. Em seguida, a empresa Apple lanou seu primeiro computador com sistema operacional de interface grfica, o Apple Lisa, que no chegou a ser muito utilizado, mas o segundo computador lanado pela Apple, o Macintosh, considerado por muitos como o principal exemplo de sistema com interface grfica. Desde ento, vrias empresas lanaram sistemas com interface grfica, a Microsoft lana o MS-Windows em 1985, os sistemas Unix tambm passam a utilizar a interface grfica X-Window na dcada de 1980, a IBM lana um sistema com interface grfica chamado IBM OS/2, e vrios outros sistemas so lanados. 3. Projeto de Interface com o Usurio O Projeto da Interface com o Usurio atualmente uma das principais reas no desenvolvimento dos sistemas operacionais (e aplicativos em geral). O objetivo dos projetistas desenvolver uma interface que seja de fcil utilizao e de grande abrangncia e eficincia. A interface deve ser de fcil utilizao, pois o objetivo de qualquer interface para o computador permitir que o usurio utilize os recursos disponveis no mesmo para realizar seu trabalho (sem que haja mais trabalho para operar o computador). A abrangncia da interface importante, pois ela deve permitir que todos os recursos do computador sejam acessveis. E a eficincia tambm deve ser considerada porque no seria til ter uma interface que no respondesse aos comandos do usurio de forma que comprometesse a realizao dos trabalhos no computador. Para permitir que o usurio interaja com o computador, as interfaces possuem uma srie de elementos: Janelas, Botes, cones, Menus, Indicadores, entre outros. Esses elementos
Copyright 2007, ESAB Escola Superior Aberta do Brasil 85

devem estar organizados de maneira harmnica, para permitirem uma boa visualizao para o usurio. As janelas so utilizadas para delimitar o programa em execuo, e os outros controles so utilizados para permitir acesso s funes do programa. Geralmente os sistemas operacionais so caracterizados por uma interface grfica padro, mas a maioria dos sistemas modernos permite que a interface com o usurio seja personalizada. Nos primeiros computadores que possuam um sistema operacional com interface grfica, os elementos disponveis eram bem simples, por causa das caractersticas dos computadores da poca, em 1985 a maioria possua algumas centenas de kilobytes de memria, os processadores raramente tinham uma velocidade superior a 10MHz e os monitores exibiam apenas uma cor (verde, cinza ou laranja), alguns poucos exibiam 16 cores, alm de terem uma resoluo muito pequena, alguns chegavam a 320x200 e os melhores 512x424. Atualmente, os computadores contam com processadores rpidos, e capacidades grficas muito superiores, facilmente encontram-se computadores que possuem um processador de 2.000 MHz e monitores com resoluo de 1024x768 com capacidade para exibir milhes de cores, alm de centenas de megabytes de memria RAM. 4. Interface Grfica 3D Recentemente comearam a ser utilizadas nos sistemas operacionais MS-Windows e Linux, interfaces grficas com elementos em 3 Dimenso. Este recurso visvel na operao de alternncia entre aplicativos, mas poder ser utilizado em vrios elementos da interface grfica.

Copyright 2007, ESAB Escola Superior Aberta do Brasil

86

NIDADE

20

Objetivo: Conhecer o funcionamento dos sistemas operacionais para redes de computadores e as principais caractersticas que esses sistemas devem possuir.

Sistemas Operacionais Para Redes De Computadores 1. Introduo Sistemas Operacionais de Rede so responsveis por gerenciar de maneira eficiente os computadores pertencentes a uma determinada rede, bem como os usurios que utilizam os computadores e dispositivos que esto disponveis. Esses sistemas geralmente so utilizados em Redes Locais (rede de computadores localizados em uma mesma sala, at alguns andares de um edifcio), mas podem ser utilizados tambm em Redes Amplas, Metropolitanas e at Redes Globais. Para prover o gerenciamento adequado dos computadores, usurios e dispositivos conectados rede, os sistemas operacionais devem possuir funcionalidades especiais, alm das normalmente encontradas em um sistema operacional comum. Dentre as funes especiais, destacam-se: Suporte protocolos de comunicao em rede, como: TCP/IP, IPX, NetBIOS; Mecanismos de Segurana: controle de acesso rede atravs da autenticao e autorizao de usurios e sistemas externos; Gerenciamento de Arquivos distribudos: permitir acesso aos arquivos pertencentes rede de maneira transparente (e segura); Gerenciamento de Dispositivos distribudos: tratamento similar ao gerenciamento de arquivos;

Copyright 2007, ESAB Escola Superior Aberta do Brasil

87

Gerenciamento de Usurios: controlar os usurios que fazem uso dos computadores pertencentes rede.

Existem vrios sistemas que fornecem recursos que permitem a operao em redes de computadores, os mais conhecidos so: Unix (Linux, AIX, BSD), MS-Windows 2000, Novell Netware, Sun Solaris, e alguns outros. Alm desses sistemas, existem alguns com funes dedicadas para operarem em uma rede de computadores, como o caso do Cisco IOS e Plan9. A principal caracterstica que um sistema operacional de rede deve possuir garantir o controle no acesso aos recursos, provendo um ambiente seguro aos usurios que utilizaro a rede. Esse controle garantido no apenas atravs da utilizao de algumas ferramentas como autenticao de usurios, mas atravs de polticas administrativas: verificao dos usurios que esto utilizando a rede regularmente, definio de regras para acesso aos dispositivos (por exemplo: os usurios sero divididos em grupos, e cada grupo ter acesso a um conjunto de dispositivos conectados a rede). 2. Sistemas de Rede Especializados Os sistemas de rede dedicados desempenham primariamente uma determinada funo. O sistema Cisco IOS foi criado para atuar em roteadores da empresa Cisco e foi desenvolvido para ser utilizado como roteador e comutador de rede e gerenciador de telecomunicao. O Cisco IOS um sistema multitarefa, operado atravs de uma interface de linha de comando, isso significa que para o usurio realizar alguma tarefa no sistema Cisco IOS dever digitar o comando que representa a tarefa. Os comandos que podem ser utilizados por um usurio do sistema dependero da caracterizao do usurio no sistema. Os usurios podem pertencer a 15 nveis diferentes, cada nvel representa uma classe de comandos. Usurios de nveis inferiores s conseguem executar tarefas do seu respectivo nvel e os dos nveis superiores conseguem executar as tarefas do seu nvel e todas as tarefas de nveis abaixo do seu. O sistema Plan9 um Sistema Operacional Distribudo, utilizado principalmente para fins de pesquisa. Ele desenvolvido pela empresa AT&T, a mesma que criou o Unix (o prprio Plan9 derivado do Unix). A principal caracterstica do Plan9 a representao de todos os
Copyright 2007, ESAB Escola Superior Aberta do Brasil 88

recursos do computador em um sistema de arquivos. O objetivo no desenvolvimento do Plan9 de criar um sistema operacional que permitisse a utilizao de qualquer tipo de mquina na rede. O Plan9 atuaria como um gerenciador dos recursos da rede e os sistemas locais em cada computador utilizariam os recursos disponveis no sistema de arquivos do Plan9. 3. Sistemas Operacionais que acessam redes Deve-se fazer uma distino entre um sistema operacional de rede e um sistema operacional que acesse uma rede de computadores. Um sistema operacional de rede far o gerenciamento da rede de computadores e dos recursos disponveis na rede, exemplos de sistemas operacionais de rede so o MS-Windows 2000 e Linux. J um sistema operacional que acessa uma rede, no ir gerenciar a rede. Ele utilizar os recursos disponveis na rede. Exemplos de sistemas dessa categoria so: MS-Windows XP, MacOS X, BeOS, entre outros. Para estes sistemas, questes como o controle dos usurios que podem ou no acessar a rede no so considerados. Se o usurio que est utilizando o sistema operacional local pode ou no acessar, uma verificao a ser feita pelo sistema operacional da rede.

Antes de dar continuidades aos seus estudos fundamental que voc acesse sua SALA DE AULA e faa a Atividade 2 no link ATIVIDADES.

Copyright 2007, ESAB Escola Superior Aberta do Brasil

89

Linux O sistema operacional Linux est comeando a conquistar o mercado de computadores pessoais. Este sistema que inicialmente foi desenvolvido para ser utilizado por programadores ocasionais, e depois passou a ser instalado em servidores de computadores, agora j vendido pr-instalado em computadores pessoais de diversas marcas: Positivo, Dell, HP, entre outras. Ainda existem algumas restries para uma ampla utilizao do sistema Linux em computadores domsticos, mas muitas barreiras j foram superadas. Discuta no Frum quais os principais fatores que ainda faltam ser superados para uma utilizao macia do Linux em computadores domsticos.

Copyright 2007, ESAB Escola Superior Aberta do Brasil

90

NIDADE

21

Objetivo: Aprender como feito o gerenciamento do usurio nos sistemas operacionais e qual a importncia de se realizar essa tarefa.

Gerenciamento De Usurio 1. Introduo Os usurios de computador so as pessoas que estaro utilizando o computador para a realizao dos trabalhos. Os usurios que acessarem o computador tero sua disposio todos os recursos disponveis: rea de armazenamento, capacidade de processamento e informaes guardadas por outros usurios. Alguns computadores no podem ser acessados por qualquer pessoa e em alguns casos, at o horrio de utilizao controlado. Para permitir esse tipo de administrao, um conjunto de regras deve existir, para definir: As pessoas que podero utilizar o computador; Os recursos que podero ser utilizados por cada pessoa; Os horrios em que cada pessoa poder utilizar o computador; Mecanismos de proteo das informaes e programas armazenados no computador.

Essas definies fazem parte da poltica de Gerenciamento do Usurio. A principal preocupao no Gerenciamento do Usurio garantir que apenas um grupo limitado e definido de pessoas tenham acesso aos recursos do computador. O mtodo de gerenciamento realizado depender diretamente do sistema operacional utilizado. Sistemas antigos, como o MS-DOS no permitiam o menor controle do usurio que utilizava o computador e os sistemas operacionais disponveis em alguns aparelhos eletrnicos atuais,

Copyright 2007, ESAB Escola Superior Aberta do Brasil

91

como Pocket PC e telefone celular tambm no fazem controle de qual usurio est utilizando o aparelho. 2. Autenticao de Usurio Autenticar um usurio a tarefa de verificar e confirmar que o usurio tem permisso para realizar alguma tarefa. Para realizar a autenticao vrias tcnicas podem ser empregadas, a mais comum a definio de um nome e uma senha para cada pessoa. Tal estratgia pode ser utilizada por muito tempo, mas atualmente vem apresentando alguns inconvenientes, que vo desde o compartilhamento de um usurio entre vrias pessoas, at a utilizao de senhas muito simples que so facilmente descobertas por pessoas indevidas. O maior problema na autenticao de um usurio cerificar e confirmar corretamente que o nome e senha utilizados por uma pessoa realmente foram atribudos quela pessoa. Para conseguir aumentar o grau de associao entre o usurio e a pessoa, outros mecanismos so utilizados, como a utilizao de senha dupla, e a biometria, sendo este o mtodo mais seguro atualmente de identificao da pessoa associada ao usurio do computador. A biometria a verificao de caractersticas fsicas de uma pessoa. Na autenticao de usurios podem ser utilizados a verificao da impresso digital, retina do olho e voz, pois estas caractersticas so nicas em cada ser humano. Desse modo, consegue-se ter uma verificao precisa de quem a pessoa que est tentando acessar o computador. 3. Permisses do Usurio As permisses do usurio so o conjunto de regras que definiro a maneira como o usurio poder utilizar os recursos do computador. Essas regras so definidas por Administradores de Usurios. Os administradores so pessoas responsveis por criar as polticas que definiro o modo como cada pessoa utilizar o computador e os recursos disponveis. Os sistemas operacionais geralmente possuem um usurio administrador padro, no MSWindows o nome e a senha desse usurio so definidos durante a instalao do sistema operacional e no Linux o administrador padro o usurio root e a senha tambm a palavra root.

Copyright 2007, ESAB Escola Superior Aberta do Brasil

92

Os administradores iro definir quais os recursos do computador estaro disponveis para o usurio, em cada recurso ainda pode haver um limite de uso, por exemplo, um usurio tem permisso de acesso impressora, mas pode imprimir no mximo 100 pginas, quando imprimir a centsima pgina o usurio perde o acesso impressora. na definio da permisso do usurio que tambm ser registrado os horrios que o mesmo poder utilizar o computador. Deve-se fazer uma distino entre permisses concedidas ao usurio e permisses concedidas pelo usurio. A primeira definio aplica-se aos recursos que o usurio ter acesso e que esto em um nvel administrativo superior ao dele. A segunda utilizada para os casos em que os recursos esto no mesmo nvel administrativo do usurio, por exemplo: arquivos criados pelo prprio usurio podero ter permisses de acesso definidas por ele. A partir da implementao das polticas de concesso de permisses aos usurios, automaticamente sero definidos os mecanismos de controle ao acesso s informaes e programas disponveis no computador. A proteo desses recursos importante, pois um usurio ter acesso ao computador (autorizado pelo sistema) no significa que ele tem autorizao para executar qualquer programa e nem visualizar ou alterar qualquer informao contida no computador. Alguns programas devem ser executados apenas por usurios devidamente autorizados (por exemplo, concesso de emprstimos financeiros) e algumas informaes tambm s podem ser vistas e manipuladas por um grupo restrito de usurios (arquivos de configurao de programas). Para facilitar o gerenciamento de usurios adota-se a estratgia de criao de grupos de usurios. Assim, pode-se definir um conjunto de permisses para um grupo de usurios, e definir quais usurios pertencero quele grupo. As permisses dos usurios sero criadas de acordo com as permisses do grupo a que ele pertence.

Copyright 2007, ESAB Escola Superior Aberta do Brasil

93

U
Ldap

NIDADE

22

Objetivo: Conhecer o protocolo LDAP, aprender quais so as suas funcionalidades e como ele se integra ao Sistema Operacional.

1. Introduo A sigla LDPA significa Lightweight Directory Access Protocol, Protocolo Leve de Acesso ao Diretrio. O Diretrio em questo no o diretrio do sistema de arquivos, aqui definido um novo tipo de diretrio, onde os elementos que fazem parte do diretrio so objetos abstratos que representam recursos e usurios de uma rede de computadores. O protocolo LDAP atualmente utiliza os padres definidos e consolidados na internet para oferecer acesso aos objetos, utilizando os protocolos TCP/IP e DNS para a comunicao dos dados e estruturao do diretrio. No diretrio sero representados objetos associados a: Usurios; Computadores; Impressoras; Arquivos; Departamentos Administrativos; E qualquer outro recurso que possa ser representado por um objeto.

2. Funcionamento do LDAP Um computador passa a utilizar um diretrio do LDAP quando se conecta a um Servidor LDAP. O computador passa a ser ento um cliente do Servidor LDAP. O computador cliente
Copyright 2007, ESAB Escola Superior Aberta do Brasil 94

envia solicitaes de operaes ao servidor, que ir enviar respostas s solicitaes recebidas. O computador cliente poder solicitar os seguintes tipos de operaes: Requerer um canal de comunicao seguro TLS, Transport Layer Security; Autenticar e especificar a verso do protocolo LDAP; Fazer buscas no diretrio do LDAP; Adicionar um objeto ao diretrio; Modificar um objeto no diretrio; Apagar um objeto do diretrio; Cancelar uma solicitao feita anteriormente; Fechar a conexo com o Servidor LDAP.

As operaes sero realizadas de acordo com a informao contida na na mesma. Um cliente s poder adicionar objetos no diretrio do LDAP se estiver autorizado a fazer isso. 3. Estrutura do Diretrio A definio da estrutura de diretrios utilizada no protocolo LDAP a seguinte: Um diretrio uma rvore de registros; Cada registro formado por um conjunto de propriedades; Cada propriedade possui um nome e um conjunto de valores, podendo ser unitrio; Cada registro tem um identificador nico, seu Nome de Identificao. O Nome de Identificao formado por: Nome Relativo, criado a partir de alguma propriedade no registro, mais o Nome de Identificao do Registro Mestre, que o local onde est armazenado o registro.

Copyright 2007, ESAB Escola Superior Aberta do Brasil

95

O contedo de um registro definido como sendo um Esquema. O Esquema possui as regras para os tipos de propriedades que um registro do diretrio pode armazenar. Uma propriedade do tipo email s pode armazenar endereos vlidos de e-mail, e uma propriedade do tipo jpegPhoto s pode armazenar imagens no formato JPEG. no Esquema que se define a quantidade de valores que uma propriedade possuir. O Esquema tambm define as Classes de Objetos. Cada registro deve possuir uma propriedade objectClass, que definir o tipo de objeto armazenado pelo registro: usurio, computador, dispositivo, ou outro objeto.

4. Implementao do protocolo LDAP Vrias empresas criaram servidores de diretrios baseados no protocolo LDAP: Apple Open Directory: disponvel para o sistema MacOS X; Red Hat Directory Server: para os sistemas RedHat Enterprise Linux 3, Solaris 8, HPUX 11; IBM Tivolli: para os sistemas AIX, HP-UX, RedHat Enterprise Linux, MS-Windows, Solaris, SUSE. Esse servidor tem como diferencial uma robusta estrutura de autenticao; MS Active Directory: distribudo no prprio MS-Windows Server muito difundido e bastante utilizado nos dias de hoje.

Copyright 2007, ESAB Escola Superior Aberta do Brasil

96

NIDADE

23

Objetivo: Entender o funcionamento do Active Directory, a verso do protocolo LDAP criado pela Microsoft para o sistema MS-Windows.

Active Directory 1. Introduo O Active Directory foi criado para fornecer de maneira centralizada a autenticao e autorizao dos servios em computadores que utilizam o sistema MS-Windows. Sua estrutura baseada no protocolo LDAP. O Active Directory permite aos administradores de rede definir polticas de instalao e atualizao de programas de maneira automatizada. O Active Directory um servio de diretrio que ir armazenar as informaes referentes aos recursos da rede. Cada recurso, impressora, programa ou usurio, definido como sendo um objeto dentro do diretrio. A tarefa do Active Directory organizar, controlar e definir permisses de acesso aos objetos da rede. 2. Objetos da Rede Cada objeto no Active Directory nico, e pode representar qualquer recurso disponvel na rede. Alguns objetos tambm podem ser utilizados para armazenar outros objetos. O foco de ao do Active Directory o objeto. Os objetos representam os registros do protocolo LDAP, e so formados por atributos que armazenam as caractersticas que o objeto pode conter, definidos pelo Esquema do objeto. As A estrutura que armazena os objetos do diretrio dividida em vrios nveis. O nvel mais alto chamado de Floresta, e nela ficam armazenados todos os objetos, os respectivos atributos e Esquemas do Active Directory. A Floresta possui uma ou mais rvores, que so estruturas inter-conectadas por canais seguros. Cada rvore armazena um ou mais Domnios, tambm inter-conectados por canais seguros. Os Domnios so identificados por
Copyright 2007, ESAB Escola Superior Aberta do Brasil 97

um nome e armazenam objetos que podem ser agrupados em Unidades Organizacionais. As Unidades Organizacionais permitem criar uma estrutura hierrquica dentro dos Domnios, possibilitando aos administradores da rede realizar um gerenciamento facilitado. Toda esta estrutura tambm pode ser utilizada para definir uma configurao da rede de maneira que seja semelhante a distribuio geogrfica dos recursos disponveis na rede. Uma empresa pode criar Domnios que representem unidades de negcio, e dividir os recursos da rede pelos Domnios de maneira anloga a separao real dos dispositivos. Os usurios so registrados em Domnios, da mesma maneira que os funcionrios so alocados nas unidades de negcio. As Unidades Organizacionais podem ser definidas a partir de objetos especiais, chamados Objetos de Poltica de Grupo. Esses objetos so utilizados para se definir padres de regras de acesso outros objetos. As informaes do Active Directory so armazenadas em um ou mais Controladores de Domnio. Cada Controlador possui uma cpia do Active Directory, e uma alterao feita em um Controlador resultar em um processo de sincronizao entre todos os Controladores de Domnio pertencentes ao Active Directory. 3. Relacionamentos de Confiana Para permitir que um usurio de um Domnio tenha acesso aos recursos de outro Domnio, o Active Directory utiliza um mecanismo denominado Relacionamento de Confiana. Quando um Domnio criado, automaticamente criado um Relacionamento de Confiana com todos os domnios da rvore a qual ele pertence. Outros Relacionamentos de Confiana podem ser definidos para Domnios que no pertencem a mesma rvore. Os relacionamentos podem ser: Direo nica: um Domnio A concede permisso de acesso usurios de outro Domnio B, mas o Domnio B no concede permisses aos usurios do Domnio A; Direo Dupla: dois Domnios concedem mtuas permisses de acesso aos seus usurios;
Copyright 2007, ESAB Escola Superior Aberta do Brasil 98

Domnio Confivel: esse Domnio definido com tendo usurios confiveis; Domnio Confiante: esse Domnio permite o acesso de usurios confiveis; Relacionamento Transitivo: um relacionamento entre dois Domnios que pode ser estendido a outros Domnios Confiveis da rvore;

Relacionamento Explcito: um relacionamento de confiana criado por um usurio administrador;

Relacionamento Cruzado: um relacionamento explcito entre Domnios de rvores diferentes;

Floresta Confivel: relacionamento feito diretamente na raiz do Active Directory, que se propagam entre todos os objetos do diretrio.

4. Integrao com outros sistemas operacionais Atualmente vrias empresas oferecem programas que permitem o acesso ao Active Directory a partir de outros sistemas operacionais. A prpria Microsoft est desenvolvendo um produto chamado Microsoft Windows Services for Unix para permitir que usurios do sistema Unix (e tambm Linux) utilizem servios disponibilizados pelo sistema MS-Windows Server. O sistema Fedora Linux possui um servio de diretrio chamado Fedora Directory Server que permite a sincronizao com o Active Directory, criando assim uma estrutura de diretrio espelhado, podendo ser diretamente utilizado por um cliente Linux ou Unix.

FRUM II possvel que computadores clientes com Windows acessem rede com servidores Linux?

Copyright 2007, ESAB Escola Superior Aberta do Brasil

99

NIDADE

24

Objetivo: Conhecer as tcnicas bsicas de segurana em computadores e a utilizao de mecanismos de segurana nos computadores.

Aspectos Relativos A Segurana 1. Introduo A implementao de Sistemas de Segurana em Computadores tem como objetivo tornar a utilizao dos computadores segura para os usurios, tratando de aspectos relativos a estabilidade do computador e privacidade das informaes contidas nele. A estratgia mais utilizada para a construo de sistemas seguros a criao de processadores que realizem a clara separao dos programas em execuo (aplicativos, sistema operacional, driver) e a utilizao de rotinas e mecanismos no sistema operacional que permitam identificar e gerenciar isoladamente os aplicativos em execuo, permitindo assim restringir o acesso a determinados recursos do computador. Dentre as funcionalidades que so oferecidas por sistemas seguros se destaca a capacidade de oferecer acesso aos recursos do computador apenas s pessoas autorizadas, evitando assim que as no autorizadas possam realizar alguma operao que venha a tornar o sistema inseguro. Um ditado utilizado por pessoas que lidam com questes de segurana em computao diz o seguinte: Um sistema totalmente seguro aquele que est desligado, trancado em um cofre e vigiado por guardas armados. Um fato importante a ser observado o seguinte: um sistema oferecer vrios mecanismos de segurana no garante que ele seja seguro. Se a configurao no for feita corretamente, e os mecanismos de segurana no estiverem ativados, o sistema ser considerado inseguro, e passvel de sofrer um acesso indevido.

Copyright 2007, ESAB Escola Superior Aberta do Brasil

100

2. Sistemas Operacionais Seguros Na dcada de 1970 foi criada uma especificao para um sistema de segurana infalvel, encomendado pela Agncia de Segurana dos EUA, chamado Bell-LaPadula. Este sistema era to complexo que no chegou a ser utilizado na prtica, mas influenciou todos os sistemas operacionais seguros criados aps ele. Uma das caractersticas do sistema BellLaPadula era o fato de no kernel do sistema operacional existirem mecanismos de segurana e o processador do computador oferecer estruturas de suporte segurana. A segurana desse sistema era to forte que os pesquisadores, da empresa AT&T atravs da unidade de pesquisa Laboratrios Bell, garantiam que o sistema seria impenetrvel. Quando foi iniciada a construo de um computador que utilizava o Bell-LaPadula, os cientistas perceberam que sua complexidade era muito grande, e que seu desempenho seria prejudicado devido quantidade de mecanismos de segurana existentes. Mas as tcnicas utilizadas no desenvolvimento do sistema Bell-LaPadula foram utilizadas nos sistemas desenvolvidos posteriormente, e aos poucos tornou-se habitual aos usurios a utilizao de regras e mecanismos para garantir a segurana do computador. O sistema Bell-LaPadula ficou conhecido como Modelo Bell-LaPadula, MBL. Posteriormente, na dcada de 1990, vrios sistemas possuam caractersticas similares ao Bell-LaPadula, e graas aos avanos no desenvolvimento dos sistemas operacionais, e no desenvolvimento dos processadores, os computadores com sistemas de segurana passaram a ser certificados como sendo compatveis com as regras MBL ou no. Os sistemas operacionais certificados como MBL so considerados sistemas altamente seguros, sendo classificados como ferramentas militares pelo Departamento de Defesa dos EUA e por isso tm sua venda proibida. Alguns sistemas conhecidos so: Honeywell SCOMP, USAF SACDIN, NSA Blacker e Boeing MLSLAN. 3. Tecnologias de Segurana em Computadores O funcionamento dos computadores e programas baseado na Lgica Matemtica. No existe uma definio universal para Sistema de Segurana, pois cada sistema ter um nvel de segurana necessrio e especfico. A implementao da segurana em computadores
Copyright 2007, ESAB Escola Superior Aberta do Brasil 101

implica na utilizao de mecanismos que iro limitar ou restringir o funcionamento dos programas. Do ponto de vista da execuo dos programas no computador, as restries podem ser baseadas nas seguintes regras: Execute apenas programas que forem testados por algum mecanismo de segurana; Execute apenas programas que forem testados por um mecanismo confivel de segurana; Execute qualquer programa, e durante a execuo verifique se as operaes so vlidas; Execute qualquer programa, e durante a execuo verifique se as operaes so seguras. A primeira regra a mais simples e menos confivel de todas. Se o objetivo ter certeza de que o sistema seguro, basear a segurana em mtodos no seguros no garante a segurana. A terceira regra tambm pode apresentar falhas, pois operao vlida e operao segura podem no ter o mesmo sentido. A segunda opo a mais onerosa, pois necessita de que todo o programa seja verificado antes de ser executado. A quarta opo a mais utilizada atualmente. Muitos dos sistemas operacionais feitos para computadores pessoais utilizam a primeira regra para garantir a segurana do sistema. Para citar um exemplo: o MS-Windows XP conclui que um programa seguro baseando-se em uma lista de nomes de programas, se o programa consta na lista, ele considerado seguro, se no estiver, informa-se ao usurio que o programa talvez no seja seguro e pergunta-se se o mesmo deseja execut-lo. Um mecanismo muito til para garantir a segurana de um sistema a separao, em ambientes de execuo, das operaes realizadas no computador. Essa separao feita sob dois aspectos: o sistema operacional separa suas prprias operaes das operaes do

Copyright 2007, ESAB Escola Superior Aberta do Brasil

102

usurio e o processador agrupa as instrues em nveis, separando os tipos de instrues que podem ser executadas pelos programas. Os programas do usurio podem executar as instrues do nvel mais alto de menor segurana, alguns utilitrios do sistema operacional podem executar instrues de nveis intermedirios, e o sistema operacional pode executar as instrues do nvel mais baixo de maior segurana, como por exemplo acessar diretamente um dispositivo do computador. Um avano alcanado na segurana dos computadores pessoais foi a construo de processadores que contm mecanismos de proteo contra a execuo de instrues consideradas maliciosas. Alm das tcnicas mencionadas at agora, utiliza-se mecanismos de segurana para proteger as informaes que esto nos computadores, entre esses mecanismos destacamse: Firewall: este termo utilizado para definir um programa ou equipamento que ir filtrar o acesso aos recursos e informaes do computador. Geralmente os firewall's so utilizados em ambientes de rede e sua tarefa consiste em permitir apenas a passagem de informaes permitidas pelos administradores dos computadores conectados rede. Tambm permitir o acesso rede apenas de pessoas previamente autorizadas; Criptografia: a criptografia no um programa nem um equipamento, um conjunto de tcnicas de substituio de uma informao por outra, a fim de no permitir que leituras no autorizadas aconteam na informao original. Apenas leituras seguras da informao original iro acontecer, a informao modificada recebida e recuperao da informao original feita revertendo-se o processo criptogrfico. As tcnicas de criptografia podem ser implementadas em programas de computador ou diretamente em equipamentos eletrnicos; Cpia de Segurana dos Dados: como o prprio nome diz a cpia de segurana dos dados uma cpia dos dados computador feita para se assegurar a manuteno das informaes do computador em caso de falha nos dispositivos de armazenamento que danifique as informaes contidas neles. Uma medida adotada em algumas empresas
Copyright 2007, ESAB Escola Superior Aberta do Brasil 103

a separao fsica e geogrfica das cpias de segurana, sendo que estas ficam armazenadas em locais distantes das informaes originais. Programa Anti-Vrus: os vrus de computador so programas que foram criados com o objetivo de danificar o funcionamento do computador ou danificar os dados contidos nele. A utilizao de programas anti-vrus minimiza os danos causados pelos vrus, mas deve-se sempre verificar se o programa anti-vrus est preparado para proteger o computador dos vrus mais recentes, pois a cada dia surgem novos vrus. 4. Problemas na Manuteno da Segurana Os problemas relativos manuteno da segurana dos computadores se dividem basicamente em duas reas: Utilizao dos Mecanismos de Segurana por parte do usurio; Atualizao Constante dos Mecanismos de Segurana.

Os dois problemas so crticos para a garantia de uma mnima segurana. No primeiro caso, se houver no computador uma srie de mecanismos de seguranas que no forem utilizados, pode-se dizer com certeza que o computador no oferece segurana ao usurio. Um dos fatores que resulta na no utilizao dos mecanismos de segurana o fato de que a sua utilizao implica diretamente no consumo de recursos do computador: memria, processador, espao no disco-rgido, entre outros. Alguns usurios preferem no utilizar o mnimo de segurana no computador e conseguir o maior aproveitamento dos recursos nele contidos. Esse pensamento s seria vlido se as informaes e operaes realizadas no forem importantes, a ponto de poder acontecer uma falha no sistema, sem que haja maiores preocupaes. O segundo problema para a manuteno da segurana pode se tornar equivalente ao primeiro, dependendo de como a atualizao for feita. O principal fator motivador para a implementao da segurana nos computadores o bloqueio informao e aos recursos contidos no computador, especialmente para pessoas no autorizadas. Algumas pessoas,

Copyright 2007, ESAB Escola Superior Aberta do Brasil

104

por razes polticas, capitalistas, ou puramente por diverso, trabalham para invadir sistemas e se apropriar dos recursos contidos neles. A cada dia novas falhas no previstas no desenvolvimento dos sistemas de segurana e so encontradas e exploradas por essas pessoas. Para evitar que haja uma apropriao indevida dos recursos do computador, deve-se sempre verificar se todos os mecanismos de segurana em utilizao esto preparados para lidar com todas as investidas possveis que se tem conhecimento.

Este documento apresenta as principais caractersticas existentes no sistema Symbian S60 3 Edio, enfocando as diferenas em relao verso anterior. A abordagem adotada neste material direcionada para o desenvolvimento celulares. de novos aplicativos para telefones

Copyright 2007, ESAB Escola Superior Aberta do Brasil

105

NIDADE

25

Objetivo: Entender o funcionamento de sistemas embutidos e onde so utilizados.

Sistemas Embutidos 1. Introduo Um sistema embutido um sistema reduzido, criado para uma funo especfica e dedicada. Alm disso, so distribudos em um pacote que inclui o dispositivo eletrnico a ser utilizado. Os sistemas embutidos esto presentes em: Agendas Eletrnicas, Telefones, Aparelhos Eletrnicos Domsticos, Consoles de Jogos, e vrios outros produtos. Como os aparelhos eletrnicos so desenvolvidos para realizar tarefas especficas, os operacionais podem ser feitos especificamente para cada aparelho, reduzindo a complexidade do sistema, o tamanho final e otimizando as funes que sero mantidas. Os pequenos computadores de mo, chamados Pocket PC ou Handheld PC, ainda so considerados como sistemas embutidos, mesmo apresentando uma grande variedade de operaes que podem realizar. Esses computadores no so feitos para realizarem funes especficas, mas para auxiliarem na realizao de uma srie de tarefas: agenda pessoal, controle financeiro, comunicador, editor de texto e muito mais. Mas, quando comparados a um computador pessoal de mesa, os Pocket PC's e Handheld PC's, so bastante limitados. 2. Linux Embutido Atualmente j existe uma grande variedade de sistemas embutidos que utilizam uma verso do sistema operacional Linux. Esses sistemas incluem: telefones celulares, tocadores de msica, Pocket PC's e outros. O Linux Embutido tambm utilizado em equipamentos de rede e controle industrial. As diferenas entre uma verso embutida do Linux e uma verso completa so as seguintes:
106

Copyright 2007, ESAB Escola Superior Aberta do Brasil

O Linux Embutido desenvolvido para uma plataforma de recursos limitados, com pouca memria RAM (geralmente no expansvel), para um monitor de resoluo baixa e fixa (320x240 ou 640x480), enquanto que o Linux Completo feito para computadores robustos que podem ter vrios gigabytes de memria RAM e monitores com alta resoluo (2560x1920);

A maioria dos sistemas embutidos no oferecem acesso a alguns dispositivos, como por exemplo: disco-rgido, impressora, digitalizador, CD, DVD;

Uma srie de programas e utilitrios que so entregues na maioria das distribuies Linux Completas no so entregues no Linux Embutido ou porque no sero utilizados ou porque ocuparo muito espao.

Da mesma maneira que o Linux Completo pode ser encontrado para uma srie de plataformas de computador, desde Intel x86 at Mainframes, o Linux Embutido tambm est disponvel para vrios processadores. Atualmente o Linux Embutido vem recebendo o apoio de vrias empresas importantes, principalmente no setor de telefonia mvel. As empresas Motorola, Samsung, NEC, Panasonic, Philips e LG j esto comercializando telefones que possuem o sistema LiMO em seus aparelhos. O LiMO uma verso do Linux especfica para ser utilizada em telefones celulares. Seus principais concorrentes so: Symbian e MSWindows Mobile. 3. MS-Windows Mobile Essa a verso do sistema MS-Windows para sistemas embutidos, pode ser utilizado em vrios tipos de aparelhos eletrnicos, mas seu principal uso nos telefones celulares e Pocket PC's. um sistema muito difundido, graas principalmente dominncia que os sistemas MS-Windows exercem nos computadores de mesa. Em relao ao MS-Windows Completo, o MS-Windows Mobile possui limitaes semelhantes ao Linux Embutido: o equipamento que ser utilizado para executar o MS-Windows Mobile possui recursos limitados. As principais vantagens do MS-Windows Mobile em relao ao Linux Embutido so:
Copyright 2007, ESAB Escola Superior Aberta do Brasil 107

Maior tempo de desenvolvimento: o MS-Windows Mobile derivado do sistema MS Modular Windows, lanado em 1993 e remodelado em 1996. Isso concedeu ao MSWindows Mobile um maior tempo de maturao no desenvolvimento e um maior apoio das empresas e profissionais desenvolvedores de programas aplicativos;

Compatibilidade nativa com o MS-Office, naturalmente alcanada porque a Microsoft a dona do produto;

O MS-Windows Mobile distribudo em telefones celulares das principais empresas do mundo, a nica exceo a Nokia que utiliza o Symbian em seus telefones.

Atualmente est em desenvolvimento um maior nmero de verses do MS-Windows Mobile, para outros equipamentos, como Unidade GPS, Assistentes Financeiros e outros. 4. Symbian O sistema Symbian utilizado exclusivamente em telefones celulares. As empresas que utilizam este sistema so: Nokia, SonyEricsson, Panasonic, Siemens e Samsung. Se considerarmos apenas os sistemas distribudos nos telefones da empresa Nokia, o Symbian detm uma participao de mais de 40% do mercado. Considerando todos os telefones, o Symbian est presente em 65% dos telefones celulares, o MS-Windows Mobile est em 15%, e os 20% restantes so divididos entre os sistemas RIM, Linux Embutido, PalmOS, Qualcomm, e outros. A diferena do Symbian em relao aos sistemas Linux Embutido e MS-Windows Mobile que ele no possui uma verso para os computadores de mesa. O Symbian possui as caractersticas de ser um sistema operacional multitarefa e com proteo de memria, possui interface grfica e oferece acesso a vrios dispositivos.

Copyright 2007, ESAB Escola Superior Aberta do Brasil

108

NIDADE

26

Objetivo: Conhecer o funcionamento dos sistemas virtuais, como so utilizados e suas diferenas em relao aos sistemas tradicionais.

Sistema Virtual 1. Introduo Uma mquina virtual uma duplicao lgica de uma mquina real. Mquinas virtuais so utilizadas em diversas situaes, sendo divididas basicamente em duas categorias: Mquinas Virtuais Completas, que fornecem um ambiente completo para a execuo de vrios programas, permitindo inclusive a instalao de um sistema operacional; e Mquinas Virtuais Binrias, que permitem a execuo de programas especficos. Um exemplo de Mquina Virtual Completa o programa MS-Virtual PC, nele o usurio pode definir todas as caractersticas que um computador virtual ter e instalar qualquer sistema operacional compatvel. Um exemplo de Mquina Virtual Binria a Java Virtual Machine, JVM. Esta utilizada exclusivamente para a execuo de programas feitos na linhagem Java. As mquinas virtuais so criadas por programas que simulam um determinado ambiente de execuo, que sero instalados normalmente no computador real e sua execuo ser realizada normalmente pelo sistema operacional do computador real. Um detalhe importante: no possvel criar uma mquina virtual com configurao superior mquina real. Isso no pode ser feito, pois todo o ambiente virtual ir utilizar os recursos da mquina real, por exemplo: se em uma mquina real com 512MB de memria, for criada uma virtual com 128MB, restaro 384MB para os programas da mquina real. E, alm disso, quando a mquina virtual estiver em operao, ir dividir com os programas da mquina real todos os recursos do computador, incluindo: processador, disco-rgido, entre outros.

Copyright 2007, ESAB Escola Superior Aberta do Brasil

109

O sistema operacional instalado na mquina virtual geralmente chamado de Sistema Convidado e o instalado na mquina real, que prov o ambiente virtual, chamado de Sistema Hospedeiro. 2. Mquinas Virtuais Completas As mquinas virtuais completas conseguem simular toda a estrutura de um computador real. Geralmente, os programas para as mquinas virtuais completas so feitos para uma determinada plataforma, por exemplo: MS-Virtual PC cria mquinas virtuais para os computadores que seguem o padro Intel x86, WinUAE cria mquinas virtuais nos computadores PC simulando a plataforma Comodore Amiga. O ambiente criado possui: Processador Virtual: todas as instrues nativas de um processador sero executadas pelo processador virtual, que na prtica ir mapear as instrues do processador virtual para o processador real; Memria RAM: parte da memria RAM do computador real ser reservada e utilizada pelo computador virtual; Unidades de armazenamento: alguns programas criam arquivos especiais no computador real e utilizam esses arquivos como unidades de armazenamento no computador virtual ou ento utilizam diretamente uma unidade de armazenamento; Dispositivos Virtuais: todos os dispositivos conectados ao computador real podem ser utilizados pelo computador virtual, como se realmente pertencessem a ele; Em computadores com sistemas virtuais pode-se utilizar mais de um sistema operacional simultaneamente, um em cada mquina virtual. Isso muito til quando se est testando um novo programa que pode ser utilizado em mais de um sistema operacional ou para testar a capacidade do sistema operacional para operar em uma determinada configurao de uma mquina virtual. Utiliza-se uma nica mquina real com uma srie de dispositivos, e ento cria-se uma srie de mquinas virtuais com caractersticas diferentes, e verifica-se o comportamento do sistema operacional em cada situao.

Copyright 2007, ESAB Escola Superior Aberta do Brasil

110

A execuo dos programas dentro da mquina virtual ser gerenciada exclusivamente pelo sistema operacional instalado na mquina virtual. O sistema operacional instalado na mquina real ir gerenciar a execuo do programa da mquina virtual. 3. Mquinas Virtuais Binrias As mquinas virtuais binrias possuem um conceito diferente de uma mquina virtual completa, o objetivo de uma mquina virtual binria no criar um simular um ambiente real e sim criar um ambiente isolado dentro do ambiente real. As mquinas virtuais binrias iro criar um ambiente virtual idntico ao ambiente real do computador, mas faro uma separao total dos programas em execuo no ambiente virtual dos programas em execuo no ambiente real. Uma mquina JVM criada para executar os programas feitos em Java. A mquina JVM realizar todo o gerenciamento do programa, enquanto que o sistema operacional do computador ir gerenciar apenas a execuo da JVM. Todo o controle de memria, gerenciamento de processo, sincronizao de dispositivo feito pela JVM. Para o sistema operacional, o programa que est consumindo recursos do computador a JVM e no o programa dentro da JVM. A utilizao de mquinas virtuais binrias traz a grande vantagem de permitir que um determinado programa possa ser executado em ambientes reais completamente diferentes, como por exemplo, um computador Intel Pentium 4 executando MS-Windows XP, e um outro computador IBM PowerPC 750 executando o Linux, ambos podem executar programas feitos para a JVM, e os desenvolvedores de programas para a JVM no precisam se preocupar com a plataforma que o usurio ter para executar os programas. Inicialmente, a plataforma Microsoft .NET foi anunciada como sendo um ambiente de mquina virtual, entretanto os programas desenvolvidos para o .NET s podiam ser executados em mquinas baseadas nos padres Intel x86 e MS-Windows. Em 2004 projetos como Mono (http://www.mono-project.com/) e DotGNU

(http://www.gnu.org/software/dotgnu/) criam o ambiente .NET para outras plataformas e


111

Copyright 2007, ESAB Escola Superior Aberta do Brasil

sistemas operacionais como Linux e Mac OS X.Um outro exemplo de Mquina Virtual Binria a mquina LAM-MPI. Essa mquina constituda por duas partes: uma biblioteca de funes especiais e um executor de programas feitos para serem utilizados em clusters de computadores. Um cluster um conjunto de computadores que funciona de maneira cooperativa, como se fosse um nico computador formado por vrios processadores. A utilizao da LAM-MPI permite que um nico computador possa simular uma rede de computadores e assim permitir que programas complexos possam ser testados antes de serem executados em um cluster real. No computador real ser criada uma srie de computadores virtuais e cada mquina virtual ter um funcionamento independente uma das outras. Obviamente, o programa em execuo no cluster virtual ser o mesmo, mas os processos em execuo em cada mquina virtual podero ser diferentes.

Copyright 2007, ESAB Escola Superior Aberta do Brasil

112

NIDADE

27

Objetivo: Conhecer os sistemas operacionais que podem ser utilizados diretamente na internet, quais as suas caractersticas e o que eles oferecem aos usurios.

Sistema Operacional Na Internet 1. Introduo Um sistema operacional para internet um conjunto de servios acessveis pela internet que visam fornecer os mesmos servios de um sistema operacional. J existem vrios sistemas operacionais na internet, que oferecem os servios bsicos e alguns mais avanados que podem substituir a utilizao de um computador com sistema operacional completo, podendo ser utilizado em seu lugar, um computador mais simples com um sistema operacional bsico. Em um sistema operacional disponvel na internet, pode-se, a partir de qualquer computador, em qualquer lugar, ter acesso s informaes, arquivos e programas em um sistema nico, independente de plataforma (o requisito mnimo um computador compatvel com os recursos disponveis na internet). Os sistemas operacionais na internet atualmente oferecem uma srie de recursos aos usurios: gerenciamento de arquivos, criao e edio de documentos e planilhas, criao de apresentaes, tocadores de msicas, e vrios outros. 2. WebOS O primeiro servio na internet a oferecer um ambiente operacional para os usurios foi criado por um estudante sueco chamado Fredrik Malmer, acessvel pelo endereo

www.webos.org. Este sistema foi feito utilizando-se as linguagens XHTML e Javascript (atualmente o termo AJAX adotado para definir a utilizao dessas duas linguagens na criao de servios na internet). Em 1999 foi criada nos EUA a empresa WebOS Inc., que comprou os direitos do sistema de Fredrik e licenciou uma srie de tecnologias
Copyright 2007, ESAB Escola Superior Aberta do Brasil 113

desenvolvidas nas Universidades do Texas, Califrnia e Duke. O objetivo inicial era criar um ambiente operacional completo, inclusive com API para o desenvolvimento de outros aplicativos. O sistema WebOS iria fornecer ao usurio um ambiente para utilizao de aplicativos de maneira semelhante ao ambiente oferecido pelo MS-Windows. Alm disso, para os programadores, a API do WebOS poderia ser utilizada para o desenvolvimento de vrios aplicativos auxiliares. Essa API era principalmente feita com a linguagem Javascript. O WebOS utilizava padres abertos da internet e era compatvel com praticamente todos os navegadores disponveis na poca. O WebOS fez muito sucesso no seu lanamento, sendo utilizado em grandes empresas e setores militares dos EUA e tambm sendo amplamente divulgado pelos meios de comunicao. O desenvolvimento desse sistema continua em andamento, sendo organizado principalmente pelas Universidades da Califrnia e Duke. 3. Sistemas Atuais Atualmente os sistemas operacionais para internet mais utilizados so: YouOS: desenvolvido pela empresa WebShaka, cria um ambiente de trabalho inspirado nos sistemas operacionais modernos e utiliza a linguagem Javascript para executar as operaes. Ele possui um recurso semelhante hibernao no MSWindows XP, em que o usurio pode salvar a rea de trabalho com a configurao corrente, sair do sistema e recuperar a mesma configurao posteriormente. Esse sistema tambm permite o compartilhamento de arquivos entre os usurios. Alm disso, possui uma API para o desenvolvimento de novos aplicativos, sendo que j existe uma lista de mais de 700 programas disponveis; DesktopTwo: desenvolvido pela empresa Sapotek, tem como pr-requisito a presena do utilitrio Flash Player para ser utilizado. O sistema foi desenvolvido para prover todos os servios necessrios aos usurios, tornando a internet o principal ambiente de trabalho. Utiliza a linguagem PHP como base para os aplicativos disponveis e
114

Copyright 2007, ESAB Escola Superior Aberta do Brasil

tambm possui uma API, chamada Sapodesk, para o desenvolvimento de novos aplicativos; G.ho.st: Esta sigla significa Global Hosted Operating SysTem (Sistema Operacional Disponvel Globalmente), tem como diferencial em relao aos outros a possibilidade de integrao com outros servios como: Google Docs, Meebo, ThinkFree, entre outros, alm de oferecer suporte a vrios idiomas; EyeOS: Este sistema est sendo desenvolvido por uma comunidade denominada EyeOS Team e possui o cdigo fonte aberto ao pblico. O objetivo dos desenvolvedores criar um ambiente com maior compatibilidade com os aplicativos atuais, MS-Office e OpenOffice. Possui um abrangente conjunto de aplicativos, e o seu desenvolvimento feito principalmente com o uso da linhagem PHP. Uma caracterstica comum a todos os sistemas operacionais na internet a proteo dos arquivos dos usurios. Alguns sistemas permitem o compartilhamento de arquivos, mas mesmo o compartilhamento feito apenas com a autorizao do usurio dono do arquivo.

Copyright 2007, ESAB Escola Superior Aberta do Brasil

115

NIDADE

28

Objetivo: Aprender a definio de Computao de Alto Desempenho, sua utilizao e consideraes.

Computao De Alto Desempenho 1. Introduo O termo Computao de Alto Desempenho aplicado utilizao de sistemas computacionais de grande poder de processamento, geralmente supercomputadores e mais recentemente os clusters de computadores. Essa rea da computao geralmente est associada computao cientfica, englobando estudos na rea de metereologia, biologia, qumica, fsica e vrias outras, mas tambm se utiliza supercomputadores para anlises financeiras, pesquisa operacional, computao grfica e em qualquer rea onde a quantidade de dados for muito grande ou a velocidade de resposta seja crtica. Um detalhe a ser observado na Computao de Alto Desempenho a definio de Supercomputadores. Este termo aplicado de forma temporria a um determinado sistema computacional. Um supercomputador da dcada de 1970 tem uma capacidade de processamento inferior a um Pentium 4 atual. E um computador de mesa equipado com um Pentium 4 no considerado um supercomputador. E at mesmo a definio de quantidade muito grande de dados temporria, em 1970 uma massa de dados de 50MB era considerada muito grande, atualmente considerada muito pequena. A velocidade da evoluo da tecnologia dos computadores muito grande. E na medida em que a tecnologia sofre mudanas, o conjunto de problemas que podem ser explorados por ela tambm modificado. Uma definio mais adequada para Computao de Alto Desempenho a utilizao de sistemas computacionais de alta capacidade para a resoluo de problemas que no podem ser resolvidos em tempo satisfatrio por computadores de pequeno porte. Neste caso, se os requisitos para considerar um sistema computacional de
Copyright 2007, ESAB Escola Superior Aberta do Brasil 116

alta

capacidade

forem

alterados,

automaticamente

sero

alteradas

tambm

as

consideraes sobre computador de pequeno porte. Um sistema operacional para um supercomputador tem um funcionamento mais especializado que um sistema operacional para um computador de mesa. A especializao do sistema operacional depender do tipo de supercomputador utilizado, se o supercomputador for utilizado para processamento matemtico, o sistema operacional dever priorizar a otimizao do processador. 2. Arquiteturas de Processamento As arquiteturas de processamento definem a maneira como a unidade de processamento do computador ir realizar a execuo das instrues, podendo ser de 4 tipos: SISD, SIMD, MISD e MIMD. SISD: Single Instruction and Single Data, define os processadores que executam uma instruo por vez e em apenas uma rea de dados, exemplos so: Intel 8086 e Zilog Z80. SIMD: Single Instruction and Multiple Data, define os processadores que podem executar uma instruo por vez, mas podem aplicar a instruo em vrias vrias de dados. Esta tcnica utilizada em processadores com instrues vetoriais, onde uma instruo aplicada a um vetor de dados. Exemplos so: IBM PowerPC G4, Sony PlayStation 2 EmotionEngine, de maneira limitada os processadores MMX da Intel, e a maioria dos processadores grficos utilizam esta estrutura de

processamento. MISD: Multiple Instruction and Single Data, esta estrutura define a aplicao de mltiplas instrues em uma mesma rea de dados. Na prtica no faz muito sentido, pois a rea de dados iria sofrer alteraes quase aleatrias, a no ser no caso em que as mltiplas instrues iro apenas verificar os dados armazenados em um determinado local, sem realizarem uma operao de alterao desses dados. Nesse caso, a arquitetura MISD pode ser utilizada em sistemas de verificao criptogrfica.
Copyright 2007, ESAB Escola Superior Aberta do Brasil 117

MIMD: Multiple Instruction and Multiple Data, esta estrutura consegue atingir um alto grau de paralelismo, pois define a aplicao de mltiplas instrues em diversas reas de dados. Computadores equipados com mais de um processador ou processadores com vrios ncleos podem ser dessa categoria, contanto que o sistema operacional esteja preparado para dividir as instrues e dados entre os processadores (ou ncleos) do computador. Exemplos dessa arquitetura so: Macintosh G4 (possui 2 processadores) e computadores baseados nos processadores Intel Core 2 Duo ou Sun Niagara T1 (que possui 8 ncleos);

3. Arquiteturas de Supercomputadores Os supercomputadores podem ser divididos em dois tipos: Sistemas com Mltiplos Processadores: o supercomputador possui milhares de processadores, montados em uma arquitetura unificada e otimizada. A construo de supercomputadores com milhares de processadores uma tarefa que exige alto grau de aplicao tecnolgica. As conexes entre os processadores so feitas por meio de barramentos especiais, possuindo altas taxas de transferncias de dados. A memria principal desses supercomputadores compartilhada entre os processadores, devendo ter um mecanismo especial de utilizao e gerenciamento. Exemplos desses supercomputadores podem ser: o EarthSimulator com 5120 processadores NEC SX6; o Marenostrum com 10240 processadores IBM PowerPC 970. Sistemas com Mltiplos Computadores: o supercomputador formado pela juno em rede de milhares de computadores. Essa arquitetura tambm chamada de Cluster ou Grid. A conexo entre os computadores geralmente feita utilizando-se protocolos de rede padro Ethernet e cada computador possui sua memria principal, ou seja, a memria principal do supercomputador distribuda entre os computadores da rede. Exemplos de supercomputadores desta categoria so:

Copyright 2007, ESAB Escola Superior Aberta do Brasil

118

4. Sistemas Operacionais para Supercomputadores O sistema operacional desempenha um papel importante nos computadores de alto desempenho. Eles devem ser feitos com uma estrutura de gerenciamento muito mais robusta que os sistemas operacionais para computadores de mesa que possuem apenas um processador. Um exemplo de sistema operacional para supercomputadores o sistema NEC Super-UX, desenvolvido para os supercomputadores NEC SX, dentro dos quais est o EarthSimulator. Este sistema operacional possui as seguintes caractersticas: Controle de Grupos de Recurso: um dos principais mdulos do sistema, responsvel por gerenciar o acesso aos recursos do computador e evitar situaes de bloqueio dos processos. Cada grupo possuir um nmero de processadores, limite de memria, e gerenciamento exclusivo. Desse modo, o computador pode ser dividido em reas de processamento dedicadas a determinados tipos de tarefas e cada rea ter um ambiente totalmente protegido de execuo, algo semelhante a criao de um mquina virtual; Sistema de Arquivo SFS (Supercomputer File System): O sistema de arquivos feito utilizando-se estruturas de controle que esto otimizadas para operar no supercomputador, como o mecanismo de memria Cache existente nos ns de processamento; Otimizao Multi-N: o sistema feito para obter o maior aproveitamento da existncia dos ns de processamento. As informaes so distribudas e organizadas para se obter um alto grau de paralelismo e eficincia. Um outro exemplo de sistema operacional para supercomputadores o UNICOS/lc, desenvolvido pela empresa Cray Research. A caracterstica mais marcante desse sistema operacional a capacidade de operar em computadores com at 120.000 processadores e gerenciar centenas de petabytes de memria RAM distribuda. O mais potente

Copyright 2007, ESAB Escola Superior Aberta do Brasil

119

supercomputador feito pela empresa Cray Research o Cray XT-4 que possui 30500 processadores e 240.000 GB de memria RAM.

Copyright 2007, ESAB Escola Superior Aberta do Brasil

120

NIDADE

29

Objetivo: Conhecer a histria e desenvolvimento do sistema operacional MS-Windows.

Microsoft Windows 1. Introduo O desenvolvimento do sistema operacional MS-Windows teve incio em 1983, e o projeto inicial no foi a criao de um sistema operacional completo, mas um aplicativo que iria ser executado no sistema MS-DOS (sistema operacional de 8/16bits). O nome Windows foi escolhido pois o programa iria operar atravs de janelas, alm de ser uma outra maneira para o usurio utilizar o computador. O MS-Windows, durante quase todo o seu ciclo de vida, foi desenvolvido apenas para computadores IBM-PC e compatveis, apenas em um curto perodo, entre os anos de 1993 e 1996, pode-se encontrar o MS-Windows disponvel para outras plataformas de computador: DEC Alpha, IBM PowerPC, SUN SPARC e MIPS Rx000. Isso limita a utilizao do MSWindows a apenas computadores que possuam um processador Intel x86 ou compatvel: 8086, 80286, 80386, 80486, Pentium, Pentium 2, Pentium 3, Pentium 4, Core Duo, Core 2 Duo, Athlon, Phenom, Sempron, etc. A verso do MS-Windows disponvel para Palmtop, chamada atualmente de MS-Windows Mobile, executada em processadores compatveis com a arquitetura ARM Rx: Intel XScale, Hitachi SH3, entre outros. Esse sistema sempre foi disponibilizado para mais de uma plataforma. 2. Verses iniciais do MS-Windows As primeiras verses do MS-Windows forneciam apenas um ambiente grfico de operao. Todo o controle dos programas era feito pelo MS-DOS, e por causa disso, havia uma srie de limitaes para o usurio. O MS-DOS era um sistema operacional muito rudimentar, foi
Copyright 2007, ESAB Escola Superior Aberta do Brasil 121

feito para permitir a utilizao de apenas um aplicativo de cada vez no computador, no foi feito para otimizar a utilizao do computador, pois oferecia apenas uma quantidade mnima de funes que permitiam o acesso limitado aos recursos disponveis. O MS-Windows 1.0 foi o primeiro lanamento, em 1985. Esta verso oferecia alguns recursos adicionais ao limitado MS-DOS, como por exemplo, a utilizao mais eficiente dos recursos computacionais disponveis. Mas por ser basicamente um aplicativo para o MSDOS muitas limitaes ainda existiam para o MS-Windows 1.0. Em 1987 foi lanado o MSWindows 2.0, que apresentou melhorias na interface grfica, e no modo de gerenciamento dos programas feitos exclusivamente para o MS-Windows. Essas duas verses iniciais do MS-Windows no obtiveram sucesso de aceitao entre os usurios, principalmente porque na dcada de 1980 os componentes dos computadores tambm possuam algumas limitaes de uso (ou de preo). Nessa poca era muito raro encontrar um computador com disco-rgido ou memria principal de tamanho razovel (no mximo 0,5 MB). Em 1990 surge o MS-Windows 3.0 que possui uma srie de vantagens, nessa poca tambm j estavam disponveis computadores equipados com processadores de 32 bits (Intel 80386 e Intel 80486), o que permitiu o desenvolvimento de um sistema mais eficiente, e com mais recursos que os anteriores. A partir da verso 3 o Windows tornou-se o sistema operacional padro nos computadores IBM-PC e compatveis. Mas ainda havia o inconveniente de se necessitar do MS-DOS para poder iniciar o MS-Windows 3. Alm disso, alguns programas no eram corretamente feitos pelos programadores, e uma operao indevida em um programa acarretava em uma falha em todo o sistema, paralisando a execuo de todos os programas. Por isso, a Microsoft decidiu fazer um sistema operacional totalmente novo, com recursos avanados, e que fosse compatvel com a atual base de programas disponveis para o MS-Windows 3. Esse sistema recebeu o nome de MS-Windows NT, NT a sigla para Nova Tecnologia. 3. MS-Windows NT Em 1990 os computadores se tornaram populares, vrias empresas desenvolviam componentes para serem utilizados. Alm disso, vrias empresas e pessoas compravam um
122

Copyright 2007, ESAB Escola Superior Aberta do Brasil

computador para poder melhorar e acelerar a realizao de diversos trabalhos. O MSWindows NT foi proposto para ser um sistema que pudesse integrar as diversas plataformas existentes, permitindo a qualquer pessoa utilizar um computador da mesma maneira, independente das caractersticas eletrnicas existentes em cada mquina. Este novo sistema operacional possua algumas caractersticas inovadoras em relao s verses anteriores: Gerenciamento dos Programas em Modo Multitarefa Preemptivo; Gerenciamento de Memria optimizado; API mais diversificada, denominada Win32; Sistema de Arquivos novo chamado NTFS; Sistema completamente desenvolvido para processadores de 32bits; Independncia total do MS-DOS.

Algumas caractersticas tornaram o sistema incompatvel com a maioria dos programas desenvolvidos para o MS-Windows 3, o que levou a Microsoft a iniciar um novo projeto de um sistema que integrasse completamente o MS-Windows 3 com o MS-Windows NT. Esse projeto foi concludo apenas em 2001 com o lanamento do MS-Windows XP. Devido a incompatibilidade entre o MS-Windows 3 e MS-Windows NT, o desenvolvimento do MS-Windows NT foi direcionado para o setor de servidores de rede e computao profissional, sendo mais aceito no primeiro setor. O desenvolvimento do MS-Windows 4, sucessor do MS-Windows 3 foi bastante influenciado pelo projeto MS-Windows NT, lanado em 1995 com o nome MS-Windows 95. 4. MS-Windows 95 Os objetivos a serem alcanados por este sistema eram: Gerenciamento dos Programas em Modo Multitarefa Preemptivo;
Copyright 2007, ESAB Escola Superior Aberta do Brasil 123

Gerenciamento de Memria optimizado; Utilizao da API Win32; Utilizao do Sistema de Arquivos NTFS; Sistema completamente desenvolvido para processadores de 32bits; Independncia total do MS-DOS; Compatibilidade total com os programas feitos para MS-Windows 3.

Desta lista de caractersticas, conseguiu-se obter apenas parcialmente a execuo multitarefa preemptiva e utilizao da Win32. As outras caractersticas no foram alcanadas, segundo a Microsoft, por causa da necessidade de manuteno da compatibilidade com os programas feitos para MS-Windows 3 e tambm por causa da base instalada de computadores, que ainda contava com uma quantidade muito grande de computadores com processadores de 16 bits. Um detalhe no MS-Windows 95 era sua clara dependncia do MS-DOS, fato comprovado durante a inicializao do sistema. Uma diferena marcante no MS-Windows 95 sua interface grfica, sendo um projeto totalmente novo, conseguiu tornar a utilizao do computador mais fcil para usurios iniciantes. Com o passar dos anos, vrias melhorias foram sendo feitas para tornar o MS-Windows 95 um sistema sempre atualizado e compatvel com as tecnologias disponveis para os computadores. Um dos grandes avanos aconteceu em 1996, com o lanamento da verso do MS-Windows 95 que possua um novo sistema de arquivos, chamado FAT32, que oferecia a capacidade de utilizao de discos-rgidos de grande capacidade, e melhorias nas estruturas de manipulao dos arquivos. Em 1998 foi lanada uma nova verso do MSWindows, chamada MS-Windows 98, que possua as seguintes caractersticas: Maior independncia do MS-DOS; Utiliza por padro o sistema de arquivos FAT32; Melhoria no Gerenciamento dos Processos;
Copyright 2007, ESAB Escola Superior Aberta do Brasil 124

Melhoria na utilizao da Win32.

O MS-Windows 98 considerado a ltima verso do sistema MS-Windows de 16 bits, mesmo sendo lanado em 2000 o MS-Windows Me, este no chegou a ser muito utilizado. Mas no ano de 2000 que ocorre o lanamento mais importante da Microsoft, o MSWindows 2000, derivado do MS-Windows NT. 5. MS-Windows 2000 O sistema MS-Windows 2000 era conhecido como MS-Windows NT 5.0 durante a fase de desenvolvimento. Esse sistema, quando lanado, trouxe uma srie de inovaes para a famlia Windows, a mais importante foi a criao do mecanismo conhecido como Active Directory, que implementou uma nova estrutura de organizao para a rede de computadores. Esse sistema possua grandes melhorias no gerenciamento dos processos, memria, dispositivos, e notadamente era muito superior s verses anteriores. O MSWindows 2000 era direcionado para ser utilizado como Sistema Operacional Servidor, as suas verses disponveis eram: Professional: para computadores de trabalho especializado; Server: para servidores de pequenas e mdias empresas; Advanced Server: para servidores de mdias e grandes empresas; Datacenter: para ser utilizado como servidor de arquivos em grandes empresas.

A principal contribuio do MS-Windows 2000 para a Microsoft foi ter se tornado um sistema de grande estabilidade e aliado ao MS-Windows 98 e sua base de aplicativos disponveis, grande compatibilidade com os aplicativos em uso na poca. Isso permitiu a Microsoft realizar a juno dos sistemas operacionais de 16 bits, famlia MS-Windows 95 e 98, com o sistema operacional de 32 bits. Com o lanamento do MS-Windows 2000, iniciou-se o projeto Whistler, que gerou o MS-Windows XP.

Copyright 2007, ESAB Escola Superior Aberta do Brasil

125

6. MS-Windows XP O lanamento do MS-Windows XP foi o marco final da gerao de 16 bits da famlia Windows. As caractersticas encontradas no MS-Windows XP so: Gerenciamento dos Programas em Modo Multitarefa Preemptivo; Gerenciamento de Memria optimizado; Utilizao da API Win32; Utilizao do Sistema de Arquivos NTFS; Sistema completamente desenvolvido para processadores de 32bits; Independncia total do MS-DOS; Independncia total do MS-Windows 3;

Em 2001 no havia a menor necessidade de construir um sistema operacional compatvel com o MS-DOS e MS-Windows 3. O kernel utilizado no desenvolvimento do MS-Windows o mesmo kernel utilizado no MS-Windows 2000. Os programas escritos para os sistemas MSWindows 95 e MS-Windows 98 que utilizam apenas a API Win32 so executados normalmente no MS-Windows XP. Programas escritos para o MS-DOS e MS-Windows 3 podem ser executados no MS-Windows XP atravs de um Emulador de Sistema, que a Microsoft batizou de Modo de Compatibilidade. O MS-Windows XP tambm foi feito com uma nova interface grfica, apresentando mais facilidades para a operao do computador e foi disponibilizado em vrias verses: Starter Edition: verso com recursos limitados, voltada para mercados emergentes (Brasil, Rssia, China, Mxico, ndia) devido ao menor custo de venda; Home Edition: verso voltada para o ambiente domstico Professional Edition: esta verso foi feita para ser utilizada nos computadores de trabalho das empresas;
Copyright 2007, ESAB Escola Superior Aberta do Brasil 126

Media Center: verso feita para o mercado domstico tambm, a diferena so os recursos multimdia disponveis;

Tablet PC: verso para ser utilizada em computadores portteis com recursos de reconhecimento de escrita manual;

Professional x64: verso para ser utilizada em computadores equipados com o processador Intel Itanium de 64 bits, e nos processadores AMD Opteron, AMD Athlon64, Intel Pentium D, Intel Core Duo.

7. MS-Windows 2003 e MS-Windows Vista Em 2003 a Microsoft lanou a atual verso do MS-Windows para servidores, o MS-Windows 2003, que possua uma sria de recursos voltados para garantir a segurana no computador, e vrios utilitrios para facilitar a administrao do servidor e da rede de computadores. As verses lanadas deste sistema so semelhantes s verses do MS-Windows 2000. E em novembro de 2006 foi lanado o sucessor do MS-Windows XP, o MS-Windows Vista. Este sistema consolida a plataforma Windows, traz uma nova interface grfica e novos recursos para melhorar a utilizao do computador. Foi lanado nas seguintes verses: Starter Edition, Home Basic, Home Premium, Business, Enterprise e Ultimate.

Copyright 2007, ESAB Escola Superior Aberta do Brasil

127

U
Linux

NIDADE

30

Objetivo: Conhecer a plataforma Linux, quais as diferenas em relao ao MS-Windows e aprender sobre a histria deste sistema operacional.

1. Introduo O sistema Linux um sistema operacional desenvolvido para ter um funcionamento semelhante ao sistema Unix. Desde o incio do desenvolvimento, no ano de 1991, o Linux feito com o cdigo-fonte aberto, isto significa que qualquer pessoa tem acesso s instrues em linguagem de programao que so utilizadas para fazer funcionar o sistema. Este sistema operacional muito utilizado em servidores de rede e supercomputadores, e atualmente apoiado por uma srie de empresas, tais como: IBM, Oracle, Sun Microsystems e Red Hat. A utilizao do Linux em computadores pessoais ainda pequena, e o maior motivo para isso a baixa disponibilidade de programas e drivers de dispositivos. 2. Histria do Linux O nome Linux derivado do nome do criador do projeto, Linus Torvalds, que comeou a programar o Linux enquanto era estudante na Universidade de Helsinki, a partir do cdigofonte do sistema Minix, um sistema operacional reduzido, contendo algumas caractersticas do Unix. O projeto que Linus estava realizando foi divulgado e aberto a outros desenvolvedores, que prontamente se colocaram a disposio para auxiliar na programao do Linux. A primeira verso funcional do sistema Linux foi concluda em 1992, e comeou a ser utilizado por programadores espalhados em vrias universidades pelo mundo. Em 1993 foi criado o primeiro kit de utilizao do Linux, que consistia no sistema operacional mais um conjunto de utilitrios, como um editor de texto, um compilador para linguagem C e outros programas, alm de contar com uma interface grfica. Esse kit recebeu o nome de Yggdrasil
Copyright 2007, ESAB Escola Superior Aberta do Brasil 128

Linux/GNU/X. O kit no tinha uma equipe ou profissional responsabilizado por lanar novas verses, ento em junho de 1993 foi lanada a primeira Distribuio Linux, Slackware 1.0. Em 1996 foi lanado o Linux Kernel 2, sendo este a base de todas as distribuies em uso atualmente. A verso atual do sistema denominada Linux Kernel 2.6.24. (A atual verso do MS-Windows a 6.0.6, MS-Windows Vista). Uma Distribuio Linux um kit que contm o sistema operacional Linux mais um conjunto de ferramentas de trabalho. Atualmente existem dezenas, talvez centenas, de distribuies Linux pelo mundo, as principais so: Debian, Fedora, Mandriva, OpenSUSE, RedHat, Slackware e Kurumim (verso brasileira do Linux). Como o Linux um sistema aberto e gratuito, e quase todas as ferramentas distribudas junto com o sistema tambm so abertas e gratuitas, a criao de uma distribuio especfica para uma determinada finalidade tornase muito fcil. As distribuies podem ser divididas nas seguintes categorias: Comerciais: RedHat, Novell SUSE, Mandriva; No Comerciais: Fedora, OpenSUSE, Ubuntu, Kurumim; Para Servidores: RedHat, Fedora; Para computadores domsticos: Mandriva, Ubuntu, Kurumim; Para Supercomputadores: Fedora + LamMPI; Para telefones celulares: LiMO; Para atuar como Roteador de Rede: FOX; Para usurios mais experientes: Debian, Slackware.

Atualmente o Linux muito disseminado nos ambientes acadmicos e cientficos, e comea a ser utilizado em ambientes empresariais e domsticos, graas entre outras coisas aos programas de vrios pases, como o caso do Brasil, de incentivo utilizao de sistemas abertos. Um outro fator que est ajudando a disseminar o Linux o alto preo pago por uma

Copyright 2007, ESAB Escola Superior Aberta do Brasil

129

cpia do MS-Windows. Algumas empresas como Positivo Informtica, SempToshiba, Dell, entre outras, j oferecem o Linux como opo em seus computadores. 3. Desenvolvimento do sistema Linux O Linux desenvolvido por milhares de pessoas ao redor do mundo. O principal coordenador de desenvolvimento o prprio Linus Torvalds, que atualmente trabalha para a empresa Transmeta nos Estados Unidos. Linus responsvel pela coordenao no desenvolvimento do kernel do Linux. ele quem define a numerao da verso e a data oficial de liberao da verso. A numerao das verses do Linux obedece seguinte nomenclatura: X.Y.Z. O nmero X indica o nmero da verso do kernel, o Y indica o nmero da reviso da verso ( considerada uma reviso a realizao de uma grande alterao em alguma rotina interna do Linux), e o Z indica o nmero de pequenas revises. Para tornar a adoo do Linux mais simplificada para os usurios, o sistema adotou uma srie de padres j estabelecidos no mercado, como o POSIX. Isto permitiu ao Linux ter compatibilidade com um parcela de programas para Unix que o tornou apto a ser uma opo de atualizao de sistemas Unix antigos. Alm do POSIX o Linux conta com uma vasta biblioteca de programas e funes que o torna parcialmente compatvel com o sistema MSWindows, principalmente se for considerado como Servidor de Arquivos para uma rede com computadores operando o MS-Windows. Em vrias cidades espalhadas pelo mundo existem grupos de usurios que trabalham (geralmente de forma gratuita) no desenvolvimento e divulgao do Linux, alm de promoverem o desenvolvimento de programas gratuitos e abertos. Um exemplo o Dr. Com Kolivas, um mdico australiano que nas horas vagas trabalha programando o kernel do Linux, tendo desenvolvido algumas correes e revises importantes. 4. Utilizao do Linux Como j foi dito anteriormente, o Linux muito utilizado em ambientes acadmicos e cientficos, e comea a ser utilizado nas empresas e residncias. Alm disso, o Linux um dos sistemas mais abrangentes do mundo, possuindo verses para uma vasta gama de
130

Copyright 2007, ESAB Escola Superior Aberta do Brasil

plataformas: Intel x86, Intel IA-64, IBM PowerPC, Motorola 680x0, HP PA-RISC, SUN UltraSPARC, ARM, Mainframes, Supercomputadores, Celulares, Pocket PC's, Sony PlayStation 2 e PlayStation 3, etc. Nos computadores pessoais, utilizados em escritrios, empresas e residncias, o Linux possui 1% do mercado, e disputa principalmente com o MS-Windows e o MacOS X, que detm 90% e 5% do mercado de sistemas operacionais, respectivamente. A maioria das distribuies voltadas para esse mercado conta com uma interface grfica e um pacote de aplicativos que incluem: processador de texto, planilha eletrnica, apresentao de slides, navegador para internet, correio eletrnico, desenho, editorao eletrnica, edio de imagens, e uma srie de utilitrios. As interfaces grficas mais utilizadas para o Linux so: KDE e Gnome, mas no so as nicas, outros exemplos so: CDE, Enlightenment, WindowMaker (desenvolvida no Brasil) e FVWM. Alm disso, o Linux possui um aplicativo chamado Wine, que funciona como um emulador do MS-Windows e permite executar alguns aplicativos desenvolvidos para o sistema da Microsoft. Alguns aplicativos disponveis para o MS-Windows possuem tambm uma verso prpria para Linux: OpenOffice, Mozilla Firefox, GIMP, Adobe Acrobat Reader, MatLab, Nero Burning ROM, Autodesk MAYA, Softimage XSI, entre outros. Na rea dos jogos eletrnicos o Linux tambm conta com uma vasta gama de exemplares: Quake 4, Guitar Hero, Civilization, Home World, Dance Dance Revolution e muitos outros. No segmento dos servidores e supercomputadores o Linux possui uma base instalada mais consolidada, sendo encontrado em cerca de 12% dos sistemas. Principalmente como Servidor para Internet, estando presente em cerca de 80% desse mercado especfico. A combinao mais utilizada de um servidor Linux para internet : Linux + Apache + MySQL + Perl/PHP, todos so programas gratuitos e abertos. E na instalao em supercomputadores o Linux tambm reina absoluto, presente em 85% dos 500 melhores supercomputadores do mundo. Na telefonia celular o Linux alcana 16% do mercado, e atualmente a Samsung e LG anunciaram que iro adotar a distribuio LiMO em seus telefones. O Linux tambm
131

Copyright 2007, ESAB Escola Superior Aberta do Brasil

utilizado nos consoles PlayStation 2 e PlayStation 3, neste, utilizado principalmente para o projeto Fold@Home, que realiza pesquisas mdicas. Terminamos aqui nossos estudos e agradeo a participao de cada um de vocs. Muito obrigado.

Antes de dar incio sua Prova Online fundamental que voc acesse sua SALA DE AULA e faa a Atividade 3 no link ATIVIDADES.

Copyright 2007, ESAB Escola Superior Aberta do Brasil

132

Computao de Alto Desempenho O desenvolvimento de sistemas operacionais para supercomputadores uma tarefa de alta complexidade, que exige a presena de um grupo especializado de programadores. Mas a construo fsica de um supercomputador tambm uma tarefa de alta complexidade:

Figura 1: Construo do supercomputador IBM Blue Gene

Vrios parmetros devem ser analisados: Temperatura da sala de operao; Trfego de dados; Necessidades eltricas; Espao fsico necessrio; Facilidade para manuteno; entre outros. Quais os profissionais necessrios para o planejamento, construo e implantao de um supercomputador ? Por que o Brasil ainda no realizou a construo de um supercomputador totalmente nacional ?

Copyright 2007, ESAB Escola Superior Aberta do Brasil

133

LOSSRIO

Caso haja dvidas sobre algum termo ou sigla utilizada, consulte o link Glossrio em sua sala de aula, no site da ESAB.

Copyright 2007, ESAB Escola Superior Aberta do Brasil

134

IBLIOGRAFIA

SunMicrosystems Inc, "Introduo a sistemas operacionais:uma abordagem prtica usando o projeto OpenSolaris - Guia de estudante", 2006. "Noes de Sistemas Operacionais", 2004. Diogo Ditzel Kropiwiec, Paulo Lcio de Geus, "Paradigmas de Segurana em Sistemas Operacionais"

Joo Paulo Kitajima, "Sistemas Operacionais", 2002. "Arquitetura de Sistemas Operacionais", 2007 Dominic Giampaolo, "Practical File System Design with the Be File System", 1999. Mohammad Amin Vahdat, "Operating System Services for Wide-Area Applications", 1998

Robert Craig, Paul Leroux, "Operating system support for multi-core processors", 2005 Israel Dias de Jesus Jnior, Maria de Ftima Almeida, "Third Extended File System EXT3", 2007

Apple Inc,"File System Overview", 2006. "ACTIVE DIRECTORY CONCEPTS", 2008,

http://tutorials.intelligentedu.skillspride.com/active-directory-concepts.htm Cray, "Cray XT4 Supercomputer", 2006 "NEC Super UX", 2008, http://www.nec.de/hpc/software/super-ux/index.html Fabiano Carvalho, "Supercomputador NEC SEX-6", 2004

Copyright 2007, ESAB Escola Superior Aberta do Brasil

135

Brad Marshall, "Introduction to LDAP", 2008 Stephen de Vries, "Securing Mac OS X", 2005 Jason Nieh, Ozgur Can Leonard, "Examining VMware", 2000. "The Memory Management Reference", 2008, http://www.memorymanagement.org "THE MACH SYSTEM", 2008, http://library.nocrew.org/lib/os/Mach.txt J. Bradley Chen, Brian N. Bershad, "The Impact of Operating System Structure on Memory System Performance.pdf", 1997

Copyright 2007, ESAB Escola Superior Aberta do Brasil

136