Você está na página 1de 143

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 aos 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 ....................................................................................................... 46
Preveno Contra Bloqueio ............................................................................. 46
UNIDADE 11 ....................................................................................................... 51
Gerenciamento Da Memria ............................................................................ 51
UNIDADE 12 ....................................................................................................... 54
Memria Virtual ................................................................................................ 54
UNIDADE 13 ....................................................................................................... 58
Copyright 2007, ESAB Escola Superior Aberta do Brasil

Memria Paginada ........................................................................................... 58


UNIDADE 14 ....................................................................................................... 64
Memria Segmentada ...................................................................................... 64
UNIDADE 15 ....................................................................................................... 67
Gerenciamento De Dispositivos ....................................................................... 67
UNIDADE 16 ....................................................................................................... 72
Sistema De Arquivos ........................................................................................ 72
UNIDADE 17 ....................................................................................................... 78
Sistema De Arquivos NTFS ............................................................................. 78
UNIDADE 18 ....................................................................................................... 84
Linux Ext ........................................................................................................... 84
UNIDADE 19 ....................................................................................................... 89
Interface Com O Usurio ................................................................................. 89
UNIDADE 20 ....................................................................................................... 92
Sistemas Operacionais Para Redes De Computadores ................................. 92
UNIDADE 21 ....................................................................................................... 96
Gerenciamento De Usurio ............................................................................. 96
UNIDADE 22 ....................................................................................................... 99
Ldap.................................................................................................................. 99
UNIDADE 23 ..................................................................................................... 102
Active Directory .............................................................................................. 102
UNIDADE 24 ..................................................................................................... 106
Aspectos Relativos A Segurana ................................................................... 106
UNIDADE 25 ..................................................................................................... 112
Sistemas Embutidos ...................................................................................... 112
UNIDADE 26 ..................................................................................................... 116
Sistema Virtual ............................................................................................... 116
UNIDADE 27 ..................................................................................................... 120
Copyright 2007, ESAB Escola Superior Aberta do Brasil

Sistema Operacional Na Internet ................................................................... 120


UNIDADE 28 ..................................................................................................... 123
Computao De Alto Desempenho ............................................................... 123
UNIDADE 29 ..................................................................................................... 128
Microsoft Windows ......................................................................................... 128
UNIDADE 30 ..................................................................................................... 135
Linux ............................................................................................................... 135
GLOSSRIO ..................................................................................................... 141
REFERNCIAS ................................................................................................. 142

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 paineis 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

Copyright 2007, ESAB Escola Superior Aberta do Brasil

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

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

Copyright 2007, ESAB Escola Superior Aberta do Brasil

10

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
computador popular com interface grfica, e em 1985 surge o MS-Windows 1.0, primeira
verso do sistema operacional Windows.

3. 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 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.
Copyright 2007, ESAB Escola Superior Aberta do Brasil

12

Microkernel: algumas das funes do sistema operacional foram separadas em


programas chamados Servidores. Os servidores se comunicam com um sistema
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, um
sistema que 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.

Copyright 2007, ESAB Escola Superior Aberta do Brasil

13

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

Copyright 2007, ESAB Escola Superior Aberta do Brasil

14

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.
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 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 as mesmas. 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.

Copyright 2007, ESAB Escola Superior Aberta do Brasil

15

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.

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 multiusurios, 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.

Copyright 2007, ESAB Escola Superior Aberta do Brasil

17

2. Computadores Com Vrios Processadores


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


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.
Copyright 2007, ESAB Escola Superior Aberta do Brasil

18

4. Processamento Distribudo
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 subtarefas, e cada uma das subtarefas 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.

Copyright 2007, ESAB Escola Superior Aberta do Brasil

20

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

Copyright 2007, ESAB Escola Superior Aberta do Brasil

21

(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).

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.

Copyright 2007, ESAB Escola Superior Aberta do Brasil

22

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:

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 sequncia 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 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 armazenado 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
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 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 outro processo;

Copyright 2007, ESAB Escola Superior Aberta do Brasil

25

Ocorrncia de Interrupo ou exceo: quando h a ocorrncia de uma


interrupo/exceo, o sistema operacional deve entrar em operao para tratar da
interrupo/exceo, e para isso, o prprio sistema operacional iniciar um (ou mais)
processo (s) prprio(s).

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 escritas 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 Internet Explorer
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.

Copyright 2007, ESAB Escola Superior Aberta do Brasil

26

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

Copyright 2007, ESAB Escola Superior Aberta do Brasil

27

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:

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.

Copyright 2007, ESAB Escola Superior Aberta do Brasil

29

Os processadores possuem um ou mais ncleos de processamento, e cada ncleo possui


internamente vrias unidades de processamento, cada unidade responsvel por um tipo:
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 a utilizao de um recurso, mas este compar


tilhamento ocorre apenas dentro de um nico processo (pois o compartilhamento entre
processos no existe).

Copyright 2007, ESAB Escola Superior Aberta do Brasil

30

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;

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.
Copyright 2007, ESAB Escola Superior Aberta do Brasil

31

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
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.
Copyright 2007, ESAB Escola Superior Aberta do Brasil

32

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
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 subconjunto de
rotinas chamadas 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 subconjuntos de funes, um para o tratamento
de processos, POSIX Core Services, e outro especfico para o tratamento de threads

Copyright 2007, ESAB Escola Superior Aberta do Brasil

34

chamado POSIX-Thread ou PThread. E no MacOS X as funes esto agrupadas no


subconjunto Core Foundation.

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. 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.
Copyright 2007, ESAB Escola Superior Aberta do Brasil

35

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
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,

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.

Copyright 2007, ESAB Escola Superior Aberta do Brasil

36

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

Copyright 2007, ESAB Escola Superior Aberta do Brasil

37

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


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.

Copyright 2007, ESAB Escola Superior Aberta do Brasil

39

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;

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

Copyright 2007, ESAB Escola Superior Aberta do Brasil

40

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
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 podem-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

Copyright 2007, ESAB Escola Superior Aberta do Brasil

43

mesmo instante, dois processos tentarem utilizar o recurso, os dois conseguiro acesso ao
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 instantnes, ou, no mnimo, no conflitantes. 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 tratada
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.
Copyright 2007, ESAB Escola Superior Aberta do Brasil

44

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

45

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 sequncia circular de solicitao de um novo recurso e travamento do recurso


em uso por uma srie de processos.

Copyright 2007, ESAB Escola Superior Aberta do Brasil

46

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


sequencial;

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
Copyright 2007, ESAB Escola Superior Aberta do Brasil

47

liberados, e ento os processos so finalizados. Aps a finalizao deles, so


reiniciados, sendo que a inicializao dos processos ser feita de forma sequencial,
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
liberao de um recurso, e 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
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.

Copyright 2007, ESAB Escola Superior Aberta do Brasil

48

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,
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 pode trazer sociedade?

Copyright 2007, ESAB Escola Superior Aberta do Brasil

49

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

50

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

51

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

Copyright 2007, ESAB Escola Superior Aberta do Brasil

52

4. Organizao da Memria
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

53

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 utilizados 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
Copyright 2007, ESAB Escola Superior Aberta do Brasil

54

computador. Na dcada de 1960 comearam a surgir os primeiros modelos de computadores


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 Espao de Endereamento. Quando um programa iniciado, o
prprio sistema operacional reserva um Espao de Endereamento para armazenar o cdigo
executvel do programa, e 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

55

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

56

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

57

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

58

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 frequncia 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

59

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

60

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

61

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
subsistemas 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

62

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

Copyright 2007, ESAB Escola Superior Aberta do Brasil

63

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

Copyright 2007, ESAB Escola Superior Aberta do Brasil

64

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
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
Copyright 2007, ESAB Escola Superior Aberta do Brasil

65

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
(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

66

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 especficas 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
Copyright 2007, ESAB Escola Superior Aberta do Brasil

67

dispositivo no poder ser utilizado, e se for instalado um driver incorreto para um


dispositivo, ele no funcionar de maneira adequada.

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.
Copyright 2007, ESAB Escola Superior Aberta do Brasil

68

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
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.
Copyright 2007, ESAB Escola Superior Aberta do Brasil

69

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

Copyright 2007, ESAB Escola Superior Aberta do Brasil

70

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
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 tm a vantagem de poderem ser carregados na memria apenas no momento de utilizao
do dispositivo.

Copyright 2007, ESAB Escola Superior Aberta do Brasil

71

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.
Copyright 2007, ESAB Escola Superior Aberta do Brasil

72

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
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:

Copyright 2007, ESAB Escola Superior Aberta do Brasil

73

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

Modo de Exibio: aqui definido se o arquivo ser exibido ao usurio normalmente,


ou se ficar oculto, no sendo exibido;

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

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.
Copyright 2007, ESAB Escola Superior Aberta do Brasil

74

Um diretrio um mecanismo de organizao dos arquivos. Os arquivos so, sob um


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

75

organizao, exibio e administrao dos arquivos, como por exemplo, os caracteres: /,


?, $, etc. Estes dependem do sistema de arquivos, que depende do sistema operacional.
Por exemplo, nos sistemas Unix, se um arquivo comea com o caractere ., indica que o
arquivo ficar oculto, e se comea com ~ significa que uma cpia de segurana.
O sistema MS-Windows 95 ao ser lanado permitiu a utilizao de nomes de arquivos com
255 caracteres, mas 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 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
Copyright 2007, ESAB Escola Superior Aberta do Brasil

76

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

77

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

78

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

Copyright 2007, ESAB Escola Superior Aberta do Brasil

79

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.
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 podem-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
Copyright 2007, ESAB Escola Superior Aberta do Brasil

80

caractersticas novas. Isso faz com que o MS-Windows 2000 no reconhea completamente
as caractersticas do NTFS presentes no MS-Windows 2003.
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;

Copyright 2007, ESAB Escola Superior Aberta do Brasil

81

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
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 frequncia 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;

Copyright 2007, ESAB Escola Superior Aberta do Brasil

82

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

83

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

84

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.

Copyright 2007, ESAB Escola Superior Aberta do Brasil

85

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

Copyright 2007, ESAB Escola Superior Aberta do Brasil

86

4. Caractersticas Gerais
Atualmente o padro ext3 possui as seguintes caractersticas:

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.

Copyright 2007, ESAB Escola Superior Aberta do Brasil

87

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

88

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, Psicologia,
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

Copyright 2007, ESAB Escola Superior Aberta do Brasil

89

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:
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

Copyright 2007, ESAB Escola Superior Aberta do Brasil

90

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

91

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

92

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.

Copyright 2007, ESAB Escola Superior Aberta do Brasil

93

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

94

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

95

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 tenha 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
Copyright 2007, ESAB Escola Superior Aberta do Brasil

96

sistemas operacionais disponveis em alguns aparelhos eletrnicos atuais, 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 certificar 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
Copyright 2007, ESAB Escola Superior Aberta do Brasil

97

operacional e no Linux o administrador padro o usurio root e a senha tambm a


palavra root.
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

98

NIDADE

22

Objetivo: Conhecer o protocolo LDAP, aprender quais so as suas funcionalidades e como


ele se integra ao Sistema Operacional.
Ldap

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.

Copyright 2007, ESAB Escola Superior Aberta do Brasil

99

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
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 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;

Copyright 2007, ESAB Escola Superior Aberta do Brasil

100

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.

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

101

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.
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
Copyright 2007, ESAB Escola Superior Aberta do Brasil

102

atributos e Esquemas do Active Directory. A Floresta possui uma ou mais rvores, que so
estruturas interconectadas por canais seguros. Cada rvore armazena um ou mais
Domnios, tambm interconectados por canais seguros. Os Domnios so identificados por
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 a 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:

Copyright 2007, ESAB Escola Superior Aberta do Brasil

103

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;

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.

Copyright 2007, ESAB Escola Superior Aberta do Brasil

104

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

Copyright 2007, ESAB Escola Superior Aberta do Brasil

105

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

106

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.

Copyright 2007, ESAB Escola Superior Aberta do Brasil

107

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
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.
Copyright 2007, ESAB Escola Superior Aberta do Brasil

108

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
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;

Copyright 2007, ESAB Escola Superior Aberta do Brasil

109

Cpia de Segurana dos Dados: como o prprio nome diz a cpia de segurana dos
dados uma cpia dos dados do 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 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 antivrus minimiza os danos causados pelos vrus,
mas deve-se sempre verificar se o programa antivrus 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.
Copyright 2007, ESAB Escola Superior Aberta do Brasil

110

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,
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

de

novos aplicativos para

telefones

celulares.

Copyright 2007, ESAB Escola Superior Aberta do Brasil

111

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

Copyright 2007, ESAB Escola Superior Aberta do Brasil

112

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:

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 oferece 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

Copyright 2007, ESAB Escola Superior Aberta do Brasil

113

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:

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.

Copyright 2007, ESAB Escola Superior Aberta do Brasil

114

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

115

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

116

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

Copyright 2007, ESAB Escola Superior Aberta do Brasil

117

cria-se uma srie de mquinas virtuais com caractersticas diferentes, e verifica-se o


comportamento do sistema operacional em cada situao.
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.

Copyright 2007, ESAB Escola Superior Aberta do Brasil

118

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


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

119

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


Copyright 2007, ESAB Escola Superior Aberta do Brasil

120

(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
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;

Copyright 2007, ESAB Escola Superior Aberta do Brasil

121

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

122

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
Copyright 2007, ESAB Escola Superior Aberta do Brasil

123

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
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 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,

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
Copyright 2007, ESAB Escola Superior Aberta do Brasil

124

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.

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

Copyright 2007, ESAB Escola Superior Aberta do Brasil

125

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.

Existem vrios tipos de cluster, no entanto h alguns que so mais conhecidos, como:
Cluster de Alto Desempenho: Tambm conhecido como cluster de alta performance, ele
funciona permitindo que ocorra uma grande carga de processamento com um volume alto de
gigaflops em computadores comuns e utilizando sistema operacional gratuito, o que diminui
seu custo.
Cluster de Alta Disponibilidade: So clusters os quais seus sistemas conseguem
permanecer ativos por um longo perodo de tempo e em plena condio de uso. Sendo
assim, podemos dizer que eles nunca param seu funcionamento; alm disso, conseguem
detectar erros se protegendo de possveis falhas..
Cluster para Balanceamento de Carga: Esse tipo de cluster tem como funo controlar a
distribuio equilibrada do processamento. Requer um monitoramento constante na sua
comunicao e em seus mecanismos de redundncia, pois se ocorrer alguma falha, haver
uma interrupo no seu funcionamento.

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:
Copyright 2007, ESAB Escola Superior Aberta do Brasil

126

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 criao de uma
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.

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

127

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

Copyright 2007, ESAB Escola Superior Aberta do Brasil

128

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
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.
Copyright 2007, ESAB Escola Superior Aberta do Brasil

129

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
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.
Copyright 2007, ESAB Escola Superior Aberta do Brasil

130

4. MS-Windows 95
Os objetivos a serem alcanados por este sistema eram:

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;

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:
Copyright 2007, ESAB Escola Superior Aberta do Brasil

131

Maior independncia do MS-DOS;

Utiliza por padro o sistema de arquivos FAT32;

Melhoria no Gerenciamento dos Processos;

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,
Copyright 2007, ESAB Escola Superior Aberta do Brasil

132

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.

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:
Copyright 2007, ESAB Escola Superior Aberta do Brasil

133

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;

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

134

NIDADE

30

Objetivo: Conhecer a plataforma Linux, quais as diferenas em relao ao MS-Windows e


aprender sobre a histria deste sistema operacional.

Linux

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.

Copyright 2007, ESAB Escola Superior Aberta do Brasil

135

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

Copyright 2007, ESAB Escola Superior Aberta do Brasil

136

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. Outro fator que est ajudando a disseminar o Linux o alto preo pago por uma
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.
Copyright 2007, ESAB Escola Superior Aberta do Brasil

137

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
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 +
Copyright 2007, ESAB Escola Superior Aberta do Brasil

138

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

139

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

140

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

141

EFERNCIAS

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

142

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

143

Você também pode gostar