Anda di halaman 1dari 162

Fundamentos de

Sistemas Operacionais
Autores: Prof. Fbio Furukawa
Prof. Roberto Nunes
Colaboradores: Profa. Elisangela Monaco de Moraes
Prof. Roberto Macias
Prof. Fbio Vieira do Amaral

Professores conteudistas: Fbio Furukawa / Roberto Nunes


O professor conteudista Fbio Furukawa, natural de So Paulo (Brasil), nasceu em 1975 e atua
ininterruptamente na rea de sistemas desde 1994. Iniciou como estagirio, atuou como tcnico em eletrnica,
analista de sistemas, engenheiro de redes, analista de negcios e, atualmente, como lder responsvel pela
entrega de servios de hosting na Amrica Latina para empresa multinacional e lder do segmento. Tambm
professor de diversas disciplinas na rea de redes e tecnologia da informao e coordenador de cursos
universitrios. O conteudista formado em tcnico em eletrnica pelo Colgio Lavoisier, cursou engenharia
eltrica na PUCSP, formouse em cincia da computao na universidade FAAP, psgraduado em Master
Business Administration com nfase em sistemas de computao pela Faculdade Getlio Vargas, possui cursos
de extenso em Emergin Leader pela universidade de Harvard Business School e diversos cursos e certificaes
relacionados a redes e TI. O conteudista tem experincia internacional trabalhando e participando de eventos
em pases, como Estados Unidos, Espanha, Itlia, Frana, Argentina, Chile, Colmbia e Mxico. Fala portugus
(lngua nativa), ingls fluente, espanhol intermedirio e japons bsico.
O professor conteudista Roberto Nunes, possui ps-graduao MBA Engenharia de Qualidade Gesto
e Tecnologias da Qualidade na Escola Politcnica da Universidade de So Paulo (USP) e cursa ps-graduao
em Formao de Professores para o Ensino Superior na Universidade Paulista (UNIP). Possui graduao em
Administrao pela Faculdade Radial (2001) e, atualmente, professor da Universidade Paulista (UNIP) e
profissional da rea de informtica na Universidade de So Paulo (USP).

Dados Internacionais de Catalogao na Publicao (CIP)


F938

Furukawa, Fabio
Fundamentos de Sistemas Operacionais. / Fabio Furukawa;
Roberto Nunes. - So Paulo: Editora Sol.
160 p. il.
Nota: este volume est publicado nos Cadernos de Estudos e
Pesquisas da UNIP, Srie Didtica, ano XVII, n. 2-022/11, ISSN 1517-9230.
1.Abstrao em Sistemas Operacionais 2.Gerenciamento de
Recursos 3.Evoluo Computacional I.Ttulo
CDU 681.3

Todos os direitos reservados. Nenhuma parte desta obra pode ser reproduzida ou transmitida por qualquer forma e/ou
quaisquer meios (eletrnico, incluindo fotocpia e gravao) ou arquivada em qualquer sistema ou banco de dados sem
permisso escrita da Universidade Paulista.

Prof. Dr. Joo Carlos Di Genio


Reitor

Prof. Fbio Romeu de Carvalho


Vice-Reitor de Planejamento, Administrao e Finanas

Profa. Melnia Dalla Torre


Vice-Reitora de Unidades Universitrias

Prof. Dr. Yugo Okida


Vice-Reitor de Ps-Graduao e Pesquisa

Profa. Dra. Marlia Ancona-Lopez


Vice-Reitora de Graduao

Unip Interativa EaD


Profa. Elisabete Brihy
Prof. Marcelo Souza
Prof. Dr. Luiz Felipe Scabar
Prof. Ivan Daliberto Frugoli

Material Didtico EaD


Comisso editorial:

Dra. Anglica L. Carlini (UNIP)

Dr. Cid Santos Gesteira (UFBA)

Dra. Divane Alves da Silva (UNIP)

Dr. Ivan Dias da Motta (CESUMAR)

Dra. Ktia Mosorov Alonso (UFMT)

Dra. Valria de Carvalho (UNIP)
Apoio:

Profa. Cludia Regina Batista EaD

Profa. Betisa Malaman Comisso de Qualificao e Avaliao de Cursos

Projeto grfico:

Prof. Alexandre Ponzetto
Reviso:
Silvana Pierro

Geraldo Teixeira Jr.

Sumrio
Fundamentos de Sistemas Operacionais
APRESENTAO.......................................................................................................................................................9
INTRODUO............................................................................................................................................................9
Unidade I

1 FUNDAMENTOS DE SISTEMAS OPERACIONAIS.....................................................................................11


1.1 Nivelamento.............................................................................................................................................11
1.2 Abstrao.................................................................................................................................................. 12
1.2.1 Gerncia....................................................................................................................................................... 15

2 HISTRIA DOS SISTEMAS OPERACIONAIS............................................................................................. 16


2.1 Primeira gerao de computadores (19451955) Vlvulas.............................................. 17
2.2 Segunda gerao de computadores (19551965) Transistores e sistemas
em lote (batch)............................................................................................................................................... 20
2.3 Terceira gerao de computadores (19651980) CIs e multiprogramao............... 21
2.4 Quarta gerao de computadores (1980atualmente) Computadores
pessoais............................................................................................................................................................. 22
Unidade II

3 TIPOS DE SISTEMAS OPERACIONAIS........................................................................................................ 27


3.1 Batch (de lote)........................................................................................................................................ 27
3.2 De rede....................................................................................................................................................... 27
3.3 Distribudo................................................................................................................................................ 28
3.4 Multiusurio e multitarefas.............................................................................................................. 28
3.5 Desktop/Computador pessoal.......................................................................................................... 28
3.6 Servidor..................................................................................................................................................... 28
3.7 Embarcados.............................................................................................................................................. 29
3.8 Tempo real................................................................................................................................................ 29
3.9 De computadores de grande porte................................................................................................ 29
3.10 Multiprocessadores............................................................................................................................ 29
3.11 Portteis.................................................................................................................................................. 30
4 VISO GERAL SOBRE HARDWARE DE COMPUTADORES.................................................................. 30
4.1 Processadores.......................................................................................................................................... 30
4.1.1 Processadores multithread e multincleo..................................................................................... 32

4.2 Memria.................................................................................................................................................... 33
4.3 Disco........................................................................................................................................................... 36
4.4 Fitas............................................................................................................................................................. 37
4.5 Dispositivos de E/S................................................................................................................................ 37
4.6 Barramento.............................................................................................................................................. 38

Unidade III

5 GERENCIAMENTO DE PROCESSOS............................................................................................................ 47
5.1 Introduo a processos....................................................................................................................... 47
5.1.1 Processo....................................................................................................................................................... 47
5.1.2 Criao de processos.............................................................................................................................. 49
5.1.3 Trmino de processos............................................................................................................................. 50

5.2 Comunicaes entre processos........................................................................................................ 51


5.2.1 Condio de corrida................................................................................................................................ 51
5.2.2 Excluso mtua e regio crtica........................................................................................................ 52
5.2.3 Excluso mtua com espera ociosa................................................................................................. 53
5.2.4 Semforos................................................................................................................................................... 55
5.2.5 Monitores.................................................................................................................................................... 56
5.2.6 Troca de mensagens............................................................................................................................... 57
5.2.7 Escalonamento......................................................................................................................................... 58

6 GERENCIAMENTO DE MEMRIA................................................................................................................ 59
6.1 Introduo a gerenciamento de memria.................................................................................. 59
6.2 Abstrao espaos de endereamento da memria........................................................... 61
6.2.1 Permuta de memria.............................................................................................................................. 61

6.3 Memria virtual..................................................................................................................................... 62


6.3.1 Paginao.................................................................................................................................................... 63

6.4 Segmentao.......................................................................................................................................... 65
Unidade IV

7 SISTEMAS DE ARQUIVOS................................................................................................................................71
7.1 Introduo a sistemas de arquivos.................................................................................................71
7.1.1 Arquivos....................................................................................................................................................... 71
7.1.2 Atributos...................................................................................................................................................... 71
7.1.3 Estrutura de arquivo............................................................................................................................... 72
7.1.4 Operaes.................................................................................................................................................... 73

7.2 Uso de arquivos...................................................................................................................................... 74


7.2.1 Abertura de arquivo................................................................................................................................ 74
7.2.2 Formas de acesso..................................................................................................................................... 75

7.3 Compartilhamentos.............................................................................................................................. 77
7.3.1 Travas em arquivos.................................................................................................................................. 77
7.3.2 Semntica de trava de acesso............................................................................................................ 78

7.4 Introduo a diretrios....................................................................................................................... 79


7.4.1 Organizao de volumes....................................................................................................................... 79
7.4.2 Diretrios..................................................................................................................................................... 80
7.4.3 Sistema de diretrios em nvel nico.............................................................................................. 82
7.4.4 Sistema de diretrios hierrquico..................................................................................................... 82

7.5 Gerenciamento e otimizao de sistemas de arquivos.......................................................... 83


7.5.1 Gerenciamento do espao em disco................................................................................................ 83
7.5.2 Cotas de utilizao de disco................................................................................................................ 85
7.5.3 Cpia de segurana................................................................................................................................. 87

7.6 Tipos de sistemas de arquivos.......................................................................................................... 90


7.6.1 Sistema de arquivos ISO 9660............................................................................................................ 90
7.6.2 Sistema de arquivo do FAT................................................................................................................... 93
7.6.3 Sistema de arquivos do ambiente Unix.......................................................................................... 96
7.6.4 Sistema de arquivos do Linux............................................................................................................. 98

8 GERENCIAMENTO DE ENTRADA E SADA.............................................................................................100


8.1 Introduo a gerenciamento de entrada e sada...................................................................100
8.2 Fundamentao hardware de entrada e sada (E/S).........................................................100
8.3 Dispositivos de entrada e sada.....................................................................................................101
8.3.1 Controladores de dispositivos (driver)...........................................................................................103
8.3.2 E/S mapeada em memria.................................................................................................................105
8.3.3 Acesso direto memria (DMA)......................................................................................................106

8.4 Software de E/S....................................................................................................................................108


8.4.1 E/S programada......................................................................................................................................109
8.4.2 E/S usando interrupo....................................................................................................................... 110
8.4.3 E/S usando DMA......................................................................................................................................111

8.5 Camadas de software de E/S...........................................................................................................111


8.5.1 Tradutores de interrupo...................................................................................................................111
8.5.2 Drivers dos dispositivos.......................................................................................................................112
8.5.3 Software de E/S independente de dispositivo...........................................................................114
8.5.4 Software de E/S do espao do usurio.........................................................................................115

8.6 Hardware de E/S.................................................................................................................................. 115


8.6.1 Discos rgidos...........................................................................................................................................116

8.7 Relgio.....................................................................................................................................................123
8.7.1 Hardware do relgio viso geral................................................................................................. 124
8.7.2 Software do relgio viso geral.................................................................................................. 125
8.7.3 Temporizador por software viso geral................................................................................... 126

8.8 Teclado, mouse e monitor viso geral....................................................................................126


8.8.1 Software do teclado............................................................................................................................ 127
8.8.2 Software do mouse.............................................................................................................................. 128
8.8.3 Software de sada................................................................................................................................. 129

8.9 Thin clients clientes magros........................................................................................................132


8.10 Gerenciamento de energia............................................................................................................133

APRESENTAO

Fundamentos de Sistemas Operacionais uma das disciplinas da ementa do curso de graduao da


UNIP que reconhecida pelos alunos, professores e pelo mercado como o conhecimento fundamental
para que aspirantes ou profissionais das reas de tecnologia tenham a possibilidade de entender, analisar
e recomendar a evoluo dos sistemas operacionais, gerenciamento de processos, gerenciamento de
memria (hierarquia de memria, modos de endereamento, estruturas de controle, memria virtual),
gerenciamento de arquivos e gerenciamento de entrada e sada.
Esta disciplina tem por objetivo geral fornecer os conceitos necessrios para a compreenso do
funcionamento dos sistemas operacionais. Compreender as funes do sistema operacional dentro de
um sistema computacional. Despertar uma viso crtica sobre os requisitos de confiabilidade, segurana
e desempenho envolvidos no sistema operacional.
Como objetivos especficos, buscase fornecer conhecimentos tericos sobre polticas, estruturas e
tcnicas de operao de sistemas computacionais. Capacitar o aluno na avaliao e determinao de
sistemas operacionais em aplicaes especficas visando aos requisitos de funcionalidade e aplicabilidade
prtica. Compreender as necessidades e os mecanismos utilizados pelo sistema operacional para prover
segurana para o sistema computacional.
INTRODUO

Desde sua inveno at os dias atuais, os computadores so dispositivos que vm ajudando o


homem a conseguir ultrapassar o que at ento pareciam barreiras impossveis de serem superadas
fora dos filmes de fico cientfica. Certamente, na poca que nossos avs estavam no colgio e as
mquinas de telgrafo e de escrever eram os dispositivos tecnolgicos mais evoludos , se algum
afirmasse que seria possvel que ns tivssemos a condio de conversar com amigos localizados
em diferentes pases, ou que seria possvel, por meio da computao, prever a meteorologia e
identificar biometricamente a identidade das pessoas, ou que as empresas mais valiosas do
mundo seriam baseadas em conceitos abstratos, como dados binrios gravados em equipamentos
espalhados pelo mundo, ento esse indivduo seria considerado, no mnimo, um bom autor de
livros de fico ou um louco.
O computador , sem dvida, o dispositivo que passou a estar em todos os lugares e a ser usado
por todas as pessoas, independente da idade, condio social, raa ou preferncia poltica poderamos
afirmar que o computador, ou pelo menos a computao, o mais democrtico dos elementos na
sociedade moderna.
Para as pessoas que somente so classificadas como usurias dos sistemas de computao e no
possuem a pretenso de conhecer os segredos dessa fascinante cincia, nos ltimos anos foram criados
computadores que apresentam interfaces extremamente amigveis, integradas, heterogneas, seguras,
velozes e outros atributos que fizeram com que o computador tomasse formas incrveis: embutido em
televisores, carros, avies ou do tamanho da nossa mo ou, ainda, em forma de celular (que uma
verdadeira central multimdia). Para os profissionais que decidiram seguir a carreira da computao,
9

Unidade I
atuando em atividades relacionadas aos componentes fsicos ou lgicos, h intrigantes e excitantes
assuntos que necessitamos entender para podermos continuar ampliando esse legado que, sem dvida,
tem muito para chegar ao seu ponto de maturidade.
Como um computador pode processar diferentes tarefas simultaneamente? Como os programas de
computador, sendo executados numa mesma mquina, podem obter os recursos necessrios para suas
tarefas e no causar conflitos nem mesmo apresentao do resultado do programa A na tela do programa
B por equvoco? Como usurios podem acessar computadores remotos e compartilharem informaes
de forma segura? Como os diferentes tipos de sistemas podem trocar dados via rede de forma segura
e sem conflitos por falta de compatibilidade? So essas e outras questes que estaremos debatendo
ao longo dos captulos deste livrotexto, possibilitando que amantes da computao e profissionais da
rea conheam e saibam como tirar melhor proveito da nova computao. Esse debate possibilitar
tambm o desenvolvimento de solues que iro atender ao mercado de forma eficaz e segura, ajudar
a definirmos se estamos comprando um computador que ir ou no atender as nossas necessidades e
servir para entendermos a evoluo dos computadores, alimentando nossa fome por conhecimento e
fomentando nossa imaginao em relao a como ser o computador do futuro.

10

FUNDAMENTOS DE SISTEMAS OPERACIONAIS

Unidade I
1 FUNDAMENTOS DE SISTEMAS OPERACIONAIS
1.1 Nivelamento

O propsito geral dos computadores, desde aqueles pequenos e integrados conhecidos como telefones
inteligentes (smartphones), que podem ser carregados no bolso, at os de grande porte que necessitam
de ambientes extremamente planejados e controlados, similar em relao ao que esperamos deles. Em
linhas gerais, abdicando das partes e objetivando o todo, podemos simplificar dizendo que introduzimos
algo bruto na entrada e esperamos como resultado um produto lapidado com caractersticas especficas
para necessidades especficas.
Durante o processo de transformao do produto bruto at a sada e entrega do produto final
existem componentes fsicos e lgicos trabalhando nesta produo. Os componentes fsicos no nosso
mundo computacional so conhecidos como hardware e a parte lgica, como software. Estes e outros
diversos termos e nomes utilizados so palavras de origem inglesa.
importante destacar que se tentarmos traduzir alguns termos para a lngua portuguesa, isso pode
causar problemas de entendimento durante a comunicao entre profissionais da rea de tecnologia,
pois na maioria dos casos estes termos j esto intrnsecos.
O hardware de um computador pode incluir o computador em si, os discos e a unidade de disco,
impressora, mouse etc. e o software corresponde a qualquer programa ou grupo de programas que
instrui o hardware sobre a maneira como ele deve executar uma tarefa, inclusive sistemas operacionais,
processadores de texto e programas de aplicao.
O sistema operacional a parte lgica que controla todo hardware, ou seja, mesmo que estejamos
usando um programa de computador com propsito de navegao na internet, de envio e recebimento
de emails, editores de texto e imagem ou qualquer outra aplicao (software), na realidade estes
esto se comunicando com o sistema operacional e cabe ao sistema operacional executar as tarefas
necessrias para uso dos componentes fsicos do computador, como memria, disco, controladores de
vdeo, rede etc.
A Figura 1, a seguir, ilustra a arquitetura macro de um sistema de computao tpico. Podemos
observar elementos fsicos hardware e lgicos software.

11

Unidade I

Lgico
Fsico

Hardware

Sistema
operacional

Aplicativos

Usurio do sistema

Figura 1 Estrutura do ambiente computacional tpico

A maioria dos usurios de computador quando interagem com o aplicativo, baseado no ambiente
shell (interpretador de comandos) em modo texto ou ambientes GUI (Graphical User Interface interface
grfica com o usurio), usando cones no ambiente grfico, de fato no esto atuando diretamente no
sistema operacional.
Podemos sumarizar em duas palavraschave os objetivos bsicos de um
sistema operacional: abstrao e gerncia, cujos principais aspectos so
descritos a seguir.1
1.2 Abstrao

Cada componente fsico de um computador possui caractersticas intrnsecas para atender ao seu
propsito, porm alm desta abordagem temos dispositivos que fazem parte de um mesmo propsito,
porm com estruturas bem diferentes. Isso se deve s diversas tecnologias disponveis no mercado e a
outros motivos atrelados s estratgias dos fabricantes ao desenvolver seus produtos.
Para exemplificar, faremos uma analogia com o mdulo de impresso que parte integrante dos
editores de texto. Neste caso trivial, j podemos nos deparar com uma situao bem enigmtica e
complicada de ser tratada. A diversidade de modelos de impressoras, tipos de conectores, se est ligada
diretamente ao computador ou se um dispositivo em rede e todas as demais questes fariam qualquer
programa ser extremamente complexo de ser desenvolvido e, mesmo se fosse factvel, todos os programas
ocupariam muito espao no disco rgido.
A Figura 2 ilustra como seria se os programas tivessem que atuar diretamente com os dispositivos
fsicos do ambiente computacional.
1

12

Disponvel em: <http://pt.scribd.com/doc/13290978/socap01>. Acesso em: 8 jun. 2011.

FUNDAMENTOS DE SISTEMAS OPERACIONAIS

Figura 2 Aplicao atuando diretamente com os dispositivos

Entretanto, a abordagem bem diferente da demonstrada na Figura 2, temos na realidade


dois mundos completamente distintos e uma via chamada sistema operacional que interliga
esses dois mundos; para o mundo lgico, o mundo fsico uma abstrao, e, para o mundo fsico,
o mundo dos programas que fazem interface com os usurios uma entidade completamente
desconhecida.

13

Unidade I

Figura 3 Abstrao

O modelo apresentado na Figura 3 representa como os sistemas operacionais tpicos interagem


servindo de conexo entre o hardware e os aplicativos. Neste modelo, o desenvolvedor manda a impresso
para uma entidade lgica que representa uma impressora e cabe ao sistema operacional encaminhar
para a impressora fsica os dados a serem impressos.
Dessa forma, o sistema operacional deve definir interfaces abstratas para os
recursos do hardware, visando a atender os objetivos como:
Prover interfaces de acesso aos dispositivos mais simples de usar que as interfaces
de baixo nvel, para simplificar a construo de programas aplicativos.
Tornar os aplicativos independentes do hardware. Ao definir interface
abstrata de acesso ao dispositivo de hardware desejado, o sistema
operacional desvincula os aplicativos do hardware e permite que ambos
evoluam de forma autnoma.

14

FUNDAMENTOS DE SISTEMAS OPERACIONAIS


Definir interfaces de acesso homogneas para dispositivos com tecnologias
distintas. Por meio de suas abstraes, o sistema operacional permite aos
aplicativos usar a mesma interface para dispositivos diversos.2

No exemplo demonstrado na Figura 3, os aplicativos podem produzir uma impresso sem precisar se
preocupar com o modelo e a compatibilidade com a impressora.
1.2.1 Gerncia
Os programas, por meio do sistema operacional, usam o hardware para
atingir seus objetivos: gravar, apagar, acessar e armazenar dados, imprimir
documentos, navegar na internet, tocar msica etc.
Quando dois ou mais aplicativos precisam concorrentemente e
simultaneamente acessar recursos de hardware, ento podem surgir
conflitos. Cabe ao sistema operacional baseado nas polticas de sua estrutura
gerenciar o uso dos recursos de hardware e administrar disputas e conflitos.
Seguem duas situaes ilustrativas onde a gerncia de recursos do hardware
impretervel:
O uso dos processadores deve ser distribudo entre os aplicativos ativos no
sistema, de forma que cada um deles possa executar no tempo, sequncia
e velocidade adequada para cumprir suas funes sem prejudicar os
outros. O mesmo ocorre com a memria RAM, que deve ser distribuda
de forma justa entre as aplicaes.
A impressora um dispositivo cujo acesso deve ser efetuado de forma
exclusiva, apenas um aplicativo por vez. Para resolver essa questo,
o sistema operacional armazena temporariamente todas as sadas
destinadas impressora, criando fila de trabalhos a imprimir (print jobs),
normalmente atendidos de forma sequencial (FIFO, First In First Out
Primeiro a entrar o primeiro a sair).3
Imagine o que aconteceria se dois ou mais programas tentassem imprimir
suas sadas simultaneamente na mesma impressora. As primeiras linhas
poderiam ser do primeiro programa, as linhas seguintes seriam do segundo
programa e assim por diante.4

Disponvel em: <http://pt.scribd.com/doc/13290978/socap01>. Acesso em: 8 jun. 2011.


Disponvel em: <http://www.etejga.com.br/download/informatica/mod1/gso/SISTEMAS%20OPERACIONAIS.pdf>.
Acesso em: 8 jun. 2011.
4
Disponvel em: <http://www.scribd.com/doc/37558291/AndrewSTanenbaumSistemasOperacionais2aEdicao>.
Acesso em: 8 jun. 2011.
2
3

15

Unidade I
2 HISTRIA DOS SISTEMAS OPERACIONAIS

Clientes de tecnologia da informao impulsionam pesquisas, desenvolvimento e proliferao de


novos equipamentos e programas. At bem pouco tempo atrs, era impossvel imaginarmos que teramos
integrado num telefone a diversidade de recursos disponveis, tanto no mbito da mobilidade, quanto
pela possibilidade de customizaes exclusivas. Fatos como estes apresentados movem o conjunto de
engrenagens e a evoluo dos sistemas operacionais fundamental para atender a toda demanda do
mercado.
O guia referencial apresentado em quatro perodos representa a cronologia do desenvolvimento dos
sistemas operacionais em relao a geraes de computadores de forma sucinta e genrica, entretanto
chama a ateno para a existncia de uma estrutura.

Saiba mais
Linha do tempo a histria do computador completa pode ser
encontrada em: Computer History Museum, <http://www.computerhistory.
org>, acesse Exhibits Timeline of Computer History.
O ingls Charles Babbage projetou o primeiro computador de uso geral. Esta mquina exclusivamente
mecnica era conhecida como a mquina analtica. Em seu projeto, Charles vislumbrava partes como
rodas, engrenagens e correias de alta preciso que no eram compatveis com a tecnologia disponvel
em sua poca, portanto a mquina nunca foi construda.

Figura 4 Charles Babbage (17911871)

16

FUNDAMENTOS DE SISTEMAS OPERACIONAIS


2.1 Primeira gerao de computadores (19451955) Vlvulas

Na Universidade do Estado de Iowa, no perodo de 1937 a 1942, o professor John Atanasoff


(19031995) e seu ento aluno Clifford Edward Berry (19181963) criaram o primeiro computador
digital eletrnico da histria. Eles so considerados os pais dos computadores modernos.
Na Figura 5, apresentado o AtanasoffBerry Computer que uma rplica do primeiro computador
digital da histria.

Figura 5 Computador AtanasoffBerry

Em 1941, Konrad Zuse (19101995), em Berlim, construiu o computador Z3, demonstrado na Figura
6, primeiro computador eletromecnico, construdo de rels.

Figura 6 Computador Z3

A mquina Colossus era um computador eletrnico usado por ingleses para ajudar a decifrar
mensagens alems durante a Segunda Guerra Mundial. Este era o primeiro computador programvel no
mundo. Eram usadas vlvulas trmicas para executar os clculos.
17

Unidade I
O Colossus, demonstrado na Figura 7, foi projetado pelo engenheiro Tommy Flowers (19051998)
com suporte de Harry Fensom, Allen Coombs, Sid Broadhurst e Bill Chandler.

Figura 7 Computador Colossus

Howard H. Aiken (19001973) foi o engenheiro principal no desenvolvimento do ASCC


( Automatic Sequence Controlled Calculator ), demonstrado na Figura 8, computador
eletromecnico chamado de Mark I, montado pela IBM e enviado para Harvard em fevereiro
de 1944.

Figura 8 Computador Mark I

John William Mauchly (19071980) e seu aluno John Presper Eckert (19191995), em parceria com
o governo dos Estados Unidos, construram, na Universidade da Pensilvnia, o primeiro computador
eletrnico, conhecido como ENIAC (Electronic Numerical Integrator And Computer) demonstrado na
Figura 9.

18

FUNDAMENTOS DE SISTEMAS OPERACIONAIS

Figura 9 Computador ENIAC

Todos os computadores demonstrados at o momento eram muito primitivos e levavam segundos


para executar at o clculo mais simples.
Na poca em que essas mquinas estavam em plena produo,
um mesmo grupo de profissionais projetava, construa, programava, operava
e realizava a manuteno de cada equipamento.5

Tipicamente, a programao das mquinas era feita ligando conectores em painis para controlar as
funes bsicas do equipamento. Nesta gerao de equipamentos, no existia linguagem de programao
nem sistema operacional.
A operao era realizada de acordo com os seguintes passos:
O programador reservava antecipadamente o tempo de mquina.
O programador encaminhavase at a sala da mquina, inseria um painel
de programao no computador.
Aguardava horas monitorando e torcendo para que nenhuma das
milhares de vlvulas queimasse durante a execuo.6

No incio da dcada de 1950, as mquinas perfuradoras de cartes permitiram escrever


programas em cartes e llos em lugar de painis de programao, permitindo assim um avano
no processo.

5
6

Disponvel em: <http://wikimmed.blogs.ca.ua.pt/index.php/3._Estado_da_arte>. Acesso em: 8 jun. 2011.


Idem.

19

Unidade I
2.2 Segunda gerao de computadores (19551965) Transistores e
sistemas em lote (batch)

Em meados dos anos de 1950, foram introduzidos os transistores no mercado computacional,


permitindo assim uma verdadeira revoluo, elevando a confiabilidade em nvel desejado para que
pudessem ser fabricados e comercializados. Anteriormente aos transistores, alm do tamanho colossal
dos equipamentos, ainda existia o agravante das vlvulas apresentarem muitos problemas que acabavam
comprometendo o resultado dos clculos executados pelos computadores primitivos.
Neste perodo, tambm houve a criao da organizao estruturada por funes, em que havia
separao entre projetistas, fabricantes, programadores e tcnicos de manuteno. As mquinas desta
poca ainda permaneciam com tamanhos elevados se comparadas s maquinas dos dias atuais.
Esses computadores denominados computadores de grande porte (mainframes) eram instalados
em salas especialmente planejadas e operados por equipes de profissionais altamente capacitados para
a poca. Devido ao elevado valor destes computadores, somente grandes entidades podiam tlas. Para
que um programa ou conjunto de programas fossem executados, o programador primeiro escrevia o
programa num papel e, depois, perfuravao em cartes. O programador, ento, levava a pilha de cartes
para a sala de entradas, entregavaa a um dos operadores que, em seguida, alimentava a mquina
leitora para que fosse obtida a sada impressa.
Conforme demonstrado na Figura 10, objetivando a reduo do tempo desperdiado durante o
processo de leitura dos cartes, neste perodo foi adotado o sistema em lote (batch), que consiste em
usar um computador de menor porte, como o IBM 1401 (Figura 11) que era excelente para ler cartes,
copiar fitas e imprimir sadas, mas no to eficiente em clculos numricos que eram executados pelos
IBM 7094 (Figura 12).
Aps acumular uma elevada quantidade de cartes e transportar as informaes para as fitas
magnticas, elas eram encaminhadas para a sala das mquinas, onde eram montadas nas unidades
de fita. O operador carregava um programa especial (precursor do sistema operacional atual), que lia
as tarefas contidas nas fitas e as executavam de forma sequencial. Neste modelo, ao invs de enviar o
resultado para sada impressa, ele era, ento, gravado em uma segunda fita. Posteriormente a todos os
lotes serem executados, o operador retirava as fitas de entrada e de sada, trocava a fita de entrada com
a do prximo lote e levava a fita de sada para o computador 1401 que ento a imprimia offline.
Leitor de
carto

Unidade
de fita

Fita de
entrada

Sistema
de fitas

Impressora

Figura 10 Sistema em lote antigo

20

Fita de
sada

FUNDAMENTOS DE SISTEMAS OPERACIONAIS

Figura 11 IBM 1401

Figura 12 IBM 7094

2.3 Terceira gerao de computadores (19651980) CIs e


multiprogramao

Em 1964, a IBM lanou a linha de equipamentos da srie IBM 360 que foi a primeira linha de
computadores a usar circuitos integrados (CIs) em pequena escala, proporcionando melhor
custobenefcio em comparao gerao de mquinas construdas com transistores.
Para atender linha de equipamentos da terceira gerao, o sistema operacional OS/360 foi lanado,
introduzindo vrias tcnicas fundamentais que at ento eram ausentes. Possivelmente, a tcnica de
suporte multiprogramao foi a mais significativa, ou seja, enquanto a mquina 7094 com sistema
operacional FMS (Fortran Monitor System) ou IBSys estava lendo dispositivos de E/S com as fitas
magnticas, ela no processava mais nada, deixando assim a CPU ociosa. Nos equipamentos da linha
360 rodando o OS/360, esta deficincia foi resolvida repartindo a memria em partes e alocandoas para
tarefas. Enquanto uma tarefa estivesse esperando por uma operao de E/S (entrada e sada) terminar a
outra tarefa, poderia usar a CPU.
Outro fato importante que aconteceu durante a terceira gerao de computadores foi o crescimento
dos minicomputadores. Esse crescimento iniciou-se com o DEC PDP1 (Programmed Data Processor1),
em 1961, que, para certos tipos de aplicaes no numricas, era to rpido quanto os 7094, porm
custava 5% do valor de uma mquina 7079, criando, assim, uma demanda extraordinria para mquinas
PDP, conforme Figura 13.
21

Unidade I

Figura 13 PDP1

2.4 Quarta gerao de computadores (1980atualmente) Computadores


pessoais

O incio da quarta gerao teve como marco o desenvolvimento dos circuitos integrados contendo
milhares de transistores em alguns centmetros quadrados de silcio, dando origem era dos computadores
pessoais.
Em 1974, o chip de computador 8080 da Intel lanado no mercado, sendo a primeira CPU (Central
Processing Unit Unidade Central de Processamento) de 8 bits de uso geral. A Intel pede para Gary Kildall,
um de seus consultores, para desenvolver um sistema operacional para o 8080 que recebeu o nome de CP/M
(Control Program for Microcomputers Programa de Controle para Microcomputadores). Posteriormente, Gary
Kildall adquiriu os direitos sobre o CP/M, que foi cedido pela Intel, ento Kildall fundou a Digital Research.
A Digital Research reescreveu o CP/M adequandoo execuo em muitos microcomputadores que
utilizavam o chip da Intel 8080, Z80 fabricado pela Zilog e outros microprocessadores. Por cerca de
cinco anos com o seu novo sistema operacional CP/M e tambm motivado pela crescente quantidade de
programas aplicativos que foram escritos para este sistema, a Digital Research dominou o mercado.
O IBM PC foi lanado pela IBM no incio dos anos 1980 e, aps dificuldades em negociar com a
Digital Research o desenvolvimento de um sistema operacional para seu equipamento, a IBM procurou
Bill Gates para desenvolver um sistema operacional compatvel com sua plataforma.
Bill Gates comprou (supostamente por 75 mil dlares), de uma fabricante local de computadores, a
Seattle Computer Products, o sistema operacional DOS (Disk Operating System sistema operacional de
disco). Aps contratar Tim Paterson, o criador do DOS, como funcionrio da sua empresa e ajustar parte
do cdigo, ento Bill Gates vendeu para a IBM o Sistema Operacional chamado MSDOS (Microsoft Disk
Operating System Sistema Operacional de Disco da Microsoft).
Em 1983, foi lanado o PC/AT que utilizava o processador Intel 80286, mais tarde o 80386 e,
subsequentemente, o 80486. Mesmo sendo um sistema primitivo nesta altura, o MSDOS j inclua
22

FUNDAMENTOS DE SISTEMAS OPERACIONAIS


aspectos mais avanados, muitos deles derivados do XENIX que era uma verso do UNIX vendida pela
Microsoft.
Nos anos 1960, Doug Engelbart inventou uma interface grfica completa com foco no usurio
final, com janelas, cones, menus e uso de mouse, esta interface conhecida como GUI (Graphical User
Interface) e que fora prontamente adotada pela Xerox Parc em suas mquinas.
Posteriormente, Steve Jobs, da Apple, visitando a Xerox Parc viu a interface grfica GUI e
instantaneamente percebeu seu enorme potencial. Aps o fracasso comercial com o projeto Lisa, a
empresa de Jobs desenvolveu e lanou o Apple Macintosh que foi um sucesso logo de incio por ter
preo competitivo e ser mais amigvel mesmo para usurios que no tinham nenhum conhecimento
nem desejavam conhecer comandos de computadores.
A Microsoft, impulsionada pelo sucesso que o ambiente grfico dos Macintosh fazia no mercado,
desenvolveu o Windows que o sucessor do MSDOS. Porm, as verses iniciais do Windows eram
completamente montadas sobre o MSDOS. Somente na verso Windows 95 o sistema passou a usar
o MSDOS apenas para ser carregado e executar programas (legados do MSDOS). Posteriormente,
a Microsoft lanou o Windows 98, porm ainda havia grande quantidade de cdigos em linguagem
assembly de 16 bits da Intel.
David Cutle que foi um dos projetistas do sistema operacional VAX VMS liderou o projeto do Windows
NT (Windows New Technology). O Windows NT foi totalmente reescrito em plataforma de 32 bits.
Inicialmente, a Microsoft esperava que o Windows NT substitusse por completo o parque do MSDOS,
porm isso s foi possvel na verso NT 4.0, quando o sistema realmente foi aderido principalmente em
redes corporativas. No incio de 1999, a verso 5 do Windows NT foi renomeada para Windows 2000 na
tentativa de substituir o Windows 98 e o NT 4.0.
Sem xito, a Microsoft lanou o Windows Millennium Edition que era uma verso aprimorada do
Windows 98. Em 2001, foi lanado o Windows XP que era uma verso sutilmente atualizada do Windows
2000. O Windows XP teve melhor aceitao, substituindo basicamente todas as verses anteriores
do Windows. Em 2007, o Windows Vista lanado com a incumbncia de suceder o Windows XP e,
posteriormente, em 2009, a Microsoft lanou o Windows 7. Apresentaes feitas pela Microsoft no
comeo de 2008 mostraram um Shell novo, com uma barra de tarefas diferente, um sistema de network
chamado de HomeGroup e aumento na performance.
O sistema operacional Unix (e seus derivados) o grande competidor no mundo computacional.
Apesar do seu melhor potencial ser aplicado a servidores empresariais, este sistema operacional vem
conquistando parte do mercado de estaes de trabalho. Para computadores com processadores CISC
(Complex Instruction Set Computer) como Intel ou AMD, existe uma ampla variedade de derivados do
Unix que so genericamente conhecidos como Linux.
Os computadores Macintosh, alm de possurem o seu sistema operacional chamado MAC OS,
tambm podem contar com uma verso modificada do FreeBSD que tambm um derivado do Unix.
23

Unidade I
Para mquinas de alto desempenho vendidas pela Hewlett-Packard, IBM e Sun Microsystems e
equipadas com processadores RISC (Reduced Instruction Set Computer), padro o uso do sistema
operacional Unix (HP-UX, SUN Solaris, IBM AIX).

Saiba mais
<ftp://ftp.dca.fee.unicamp.br/pub/docs/ea876/so-caps12.pdf>
Resumo
Ao longo da histria da computao, mquinas totalmente mecnicas
foram, aos poucos, sendo substitudas por equipamentos que mesmo os
mais otimistas dos cientistas, da poca dos primeiros computadores do
mundo, jamais poderiam acreditar ou afirmar que seria possvel. Para a
computao atual ter se tornado realidade, muitas quebras de paradigmas
e diversas transformaes no hardware, bem como no software, foram
necessrias. A pluralidade dos equipamentos foi durante muitos anos um
grande benefcio para o modelo que temos atualmente, que ainda no o
definitivo, to pouco o mais eficiente.
O fato dos sistemas operacionais terem sido elaborados como estruturas
abstratas, ou seja, permitindo que os desenvolvedores de equipamentos
pudessem obter resultados expressivos indo ao nvel dos bits, enquanto os
desenvolvedores de sistemas e usurios enxergassem pelo prisma de um nvel
elevado e figurativo, possibilitou que reas de especializao surgissem ao
invs do modelo antigo que compreendia um mesmo especialista ou grupo
de especialistas que atuavam praticamente desde o desenvolvimento do
equipamento at a operao e a manuteno.
Exerccios
Questo 1. Ao ligar o computador, um usurio comum tem a impresso que o primeiro software
(programa) executado o sistema operacional. Isso no verdade. O hardware (parte fsica do
computador, formado por componentes eletrnicos, circuitos integrados e placas, que se
comunicam por meio de barramentos) sofre uma checagem geral pelo BIOS (Sistema Bsico de
Entrada/Sada), este sim o primeiro software executado. Se no houver nenhum problema com
os diversos dispositivos, o processo de inicializao do computador poder continuar e o segundo
software, denominado bootstrap, ser executado. A funo do bootstrap, alm de atualizar alguns
registradores, permitir ao usurio a seleo do sistema operacional que dever ser executado/
carregado pelo computador. Nos computadores com um nico sistema operacional, o bootstrap e
24

FUNDAMENTOS DE SISTEMAS OPERACIONAIS


o BIOS passam despercebidos. Porm, no caso da Ana, que instalou no seu computador os sistemas
operacionais Windows XP, Windows 7, Linux e Solaris, aps a checagem do hardware pelo BIOS, o
GRUB (bootstrap do Linux) apresenta uma interface com uma lista com todos os sistemas operacionais
disponveis. Aps a seleo pelo usurio, o sistema operacional ser executado/carregado. Apesar de
ser somente o terceiro software a ser executado/carregado no computador, o sistema operacional
tem sua importncia. Qual a funo do sistema operacional?
A) Gerenciar todos os recursos do sistema computacional e esconder do usurio a complexidade do
hardware, funcionando como um intermedirio entre o usurio e o computador, oferecendo um
conjunto mais conveniente de instrues.
B) Gerenciar todos os recursos fsicos do sistema computacional permitindo que o kernel cuide
apenas dos recursos lgicos.
C) Gerenciar todos os recursos lgicos do sistema computacional permitindo que o kernel cuide
apenas dos recursos fsicos.
D) Gerenciar todos os programas de usurio do Shell.
E) Permitir que os usurios avanados tenham acesso direto ao hardware do computador, realizando
todas as atividades relacionadas ao seu gerenciamento fsico.
Resposta correta: alternativa A.
Anlise das alternativas
A) Alternativa correta.
Justificativa: a funo bsica dos sistemas operacionais esconder dos usurios a complexidade do
hardware.
B) Alternativa incorreta.
Justificativa: o sistema operacional responsvel pela gerncia da parte fsica do sistema
computacional, mas o kernel formado pelo conjunto de programas de sistema responsvel pelo
gerenciamento tanto da parte fsica como da parte lgica do sistema computacional. O kernel o
sistema operacional propriamente dito.
C) Alternativa incorreta.
Justificativa: o sistema operacional responsvel pela gerncia da parte fsica do sistema
computacional, mas o kernel formado pelo conjunto de programas de sistema responsvel pelo
gerenciamento tanto da parte fsica como da parte lgica do sistema computacional. O kernel o
sistema operacional propriamente dito.
25

Unidade I
D) Alternativa incorreta.
Justificativa: o Shell a interface que permite que o usurio interaja com o sistema operacional.
E) Alternativa incorreta.
Justificativa: mesmo para os usurios mais avanados seria impossvel gerenciar o sistema
computacional sem o sistema operacional.
Questo 2. (ENADE 2005) Apesar de todo o desenvolvimento, a construo de computadores e
processadores continua, basicamente, seguindo a arquitetura clssica de Von Neumann. As excees a
essa regra encontramse em computadores de propsitos especficos e nos desenvolvidos em centros de
pesquisa. Assinale a opo em que esto corretamente apresentadas caractersticas da operao bsica
de um processador clssico.
A) Instrues e dados esto em uma memria fsica nica; um programa constitudo de uma
sequncia de instrues de mquina; uma instruo lida da memria de acordo com a ordem
dessa sequncia e, quando executada, passase, ento, para a prxima instruo na sequncia.
B) Instrues e dados esto em memrias fsicas distintas; um programa constitudo de um
conjunto de instrues de mquina; uma instruo lida da memria quando o seu operando de
destino necessita ser recalculado; essa instruo executada e o resultado escrito no operando
de destino, passandose, ento, para o prximo operando a ser recalculado.
C) Instrues e dados esto em uma memria fsica nica; um programa constitudo de um
conjunto de instrues de mquina; uma instruo lida da memria quando todos os seus
operandosfonte estiverem prontos e disponveis; essa instruo executada e o resultado
escrito no operando de destino, passandose, ento, para a instruo seguinte que tiver todos os
seus operandos disponveis.
D) Instrues e dados esto em memrias fsicas distintas; um programa constitudo de um
conjunto de instrues de mquina; uma instruo lida da memria quando todos os seus
operandosfonte estiverem prontos e disponveis; essa instruo executada e o resultado
escrito no operando de destino, passandose, ento, para a instruo seguinte que estiver com
todos os seus operandos disponveis.
E) Instrues e dados esto em memrias fsicas distintas; um programa constitudo de uma
sequncia de instrues de mquina; uma instruo lida da memria de acordo com a ordem
dessa sequncia e, quando executada, passase, ento, para a prxima instruo na sequncia.
Resoluo desta questo na Plataforma.

26

FUNDAMENTOS DE SISTEMAS OPERACIONAIS

Unidade II
3 TIPOS DE SISTEMAS OPERACIONAIS
Podemos classificar os sistemas operacionais com base referencial em diversos
parmetros e perspectivas, velocidade, suporte a recursos especficos, acesso
rede etc.1
A seguir, so apresentados alguns tipos de sistemas operacionais tpicos
(muitos sistemas operacionais esto enquadrados em mais de uma das
categorias apresentadas).2
3.1 Batch (de lote)
Os sistemas operacionais mais antigos, principalmente os desenvolvidos
para a segunda gerao de computadores, trabalhavam por lote, ou seja,
todos os programas a serem executados eram colocados numa fila.3
O processador recebia um programa aps o outro, para ser processado em
sequncia, o que permitia um alto grau de utilizao do sistema. Atualmente,
o termo em lote usado para designar um conjunto de comandos que
deve ser executado em sequncia.4

OS/360 e VMS so alguns exemplos de sistemas operacionais de lote.


3.2 De rede
Os sistemas operacionais de rede devem suportar operaes em rede, ou seja,
a capacidade de oferecer s aplicaes locais recursos que estejam localizados
em outros computadores da rede LAN (Local Area Network) ou WAN (Wide
Area Network), como servios de autenticao remota, acesso a arquivos,
acesso a banco de dados, impressoras etc. Deve tambm disponibilizar seus
recursos locais aos demais computadores, de forma controlada.5

A maioria dos sistemas operacionais atuais est alinhada com esta classificao.
Disponvel em: <http://www.computronixbras.com/cursos/SOP/Windows2000/ApostilaSOSite.pdf>. Acesso em: 8
jun. 2011.
2
Disponvel em: <http://www.scribd.com/doc/13290978/socap01>. Acesso em: 8 jun. 2011.
3
Disponvel em: <http://www.ebah.com.br/sistemasoperacionaispdfa52910.html>. Acesso em: 8 jun. 2011.
4
Disponvel em: <http://www.scribd.com/doc/13290978/socap01>. Acesso em: 8 jun. 2011.
5
Disponvel em: <http://www.scribd.com/doc/13290978/socap01>. Acesso em: 8 jun. 2011.
1

27

Unidade II
3.3 Distribudo
No sistema operacional distribudo, os recursos utilizados por cada usurio
em cada mquina esto disponveis de forma transparente aos usurios. Ao
acessar uma aplicao, o usurio interage com sua interface, entretanto
no sabe onde est executando ou armazenando seus arquivos, sendo esta
deciso de total responsabilidade do sistema e totalmente transparente para
o usurio do sistema.6
3.4 Multiusurio e multitarefas

Para entendermos um sistema operacional, muito importante definir o que processo ou tarefa.
Chamamos de processo um programa que est em execuo. E onde est a importncia em saber essa
definio? Um programa em execuo requer recursos, principalmente da CPU, e concorre com outros
processos para ser realizado. Portanto, cabe ao sistema operacional, quando multiusurio e multitarefas,
gerenciar os recursos disponveis a todos os processos.
Um sistema operacional multiusurio deve suportar a autenticao
e a autorizao de cada usurio quando necessrio o uso de algum
recurso contido no sistema (arquivos, processos, conexes de rede) e
garantir regras para o controle de acesso, objetivando impedir o uso
desses recursos por usurios no autorizados. Essa funcionalidade
fundamental para a segurana dos sistemas operacionais de rede
e distribudos. Grande parte dos sistemas operacionais atuais
multiusurio.7
3.5 Desktop/Computador pessoal

Um sistema operacional Desktop projetado para atender ao usurio domstico e/ou corporativo
que necessite realizar atividades triviais, como editar textos, elaborar planilhas e grficos, navegar na
internet etc. Suas principais caractersticas so a interface grfica, o suporte interatividade e a operao
em rede. Exemplos de sistemas Desktop so o Windows XP, Mac OS X e Linux.
3.6 Servidor
O sistema operacional classificado como servidor possibilita a gesto
eficiente de grandes quantidades de recursos fsicos como: disco, memria
e processadores, gerindo as prioridades e limites sobre o uso dos recursos.
Tipicamente, um sistema operacional servidor tambm tem suporte a rede
e multiusurios.8
Disponvel em: <http://www.scribd.com/doc/13290978/socap01>. Acesso em: 8 jun. 2011.
Disponvel em: <http://www.scribd.com/doc/13290978/socap01>. Acesso em: 8 jun. 2011.
8
Disponvel em: <http://www.fatecsbc.edu.br/Dowload/sistemasoperacionais/socap01.pdf>. Acesso em: 8 jun. 2011.
6
7

28

FUNDAMENTOS DE SISTEMAS OPERACIONAIS


Alguns exemplos de sistemas servidores so: HPUX, Solaris, AIX, FreeBSD, Linux e Windows Server
2008.
3.7 Embarcados
Um sistema operacional embarcado ou embutido (embedded) construdo
para operar sobre um hardware com poucos recursos de processamento e
armazenamento.9

Exemplos tpicos so aparelhos de TV, reprodutores de MP3, aparelhos de DVD etc. Um ponto
positivo destes equipamentos que dependem deste tipo de sistema que dificilmente ser possvel
instalar algum software que no seja extremamente compatvel, no permitindo o uso de software no
confivel. Exemplos de sistema embarcado: QNX e VxWorks.
3.8 Tempo real

Esse sistema operacional caracterizado por ter o tempo como parmetro principal. Outras duas
subdivises so: sistemas de tempo real crticos, voltados tipicamente ao controle de processos
industriais e militares e os sistemas de tempo real no crticos, como os aplicados em sistemas
de udio digital ou multimdia. A grande diferena entre estas duas subcategorias que, no caso de
sistemas que dependem do tempo real crtico, eles no podem ter degradao de desempenho (como
o caso dos sistemas que controlam a linha de produo de veculos), j o no crtico, apesar de no
desejado, se houver um pequeno atraso, no ir gerar tantos danos.
3.9 De computadores de grande porte

Sistema de grande porte tipicamente utilizado por grandes corporaes e, como caractersticas
predominantes desses sistemas podemse considerar a elevada capacidade de E/S, sistema em lote
(batch), processamento de transaes e tempo compartilhado. Exemplos de sistema de grande porte
so: OS/390 e S/400.
3.10 Multiprocessadores

O sistema operacional desta categoria pode tratar mltiplas CPUs simultaneamente. Equipamento
com multiprocessadores ou multincleos tm como objetivo principal melhorar a capacidade
computacional dos equipamentos, trazendo melhor desempenho para o ambiente. Com o advento
dos processadores multincleo, at sistemas operacionais voltados para computadores pessoais
esto comeando a lidar com multiprocessadores. Alguns exemplos de sistemas operacionais
multiprocessados so: Windows, Linux, Solaris e AIX.

Disponvel em: <http://www.scribd.com/doc/13290978/socap01>. Acesso em: 8 jun. 2011.

29

Unidade II
3.11 Portteis

Voltados para computadores como os PDA (Personal Digital Assistant) e telefones celulares. Um ponto
de destaque para os sistemas portteis que os PDA e celulares no possuem disco rgido multigigabyte,
fazendo grande diferena. Os sistemas operacionais para portteis so: Symbian OS, Windows Mobile e
Palm OS.
4 VISO GERAL SOBRE HARDWARE DE COMPUTADORES

O hardware e o sistema operacional devem ser extremamente congruentes para que seja possvel
obter o melhor resultado desta combinao. H pelo menos dois pontos de vista para analisarmos
essa dupla: um seria a estratgia adotada pela Intel ao criar o processador 8080 e posteriormente
solicitar para Gary Kildall que criasse um software para rodar neste hardware; j a outra forma
seria a vontade de qualquer desenvolvedor imaginar que qualquer funcionalidade desejada seria
prontamente atendida pelo software, porm sabemos que isso no possvel e, para seu melhor
aproveitamento, faz-se necessria uma homogeneidade entre os desenvolvedores de hardware e
software.
Independente das ideologias, turma do hardware ou do software, temos que ter conceitualmente um
modelo pertinente arquitetura do hardware de um computador pessoal para que possamos entender
melhor os sistemas operacionais.
Conceitualmente, computadores simples podem ser abstrados para um modelo esquemtico
representado na Figura 14. Temos o barramento que seria a nossa estrada possibilitando a comunicao
entre os elementos, a memria e os dispositivos de E/S.

CPU

MMU

Controlador
de vdeo

Controlador Controlador
de USB
de teclado

Controlador
de disco
Barramento

Figura 14 Principais elementos de um computador pessoal simples

4.1 Processadores

A CPU traz das memrias instrues, decodifica, interpreta as instrues a serem executadas e as
executa; a partir da, busca as instrues subsequentes e processa o ciclo novamente at ter instrues
a serem executadas.
30

FUNDAMENTOS DE SISTEMAS OPERACIONAIS


Cada arquitetura de CPU tem um conjunto especfico de instrues que pode executar. Portanto,
uma CPU RISC no executa programas desenvolvidos para plataformas CISC, o oposto tambm
verdadeiro.
Todas as CPUs possuem registradores internos para armazenamento de variveis importantes e de
resultados temporrios. Em adio aos registradores de propsito geral, usados para conter variveis e
resultados temporrios, a maioria dos computadores possuem vrios registradores especiais disponveis
de forma aparente para os programadores. O primeiro a se destacar o contador de programa que
contm o endereo de memria da prxima instruo a ser buscada, ou seja, ele atualizado para
apontar a prxima instruo.
Outro registrador especial o ponteiro de pilha, que aponta para o topo da pilha da memria que
contm uma estrutura para cada rotina chamada, mas que ainda no se finalizou. Uma estrutura de
pilha da rotina contm os parmetros de entrada, as variveis locais e as variveis temporrias que no
so mantidas nos registradores.
Outro registrador especial a PSW (Program Status Word palavra de estado do programa). Esse
registrador contm os bits do cdigo de condies, os quais so alterados pelas instrues de comparao,
pelo nvel de prioridade da CPU, pelo modo de execuo e por vrios outros bits de controle. Programas
de usurios normalmente podem ler toda a PSW, mas em geral so capazes de alterar somente alguns
de seus campos. Normalmente, o PSW conter o ponteiro/endereo da prxima instruo para ser
executada.
Toda vez que o sistema operacional compartilha o tempo de CPU e, por algum motivo, ele
interrompe a execuo de um programa, inicia ou reinicia outro, ento o sistema operacional necessita
salvar todos os registradores para que possam ser restaurados quando o programa for executado
novamente.

CPUs modernas possuem recursos para executar mais de uma instruo em tempo concorrente,
o que chamamos de pipeline (Figura 15). Elas podem executar uma busca, executar decodificao e,
simultaneamente, a execuo de instruo.
Busca

Decodificao

Execuo

Figura 15 Pipeline

Alm do pipeline , temos o superescalar, esse tipo de processador possui mltiplas unidades
de execuo, conforme demonstrado na Figura 16. Portanto, duas ou mais instrues so
buscadas, decodificadas e armazenadas temporariamente em um buffer , at que possam ser
executadas.

31

Unidade II
Memria

Busca

Escrita

Decodificao

Execuo
1e2
CPU
Figura 16 Superescalar

4.1.1 Processadores multithread e multincleo


O presidente da Intel, Gordon E. Moore, fez uma prospeco que por muitos considerada uma
profecia, na qual o nmero de transistores dos chips teria um aumento de 100% a cada perodo de 18
meses. Como a prospeco se tornou um fato, essa teoria recebeu o nome de Lei de Moore. A Figura 17
demonstra graficamente essa lei.

Figura 17 Crescimento do nmero de transistores para processadores Intel (pontos) e


Lei de Moore (Linha de cima = 18 meses, linha de baixo = 24 meses)

32

FUNDAMENTOS DE SISTEMAS OPERACIONAIS


O Intel Pentium 4 e outros chips de processadores tm a propriedade chamada multithreading ou
hyperthreading. No ambiente da cincia da computao, a execuo de um thread a menor unidade de
processamento que pode ser atendida por um sistema operacional. A estrutura de threads e processos diferente
de um sistema operacional para outro, porm, na maior parte dos casos, um thread10 contido num processo.
Mltiplos threads podem existir num mesmo processo e compartilhar recursos como a memria, enquanto
diferentes processos no compartilham esses recursos. Em particular, o thread de um processo compartilha as
instrues e contextos. Analogicamente, mltiplo thread de um processo o mesmo que mltiplos alunos lendo
instrues em um mesmo livro, porm no necessariamente todos os alunos lendo a mesma pgina.
Se um dos processos precisa ler uma palavra a partir da memria demandando muitos ciclos
de relgio, uma CPU multithreading no oferece paralelismo, ento apenas um processo por vez
executado, mas o tempo de chaveamento reduzido para a ordem de um nanossegundo.
O grande problema que multithreading compreendido pelo sistema operacional como uma CPU,
portanto se um computador tiver, por exemplo, duas CPUs, cada uma com dois threads, o sistema
operacional entender e ter que gerenciar como se existissem 4 CPUs no sistema.
Outra opo a CPU com multincleo. Isso o mesmo que fisicamente vermos um nico chip, porm,
internamente, temos mltiplos chips como se fossem vrias CPUs. importante destacar que sistemas com
CPU multincleo requerem SO para multiprocessadores. A Figura 18 ilustra uma CPU com dois ncleos.

Figura 18 CPU Dual Core (dois ncleos)

Saiba mais
<http://www.training.com.br/lpmaia/multithread.pdf>
4.2 Memria

Na teoria, a memria deveria ser mais performtica do que a execuo de uma instruo processada por
uma CPU, pois, com isso, a CPU jamais teria que esperar pela resposta da memria; entretanto, na prtica,
10

Thread = em cadeia; programa que consiste em vrias sees menores independentes.

33

Unidade II
isso no uma verdade. Para tentar resolver este problema, a abordagem contempornea construir o
sistema de memria seguindo uma hierarquia de camadas conforme se demonstra na Figura 19.
Tempo de acesso

1 nanossegundo
2 nanossegundos

10 nanossegundos
10 milissegundos
100 segundos

Capacidade

Registradores

< 1KB

Cache
Memria principal
Disco magntico

4MB

512 2048 MB
200 1000 GB

Fita magntica

400 800 GB

Figura 19 Hierarquia de memria tpica (nmeros aproximados)

No topo da pirmide, temos os registradores que esto contidos nas CPUs. Esses so feitos do mesmo
material que as CPUs e so to rpidos quanto elas. Desta forma, o tempo do registrador para a memria
desprezvel e a capacidade de memria disponvel nos registradores de 32 x 32 bits para CPU de 32
bits e de 64 x 64 bits para CPU de 64 bits, sendo menos de 1 KB mesmo no caso das CPUs de 64 bits.
Seguindo, no segundo nvel, vem a memria cache11, que controlada principalmente pelo hardware conforme
demonstrado na Figura 20. Atualmente, vrios dispositivos como processadores, discos rgidos, placasme,
placas controladoras e outros possuem cache. A memria cache mais usada para armazenar informaes
frequentemente mais usadas, porm memria cache muito cara e no to abundante nos sistemas.

Figura 20 Cache na CPU Dual Core


11

34

Cache = pequena rea de memria rpida, integrada unidade central de processamento.

FUNDAMENTOS DE SISTEMAS OPERACIONAIS


No prximo nvel, possvel identificar a memria principal tambm conhecida como memria
RAM (Random Access memory memria de acesso aleatrio), demonstrada na Figura 21. Todas as
solicitaes vindas da CPU e que no esto na memria cache so encaminhadas para a memria
principal.

Figura 21 Tipos de memria RAM

35

Unidade II
ROM (Read Only Memory) e CMOS so outros tipos de memrias tambm presentes nos sistemas
computacionais. A memria ROM normalmente usada pelos fabricantes para gravar cdigos
controladores do hardware e so previamente programadas em fbrica, no sendo possvel sua alterao,
a no ser que se usem equipamentos especficos para esta finalidade. A memria CMOS (Figura 22)
tipicamente usada para manter data e hora atualizadas e parmetros de configurao do hardware
como sequncia de boot e outros mesmo que o computador seja desligado. A memria CMOS necessita
de uma bateria (Figura 23) para manter seu contedo.

Figura 22 ROM

Figura 23 Bateria da CMOS

4.3 Disco

Os discos magnticos esto na camada logo abaixo da memria principal, sendo conhecidos como
discos rgidos ou, em ingls, hard disks e tambm, de forma abreviada, como HD. O grande atrativo
dos discos magnticos em relao memria o preo bem menor se comparado R$/GB, entretanto o
contraponto a velocidade de acesso que muito mais lenta por ser um dispositivo mecnico, conforme
ilustrado na Figura 24.

Figura 24 Disco rgido aberto

36

FUNDAMENTOS DE SISTEMAS OPERACIONAIS


Na estrutura de um disco magntico, temos como uma das principais partes o grupo de discos
metlicos em que so gravadas as informaes. Tipicamente, esses discos rodam a velocidades de 5400
a 10000 rpm (rotaes por minuto) e tm uma mdia de transferncia de 0.5 Gbit/s. Em ambientes
projetados com servidores de rede e, principalmente, servidores de banco de dados transacional,
normalmente, so instalados discos com velocidade de 15000 rpm, podendose atingir a mdia de
transferncia acima de 1.6Gbit/s. Os discos de 10000 ou 15000 rpm usam discos menores para mitigar
grandes demandas de energia, entretanto isso acarreta que estes discos com maior capacidade de
rotao por minuto possuam menos capacidade que os discos magnticos de menos rpm.
As informaes so escritas no disco em uma srie de crculos que tm o mesmo centro. Cada cabea
pode ler e gravar uma regio circular chamada trilha. Juntas, as trilhas de uma posio do brao formam
um cilindro. Mover o brao entre cilindros prximos leva aproximadamente 1 ms e mover o brao de
um determinado cilindro para outro distante leva em torno de 5 a 10 ms. A seguir, a Figura ilustrativa
da unidade a fita de backup LTO 5 que a tecnologia mais atual durante a elaborao deste material.
4.4 Fitas

A fita magntica o ltimo tipo de memria na pirmide ilustrada na Figura 25. Esse meio muito
utilizado como mdia de cpia de segurana (backup), transportando uma cpia daquilo que est nos
discos magnticos para fitas magnticas. Com base nas normas de segurana ISO 27001, e at mesmo
do Banco Central Brasileiro, obrigatrio o uso de sistemas de backup para garantir que a informao
esteja disponvel em caso de o sistema principal apresentar problema. Grandes sistemas utilizam robs
que controlam a troca de fitas, bem como softwares especiais para backup como o Veritas Backup Exec,
Data Protector, ARCserve, Tivoli Storage Management e outros.

Figura 25 LTO 5 (Capacidade 1.5 TB 6 Gb/sec. SAS)

4.5 Dispositivos de E/S

Os dispositivos de E/S so geralmente os controladores e os dispositivos. O controlador formado por


um ou mais chips numa placa; estes controladores possuem a funo de receber os comandos do sistema
operacional e gerar as instrues mais adequadas para os dispositivos, fornecendo orientao exatamente
de como o disco rgido armazena e acessa os dados, por exemplo. Os dispositivos possuem interfaces
bastante padronizadas. Isso ajuda, porque a controladora IDE pode controlar qualquer disco IDE12.
12

IDE: Integrated Drive Electronics.

37

Unidade II
Entre o sistema operacional e o controlador, h outro software chamado driver de dispositivo.
funo do driver de dispositivo se comunicar com o controlador emitindo comando e recebendo
respostas. Os fabricantes de controladores devem fornecer drivers especficos para cada sistema
operacional a que do suporte.
Existem trs maneiras diferentes para entrada e sada (E/S): o mtodo mais simples quando o programa
de um usurio emite uma chamada de sistema, ento o ncleo do sistema operacional a traduz em uma
chamada ao driver relacionado, em seguida, o driver inicia a entrada e sada e fica em constante checagem
se o dispositivo terminou a operao; quando a operao finalizada, o driver coloca os dados onde
so necessrios; o sistema operacional, ento, remete o controle para quem originou a chamada. Neste
processo, a CPU fica ocupada durante a monitorao, se a operao de E/S terminou ou no.
No segundo mtodo, o driver inicia o dispositivo e instrui que ele o informe quando terminar; durante este
perodo de intervalo, o sistema operacional retoma o controle da CPU para executar outra tarefa. Assim que o
controlador recebe a sinalizao do final da transferncia, ele gerar uma interrupo para sinalizar o trmino.
O DMA (Direct Memory Access) o terceiro mtodo para a implementao de entrada e sada. Neste
cenrio, utilizado um chip especial de acesso direto memria, controlando o fluxo de bits entre a
memria e algum controlador sem interveno constante da CPU. Nesse processo, a CPU configura o
chip DMA informando a quantidade de bytes que devem ser transferidos, os endereos do dispositivo e
de memria empregados, e a direo. Ento, a execuo fica a cargo do DMA. Assim que o DMA finalizar
a tarefa, haver uma interrupo.

Saiba mais
<http://www.di.ufpb.br/raimundo/Hierarquia/Hierarquia>
4.6 Barramento

O termo barramento definido como elos de comunicao que consistem em um conjunto de vias.
Ao longo da evoluo da arquitetura computacional, os barramentos foram tomando forma mais
heterognea e estruturada para as necessidades modernas. Os processadores e memrias foram ficando
cada vez mais velozes, e o computador antigo, que inicialmente tinha somente um barramento, passou
a no mais dar conta. Podemos fazer uma analogia com uma estreita rua de bairro onde temos somente
casas e um trfego predominante de pessoas, porm, com o passar do tempo, prdios so construdos
e os moradores passam a se locomover usando carros. Em determinados horrios, o fluxo de carros
saindo do mesmo local e entrando no barramento, ou melhor, entrando na rua, ir gerar uma sobrecarga
impossvel de ser atendida por esta via; ento que surge a implantao de novas vias ou, pelo menos,
o alargamento deste elo de comunicao.

38

FUNDAMENTOS DE SISTEMAS OPERACIONAIS


Tipicamente, os sistemas modernos possuem oito barramentos, conforme a Figura 26, sendo:
barramento de cache, local, memria, PCI13, SCSI14, USB15, IDE16 e ISA17, cada um com diferentes funes
e taxas de transferncia.
Barramento
de memria
Memria
principal

Barramento
local
Ponte
PCI

Barramento
cache

Cache
L2

CPU

Barramento PCI

Barramento IDE

Ponte
ISA

SCSI

USB

Barramento SCSI

Barramento
USB

Barramento ISA

Figura 26 Estrutura de barramentos de um computador tpico

Para efeitos de compatibilidade com placas de E/S antigas, atualmente ainda podemos encontrar incluso nos
sistemas o barramento ISA. Esse barramento era predominante no IBM PC/AT que funciona em 8,33 MHz e pode
transferir 2 bytes por vez, com uma taxa mxima de 16,67 MB/s. Posteriormente ao ISA, a Intel desenvolveu o
barramento PCI objetivando a substituio do ISA. Na Figura 27, demonstrado o exemplo dos conectores do
PCI Express, e, na Figura 28, a diferena entre o PCI e o ISA. O barramento PCI alcana taxa de funcionamento em
66 MHz e transfere 8 bytes por vez, propiciando, assim, 528 MB/s (diferena de mais de 3000% entre o ISA para
o PCI). Os equipamentos mais modernos j contam com o barramento PCIe Gen2 x16.

Saiba mais
<http://www.pcisig.com/specifications/pciexpress/>.
PCI: Peripheral Component Interconnect Interconexo de Componentes Perifricos.
SCSI: Small Computer System Interface Interface de Pequenos Sistemas de Computadores.
15
USB: Universal Serial Bus Barramento Serial Universal.
16
IDE: Integrated Drive Electronics Unidade Eletrnica Integrada.
17
ISA: Industry Standard Architecture Arquitetura para Padro Industrial.
13
14

39

Unidade II

Figura 27 Tipos de conectores

PCI

ISA
Figura 28 Tipos de conectores

A CPU se comunica com o barramento PCI por meio do barramento local que, por sua vez, se comunica
com a memria por intermdio de um barramento dedicado. Usando, por exemplo, um sistema Pentium
com uma cache de nvel 1 dentro do chip e uma cache de nvel 2 muito maior que fica na parte externa
do chip e conectada CPU pelo barramento cache.
Este sistema contm tambm trs barramentos especficos: IDE, USB e SCSI. O barramento IDE, como
descrito anteriormente, pode ser usado para conectar discos fsicos e unidade de CDROM.
O padro USB foi desenvolvido por um consrcio de empresas, entre as quais se destacam: Microsoft,
Apple, HewlettPackard, NEC, Intel e Agere. O smbolo do USB representado na Figura 29.
40

FUNDAMENTOS DE SISTEMAS OPERACIONAIS

Figura 29 Smbolo do USB Tridente

A verso USB 1.0 suporta taxa de 1,5 Mbit/s a 12 Mbit/s (verso 1.1), a verso 2.0, velocidades na taxa
de 480 Mbit/s (60MB/s), e a verso 3.0, de 4,8 Gbit/s (600MB/s).
Uma das caractersticas fundamentais para o sucesso do USB, principalmente pela demanda de
agilidade de interoperabilidade, que esta tecnologia compartilha o mesmo driver entre os seus
dispositivos, tornando dispensvel instalar um novo driver para cada novo dispositivo USB. Isso traz como
beneficio maior o fato de podermos instalar dispositivos USB no computador sem precisar reinicilo,
ou seja, plug and play18.
Como barramento de alta performance, temos o SCSI, destinado para discos de alto desempenho e
demais dispositivos que demandam grande largura de banda.
O SCSI baseado na Shugart Associates System Interface (SASI). A SASI foi
desenvolvida em 1981 pela Shugart Associates em conjunto com a NCR
Corporation. Em 1986, o Instituto Americano de Padres Nacionais (ANSI
American National Standards Institute) aprovou o SCSI, uma verso
modificada da SASI. O SCSI usa uma controladora para enviar e receber
dados e energia de dispositivos SCSI, como HDs e impressoras.19

O SCSI tipicamente usado para controlar discos com estrutura ordenada contendo elementos
acessveis individualmente referenciados por nmeros, denominado RAID20.
Outras tecnologias, como o serialATA (SATA), tambm podem ser usadas para
este propsito. O RAID tambm aumenta a fault tolerance (tolerncia a falhas)
por meio de mirroring (espelhamento) e parity (paridade). O espelhamento
faz uma cpia exata dos dados de um disco rgido em um segundo disco
rgido. A paridade requer no mnimo trs discos, e os dados so gravados
sequencialmente para cada unidade, exceto o ltimo. A ltima unidade
armazena um nmero que representa a soma dos dados dos outros discos.21
Plug and play: termo ingls que significa que se pode conectar e jogar, ou seja, rpido e fcil, sem necessidade
de reiniciar o sistema para fazer o novo dispositivo ser reconhecido.
19
Disponvel em: <http://informatica.hsw.uol.com.br/scsi1.htm>. Acesso em: 8 jun. 2011.
20
RAID: Redundant Array of Independent Disks.
21
Disponvel em: <http://informatica.hsw.uol.com.br/scsi1.htm>. Acesso em: 8 jun. 2011.
18

41

Unidade II
Na Planilha 1, so demonstrados diversos tipos de SCSI. Os mais lentos no esto em uso, mas foram
includos nesta lista para efeito de comparao.
Nome

Especificao

Nmero de
dispositivos

Largura de
barramento

Velocidade de
barramento

MB/s

SCSI Assncrono

SCSI1

8 bits

5 MHz

4 MB/s

SCSI Sncrono

SCSI1

8 bits

5 MHz

5 MB/s

Wide

SCSI2

16

16 bits

5 MHz

10 MB/s

Fast

SCSI2

8 bits

10 MHz

10 MB/s

Fast/Wide

SCSI2

16

16 bits

10 MHz

20 MB/s

Ultra

SCSI3 SPI

8 bits

20 MHz

20 MB/s

Ultra/Wide

SCSI3 SP

16 bits

20 MHz

40 MB/s

Ultra2

SCSI3 SPI-2

8 bits

40 MHz

40 MB/s

Ultra2/Wide

SCSI3 SPI-2

16

16 bits

40 MHz

80 MB/s

Ultra3

SCSI3 SPI-3

16

16 bits

40 MHz

160 MB/s

Ultra320

SCSI3 SPI-4

16

16 bits

80 MHz

320 MB/s

Planilha 1 Tipos de SCSI

Objetivando aprimorar e possibilitar que o sistema operacional tivesse possibilidades reais de


gerenciar de forma consolidada os diversos dispositivos de E/S, e baseado no conceito similar previamente
implantado pela Apple no Macintosh, a tecnologia plug and play para computador pessoal foi projetada
pela Intel e Microsoft.
O plug and play facilitou a vida dos profissionais e usurios caseiros que se aventuravam a tentar
instalar placas no sistema. Naquela poca, que no deixa saudades, uma simples instalao de uma
nova placa de som, por exemplo, poderia fazer com que outro dispositivo parasse de funcionar de forma
quase que inexplicvel e isso ocorria por conflito de interrupo e endereos de registradores.
Naquela poca, era comum encontrar placas controladoras com componentes chamados jumpers,
conforme a Figura 26, que tinham a finalidade de possibilitar ao usurio configurar um nvel de
interrupo e endereo de dispositivos de E/S que no conflitassem com outros dispositivos j existentes
no sistema.

Figura 30 Placa controladora com jumpers para configurao de IRQ

42

FUNDAMENTOS DE SISTEMAS OPERACIONAIS

Saiba mais
<http://www.gta.ufrj.br/grad/01_1/barramento>

Resumo
No modelo abstrato de sistema operacional, temos que ter alguns
entendimentos a respeito de processadores, memrias e dispositivos de
entrada e sada que so conectadas por barramento.
Alm da estrutura de hardware em que est montado o sistema
operacional, os conceitos tpicos sobre os quais todos os sistemas
operacionais so construdos so:
Processos.
Gerenciamento de memria.
Gerenciamento de E/S.
Sistema de arquivos.
Segurana.
Os sistemas operacionais podem ser vistos por dois prismas:
Dispositivo gerenciador de recursos.
Mquina estendida.
Todos os sistemas operacionais possuem, na sua essncia, o conjunto
de chamadas de sistema com que eles podem lidar. Dentre elas,
destacamos:
Criao e finalizao de processos.
Leitura e escrita de arquivos.
Gerenciamento de diretrios.
Chamadas diversas.
43

Unidade II
Os sistemas operacionais so, geralmente, entre outros, estruturados
conforme as classificaes abaixo:
Sistema monoltico.
Hierarquia de camadas.
Microncleo.
Sistema de mquina virtual.
Exoncleo: tem como finalidade permitir que uma aplicao solicite
uma regio especfica da memria, simplesmente para assegurar que
os recursos pedidos esto disponveis e que o programa tem direito a
acesslos.
Modelo cliente servidor.
Exerccios
Questo 1. (ENADE 2008) Uma alternativa para o aumento de desempenho de sistemas computacionais
o uso de processadores com mltiplos ncleos, chamados multicores. Nesses sistemas, cada ncleo,
normalmente, tem as funcionalidades completas de um processador, j sendo comuns, atualmente,
configuraes com dois, quatro ou mais ncleos. Com relao ao uso de processadores multicores e
sabendo que threads so estruturas de execuo associadas a um processo, que compartilham suas
reas de cdigo e dados, mas mantm contextos independentes, analise as seguintes asseres.
I. Ao dividirem suas atividades em mltiplas threads, que podem ser executadas paralelamente,
aplicaes podem se beneficiar mais efetivamente dos diversos ncleos dos processadores
multicores.
II. O sistema operacional nos processadores multicores pode alocar os ncleos existentes para executar
simultaneamente diversas sequncias de cdigo, sobrepondo suas execues e, normalmente,
reduzindo o tempo de resposta das aplicaes s quais esto associadas.
Acerca dessas asseres, assinale a opo correta.
A) As duas asseres so proposies verdadeiras, e a segunda uma justificativa correta da
primeira.
B) As duas asseres so proposies verdadeiras, mas a segunda no uma justificativa correta da
primeira.
44

FUNDAMENTOS DE SISTEMAS OPERACIONAIS


C) A primeira assero uma proposio verdadeira e a segunda, uma proposio falsa.
D) A primeira assero uma proposio falsa e a segunda, uma proposio verdadeira.
E) Tanto a primeira quanto a segunda asseres so proposies falsas.
Resposta correta: alternativa C.
Anlise das alternativas
A) Alternativa incorreta.
Justificativa: ao afirmar que existe uma sobreposio de execues, o autor induz o leitor ao erro,
pois, apesar do processamento estar distribudo entre as CPUs, ainda existe um compartilhamento de
recursos, que devem manter um sincronismo a fim de se evitar Deadlocks, portanto, a alternativa possui
dois erros: afirmar que as duas asseres so verdadeiras e ainda afirmar que a segunda assero justifica
a primeira de forma correta.
B) Alternativa incorreta.
Justificativa: o erro encontrase na falsidade da segunda assero.
C) Alternativa correta.
Justificativa: justificvel pelo entendimento do funcionamento bsico de Threads.
D) Alternativa incorreta.
Justificativa: o erro est justamente em se questionar a veracidade da primeira assertiva.
E) Alternativa incorreta.
Justificativa: o erro est justamente em se questionar a veracidade da primeira assertiva.
Questo 2. (ENADE 2008) Com relao s diferentes tecnologias de armazenamento de dados,
julgue os itens a seguir.
I. Quando a tenso de alimentao de uma memria ROM desligada, os dados dessa memria so
apagados. Por isso, esse tipo de memria denominado voltil.
II. O tempo de acesso memria RAM maior que o tempo de acesso a um registrador da unidade
central de processamento (UCP).

45

Unidade II
III. O tempo de acesso memria cache da UCP menor que o tempo de acesso a um disco
magntico.
IV. O tempo de acesso memria cache da UCP maior que o tempo de acesso memria
RAM.
Esto certos apenas os itens:
A) I e II.
B) I e III.
C) II e III.
D) II e IV.
E) III e IV.
Resoluo desta questo na Plataforma.

46

FUNDAMENTOS DE SISTEMAS OPERACIONAIS

Unidade III
5 GERENCIAMENTO DE PROCESSOS
5.1 Introduo a processos

Os sistemas computacionais atuais so capazes de desenvolver uma grande variedade de tarefas


simultaneamente. Muitas vezes isso passa despercebido para ns e s nos lembramos desta extraordinria
capacidade quando ela falha, ou quando o sistema j est sobrecarregado e notamos a degradao de
desempenho em alguma das tarefas que lhe demos e da qual no estamos tendo o nvel de servio
esperado.
Se pegssemos um servidor de arquivos como exemplo e pudssemos ver o que est acontecendo
dentro do crebro dele no momento de pico de uso do sistema, notaramos que dezenas, em muitos
casos centenas, de usurios esto fazendo milhares de requisies simultaneamente, que o antivrus est
varrendo tudo que entra e sai, e, por outro lado, temos o software de gerenciamento de redes monitorando
e solicitando dados de desempenho do servidor e, por sua vez, os diversos discos trabalhando em RAID
necessitam processar as funcionalidades desta tecnologia. Certamente, necessrio que os processos
estejam em plena ao para orquestrar toda essa estrutura.
Em todos os sistemas com suposto conceito de paralelismo, temos a CPU trabalhando por algumas
dezenas ou centenas de milissegundos numa nica aplicao e subsequentemente na prxima at o ciclo
se completar. Esta sequncia continuar at termos todos os processos concludos, porm no podemos
esquecer que outros processos podem estar entrando na fila a todo o momento. Devido rapidez dos
ciclos, esse cenrio de suposto paralelismo ir gerar para a percepo humana a sensao de que o
ambiente est processando as requisies, atendendo s diversas aplicaes de forma simultnea.
Somente nos casos de sistemas com mltiplos processadores que teremos de fato mltiplos
programas sendo atendidos no mesmo instante. Controlar mltiplas atividades em paralelo algo que
vem sendo desenvolvido e aprimorado com base num modelo conceitual de processos sequenciais que
facilita o paralelismo que estudaremos neste captulo.
5.1.1 Processo
Veremos neste captulo que os softwares de computador so organizados em processos sequenciais.
Um processo um programa em execuo, acompanhado dos valores
correntes do contador de programa, dos registradores e variveis.1
1

Disponvel em: <http://www.ufpi.br/subsiteFiles/eml/arquivos/files/SO/SO_Livro.pdf>. Acesso em: 8 jun. 2011.

47

Unidade III
Conforme demonstrado na Figura 31, uma CPU pode executar um processo por vez. Na Figura 32,
temos a ilustrao de um sistema com dois cores, que equivale a termos duas CPUs, porm ainda temos
a mesma afirmativa todas as CPUs podem executar um processo por vez.

CPU
1 core

tempo
Processo A
Processo B

Figura 31 CPU 1 core e 2 processos

core 1

core 2

Tempo core 1

Processo A

Tempo core 2
Processo C

Processo B

Processo D

Figura 32 CPU 2 cores e 4 processos

Vale destacar que um processo e um programa possuem conceitos distintos, sendo que o processo
constitui uma atividade, possuindo programa, entrada, sada e um estado. Tambm devemos salientar
que processos podem conter mais de uma tarefa, conceituando ento que tarefa e processo so
distintos.
48

FUNDAMENTOS DE SISTEMAS OPERACIONAIS


No ncleo dos sistemas operacionais, temos o PCBs (Process Control Blocks) que armazena as
informaes referentes aos processos ativos no ambiente. Cada processo possui um identificador nico
no sistema, o PID Process IDentifier.
5.1.2 Criao de processos
Processos so criados e destrudos constantemente nos sistemas. Essas operaes disponibilizam
aplicaes por meio de chamadas de sistema que diferem entre sistemas operacionais.
Para os sistemas de propsitos gerais, necessrio algum mecanismo para criar e terminar processos
durante a operao quando for necessrio.
Teremos nos sistemas quatro eventos que fazem que processos sejam criados: no incio do sistema,
um processo em execuo procedendo a uma chamada de sistema de criao de um processo, requisio
do usurio para criar um novo processo e bacth job2 sendo iniciada.
Ao iniciar o sistema operacional, tipicamente vrios processos so criados. Entre esses
processos, temos os que esto em primeiro plano e interagindo com o usurio e outros que esto
em segundo plano, portanto no esto diretamente interagindo com o usurio. Para exemplificar
um processo em segundo plano, podemos pegar o caso de um servidor de FTP (File Transfer
Protocol) que fica inativo durante boa parte do tempo, sendo ativado somente quando um
cliente FTP solicita a abertura de uma nova conexo usamos o termo daemons para descrever
um processo que fica em segundo plano com finalidade de lidar com alguma atividade como a
descrita.
Processos que esto em execuo podem fazer chamadas de sistema (system calls) para criar
um ou mais novos processos. Criar novos processos indicado quando a tarefa a ser executada
puder ser facilmente dividida em vrios processos relacionados, interagindo, entretanto, de maneira
independente.
Os usurios podem iniciar um novo processo comeando um programa no ambiente GUI ou no
ambiente Shell.
No caso de sistemas em lote, tipicamente encontrados em computadores de grande porte,
o usurio, administrador ou at mesmo um alinhamento prvio, pode submeter tarefa em
lote para o sistema. O sistema operacional criar um novo processo e o executar quando
tiver recurso disponvel e/ou redefinindo prioridades e executando o processo no momento
determinado.
Se usarmos como exemplo o ambiente Unix, teremos a chamada de sistema fork para criar
um processo. Essa chamada cria uma rplica do processo solicitante conforme descrito na
Figura 33.
2

Bacth job = tarefa em lote.

49

Unidade III
Processo pai

Processo pai

Processo filho

Tarefas

Memria

Tarefas

Memria

Tarefas

Memria

arquivos
abertos

Conexes

arquivos
abertos

Conexes

arquivos
abertos

Conexes

return

Fork

ncleo
a.

return

ncleo
b.

Figura 33 A chamada de sistema fork: (33a. antes e 33b. depois).

Posteriormente, o processo filho executar subsequentemente execve ou uma chamada de sistema


similar para mudar sua imagem de memria e executar um novo programa.
No ambiente Windows, uma nica chamada denominada CreateProcess de funo do Win32 trata
o processo de criao e carga do programa correto no novo processo. O processo Win32 possui dezenas
funes para gerenciar e sincronizar processos e tpicos relacionados.
Tanto no Unix quanto no Windows quando um novo processo filho criado, o processo pai e filho
possuiro seus prprios espaos de endereamento de memria, permitindo assim que se o processo
pai ou filho alterar uma palavra em seu espao de endereamento, a mudana no impacte o outro
processo.
5.1.3 Trmino de processos
Aps o trmino, o processo finalizado com base nas quatro condies tpicas: normal, por erro, erro
fatal e cancelado por terceiros sendo as duas primeiras voluntrias e as duas ltimas involuntrias.
Processos terminados de forma involuntria no so comuns num sistema em perfeito funcionamento.
A seguir, verificaremos as quatro condies e notaremos por qual motivo essa afirmao um fato.
O primeiro caso, que a condio normal de se encerrar um processo, verificado pela chamada
exit no Unix ou ExitProcess no Windows. Nestes casos, o processo termina aps finalizar as tarefas
que estavam previstas, mesmo que seja um usurio finalizando um programa, fechando a janela no
ambiente GUI ou pela opo relativa no ambiente Shell.
Num ambiente Unix, a chamada de sistema exit serve para informar ao ncleo do sistema operacional
que o processo em questo no mais necessrio e pode ser eliminado, liberando todos os recursos a ele
50

FUNDAMENTOS DE SISTEMAS OPERACIONAIS


empregados. Processos podem solicitar ao ncleo o encerramento de outros processos, mas essa operao
s aplicvel a processos do mesmo usurio ou se o processo solicitante pertencer ao administrador do
sistema.
Os processos que interagem com outros no podem ser concludos quando algum parmetro errado
fornecido. Para exemplificar, vamos considerar o caso de um usurio tentando colocar o nome duplicado
entre dois arquivos no sistema, ento uma caixa de dilogo emerge e pergunta ao usurio se ele quer
tentar novamente; desta forma teremos por consequncia a segunda condio que a sada por erro.
Erro fatal um erro causado pelo processo e normalmente por um erro de programa. Como exemplo
podemos ter a execuo de uma instruo ilegal, a referncia memria inexistente ou a diviso por
zero; em todos estes casos, teremos como resultado um erro fatal.
O cancelamento por outro processo ocorre quando um processo x executa uma chamada de sistema
determinando que o sistema operacional cancele outro(s) processo(s) n. Tanto no Unix/Linux a chamada
o kill e no ambiente Windows a funo Win31 correspondente a TerminateProcess.
5.2 Comunicaes entre processos

A comunicao entre processos algo frequente nos sistemas atuais, havendo a necessidade de
obtermos uma comunicao estruturada e sem interrupes acontecendo entre eles.
Em linhas gerais, temos trs tpicos importantes na comunicao entre processos: como um processo
passa a informao para outro; como garantir que mltiplos processos no entrem em conflito; e o
terceiro pertinente, como haver uma sequncia adequada quando existirem dependncias.
5.2.1 Condio de corrida
Processos que trabalham juntos podem compartilhar algum armazenamento comum e serem
capazes de ler e escrever. O armazenamento compartilhado pode estar na memria principal ou em um
arquivo compartilhado.
Para entendermos o processo de condio de corrida, vamos considerar como exemplo um spool de
impresso.
Para imprimir um arquivo, um processo entra com o nome do arquivo numa posio da fila em
um diretrio de spool. Em paralelo e de forma constante, o deamon de impresso verifica na fila se h
algum arquivo para imprimir. Se houver algum arquivo para imprimir, ele ser impresso e, em seguida,
seu nome ser removido da fila.
Ainda pensando no cenrio para exemplificar nossa condio de corrida, imagine que h duas
variveis compartilhadas, sendo uma de sada com o nome out que apontar para o prximo arquivo
a ser impresso, e uma de entrada como o nome de in que apontar para a prxima posio livre no
diretrio de impresso.
51

Unidade III
Agora, imagine que temos dois processos X e Y que decidem quase que simultaneamente colocar,
cada um deles, um arquivo, sendo X = ArquivoX e Y = ArquivoY, na fila de impresso. Ento, o processo X
l a varivel in e nota que a posio 1 est disponvel, o processo X armazena a posio 1 na sua varivel
vaga_impressao_disponivel. Porm, neste instante, a CPU transaciona para o processo Y, entendendo
que X j ocupou o tempo necessrio durante este ciclo de processamento. No momento em que Y l a
varivel in, nota que a posio 1 est disponvel, ento Y armazena em sua varivel vaga_impressao_
disponivel a posio 1. Podemos notar que ambos os processos passam a conter a posio 1 como
varivel indicando a vaga 1 da fila de impresso.
O processo Y continua sua execuo armazenando o nome ArquivoY na vaga 1, ento atualiza a varivel
in para conter o valor 2. Depois desta tarefa, o processo Y passa a executar outras tarefas subsequentes. De
forma fortuita, o processo X volta a executar suas tarefas da posio em que havia parado, aps verificar
sua varivel vaga_impressao_disponivel e encontrar o valor 1, ento escreve o ArquivoX na vaga 1. Aps
o processo X executar a tarefa de gravao do arquivo, teremos a posio 1 da fila de impresso ocupada
pelo ArquivoX e o ArquivoY concomitantemente apagado. Como X atualiza a varivel in com o valor 2, o
diretrio de spool est internamente consistente, no havendo nenhuma suspeita, portanto o deamon no
notar nada anormal ou inconsistente, porm o processo Y jamais obter qualquer sada.
O usurio que mandou imprimir o ArquivoY certamente imaginar que houve algum boicote aps
esperar por muito tempo e nada sair da impressora. Portanto, cenrios como este em que temos dois ou
mais processos que esto lendo ou escrevendo algum dado compartilhado e cujo resultado final depende
de quem executa e quando executa , so chamados de condies de corrida (race conditions).
extremamente exaustiva a atividade de anlise, depurao e resoluo de cdigos de programa que
apresentam condies de corrida.

Saiba mais
Diagrama de Processos:
<http://www.las.ic.unicamp.br/edmar/PUC/2006/SO/SO-Aula2.pdf>
5.2.2 Excluso mtua e regio crtica
Excluso mtua (mutual exclusion) o modo de assegurar que processos sejam impedidos de usar
uma varivel ou um arquivo compartilhado que j estiver em uso por outro processo. Poderamos ter
evitado a condio de corrida apresentada anteriormente se tivssemos aplicado a excluso mtua ou
por modo abstrao evitando que os programas usassem a regio crtica simultaneamente.
Entendemos por regio crtica (critical region) ou seo crtica (critical section) a parte dos programas
em que h acesso memria ou arquivo compartilhado. Ainda que essa soluo impea as condies
de disputa, isso no suficiente para que processos paralelos colaborem de forma correta e eficiente
usando dados compartilhados.
52

FUNDAMENTOS DE SISTEMAS OPERACIONAIS


So necessrias quatro condies elementares para chegarmos a uma boa soluo:
Dois ou mais processos nunca podem estar simultaneamente em suas regies crticas.
Nada pode ser definitivamente afirmado no que tange velocidade ou ao nmero de cores.
Nenhum processo executado fora de sua regio crtica pode bloquear outros processos.
Nenhum processo deve esperar infinitamente para estar em sua regio crtica.
Portanto, em um modelo abstrato, as caractersticas necessrias para satisfazermos a condio
desejada so demonstradas na Figura 34, em que o processo X entra em sua regio crtica no tempo T1.
Subsequentemente, no tempo T2, o processo Y tenta entrar em sua regio crtica, entretanto falhar
devido ao fato de outro processo j estar ocupando esta condio exclusiva. Ento, X fica temporariamente
aguardando at que o processo Y deixe sua regio crtica.
Y entra na
regio crtica

Processo Y

Y deixa a
regio crtica

Core 1

Regio crtica

Regio crtica

Processo X

Core 2

X Bloqueado
Figura 34 Regio crtica

5.2.3 Excluso mtua com espera ociosa


Quando estamos usando os sistemas mais antigos que possuam somente uma CPU com um
nico core, a forma mais trivial e segura para evitarmos que mais de um processo entre na regio
crtica aplicada com a desativao das interrupes assim que o primeiro processo entrar na
regio crtica e consecutivamente reabilitlas assim que sair desta regio. Portanto, quando se
desativa a interrupo, a CPU no poder chavear para outro processo, com isso no tem como
ocorrer a condio de corrida apresentada anteriormente.

53

Unidade III

Observao
Entretanto, caso tenhamos um problema num processo que desative as
interrupes e nunca mais as reative, certamente, teremos um problema
maior para lidar do que a situao decorrida, ou seja, teremos o sistema
literalmente parado.
Podemos concluir que a desativao das interrupes uma tcnica coerente para o prprio sistema
operacional, porm com alto nvel de risco para os processos dos usurios que necessitem de excluso
mtua.
Com as novas arquiteturas de chips com mltiplos processadores, esta tcnica de desabilitar
interrupes tornase inadequada, tendo em vista que, por um lado, se desativarmos a interrupo de
uma nica CPU, teremos outras CPUs ou cores com a possibilidade de terem processos entrando em
regies crticas e, por outro lado, se desativarmos a interrupo de todas as CPUs e/ou cores, estaremos
impactando na performance da mquina, pois certamente comprometeremos as tarefas dos chips cujas
interrupes desativamos por precauo.
Existem outras tcnicas para evitarmos que mltiplos processos entrem simultaneamente em
suas regies crticas. Entre elas, temos a opo por software. Essa opo seria baseada numa varivel
compartilhada que se chamaria lock (trava), em que teramos valores 0 ou 1, sendo 0 para sinalizar
que no temos nenhum processo em regio crtica, e 1 para sinalizar que temos algum processo prvio
em regio crtica. O mecanismo simples, um processo checa se est em 1 ou 0, estando em 0 ento
significa que tem permisso para entrar em sua regio crtica, porm, supostamente, no antes de
colocar a varivel em 1, o que indicaria que outro processo j est em sua regio crtica. Portanto, se um
novo processo tentar entrar numa regio crtica, antes ir checar se a varivel est em 1, estando assim,
este processo ir aguardar. Entretanto, esta tcnica apresenta o mesmo problema descrito no exemplo
da fila de impresso.
Outra opo seria o chaveamento obrigatrio que por meio da varivel turn controla a vez de quem
entra na regio crtica, verificando e compartilhando a memria compartilhada. O funcionamento dessa
tcnica se d quando um segundo processo que tambm queira entrar em sua regio crtica ter de
esperar at que a varivel turn seja chaveada de valor. Porm, para isso precisa ficar testando de forma
repetitiva at a liberao. Esse processo chamado de busy waiting (espera ociosa).
Observao
O busy waiting um processo que despende muito tempo de CPU, mas
somente em situaes nas quais a espera factualmente pequena. Vale
destacar que uma trava que usa o busy waiting chamada de spin lock
(trava giratria).
54

FUNDAMENTOS DE SISTEMAS OPERACIONAIS


Num nvel mais fsico (hardware), temos a instruo Test and Set Lock (TSL) que l no registrador
RX a palavra lock do contedo da memria e ento armazena um valor diferente de zero no endereo
de memria lock. Com o uso desse mecanismo, temos a soluo para o caso dos mltiplos cores, pois a
instruo TSL impede que outras CPUs acessem a memria enquanto ela no terminar a execuo do
seu processo em regio crtica.
5.2.4 Semforos
Como vimos anteriormente, quando um processo estivesse ativo e executando tarefas na
regio crtica, ento outros deveriam ficar dormindo at o trmino dessa tarefa. O semforo
o conceito proposto por E. W. Dijkstra para um tipo de varivel inteira, objetivando contar o
nmero de sinais de acordar salvos para o uso futuro. Um semforo poderia conter o valor 0,
indicando que nenhum sinal de acordar foi salvo, ou algum valor positivo, sinalizando que um
ou mais sinais de acordar estivessem pendentes. Dijkstra props a existncia de duas operaes
para os semforos: P (down) e V (up), que so mnemnicos e fazem aluso a sleep e wake up
(dormir e acordar).
A operao down (P) no semforo verifica se o valor contido maior que 0. Caso isso seja mesmo um
fato, subtrair um sinal de up (V) que estiver na varivel e prosseguir com as tarefas. Porm, se o valor
contido na varivel apresentar o valor igual a 0, ento o processo ser instrudo para sleep (dormir),
porm sem terminar o down ainda (esse um ponto importante do semforo que ser debatido
adiante).
Observao
Vale destacar, nesse momento, que verificar o valor sem alterlo
e possivelmente ir dormir so tarefas que devem ser obrigatoriamente
executadas nessa ordem, alm de no poderem ser divididas.
Para evitarmos a condio de corrida, deve ser garantido que, ao iniciar uma operao de semforo,
nenhum outro processo poder ter acesso a este at que a operao tenha terminado ou sido
bloqueada.
J na operao up, incrementado no semforo um valor. Porm, se um ou mais processos estivessem
dormindo ao ser iniciada a operao up (lembrando que na operao down os processos no chegam
a terminar o ciclo completo, ficando em estado dormente como foi destacado acima quando usei
o termo ainda), e estivessem impossibilitados de terminar a operao down, ento um deles seria
escolhido pelo sistema e atribudo a permisso para trmino do down. Apesar de o semforo permanecer
em 0 nessa etapa up, em um semforo que j continha um ou mais processos dormentes, e esperar para
terminar o down, teremos um processo a menos dormindo.

55

Unidade III

Lembrete
Durante o up, apesar de o semforo terminar com o valor em 0, ele
ter liberado um dos processos que estavam impossibilitados de terminar
o ciclo down.
No podemos esquecer que a operao de incrementar o semforo e acordar um processo que
estava previamente dormente tambm indivisvel, como o processo no caso explicado anteriormente
no down. Vale destacar tambm que um processo nunca dever ser bloqueado a partir de um up.

Saiba mais
<http://www.facom.ufu.br/~faina/BCC_Crs/INF09-1S2009/Prjt_SO1/
semaphor.html>
5.2.5 Monitores
Hoare e Brinch Hansen propuseram uma unidade bsica de sincronizao de alto
nvel chamada de monitor. Podemos definir monitor como uma coleo de rotinas,
variveis e estruturas de dados, todos agrupados em um tipo especial de pacote.3

O monitor tem um papel fundamental para realizar a excluso mtua pelo fato de que somente um
processo pode estar ativo em um monitor num determinado tempo x. Tipicamente, quando um processo
executa uma chamada a uma determinada rotina do monitor, algumas das primeiras instrues da
rotina devero verificar se existe outro processo ativo dentro do monitor. Caso confirme que outro
processo encontrase ativo dentro do monitor, ento o processo que realizou a chamada ficar suspenso
at que o processo que estava previamente ativo saia do monitor.
Observao
Um processo que executar uma chamada ao monitor poder entrar
somente se no houver nenhum outro previamente ativo.
O monitor uma construo da linguagem de programao e os compiladores tratam suas
chamadas e rotinas de modo diferente de outras chamadas de procedimento. Tambm funo do
compilador implantar a excluso mtua. Tendo em vista que para codificar um monitor, quem codifica
Disponvel em: <http://www.computronixbras.com/cursos/SOP/Windows2000/ApostilaSOSite.pdf>. Acesso em: 8
jun. 2011.
3

56

FUNDAMENTOS DE SISTEMAS OPERACIONAIS


no necessariamente tem de conhecer como o compilador implanta a excluso mtua, ento basta
ter em mente que convertendo todas as regies crticas em rotinas do monitor, dois ou mais processos
nunca podero entrar em suas regies crticas ao mesmo tempo.
Alm da maneira simples pela qual o monitor consegue tratar as excluses mtuas, ele tambm
apresenta variveis condicionais que possibilitam bloquear processos quando no puderem
continuar.
As variveis condicionais apresentam duas operaes: wait e signal. O wait usado para definir
que uma rotina no pode prosseguir naquele instante. O signal foi abordado de duas formas distintas,
sendo uma por Hoare, que prope deixar o processo recmacordado executar e suspender o outro. J
Brinch Hansen props que, se um signal emitido sobre uma varivel condicional pela qual os vrios
processos estejam esperando, somente um deles, que determinado pelo escalonamento do sistema,
ser despertado. Alm dessas formas h uma terceira que descreve a soluo, deixando o emissor do
sinal prosseguir sua execuo e permitindo ao processo em espera comear a executar somente depois
que o emissor do sinal tenha sado do monitor.
Podemos notar que no semforo, usando o sleep e o wake up, havia a possibilidade de ocorrer falhas,
porque pode haver uma situao, na qual um processo est tentando ir dormir e, em paralelo, outro
tentando acordlo. Porm, quando usamos monitores, isso no tem como acontecer com a excluso
mtua que automtica. O signal no poder acontecer at que o wait tenha terminado.
Linguagens como C, Pascal e outras diversas no possuem monitores. Entretanto, o monitor foi
projetado para resolver o problema de excluso mtua em CPU, acessando memria comum, porm,
quando estamos usando um sistema distribudo formado por mltiplas CPUs, e cada uma com sua
prpria memria privada e conectada por uma rede, os monitores passam a no ter efeito.

Saiba mais
<http://www.deinf.ufma.br/~fssilva/graduacao/so/aulas/monitores.pdf>
5.2.6 Troca de mensagens
Semforos e monitores no permitem troca de informaes entre mquinas, que primordial no
mundo dos sistemas distribudos. Para essa condio temos o message passing (troca de mensagens),
que usa dois instrumentos: send e receive (envio e recebimento) colocados em rotinas de biblioteca.
Num ambiente de rede, um dos principais problemas a perda de pacotes causados por algum
motivador que estaremos nos abstraindo neste material de Fundamentos de Sistemas Operacionais. No
caso da troca de mensagens entre mquinas, isso se d por meio da rede e, como descrito anteriormente,
essa mensagem pode ser extraviada ao longo do percurso. Portanto, uma troca de mensagem usa o
57

Unidade III
mecanismo similar ao usado no protocolo TCP/IP camada 4 Transportes TCP, onde a mensagem enviada
requer um sinal de acknowledge4, ou seja, se quem enviou no receber a confirmao, ento uma nova
mensagem ser reenviada.
Vale destacar que se o emissor enviar a mensagem e o receptor receber, mas o problema acontecer
no retorno da confirmao, ento o emissor enviar uma nova mensagem. Entretanto, dessa vez, pelo
fato de a mensagem ter um nmero sequencial de confirmao, o receptor ir identificar que uma
retransmisso e descartar a mensagem o mesmo se aplica no protocolo TCP da camada de transporte
do modelo TCP/IP.
5.2.7 Escalonamento
Quando temos uma nica CPU, ou uma nica CPU disponvel entre as diversas existentes no sistema,
e mais de um processo estiver competindo para ser executado, ento caber ao sistema operacional
escolher qual dos processos ser privilegiado e essa escolha chamase algoritmo de escalonamento.
Em linhas gerais, o escalonamento importante porque, dentre vrios processos, saudvel que
o sistema priorize aqueles que vo gerar mais impacto ao ambiente e seus usurios, caso no forem
privilegiados durante a escolha de quem deve ser o prximo a ser processado.
Entre os processos, temos aqueles que passam a maior parte do tempo computando, computer
bound (limitados pela CPU), enquanto outros passam a maior parte do tempo esperando por entrada e
sada, I/O bound (limitados a entrada e sada).
Devemos escalonar os processos em quatro situaes descritas na sequncia abaixo:
1. Quando temos os processos pai e filho para serem executados. A definio de qual deve ser
priorizado, em muitos casos, essencial para o perfeito funcionamento das tarefas e resultado
correto.
2. Quando temos um processo que terminou e j no est mais no sistema, h a necessidade da
escolha de um novo processo e, portanto, o escalonamento, nessa situao, fazse necessrio.
3. Quando um processo bloqueado por alguma razo, ento outro processo deve ser selecionado
para ser executado. Processos predecessores podem ser priorizados, pois, se forem executados os
sucessores, pode haver dependncias que iro gerar resultados inconsistentes.
4. Ao ocorrer uma interrupo de E/S, pode ser necessrio uma deciso de escalonamento.
Os algoritmos de escalonamento podem trabalhar tipicamente de duas formas: no antecipado e
antecipado. No primeiro caso, o processo no antecipado pode ficar executando pelo tempo que for
Acknowledge: sinal que enviado por um receptor para indicar que uma mensagem transmitida foi recebida e
que ele est pronto para a prxima mensagem.
4

58

FUNDAMENTOS DE SISTEMAS OPERACIONAIS


necessrio, ou seja, por horas at que seja bloqueado ou at que libere a CPU. No segundo, o algoritmo
de escalonamento antecipado escolhe um processo e o deixa em execuo por tempo mximo fixado.
6 GERENCIAMENTO DE MEMRIA
6.1 Introduo a gerenciamento de memria

At aproximadamente o primeiro quarto dos anos 2000, as memrias RAM (tambm conhecidas como
memria principal) eram extremamente caras. Ficvamos completamente pasmos se comparssemos
percentualmente o valor dos pentes de memrias em relao ao valor total do computador. Porm, j
tivemos dias piores. Nos anos de 1960, mesmo os maiores computadores do mundo possuam cada um algo
que faria com que eles parecessem uma bica dgua e nossos computadores de mo, um rio Amazonas.
E como era possvel termos programas to eficientes com to pouca memria? Na realidade, a
resposta dividida em duas partes. A primeira que o programador daquela poca tambm conhecia as
entranhas do computador e programar era algo que exigia mais do que conhecimentos da linguagem
de programao versus a necessidade de negcio que estava motivando aquele projeto. Por isso, o
programador, tipicamente, tinha de tirar leite de pedra. A outra parte da resposta que no tnhamos
as mltiplas interfaces entre aplicaes em rede, nem ambientes de trabalho com tanta qualidade
grfica, nem mesmo a complexidade que os programas atuais possuem.
Com o passar do tempo, a hierarquia de memria, vista antes neste livro, contribuiu para atender a
demanda exponencialmente crescente por memria. Podemos comparar os programas atuais com um
camelo que, depois de atravessar o deserto por dias sem beber nenhum gole de qualquer coisa lquida
e de uma exaustiva jornada, encontra um tanque dgua (a gua seria a memria). No necessrio
concluir que, enquanto houver gua disponvel, o camelo estar consumindo as aplicaes atuais so
cada vez mais cedentes por memria.
No sistema operacional, a parte parcialmente responsvel por gerenciar a hierarquia de memria
o gerenciador de memria, que tem como tarefa conhecer todo espao de memria, alocar para os
processos que esto necessitando e liberar as partes que no esto mais em uso pelos processos.
Conforme demonstrado na Figura 35, temos algumas variaes, sendo a primeira demonstrada na
Figura 35a, a variao por uso total de memria RAM (randon access memory memria de acesso
randmico) onde o sistema operacional ficar na parte inicial e da memria e o programa do usurio na
parte mais elevada. O segundo modelo um mix de dois tipos de memria, sendo o programa do usurio
na memria RAM e o sistema operacional contido numa memria ROM (read only memory memria
exclusiva de leitura) e como o nome j diz somente para leitura, portanto neste modelo no h o risco
do usurio ou algum problema na aplicao comprometer o sistema operacional tipicamente este
modelo usado em sistemas portteis. No terceiro caso apresentado na Figura 35c temos os drivers de
dispositivos em ROM e programa do usurio e sistema operacional em RAM.

59

Unidade III
Memria ROM
Memria ROM
Memria RAM

Sistema
operacional

Drivers
Memria RAM

Programa
do
usurio

Memria RAM

Programa
do
usurio

Sistema
operacional

Programa
do
usurio

Sistema
operacional

Figura 35 Conceito de modos de organizao de memria

Observao
Nos sistemas precursores no era possvel mais que um programa
ocupando a memria. Se isso ocorresse, causaria problemas aos dois
programas, ao que estava na memria e quele que tentasse fazer uso.
Com o avano e a necessidade de mltiplas aplicaes em funcionamento simultaneamente, a opo
encontrada foi o uso do swapping, ou seja, troca de processos. Isso consiste em o sistema operacional
pegar o contedo completo da memria e movlo para um arquivo na memria em disco rgido e,
subsequentemente, liberar a memria para o prximo processo.
Entretanto, no hardware tambm houve avano que no demandava somente a troca de processos
executada por software (pelo sistema operacional). Esse processo consiste em dividir a memria principal
em blocos de 2 KB com chave de proteo de 4 bits para cada bloco e mantidas em registradores
especiais dentro da CPU.
Porm, nesse caso da diviso da memria em blocos, h um problema quando se usa mais de um
programa. Os dois programas referenciam a memria fsica absoluta, enquanto, na realidade, queramos
que cada programa referenciasse um conjunto de endereos. Portanto, a soluo a realocao
esttica ou, em outras palavras, esse mecanismo de rotao visa rotular blocos da memria com uma
chave de proteo e comparar a chave do processo em execuo com a de cada palavra da memria
recuperada.

Saiba mais
<http://www.slideshare.net/audineisilva1/gerenciamento-de-memoria>
60

FUNDAMENTOS DE SISTEMAS OPERACIONAIS


6.2 Abstrao espaos de endereamento da memria

Expor a memria fsica aos processos pode trazer problemas, chegando at a ocasionar o travamento
do sistema operacional. Entretanto, hoje, depois da histria toda ter acontecido, sabemos que existe um
mtodo para tratar essa situao, caso contrrio no seria possvel estarmos com o nosso computador
conectado internet, acessando o editor de texto e/ou diversas combinaes que fazem parte do nosso
dia a dia. Para isso temos de entender o processo de abstrao da memria.
Com a abstrao da memria e a implantao do espao de endereamento, criase uma memria
abstrata para abrigar os programas. Esta, por sua vez, possui um conjunto de endereos usado para
que o processo realize endereamento memria. Individualmente, os processos possuem seu prprio
espao de endereamento, diferente para cada processo.
6.2.1 Permuta de memria
Dezenas de processos so carregados somente para manter o sistema operacional tpico
funcionando, isto , s para ligar a mquina e aparecer a tela do desktop, sem ao menos abrir um
bloco de notas. Todos os processos dos sistemas atuais so verdadeiros consumidores esfomeados
por memria. Um simples processo inerente do prprio Windows ou Linux pode consumir algumas
dezenas de megabytes de memria. Para gerir todo esse alto consumo de memria, necessitamos de
mais memria. Um paradoxo, no?
O swapping, previamente comentado, um dos mtodos mais triviais para gerir a sobrecarga
de memria. Esse mtodo vem sofrendo modificaes ao longo dos anos. Ele faz a cpia completa
do contedo da memria (que geralmente so processos ociosos) para um arquivo no disco rgido
e libera a memria para outro processo ocupla. O outro mtodo o uso de memria virtual,
permitindo que programas possam ser carregados na memria principal e executados na ntegra
ou parcialmente.
Para entendermos o sistema de troca de processos, temos, na primeira etapa desse exemplo, em
36a, inicialmente, o sistema operacional ocupando a parte mais baixa da memria (permanecer
nessa posio) e, logo em seguida, temos o processo X ocupando uma parte da memria disponvel.
Depois, na Figura 36b, um novo processo Y criado ou trazido do disco duro e posicionado na
memria logo acima do processo X. Na Figura 36c, um novo processo Z adicionado (notem que
nesse momento no h mais espao disponvel na memria principal para novos processos). Na
Figura 36d, o processo X fica ocioso, ento enviado para o disco rgido. Em 36e e 36f, temos
outros processos sendo trocados e o ciclo vai sendo executado at que novos processos entrem
e disputem o tempo de CPU e memria e/ou que processos terminados sejam eliminados do
ciclo.

61

Unidade III

a.
Processo Z

Processo O
Processo T

Processo X

e.

Sistema
operacional

Processo X

Sistema
operacional
f.

Sistema
operacional

Processo Z
Processo Y

Processo Y
Processo Z

d.

Sistema
operacional

Processo X

Processo Y

Sistema
operacional
b.

Processo X
Sistema
operacional

c.

Figura 36 Ciclo de troca dos processos entre memria principal e secundria

Observao
Se um processo maior que a rea livre, ou um processo, mesmo que
pequeno, porm, sem nenhuma rea de memria, estiver disponvel, ento
esse processo dever ser transferido para disco e ficar por l at que
memria suficiente seja liberada.
6.3 Memria virtual

Diante da elevada demanda por memria, os programas eram criados em mdulos denominados
overlays5. Dessa forma, ao carregar um programa, o gerenciador de mdulo era quem, na realidade, seria
carregado e, em seguida, a sobreposio zero. Quando necessrio, era carregado prxima sobreposio
desse programa ou de outros. Todas as sobreposies ficam gravadas em disco.
Em 1961, um mtodo desenvolvido por John Fotheringham ficou conhecido como memria virtual
que um conceito extremamente importante no ambiente de cincia da computao, permitindo que
programas usem mais RAM do que realmente est disponvel fisicamente. Esse processo possvel
porque o sistema operacional mantm rodando na memria principal somente as partes necessrias
5

62

Overlays: mdulos de sobreposio.

FUNDAMENTOS DE SISTEMAS OPERACIONAIS


do programa e as outras, que no esto em uso, ficam no disco rgido. Quando necessrio que outra
parte, que est no disco, seja carregada, ento haver o processo de swapping6.
A memria virtual possui dois aspectos importantes: o primeiro a quantidade de memria fisicamente
instalada no equipamento, que chamamos de memria real. O outro tem muito mais capacidade que o
primeiro e chamamos de espao de memria virtual. No hardware, temos um componente de extrema
importncia que a Unidade de Gerenciamento de Memria (MMU). O MMU7 suporta o sistema operacional
na execuo do mapeamento dos endereos da memria fsica e endereos da memria virtual, permitindo,
assim, a eficaz maestria de mover as partes dos programas da memria virtual para o disco ou viceversa.
Observao
Analisando pela perspectiva do programa, temos cada um com seu
prprio espaamento de endereos adjacentes que chamamos de pginas.
6.3.1 Paginao
A tcnica chamada paginao usada na maioria dos sistemas de memria virtual. A memria
virtual dividida em unidades de espaamento de endereos adjacentes chamadas de pginas. Estas
correspondem a unidades das memrias chamadas de frames.
Observao
Enquanto o espao de endereamento virtual dividido em unidades
chamadas pginas (pages), temos as unidades correspondentes na memria
fsica que so denominadas molduras de pgina (frames). Tanto as pginas
quanto as molduras possuem o mesmo tamanho.
Se usarmos como exemplo um sistema que permite gerar endereos virtuais de 16 bits, 216 (de 0 a 64 K),
entretanto, se esse ambiente possuir somente 32 KB de memria fsica, ento isso significar que apesar de ser
possvel que programas de 64 KB sejam escritos, por outro lado no podero ser carregados por completo na memria
fsica. Sistemas reais possuem pginas de 512 bytes a 65.536 bytes. Neste exemplo, adotaremos pginas de 8.192
bytes (8 KB). Portanto, para atendermos a premissa que frames e pginas possuem o mesmo tamanho, teremos:
64 KB / 8 KB = 8 pginas virtuais
32 KB / 8 KB = 4 frames

Swapping: sistema no qual um programa movido para a memria secundria enquanto outro est sendo
executado.
7
MMU: Memory Management Unit Unidade de Gerenciamento de Memria.
6

63

Unidade III
Espao de endereamento virtual
57344 65536

Espao de memria fsica

} pgina virtual

49152 57343
40960 49151
32768 40959
24576 32767

24576 32767

16384 24575

16384 24575

8192 16383

8192 16383

0 8191

0 8191

} estrutura da pgina

Figura 37 Comparativo espao de endereamento virtual versus endereo de memria fsica

Nos sistemas em que no utilizado o mecanismo de memria virtual, o endereo virtual idntico
ao endereo fsico. Portanto, para executar uma operao, o endereo virtual colocado no barramento
diretamente, ou seja, no necessrio que haja uma adequao do mundo virtual para o mundo fsico.
Entretanto, quando est presente o mecanismo de memria virtual, ento o endereo virtual vai para o MMU
que mapeia endereos virtuais em endereos fsicos antes de coloclo no barramento. mostrado na Figura
38a o fluxo de envio do endereo virtual, passando pelo MMU e envio do endereo fsico para o barramento
e na Figura 38b demonstrado como feito o mapeamento do endereo virtual para o endereo fsico.
CPU
CPU enviando endereo
virtual MMU

Memria
principal

MMU

Controlador
de disco

Barramento
MMU enviando endereo
fsico memria

a.

Espao de endereamento virtual

Espao de memria fsica

24576 32767
8192 16383

pgina virtual 1
CPU

MMU
b.

Figura 38 Fluxo do endereo virtual versus endereo fsico

64

moldura de pgina 4

FUNDAMENTOS DE SISTEMAS OPERACIONAIS


Na Figura 38b, foi isolada a converso da pgina 1 para a moldura de pgina 3, ou seja, quando um
programa tenta acessar o endereo 8.192, ento o endereo virtual um enviado pela CPU para a
MMU. Com base na tabela de pginas, a MMU detecta que a pgina virtual 1 corresponde moldura de
pgina 4 (de 24.576 a 32.767).
Desenvolvedores de sistemas operacionais encontraram outras formas para melhorar a paginao de
memria virtual. Por exemplo, alguns sistemas podem restringir algumas pginas para serem utilizadas
somente como leitura (readonly); na memria, as pginas exclusivas de leitura so usadas para
armazenar cdigo de programas, portanto no podem ser modificadas por vrus, por exemplo, e valores
constantes que os programadores no esto autorizados a trocar.
Se qualquer tentativa de alterao em uma pgina restrita for executada por um programador, o
resultado ser uma situao de falha ao tentar alterar a pgina (page fault) ou erro de segmentao
(segmentation error). Apesar de inicialmente esse aspecto proteger algumas pginas com atributo de
somente leitura, com os ambientes em rede e diversos ataques sendo desferidos contra os sistemas,
esses mecanismos passam a ser cada vez mais estudados pelos especialistas em segurana.

Saiba mais
<homepages.dcc.ufmg.br/~scampos/cursos/so/aulas/aula12_4.ps>
6.4 Segmentao

Alm da paginao, a segmentao de memria uma das formas mais simples para se obter a
proteo da memria. Com o uso da segmentao so atendidos os seguintes requisitos:
1. Pode haver vrios segmentos distintos.
2. Cada segmento pode ter um tamanho prprio.
3. Cada segmento constitudo de uma sequncia linear de endereos.
4. O tamanho dos segmentos pode variar durante a execuo.
5. O tamanho de cada segmento de pilha pode ser expandido sempre que algo colocado sobre ela
e diminudo sempre que algo retirado dela.
6. Segmentos diferentes podem crescer ou diminuir independentemente e quando for necessrio.
Quando o mecanismo de segmentao est presente e em uso, programas devem fornecer um
endereo composto de duas partes:
65

Unidade III
1. Um nmero referindose ao segmento desejado.
2. Endereo dentro do segmento.
Alm de um segmento conter o conjunto de permisses e o nmero de itens de dados em uma varivel ou
lista, um segmento tambm contm a informao indicando onde o segmento est localizado na memria,
podendo conter, inclusive, uma identificao se o segmento est na memria principal ou secundria.
Se o segmento requisitado no estiver na memria principal, uma exceo ser enviada, ento o sistema
operacional ir trocar o segmento da memria secundria para a principal. A informao indicando onde o
segmento est localizado na memria deve ser, primeiro, o endereo inicial do segmento na memria, ou deve
ser o endereo da tabela de pgina para o segmento, se a segmentao implantada com a paginao.
A memria segmentada aparece para o programa como um grupo
independente de espaos de endereo chamado de segmento. Cdigo, dados
e pilhas so tipicamente contidos em segmentos separados. Para enderear
um byte num segmento, um programa envia o endereo lgico.8

Este consiste em um nmero referenciado ao segmento desejado e um endereo dentro do segmento


um endereo lgico tambm conhecido como ponteiro. A referncia de segmento identifica o segmento
para ser acessado e o endereo lgico identifica um byte no espao de endereo do segmento. Programas
rodando em um processador IA329 podem enderear at 16.383 segmentos com diferentes tamanhos e
tipos, e cada segmento pode ser dimensionado na ordem de grandeza de 232 bytes (4 GB). Internamente,
todos os segmentos que so definidos para o sistema so mapeados dentro do espao de endereo linear do
processador. Para acessar a localizao da memria, o processador traduz cada endereo lgico num endereo
linear. Essa traduo transparente para o programa que est usando a segmentao. A regio primria para
uso da memria segmentada para aumentar o grau de confiana que se pode ter quanto ao desempenho de
programas e sistemas. Por exemplo, alocando uma pilha de um programa em um segmento separado previne
o crescimento da pilha lendo do espao de cdigo ou dado e sobreposio de instrues ou dados.
n
Segmento 5

Segmento 3
Segmento 3
Endereo
lgico

Endereo efetivo
0
Endereo linear

Segmento 1

Figura 39 Segmentao de memria

Disponvel em: <http://www.cpdee.ufmg.br/~fvasc/Disciplinas/Interfaces/Aulas/AULA_%B5P32bits.pdf>. Acesso


em: 8 jun. 2011.
9
IA32: Intel Architecture, 32bit, genericamente chamado de i386, x8632 ou x86.
8

66

FUNDAMENTOS DE SISTEMAS OPERACIONAIS


Na Figura 39, so demonstrados cinco segmentos de tamanhos e tipos diferenciados, em destaque
ao lado esquerdo, tem a demonstrao do segmento 3 que est parcialmente usado.
Resumo
Os processos so oferecidos pelos sistemas operacionais, ocupando cada
qual o seu prprio espao de endereamento. Eles podem ser criados e
terminados de maneira dinmica, de forma a evitar que dois processos estejam
em suas regies crticas simultaneamente. Os semforos, os monitores e as
mensagens so as formas nas quais os processos comunicamse entre si.
Estados do processo:
Executando.
Passvel de ser executado.
Bloqueado.
possvel que o processo troque de estado quando ele, ou um outro processo,
executa uma das unidades bsicas (semforos, monitores ou mensagens).
Algoritmos de escalonamento so importantes para o ambiente e alguns
sistemas fazem distino entre mecanismo de escalonamento e poltica
de escalonamento, permitindo aos usurios controle sobre o algoritmo de
escalonamento.
Algoritmo de escalonamento a escolha feita pelo sistema operacional
de qual dos processos ser privilegiado quando h uma nica CPU, ou uma
nica CPU disponvel entre as diversas existentes no sistema, e mais de um
processo estiver competindo para ser executado.
Nos sistemas mais triviais, quando um programa carregado em
memria, ele ficar ocupando a memria necessria at que sua finalizao
acontea. Alguns sistemas permitem somente um processo por vez carregado
na memria principal, enquanto outros suportam a multiprogramao.
Quando necessrio que o sistema operacional use mais memria
principal (RAM), que realmente existe fisicamente na mquina, ento
necessria a troca de processos entre a memria principal e o disco.
Os espaos de endereamento de cada processo so divididos em
blocos e so chamados de pginas. Na memria fica a moldura de pgina
67

Unidade III
que recebe os blocos dos processos. O sistema de paginao ajuda no
tratamento de estrutura de dados que alteram seus tamanhos durante
a execuo, simplificando a ligao, o compartilhamento e facilitando a
proteo customizada para cada segmento. Segmentao e paginao
so tipicamente combinadas para fornecer uma memria virtual
bidimencional.
Exerccios
Questo 1. Considere o exemplo do cruzamento da ponte ilustrado na figura abaixo e descrito nos
itens a seguir.

Se ocorrer a disputa entre os carros na parte central da ponte, haver um problema de


sincronismo.
Cada seo de uma ponte pode ser vista como um recurso.
Se ocorrer um deadlock, ele pode ser resolvido se um dos carros recuar (preemptar recursos e
reverter).
Vrios carros podem ter de recuar se um deadlock ocorrer.
possvel haver starvation.
O problema acima pode representar duas situaes envolvendo sincronismo, deadlock e starvation.
O que poder acontecer se ocorrer deadlock?
A) Os dois carros esto representando dois processos que aguardam, indefinidamente, por um evento
que s poder ser causado por um desses processos.
B) Os dois carros esto representando dois processos bloqueados indefinidamente. Um processo
pode nunca ser removido da fila de semforos em que est suspenso.
C) Se o processo Pi, representado por um dos carros, est executando em sua seo crtica, ento
nenhum outro processo poder estar executando em suas prprias sees crticas.
68

FUNDAMENTOS DE SISTEMAS OPERACIONAIS


D) O carro da direita ir subir na mureta, enquanto o segundo carro poder passar. O segundo
carro ir disparar um processo de agradecimento pela atitude, dando dois toques na sua
buzina.
E) O carro da esquerda ir compartilhar sua seo crtica com o carro da direita sempre que ele
necessitar.
Resposta correta: alternativa A.
Anlise das alternativas
A) Alternativa correta.
Justificativa: durante um impasse entre dois processos, somente a interveno de um deles pode
desbloque-los.
B) Alternativa incorreta.
Justificativa: um semforo funciona como uma varivel que atribui 0 ou 1 aos processos que esto
dormindo, no existe uma fila de semforos.
C) Alternativa incorreta.
Justificativa: o erro est em afirmar que um processo no pode executar em sua prpria seo
crtica.
D) Alternativa incorreta.
Justificativa: a correlao com carros de verdade realizando malabarismo absurda.
E) Alternativa incorreta.
Justificativa: a seo crtica de um processo no deve ser compartilhada de forma
indiscriminada.
Questo 2. Os alunos do curso de computao de uma grande universidade utilizam a linguagem
de programao C para implementar seus programas. A figura 1 ilustra os procedimentos realizados pelo
compilador da linguagem C para gerar um arquivo executvel que, em um primeiro momento, apenas
uma entidade passiva, ocupando bytes da memria secundria. A fim de que essa entidade passiva
tenha utilidade, precisa ser transformada em um processo. Todo processo, para ser executado, necessita
estar adicionado fila de processos prontos.

69

Unidade III

Programafonte
Compilador
ou assembler

Tempo de
compilao

Mdulo
objeto

Outros
mdulos
objeto

Link editor
Mdulo de
carga

Biblioteca
do sistema
Biblioteca do
sistema carregada
dinamicamente

Tempo de
carga

Loader
Imagem binria
na memria

Vnculo
dinmico

Tempo de
execuo
(runtime)

Figura A Procedimentos realizados pelo compilador da linguagem C (SILBERSCHATZ, GALVIN e GAGNE, 2007)

Durante a execuo de um processo, so utilizados, em geral: variveis, objetos, funes etc. que
devero ser alocados na memria. A Figura B ilustra a MMU em operao.

CPU

Endereo
lgico

Registrador
de realocao
14000
+

346

Endereo
fsico
14346

Memria

MMU
Figura B MMU em operao (SILBERSCHATZ, GALVIN e GAGNE, 2007)

Qual a funo da MMU no desenvolvimento de execuo de processo?


A) Converter um endereo fsico em um endereo lgico.
B) Dispositivo de hardware que mapeia endereos virtuais em fsicos.
C) Adicionar o endereo lgico memria.
D) Servir de registrador de realocao entre a CPU e a memria.
E) Monitorar os procedimentos dos programas na CPU e na memria.
Resoluo desta questo na Plataforma.
70

FUNDAMENTOS DE SISTEMAS OPERACIONAIS

Unidade IV
7 SISTEMAS DE ARQUIVOS
7.1 Introduo a sistemas de arquivos

Em linhas gerais, no ambiente computacional, esperase que dados inseridos na entrada saiam
como produto final, informao processada. Essas informaes podem ser compreendidas como textos,
planilhas, figuras, filmes etc. As informaes que podem ocupar de alguns bytes a milhares de milhes
de bytes devem ser armazenadas em dispositivos no volteis, ou seja, no podem ser perdidas com o
desligamento do computador e podem ser acessadas por mltiplos processos de forma concorrente.
As informaes so armazenadas tipicamente em disco e o armazenamento resumese em sequncias
lineares de blocos de tamanho fixo que suportam duas operaes: busca do bloco k e escrita no bloco k,
surgindo, portanto, o conceito de arquivo.
7.1.1 Arquivos
Podemos definir um arquivo como sendo um conjunto de dados armazenados
em um dispositivo fsico no voltil, com um nome e/ou referncia que
permita sua localizao futura.1

Arquivos podem ter diversos formatos, desde um simples arquivo texto ASCII com alguns poucos
bytes, at mesmo vdeos com vrios megabytes ou gibabytes em diversos formatos.
Um sistema de armazenamento de arquivos pode conter milhes de arquivos
que so organizados em estruturas hierrquicas denominadas diretrios. A
estrutura e a organizao fsica e lgica dos arquivos e diretrios dentro de um
dispositivo de armazenamento so denominadas de sistema de arquivos.2

7.1.2 Atributos
Cada arquivo diferenciado por um conjunto de atributos. Tipicamente, temos alguns atributos mais
usados:
Nome: uma sequncia de caracteres para identificar de tal forma que um ser humano, ao vlo
na tela, consiga identificlo. Exemplo: relatorio.doc.
Disponvel em: <http://www.scribd.com/doc/12385571/SistemasOperacionaisGerenciadeArquivos>. Acesso
em: 8 jun. 2011.
2
Idem.
1

71

Unidade IV
Data: muito til no que tange ao gerenciamento do ambiente. Alm de ajudar o usurio a saber
quando um arquivo foi criado, pode tambm controlar a data e a hora do ltimo acesso, da ltima
modificao do contedo e at mesmo da ltima alterao de outro atributo, como o nome do
arquivo, por exemplo.
Tipo: indica se o formato do arquivo udio, vdeo, imagem, texto ou outro. O sistema de
arquivos do Windows e outros usam a extenso, que parte do nome, para indicar o tipo do
arquivo. Exemplo: .doc no arquivo com o nome relatorio.doc referese a um arquivo de texto
(abreviao de document).
Tamanho: esse atributo determina quanto de espao em bytes (1 byte = 8 bits) ou registros.
Exemplo: relatorio.doc 906.085 bytes.
Proprietrio: atualmente, com os sistemas em rede e multiusurios, cada arquivo tem um
proprietrio, que deve estar corretamente identificado em alguns casos o prprio sistema o
proprietrio do arquivo e por isso nenhum usurio deveria alterlo.
Permisses de acesso: determina qual usurio tm acesso ao arquivo e quais permisses so
atribudas a cada usurio (leitura, escrita, remoo etc.).
Um usurio de sistema Unix chamado root, na teoria, deveria ter acesso total ao arquivo,
enquanto um usurio ou um processo que s deve consultar um arquivo de registros de log
deveria ter acesso s de leitura.
Localizao: esse atributo indica o dispositivo fsico onde o arquivo se encontra e da posio do
arquivo dentro do mesmo. Para o usurio do sistema a localizao do arquivo demonstrada como
uma estrutura hierrquica que parte da raiz que o pai de todos os demais repositrios filhos.
7.1.3 Estrutura de arquivo
Os arquivos podem ser estruturados de vrias formas. A Figura 40 demonstra trs possibilidades
comuns, sendo a Figura 40a uma sequncia de estrutura de bytes. Para os sistemas operacionais Windows
e Unix, a estrutura de um arquivo nada mais que uma sequncia desestruturada de bytes.
Isso oferece a mxima flexibilidade, tendo em vista que os programas dos
usurios podem pr qualquer coisa que seja necessria em seus arquivos e
ter os nomes que mais forem convenientes.3

Na Figura 40b, demonstrada uma forma estruturada.


Nessa estrutura, o arquivo uma sequncia de registros de tamanho fixo,
cada um com alguma estrutura interna. A principal caracterstica dessa
3

72

Disponvel em: <http://www.ufpi.br/subsiteFiles/eml/arquivos/files/SO/SO_Livro.pdf>. Acesso em: 8 jun. 2011.

FUNDAMENTOS DE SISTEMAS OPERACIONAIS


estrutura que a operao de leitura retorna um registro e a operao de
escrita sobrepe ou anexa um registro, entretanto, esse modelo no mais
aplicado nos sistemas atuais.4

Na organizao demonstrada na Figura 40c, um arquivo constitudo de uma rvore de registros,


cada uma contendo um campochave em uma posio fixa no registro. Para que uma chave especfica
seja buscada de forma mais rpida, a rvore ordenada pelo campo-chave. O sistema operacional
decide onde colocar novos registros no arquivo. Esse tipo de arquivo bem diferente dos fluxos de
bytes desestruturados que so usados pelo Windows e Unix, porm so ainda muito usados para alguns
processamentos de dados comerciais.
1 byte

1 registro
Elefante
Lagarto

Cavalo

a.

Jacar

Gato

Cobra

Leo

Coelho

Tartaruga

b.

c.

Figura 40 Estrutura de arquivos

7.1.4 Operaes
Os aplicativos e o sistema operacional armazenam e recuperam dados dos arquivos e por meio de
um conjunto de operaes fazem uso deles.
As operaes bsicas envolvendo arquivos so:
Criar: a criao de um novo arquivo demanda a alocao de espao no
dispositivo de armazenamento e a definio de seus atributos (nome,
localizao, proprietrio, permisses de acesso etc.).
Ler: permite transferir dados presentes no arquivo para uma rea de
memria da aplicao e, se necessrio, enviar para um dispositivo de
sada como monitor, impressora e outros.
Abrir: antes que um aplicativo possa ler ou escrever dados em um
arquivo, este deve solicitar ao sistema operacional que o arquivo seja
aberto. O sistema ir, primeiro, verificar se o arquivo existe, segundo, se as
4

Idem.

73

Unidade IV
permisses associadas permitem acesso ao arquivo, terceiro, localizar seu
contedo no dispositivo de armazenamento, ento criar uma referncia
para ele na memria.
Escrever: essa operao permite transferir dados da memria do
aplicativo para o arquivo armazenado no dispositivo fsico; os novos
dados podem ser adicionados no final do arquivo ou sobrescrever dados
j existentes.
Fechar: ao concluir o uso do arquivo, a aplicao deve informar ao
sistema operacional que esse arquivo no mais necessrio, a fim de
liberar as estruturas de gerncia do arquivo na memria do ncleo.
Mudar atributos: usado para modificar outras caractersticas do arquivo,
como nome, proprietrio, localizao, permisses etc.
Remover: elimina o arquivo do dispositivo, descartando seus dados e
liberando o espao ocupado por ele.
Alm dessas operaes bsicas, outras operaes podem ser definidas, como
copiar, mover ou renomear arquivos. Entretanto, essas operaes geralmente
podem ser construdas usando as operaes bsicas.5
7.2 Uso de arquivos

Os processos podem ler e escrever dados em arquivos de forma no voltil. Uma interface
de acesso tipicamente composta por uma representao lgica de cada arquivo contido no
dispositivo de armazenamento necessria para que um processo use um arquivo. Por meio dessa
interface, os processos podem, entre outras opes, localizar arquivos no disco, ler e modificar
seu contedo.
7.2.1 Abertura de arquivo
Conforme demonstrado na sequncia a seguir, necessrio que o ncleo do sistema operacional
execute algumas operaes para que seja possvel abrir um arquivo, escrever novos dados ou modificar
os existentes:
1. Usando o nome do arquivo e o caminho de acesso, localizar o arquivo no
dispositivo fsico.
2. Verificar se a aplicao tem permisso para usar o arquivo da forma
desejada (leitura e/ou escrita).
5

74

Disponvel em: <http://www.scribd.com/doc/12385571/SistemasOperacionaisGerenciadeArquivos>.

FUNDAMENTOS DE SISTEMAS OPERACIONAIS


3. Criar uma estrutura na memria do ncleo para representar o arquivo
aberto.
4. Para fins de gerncia, inserir uma referncia a essa estrutura na lista de
arquivos abertos mantida pelo sistema.
5. Devolver aplicao uma referncia a essa estrutura para ser usada nos
acessos subsequentes ao arquivo recmaberto.
Assim que estiver concluda a abertura do arquivo, o processo solicitante recebe
do ncleo do sistema operacional uma referncia para o arquivo recmaberto.
Assim que o processo tiver terminado de usar um arquivo, ele deve solicitar
ao ncleo o seu fechamento, que implica em concluir as operaes de escrita
eventualmente pendentes e remover da memria do ncleo as estruturas de
gerncia criadas durante sua abertura. As referncias a arquivos abertos usadas
pelas aplicaes dependem da linguagem de programao utilizada para
construlas. (...) Cada sistema operacional tem sua prpria conveno para
a representao de arquivos abertos. Por exemplo, em sistemas Windows, os
arquivos abertos por um processo so representados pelo ncleo por referncias
de arquivos (file handles), que so estruturas de dados criadas pelo ncleo para
representar cada arquivo aberto. Por outro lado, em sistemas Unix, os arquivos
abertos por um processo so representados por descritores de arquivos (file
descriptors). Um descritor de arquivo aberto um nmero inteiro no negativo,
usado como ndice em uma tabela que relaciona os arquivos abertos pelo
processo, mantida pelo ncleo. Dessa forma, cabe s bibliotecas e ao suporte
de execuo de cada linguagem de programao mapear a representao de
arquivo aberto fornecida pelo ncleo do sistema operacional subjacente na
referncia de arquivo aberto usada por aquela linguagem. Esse mapeamento
necessrio para garantir que as aplicaes que usam arquivos (ou seja, quase
todas elas) sejam portveis entre sistemas operacionais distintos.6

7.2.2 Formas de acesso


Assim que o arquivo encontrase aberto, a aplicao pode ler os dados contidos nele, modificando
ou escrevendo novas linhas.
Existem vrias formas de se ler ou escrever dados em um arquivo, que
dependem da estrutura interna de cada arquivo. Considerando arquivos
como uma sequncia de bytes, trs formas de acesso so usuais:
1. Acesso sequencial.
Disponvel em: <http://www.scribd.com/doc/12385571/SistemasOperacionaisGerenciadeArquivos>. Acesso
em: 8 jun. 2011.
6

75

Unidade IV
2. Acesso direto (ou acesso aleatrio).
3. Acesso indexado.
Acesso sequencial: os dados so lidos e/ou escritos em sequncia, do incio
ao final do arquivo. definido um ponteiro de acesso para cada arquivo
aberto por uma aplicao que inicialmente aponta para a primeira posio
do arquivo. A cada leitura ou escrita, esse ponteiro incrementado e passa
a indicar a posio da prxima leitura ou escrita. Quando esse ponteiro
atinge o final do arquivo, as leituras no so mais possveis, entretanto,
as novas escritas so. A chegada do ponteiro ao final do arquivo
normalmente sinalizada ao processo por meio de um flag de fim de arquivo
(EoF EndofFile). Arquivos sequenciais eram eficientes quando o meio de
armazenamento era a fita magntica.
Acesso direto (ou aleatrio): possvel indicar a posio no arquivo onde
cada leitura ou escrita deve acontecer sem a necessidade de um ponteiro.
Por isso, caso se conhea previamente a posio de um determinado dado no
arquivo, no preciso percorrlo sequencialmente at encontrlo. Esse tipo
de acesso importante para gerenciadores de bancos de dados e aplicaes
com a mesma caracterstica, que precisam acessar rapidamente as posies do
arquivo correspondentes aos registros desejados em uma operao. Na prtica,
a maioria dos sistemas operacionais usa o acesso sequencial como modo bsico
de operao, mas oferece operaes para mudar a posio do ponteiro do
arquivo caso necessrio, o que permite ento o acesso direto a qualquer registro
do arquivo. No Windows e Unix usada uma operao especial chamada seek
que fornecida para estabelecer a posio atual. Aps a operao seek, o arquivo
pode ser lido sequencialmente a partir de sua posio atual.
Acesso indexado: um mtodo de acesso mais sofisticado, que tem como
princpio o acesso direto, tambm conhecido como acesso indexado ou
acesso por chave. A estrutura interna do arquivo pode ser vista como um
conjunto de pares chave/valor que deve possuir uma rea de ndice onde
existam ponteiros para os diversos registros, permitindo que sempre que uma
aplicao desejar acessar um registro, ento dever ser especificado uma
chave por meio da qual o sistema pesquisar o ponteiro correspondente na
rea de ndice e, portanto, realizado um acesso direto ao registro desejado.
O ncleo do sistema operacional implanta os mecanismos de acesso e
indexao do arquivo, o armazenamento e a busca de dados nesse tipo de
arquivo tipicamente muito rpido e em aplicaes mais simples dispensa
o uso de bancos de dados.7
Disponvel em: <http://www.scribd.com/doc/12385571/SistemasOperacionaisGerenciadeArquivos>. Acesso
em: 8 jun. 2011.
7

76

FUNDAMENTOS DE SISTEMAS OPERACIONAIS


7.3 Compartilhamentos
Em um sistema multitarefas e em redes, frequentemente se tem arquivos
sendo acessados por mais de um processo ou por mais de um usurio.
O acesso simultneo a recursos compartilhados pode gerar condies
de disputa (race conditions), levando inconsistncia de dados e outros
problemas. A possibilidade de escritas e leituras simultneas tem de ser
prevista e tratada com muito planejamento e controle de acesso desses
elementos compartilhados.8

7.3.1 Travas em arquivos


Por meio de uma ou mais travas (locks) aplicadas aos arquivos abertos,
tipicamente os sistemas operacionais oferecem algum mecanismo de
sincronizao para acesso a arquivos. A sincronizao pode ser feita
aplicandose a trava no arquivo inteiro ou somente em um trecho
especfico. Isso permitir que dois ou mais processos possam trabalhar em
partes distintas de um arquivo sem necessidade de sincronizao entre
eles. As travas oferecidas pelo sistema operacional podem ser obrigatrias
(mandatory locks) ou recomendadas (advisory locks).
Travas obrigatrias: so impostas pelo ncleo do sistema operacional
de forma compulsria, de modo que se um processo obtiver a trava do
arquivo, ento outros processos que solicitarem acesso ao arquivo sero
suspensos at que a respectiva trava seja liberada.
Travas recomendadas: no so impostas pelo ncleo do sistema
operacional. Portanto, um processo pode acessar um arquivo mesmo
sem ter sua trava e caso sejam usadas travas recomendadas, fica a cargo
de o programador implantar em suas aplicaes os controles de trava
necessrios para impedir acessos conflitantes aos arquivos.
As travas sobre arquivos tambm podem ser exclusivas ou compartilhadas.
Trava exclusiva: tambm chamada trava de escrita, garante acesso
exclusivo ao arquivo, portanto, enquanto uma trava exclusiva estiver ativa,
nenhum outro processo poder obter uma trava sobre aquele arquivo.
Trava compartilhada (ou trava de leitura): impede outros processos
de criar travas exclusivas sobre o arquivo, mas permite a existncia de
outras travas compartilhadas.
Disponvel em: <http://www.scribd.com/doc/12385571/SistemasOperacionaisGerenciadeArquivos>. Acesso
em: 8 jun. 2011.
8

77

Unidade IV
Em conjunto, as travas exclusivas e compartilhadas implementam um
modelo de sincronizao leitores/escritores, no qual os leitores acessam
arquivos, usando travas compartilhadas e os escritores o fazem, usando
travas exclusivas.
Geralmente, as travas de arquivos so atribudas a processos. Dessa forma,
um processo s pode possuir um tipo de trava sobre um mesmo arquivo e
todas as travas so liberadas quando o processo fecha o arquivo ou finaliza
sua execuo. No sistema operacional Unix, a manipulao de travas em
arquivos feita por meio das chamadas de sistema flock e fcntl.
Esse sistema oferece por default travas recomendadas exclusivas ou
compartilhadas sobre arquivos ou trechos de arquivos. Os sistemas Windows
oferecem por default travas obrigatrias sobre arquivos, que podem ser exclusivas
ou compartilhadas, ou travas recomendadas sobre trechos de arquivos.9

7.3.2 Semntica de trava de acesso


Quando um arquivo usado por um nico processo, o funcionamento das
operaes de leitura e escrita simples e claro. Dessa forma, quando um
dado escrito no arquivo, ele est prontamente disponvel para leitura. No
entanto, arquivos podem ser abertos por vrios processos simultaneamente
e os dados escritos por um processo podem no estar prontamente
disponveis aos demais processos que esto lendo aquele arquivo. Isso
ocorre porque as memrias secundrias em disco rgido so lentas em
comparao com a memria principal, levando os sistemas operacionais a
usar buffers intermedirios para acumular os dados que devero ser escritos/
manipulados, otimizando o acesso aos discos. A forma como os dados escritos
por um processo notada pelos demais processos que tambm abriram um
determinado arquivo chamada de semntica de compartilhamento.
Entre outras semnticas possveis, as mais usuais so:
Semntica Unix: toda modificao em um arquivo imediatamente visvel a
todos os processos que mantm o arquivo aberto, existindo tambm a possibilidade
de vrios processos compartilharem o mesmo ponteiro de posicionamento do
arquivo. Esse tipo de semntica comumente aplicada em sistemas de arquivos
locais, ou seja, para acesso a arquivos nos dispositivos locais.
Semntica de sesso: considera que cada processo usa um arquivo em
uma sesso, iniciando com a abertura do arquivo e terminando com o seu
Disponvel em: <http://www.scribd.com/doc/12385571/SistemasOperacionaisGerenciadeArquivos>. Acesso
em: 8 jun. 2011.
9

78

FUNDAMENTOS DE SISTEMAS OPERACIONAIS


fechamento. Modificaes em um arquivo feitas em uma sesso somente so
visveis na mesma sesso e pelas sesses que iniciarem depois do encerramento
da mesma, ou seja, depois que o processo fechar o arquivo. Sesses concorrentes
de acesso a um arquivo compartilhado podem ver contedos distintos para o
mesmo arquivo. Essa semntica normalmente aplicada a sistemas de arquivos
de rede, usados para acesso a arquivos em outros computadores.
Semntica imutvel: se um arquivo pode ser compartilhado por vrios
processos, ele marcado como imutvel. Dessa forma, seu contedo no
pode ser modificado. a forma mais trivial que garante a consistncia do
contedo do arquivo entre os processos que compartilham seu acesso,
portanto, usada em alguns sistemas de arquivos distribudos.10
7.4 Introduo a diretrios
Os diretrios ajudam a controlar e organizar os arquivos. Geralmente, os
sistemas de arquivos possuem diretrios ou pastas, que em muitos sistemas
tambm so arquivos.11

Nesta seo, discutiremos os diretrios, suas propriedades, organizaes e operaes.


7.4.1 Organizao de volumes
Diversos dispositivos de armazenamento esto disponveis no mercado, que podem ser discos rgidos,
discos ticos, memria flash etc.
Um disco rgido pode ser visto basicamente como um grande vetor de
blocos de bytes. Esses blocos de dados, tambm denominados setores,
tm tamanho fixo geralmente entre 512 e 4.096 bytes (4 K a 32 K) e so
numerados sequencialmente. As operaes de leitura e escrita de dados nos
discos rgidos so feitas bloco a bloco, por essa razo esses dispositivos so
chamados de dispositivos de blocos (block devices).
Em um computador no padro PC, o espao de armazenamento de cada
dispositivo dividido em uma pequena rea inicial de configurao e uma ou
mais parties, que podem ser vistas como espaos independentes. A rea de
configurao denominada MBR Master Boot Record, e contm uma tabela
de parties com informaes sobre o particionamento do dispositivo. Alm
disso, contm tambm um pequeno cdigo executvel, usado no processo de
inicializao do sistema operacional. No incio de cada partio geralmente h
um bloco reservado, utilizado para a descrio do contedo daquela partio
Disponvel em: <http://www.scribd.com/doc/12385571/SistemasOperacionaisGerenciadeArquivos>. Acesso
em: 8 jun. 2011.
11
Disponvel em: <http://www.ufpi.br/subsiteFiles/eml/arquivos/files/SO/SO_Livro.pdf>. Acesso em: 8 jun. 2011.
10

79

Unidade IV
e para armazenar o cdigo de lanamento do sistema operacional, se for uma
partio inicializvel (bootable partition). Esse bloco reservado denominado
bloco de inicializao ou VBR Volume Boot Record. O restante dos blocos da
partio est disponvel para o armazenamento de arquivos.
Disco total
Tabela de partio

Parties do disco

MBR

Bloco de
inicializao

Superbloco

Gerenciamento
de espao livre I-Nodes

Diretrio
raiz

Arquivos e diretrios

Figura 41 Exemplo de organizao para um sistema de arquivos

A Figura 41 ilustra a organizao bsica do espao de armazenamento em


um dispositivo de blocos tpico: um disco rgido. Cada partio deve ser
formatada, ou seja, estruturada para conter um sistema de arquivos, que
pode conter arquivos, diretrio, atalhos e outras entradas. Cada dispositivo
ou partio devidamente preparada e formatada para receber um sistema
de arquivos designado como um volume.12

7.4.2 Diretrios
O sistema organiza logicamente os diversos arquivos contidos em um disco
numa estrutura denominada diretrios. O diretrio uma estrutura de
dados que contm entradas associadas aos arquivos, na qual cada entrada
armazena informaes como localizao fsica, nome e demais atributos.13
Embora o sistema operacional possa tratar com facilidade da enorme quantia
de arquivos existentes em um sistema de arquivos, essa tarefa est bem
distante de ser trivial para os usurios. Identificar e localizar um arquivo
especfico em meio a milhes de outros arquivos de forma rpida e direta
pode ser o mesmo que procurar uma agulha num palheiro.
Para permitir a organizao de arquivos dentro de uma partio, so usados
diretrios. Um diretrio, tambm chamado de pasta (folder), representa
Disponvel em: <http://www.scribd.com/doc/12385571/SistemasOperacionaisGerenciadeArquivos>. Acesso
em: 8 jun. 2011.
13
Disponvel em: <http://www.scribd.com/doc/5566097/10GERENCIADOSISTEMADEARQUIVOS>. Acesso em:
8 jun. 2011.
12

80

FUNDAMENTOS DE SISTEMAS OPERACIONAIS


um continer de informaes, que pode conter arquivos ou mesmo outros
diretrios. Da mesma forma que os arquivos, diretrios tm nome e atributos,
que so usados na localizao e acesso aos arquivos neles contidos.
Cada espao de armazenamento possui ao menos um diretrio principal,
denominado diretrio raiz (root directory). Em sistemas de arquivos mais
antigos e simples, o diretrio raiz de um volume estava definido em seus
blocos de inicializao, normalmente reservados para informaes de
gerncia. Todavia, como o nmero de blocos reservados era pequeno e fixo,
o nmero de entradas no diretrio raiz era limitado. Nos sistemas mais
recentes, um registro especfico dentro dos blocos de inicializao aponta
para a posio do diretrio raiz dentro do sistema de arquivos, permitindo
que este tenha um nmero muito maior de entradas.
O uso de diretrios permite construir uma estrutura hierrquica (em
rvore) de armazenamento dentro de um volume, sobre a qual os arquivos
so distribudos. A Figura 42 representa uma parte da rvore de diretrios
tpica de um sistema Linux, cuja estrutura definida nas normas Filesystem
Hierarchy.14

bin
etc
home
lib
proc
root
tmp
usr
var

bin
lib
include

opt
sgml
skel
X11

X11
X11
asm
linux
g++

X11R6
bin
include
lib
local
man
share
src
tmp
adm
cache
cron
lib
local
log
mail
run
spoll

X11
gcc-lib
groff
uucp
bin
doc
etc
include
lib
man
share
at
cron
lpd
mail
news
smail

doc
games
info
locale
man
zoneinfo

Figura 42 Estrutura de diretrios tpica de um sistema Linux

Disponvel em: <http://www.scribd.com/doc/12385571/SistemasOperacionaisGerenciadeArquivos>.


Acesso em: 8 jun. 2011.
14

81

Unidade IV
7.4.3 Sistema de diretrios em nvel nico
O nvel mais simples de uma estrutura de diretrios chamado de nvel nico
(singlelevel directory). Nessa estrutura, existe somente um nico diretrio
contendo todos os arquivos do disco. Esse modelo bastante limitado, j
que no permite que usurios criem arquivos com o mesmo nome, o que
ocasionaria um conflito no acesso aos arquivos.15

O primeiro supercomputador da histria foi um CDC 6600 e usava um sistema de diretrio nico. A
Figura 43 ilustra esse sistema.
Diretrio raiz
Arquivo 1
Arquivo 2
Arquivo 3
Arquivo 4
Arquivo 5
Figura 43 Sistema de diretrio em nvel nico contendo cinco arquivos

As vantagens desse esquema de diretrio em nvel nico so a simplicidade e a capacidade de


localizar os arquivos rapidamente tendo em vista que todos os arquivos esto no mesmo local e no
podemos ter nomes repetidos.
7.4.4 Sistema de diretrios hierrquico
O sistema de nvel nico bastante limitado demandando uma evoluo
do modelo, ento foi implantada uma estrutura na qual para cada usurio
existiria um diretrio particular denominado Diretrio de Arquivo do Usurio
(UDF User File Directory) conhecido como sistema de diretrio em dois
nveis.
Pela perspectiva do usurio, a organizao dos seus arquivos em um nico
diretrio no permite uma organizao adequada. A extenso do modelo
de dois nveis para um de mltiplos nveis permitiu que os arquivos fossem
logicamente melhor organizados. Esse novo modelo, chamado estrutura de
diretrios em rvore (treestructured directory), adotado pela maioria dos
sistemas.16

Com essa estratgia, os usurios do sistema com permisso adequada podem criar tantos diretrios
quanto necessrio para agrupar os arquivos de uma maneira natural. Nos servidores em redes, cada
usurio geralmente tem o seu diretrio raiz para criar a sua prpria hierarquia.
15
16

82

Disponvel em: <http://www.scribd.com/doc/5566097/10GERENCIADOSISTEMADEARQUIVOS>.


Idem.

FUNDAMENTOS DE SISTEMAS OPERACIONAIS


Diretrio raiz

usuario1

propostas
propostaV1
propostaV2
propostaV3
propostaV4

usuario2
usuario3
relatorios
Figura 44 Sistema hierrquico de diretrios

A estratgia mostrada na Figura 44, em que cada diretrio, com nomes de usuario1, usuario2
e usuario3 contidos na raiz, pertence a um usurio diferente. O usurio um criou um subdiretrio
para propostas e quatro arquivos de propostas com verses diferentes; o usurio dois no criou
nada at o momento e o usurio trs criou um diretrio para relatrios, porm no criou nenhum
arquivo.
A possibilidade de cada usurio criar um nmero arbitrrio de subdiretrios proporciona uma
ferramenta poderosa de estruturao dos trabalhos de cada usurio. A grande maioria dos sistemas de
arquivos modernos organizada dessa forma.
7.5 Gerenciamento e otimizao de sistemas de arquivos

Da mesma forma que qualquer outro componente do sistema, existe um abismo entre colocar um
sistema de arquivos para funcionar e fazlos funcionar da forma eficaz ou pelo menos mais eficiente
possvel. Nas sees a seguir, sero detalhadas algumas questes relacionadas ao gerenciamento de
discos.
7.5.1 Gerenciamento do espao em disco
Geralmente, os arquivos so armazenados em discos rgidos, fazendo com que os projetistas de
sistemas despendam boa parte de suas energias no gerenciamento de espao em disco. Existem duas
estratgias gerais para armazenar um arquivo e n bytes:
1. Alocao de n bytes consecutivos de espao em disco.
2. Diviso em vrios blocos no necessariamente juntos.
Na primeira opo, temos um problema que ocorre quando o arquivo cresce, portanto, na maioria
dos casos, ele dever ser movido para outra parte do disco. Com isso, quase a totalidade dos sistemas de
arquivos dividem os arquivos em blocos de tamanho fixo e que no necessitam ser adjacentes.
83

Unidade IV
Tamanho do bloco
Nessa segunda estratgia, temos uma questo fundamental que saber qual dever ser o tamanho
de cada bloco. Pelo fato de os discos serem organizados por setores, trilhas e cilindros, temos que ter em
mente que a deciso errada pode comprometer muito a capacidade do ambiente. Uma grande unidade
de alocao, como um cilindro inteiro, quer dizer que mesmo um arquivo de 1 byte ocupar um cilindro
todo, desperdiando um espao significativo do disco. Por outro lado, um tamanho muito pequeno de
bloco quer dizer que os arquivos ocuparo mais de um bloco e, com isso, demandaro mltiplas buscas
e atrasos de rotao para serem lidos, reduzindo significativamente o desempenho do sistema.
Monitorao dos blocos livres
Aps definido o tamanho do bloco, o prximo requerimento monitorar os blocos livres. So usados
trs mtodos para monitorao dos blocos livres:
1. Lista de blocos livres representada na Figura 45a usase uma lista encadeada de blocos com
cada bloco contendo tantos blocos livres quanto couberem nele.
A abordagem de lista de blocos livres pode ser implantada de vrias formas.
Na forma mais simples, cada bloco livre contm um ponteiro para o prximo
bloco livre do disco. Apesar de simples, essa abordagem pouco eficiente
por exigir um acesso a disco para cada bloco livre requisitado.17

importante destacar que blocos livres so blocos que no esto em branco. Ficam contidas, nesses
blocos livres, informaes que o sistema operacional armazena para mapear o espao livre. Se pegarmos
como base que cada bloco possui um tamanho de 1 KB e um ponteiro tem tamanho de 32 bits, ento
em um bloco livre temos 255 ponteiros para os prximos blocos livres do disco, sendo que uma entrada
reservada ao ponteiro para o bloco seguinte.
Essa soluo leva em considerao que blocos contguos so, geralmente,
alocados ou liberados simultaneamente. Dessa forma, o disco determinado
como um conjunto de segmentos de blocos livres. Esse conceito define que
possvel manter uma tabela com o endereo do primeiro bloco de cada
segmento e o nmero de blocos livres contguos que se seguem. Essa tcnica
de gerncia de espao livre conhecida como tabela de blocos livres.
2. Mapa de bits representado na Figura 45b Cada entrada na tabela
associada a um bloco do disco representado por um bit, podendo assumir
valor igual a 0 (indicando bloco livre) ou 1 (indicando bloco alocado). O
principal problema o excessivo gasto de memria, j que para cada
bloco do disco deve existir uma entrada na tabela.18
Disponvel em: <http://www.scribd.com/doc/12385571/SistemasOperacionaisGerenciadeArquivos>. Acesso
em: 8 jun. 2011.
18
Disponvel em: <http://www.scribd.com/doc/5566097/10GERENCIADOSISTEMADEARQUIVOS>. Acesso em: 8 jun. 2011.
17

84

FUNDAMENTOS DE SISTEMAS OPERACIONAIS


Blocos de disco livres: 16, 17, 18
42
136
210
97
41
63
21
48
262

230
162
612
342
214
160
664
216
320

86
234
897
422
140
223
223
160
126

1001101101101100
0110110111110111
1010110110110110
0110110110111011
1110111011101111
1101101010001111
0000111011010111
1011101101101111
1100100011101111

310
516

180
482

142
141

0111011101110111
1101111101110111

4 KB de blocos de disco pode


suportar 256 nmeros de
blocos de disco

Mapa de bit
a.

b.

Figura 45a Lista de blocos livres; Figura 45b Mapa de bits

7.5.2 Cotas de utilizao de disco


No intuito de conter o uso exacerbado do espao dos discos rgidos, os sistemas operacionais
multiusurios oferecem um mecanismo para impor cotas de utilizao de disco.
Essa importante ferramenta permite que os administradores de redes no sejam surpreendidos por
falta de disco de forma abrupta. O sistema de cota pode ser implantado para avisar ao administrador
quando um threshold19 atingido abruptamente. Geralmente, quando no h uma poltica bem definida
no que diz respeito ao uso dos recursos computacionais, os usurios podem gravar vrios tipos de arquivos
que no so necessariamente pertinentes ao trabalho corporativo que deveria estar desenvolvendo.
O servio de cota pode ser configurado para somente avisar o administrador de que um determinado
usurio, ou mltiplos, est atingindo ou j ultrapassou a cota estabelecida, entretanto, nesse caso,
nenhuma ao automtica negando novos consumos ser tomada. A outra forma definindo no
somente o aviso, mas tambm a ao automtica de proibio do consumo de espao em disco superior
cota determinada previamente. Na Figura 46, demonstrada a tela de configurao de cota no
Windows Vista.
Observao
Note que a configurao estabelecida foi de 1.000 kbytes, porm,
dependendo da quantidade total de disco disponvel e necessrio,
poderamos estar configurando mltiplos mbytes, gbytes, pbytes ou at
mesmo ebytes. Acontece da mesma forma para o controle de quando o
sistema receber uma nova entrada de log.
19

Threshold: ponto em que um estmulo exatamente suficiente para ser percebido ou produzir uma resposta.

85

Unidade IV

Figura 46 Exemplo da tela de configurao de cota no Windows Vista

Funcionamento de cota
Em uma tabela alocada na memria principal esto contidos os atributos de todos os arquivos
que esto abertos no sistema.
Toda vez que um usurio abre um arquivo, o atributo de determinado proprietrio
do arquivo passa a fazer parte dessa tabela de controle dos arquivos abertos versus
proprietrio.
Qualquer acrscimo no tamanho do arquivo ser proporcionalmente decrescido quantidade
restante de cota disponvel para o usurio do sistema.
Uma segunda tabela registra as informaes de cota para cada usurio que tenha algum arquivo
aberto.
86

FUNDAMENTOS DE SISTEMAS OPERACIONAIS


Sempre que um bloco adicionado a um arquivo, o nmero total de blocos incrementado no
controle de cotas do usurio, e os limites flexveis e estritos so checados.
O limite flexvel permite que um usurio exceda o treashold previamente estabelecido, entretanto o
usurio s ter essa facilidade durante uma sesso. Por exemplo, se aps editar uma apresentao
em PowerPoint adicionando vrias figuras e textos, o usurio tentar salvla, o limite flexvel ir
deixar que o usurio grave seu arquivo sem risco de perdlo. Porm, se aps fechar os arquivos
abertos, o usurio tentar fazer isso novamente, uma mensagem de erro ir aparecer informando
que o limite de espao no permite essa operao.
Os limites estritos nunca so excedidos, ou seja, se o usurio acabou de abrir o gerenciador de
arquivos e nota que h 2 mbytes ainda disponveis e mesmo assim tenta gravar um arquivo de 5
mbytes, ento a operao no ser aceita.
7.5.3 Cpia de segurana
No ambiente computacional, o disco rgido o ponto mais crtico que merece total suporte e pleno
planejamento para que nada de errado acontea com ele. Numa escala de prioridades ou de preferncias,
se assim podese dizer, prefervel que todos os componentes de um computador sejam danificados por
alguma catstrofe contanto que o disco rgido mantenhase ntegro.
O fato que no o disco o principal protagonista dessa histria, e sim os dados contidos nele.
Diversos casos de problemas com sistemas so reportados diariamente, ora por desastre natural
(chuva, incndio, enchente, terremotos etc.), ora por descuido com o sistema de aterramento, que, por
consequncia ocasiona a queima dos equipamentos.
Imagine que os dados contidos em um determinado disco rgido so referentes ao banco de dados que
servir de base para bilhetagem dos servios prestados por uma empresa de telefonia e, abruptamente, algo
acontece resultando na danificao total do disco rgido. Ou uma instituio financeira que possui todos os
dados de movimentaes, valores em conta, agenda de pagamentos e dezenas de outros dados armazenados
em um servidor que foi danificado a tal ponto que o disco rgido encontrase totalmente inutilizvel.
Com base nos hipotticos cenrios apresentados anteriormente, necessrio que alguma tecnologia,
prtica ou at mesmo processo seja implantado, objetivando a guarda dos dados de forma segura em
algum outro local que no dentro do servidor em questo. Isso ser necessrio por dois principais
motivadores ou causas dos possveis problemas previamente apresentados:
1. Recuperao em caso de um desastre (natural ou no).
2. Recuperao quando feito algum procedimento errado (entendese por procedimento errado
geralmente algo relacionado a erro humano).
No primeiro caso, o objetivo recuperar o ambiente aps um desastre natural como enchente,
incndio, terremoto ou outro.
87

Unidade IV
O segundo caso geralmente acontece devido a erro do usurio, que apaga ou altera o contedo de
um ou mais arquivos. H tambm alguns casos nos quais uma aplicao, geralmente desenvolvida in
house,20 com algum tipo de erro no cdigo, de alguma forma altera os arquivos inadequadamente.
Portanto, para resolver esses casos, necessrio possuir uma boa poltica de segurana que seja
baseada em normas como a ISO 27001. Devemos ter a disciplina e o entendimento da importncia do
backup21 no ambiente computacional. O backup todo e qualquer processo que gere uma cpia de
segurana que ir possibilitar futuras restauraes de ambiente em caso de acidente ou no. Conforme
normas do Banco Central brasileiro, todas as instituies financeiras, desde corretoras at grandes
bancos, devem guardar historicamente os dados de aplicaes por anos. Ou seja, se o auditor do Banco
Central ou de alguma outra empresa de auditoria for realizar uma anlise no ambiente por exemplo:
os auditores que esto alinhados com as exigncias do Bacen , ele pode pedir que seja restaurada
uma determinada informao de 12 de agosto de 2005 ou outra data aleatoriamente s para averiguar
se o sistema de cpia de segurana (backup) e a restaurao da cpia de segurana (restore) esto
funcionando adequadamente.
Tipicamente, o backup efetivado em fitas magnticas. Existem no mercado vrias tecnologias de
unidades, fitas e softwares de backup que variam entre capacidade de armazenamento, velocidade de
transferncia dos dados, funcionalidades (como criptografia), entre outros. O mais importante ter o
backup em funcionamento e sempre sendo revisado para garantir que tudo est dentro do planejado.
Para mitigar problemas de backup, implementado para cada servidor, ou para cada aplicao, um
processo composto de documentos denominados survey.22 Esse processo coleta informaes referentes
ao tempo de reteno do backup, a quais arquivos devem fazer parte da tarefa que ir executar a
cpia de segurana, a qual periodicidade se diria, semanal, mensal ou anual , se o backup ser
incremental, full, diferencial, a qual software e parmetros sero utilizados para fazer o backup, entre
outros pontos que iro definir para cada ambiente as caractersticas necessrias para que, no futuro,
quando um acidente ocorrer, a restaurao da informao seja o mais transparente possvel.
Uma estrutura de backup desse maquinrio, pessoas e produtos, pode custar alguns milhes,
principalmente para grandes corporaes que possuem diversos servidores e, muitas vezes, so
descentralizados entre prdios ou at mesmo entre pases. Outro ponto crtico que o backup leva
muito tempo e ocupa muito espao; portanto, operacionalizlo de maneira eficaz muito importante.
Essas consideraes destacam alguns pontos importantes:
1. Devemos fazer cpia de segurana somente dos diretrios especficos e de tudo o que est contido
neles. Portanto, cpia de binrios (programas executveis que residem em uma parte limitada da
rvore do sistema de arquivos) e no devem ser copiadas para fita.
In house: termo em ingls para em casa aplicado na rea de informtica para qualquer produto ou servio
feito na prpria empresa e por profissionais prprios ou contratados.
21
Backup: cpia de um arquivo ou conjunto de dados mantidos por questo de segurana contra erros no original
ou cpia principal.
22
Survey: estudo de pesquisa do ambiente que formula perguntas a fim de receber informao sobre atitudes,
motivos e opinies. Esses estudos podem ser feitos frente a frente, pelo telefone ou pelo correio eletrnico.
20

88

FUNDAMENTOS DE SISTEMAS OPERACIONAIS


2. Devemos sempre iniciar o primeiro backup com uma cpia full, que compreende a cpia total e
integral dos diretrios e arquivos que fazem parte da tarefa de cpia de segurana (job de backup),
porm, posteriormente, devemos intercalar entre full e incremental. Isso porque no faz sentido
copiarmos diariamente os arquivos que no foram mudados deixamos o backup completo (full)
para os finais de semana e os incrementais para os dirios. Nesse procedimento, durante a semana
as janelas para atividades operacionais normalmente so curtas (geralmente menos de 8 horas
por noite durante os dias da semana) em comparao com o final de semana (que pode ser de
mais de 24 horas, em alguns casos das 18 h da sextafeira at 6 h da segundafeira). Embora esse
processo minimize o tempo de cpia, esse esquema torna a recuperao mais trabalhosa. Isso se
deve ao fato de que se o problema acontecer por exemplo, na quartafeira , ento deveremos
restaurar o jogo de fitas do ltimo final de semana, pois esse que contm todos os arquivos,
e, posteriormente, restaurar todas as fitas contendo os dados incrementais. Esquemas de cpia
incremental mais sofisticado ajudam a facilitar a restaurao das cpias de segurana.
3. Como o volume de dados copiados geralmente muito grande, pode ser necessrio comprimir os
dados antes de escrevlos na fita. Esse processo, na maioria dos casos, ir economizar tempo e
dinheiro. Porm, para muitos algoritmos de compresso, se porventura acontecer algum problema,
mesmo que pequeno, na fita de backup, podese perder o algoritmo de descompresso, tornandose
impossvel ler um arquivo por completo, uma parte da fita que contm vrios arquivos, ou at
mesmo a fita por completo.
4. Se durante o processo de backup o sistema de arquivos estiver sendo utilizado para novas cpias,
adio de arquivos, alterao e remoo, ento poder acarretar numa cpia inconsistente.
5. A cpia que est sendo feita para a fita deve ser criteriosamente bem manipulada e transportada
para lugares seguros. O fato de um administrador de sistema criar uma cpia e deixar a fita sobre
sua mesa implica em vrias vulnerabilidades com alto ndice de ser um incidente de segurana.
Entre outros, so destacados os trs mais crticos:
a) A fita pode ser subtrada por algum no autorizado e, posteriormente, o dado com alto nvel de
confidencialidade ser indevidamente publicado ou manipulado.
b) A fita fora de caixas de transporte apropriadas para essa finalidade pode sofrer srios danos causados pela
intemprie do local que normalmente no uma estrutura adequada como a de locais de guarda de fitas.
c) A fita pode ser esquecida nesse local, que geralmente muito prximo fisicamente do servidor onde
esto os dados originais, e se por alguma catstrofe, o disco rgido for impactado negativamente,
pela proximidade fsica dos ambientes, praticamente zero a probabilidade de termos a cpia
ntegra para restaurao.
Tipos de processo para copiar os dados de um disco para fita
Existem duas estratgias para copiar os dados do disco rgido para fita magntica, sendo cpia
fsica ou cpia lgica.
89

Unidade IV
A cpia fsica, tambm conhecida como dump fsico, copia todos os blocos do disco para
fita, iniciando no bloco zero e terminando no ltimo bloco. As principais vantagens da
cpia fsica so a simplicidade e a alta taxa de transferncia. As desvantagens so a falta
de capacidade de saltar diretrios especficos, permitir cpias incrementais e restaurar
arquivos individuais.
A cpia lgica, tambm conhecida como dump lgico, realizada baseada num diretrio ou vrios
que so especificados. Em uma cpia lgica, a fita contm uma srie de diretrios e arquivos
meticulosamente identificados, possibilitando, assim, a restaurao de um arquivo ou diretrio
especfico.
7.6 Tipos de sistemas de arquivos

Existem diversos sistemas de arquivos, tais como FAT, FAT32, NTFS, Ext3, Ext4, JFS, JFFS, JFFS2, LogFS,
Reiser4, ReiserFS e XFS, ISO9660 etc. Os sistemas de arquivos so desenvolvidos, muitas vezes, por motivos
comerciais, outras, por alinhamento tecnolgico com o propsito do hardware ou at mesmo motivados
por interoperabilidade entre sistemas. Nesta prxima seo, estudaremos alguns mais relevantes por
serem os mais populares.
7.6.1 Sistema de arquivos ISO 9660
O sistema de arquivos ISO 9660 um padro internacional e mais usado em tecnologia de CDROMs.
A quase totalidade de CDROM no mercado atual compatvel com esse padro.
O objetivo principal do padro ISO 9660 era tornar possvel que todo CDROM fosse legvel por
todos os computadores, independentemente da ordem em que os bytes so armazenados e qual sistema
operacional esteja carregado no hardware.
Tecnicamente, uma grande diferena dos discos rgidos para os CDROMs que estes no possuem
cilindros concntricos, mas sim uma nica espiral contnua que contm bits em uma sequncia
linear.
Lembrete
Mesmo estruturado em uma espiral contnua, possvel buscar o
CDROM transversalmente s espirais.
Em uma espiral do CDROM, os bits so agrupados em blocos lgicos de 2.352 bytes. Tirando
a parte referente a prembulos, correo de erro ou outras finalidades estruturais, a parte que
realmente ser usada para gravao de dados contm 2.048 bytes, ou seja, 16 kbits. Uma das
aplicabilidades desse tipo de mdia a gravao de msica, o que fica mais fcil usarmos o
tempo como unidade de medida. Portanto, a posio de um bloco representada em minutos ou
segundos.
90

FUNDAMENTOS DE SISTEMAS OPERACIONAIS

Lembrete
A converso direta em um nmero linear de bloco de 1 segundo para
cada 75 blocos.
A estrutura do CDROM segue a sequncia descrita abaixo:
16 blocos iniciais (no definido pelo padro); os fabricantes de CDROM podem oferecer um
programa de inicializao que permita que o computador seja inicializado pelo CDROM ou outra
finalidade definida pelo fabricante.
Em seguida, vem um bloco descritor de volume primrio, contendo algumas informaes gerais sobre
o CDROM, como 32 bytes para o identificador do sistema, 32 bytes para o identificador de volume,
128 bytes para o identificador do editor e 128 bytes para o identificador para o preparador dos dados.
Alm desses, o descritor de volume primrio contm o nome de trs arquivos que podem ter uma
notificao de direitos autorais, um resumo e informaes bibliogrficas. O tamanho de blocos lgicos,
o nmero de blocos do CDROM, as datas de criao e de validade do CDROM e a entrada de diretrio
para o diretrio raiz (indicao do bloco inicial) tambm fazem parte do descritor de volume primrio.
O diretrio raiz, bem como os demais, formado por um nmero varivel de entradas, sendo que
a ltima contm um bit que ir marcar como entrada final.
As entradas de diretrios tm tamanho varivel e cada uma pode ser formada de dez a doze
campos parte em ASCII e outros numricos binrios.
Os campos binrios dos diretrios so codificados duas vezes: uma com os bits menos significativos
nos primeiros bytes (littleendian), que esto nos computadores padro PC, e outra com os bits
mais significativos nos primeiros bytes (bigendian), sendo estes usados por SPARCS.
O formato de uma entrada de diretrio ISO 9660 ilustrado na Figura 47, sendo:
Os dois primeiros bytes para tamanho da entrada de diretrio e tamanho do registro de atributos
estendidos.
O campo bloco inicial com 8 bytes j o bloco inicial do arquivo.
A localizao de um arquivo totalmente especificada pelo bloco inicial e pelo tamanho que so
os 8 bytes seguintes.
O campo data e hora composto pelos prximos 7 bytes.
O campo flag seguinte de 1 byte usado para ocultar a entrada nas listagens.
91

Unidade IV
O prximo campo de 2 bytes, denominado intervalo, no usado na verso mais simples do ISO
9660.
O campo CD# com 4 bytes serve para indicar em qual CDROM um arquivo est localizado.
O campo L de 1 byte mostra o tamanho do arquivo.
O campo nome do arquivo vem em seguida, com a estrutura com o nome base, um ponto,
extenso, um ponto e vrgula e um nmero binrio de verso (o nome do arquivo pode ter at oito
caracteres, a extenso, at trs. Isso se deve necessidade de compatibilidade, como o MSDOS
que segue esse padro).
O campo preenchimento ser usado para alinhar os campos numricos das entradas subsequentes
em limites de 2 bytes.
O campo uso do sistema usado por diferentes sistemas de diferentes maneiras.
flags

Tamanho do registro de atributos estendidos

Localizao
do arquivo

Tamanho da entrada de diretrio

Tamanho
do arquivo

Data e
hora

Preenchimento

CD#

intervalo

Nome
do arquivo

Uso do sistema

Figura 47 ISO 9660 Entrada de diretrio

Extenso Rock Ridge


A extenso denominada Rock Ridge foi elaborada pela comunidade Unix, objetivando a representao
de sistemas de arquivos Unix em CDROMs. O campo uso do sistema usado pelas extenses para
viabilizar que qualquer computador leia o Rock Ridge. Se um sistema especfico no reconhece a extenso
Rock Ridge, ento esse ignorar a extenso e reconhecer um CDROM como padro bsico ISO 9660.
As extenses so divididas entre os seguintes campos:
PX Atributos POIX: padro Unix para bits de permisso de rwxrwxrwx (r = read, w = write e x =
execute ler, escrever e executar).
PN Nmeros de dispositivo principal e secundrio: para permitir que dispositivos sejam
representados em CDROM.
SL Ligao simblica: permitindo que o arquivo de um sistema de arquivos refirase ao outro
arquivo de um sistema de arquivos distinto.
92

FUNDAMENTOS DE SISTEMAS OPERACIONAIS


NM Nome alternativo: permite que um segundo nome seja associado ao arquivo.
CL Localizao do filho.
Localizao do pai.
Realocao: os dois campos anteriores, em conjunto com este, so usados para evitar o limite de
oito diretrios que podem ser aninhados conforme ISO 9660.
TF Estampa de tempo (timestamp) contm trs estampas: o instante que o arquivo foi criado,
o instante que o arquivo foi modificado pela ltima vez e a estampa com o instante que ocorreu
o ltimo acesso.
Extenso Joliet
Da mesma forma que o sistema Rock Bridge foi projetado para permitir que o sistema de arquivos
do Unix fosse copiado para o CDROM, a Microsoft desenvolveu o sistema Joliet para suportar o sistema
de arquivos do Windows. Quase que na totalidade os computadores com sistema operacional Windows
que possuem CDROM suportam Joliet.
As principais extenses oferecidas pelo Joliet so:
Nomes de arquivos mais longos com 64 caracteres. O ISO 9660 pode at oito caracteres, a extenso,
at trs.
Conjunto de caracteres unicode: importante para locais onde no se usa o alfabeto latino. Exemplo:
Japo, China e outros.
Estrutura de diretrios mais profunda que oito nveis: as rvores de diretrios podem ser
estruturadas em quantos nveis de profundidade forem necessrios.
Nomes de diretrios com extenso: mesmo com essa opo disponvel, atualmente no vem sendo
usada.
7.6.2 Sistema de arquivo do FAT
Os primeiros computadores pessoais da IBM j utilizavam o sistema de arquivos MSDOS e por anos
foi o mais usado mundialmente. At o Windows 98 e o ME, a Microsoft manteve o mesmo sistema de
arquivos. O Windows 2000, XP e o Vista suportam a esse sistema, porm, ele no mais padro nos
equipamentos Personal Computer atuais.
O sistema de arquivos MSDOS possui extenso FAT32, que vem sendo usada amplamente em mquinas
fotogrficas, MP3 e outros. Atualmente, o sistema de arquivos MSDOS e suas extenses so mais usados do
que em qualquer outra poca. O sistema de arquivo usado pela Microsoft atualmente o NTFS.
93

Unidade IV
O processo de leitura de um arquivo no sistema de arquivos MSDOS executado conforme sequncia
descrita a seguir:
Um programa faz uma chamada de sistema open (abrir).
A chamada de sistema open determina o path (caminho) at o diretrio de trabalho.
O caminho procurado, item por item, at que o diretrio final seja encontrado e carregado na
memria.
O caminho ento ser buscado para o arquivo a ser aberto.
No formato de uma entrada de diretrio MSDOS, os campos so de acordo com a sequncia
abaixo:
Nome do arquivo: nomes compostos de 32 bytes.
Atributos: usado para determinar se um arquivo somente para leitura, se precisa ser feita cpia
de segurana, se oculto ou se um arquivo de sistema.
Tempo: composto por 5 bits para determinar os segundos, 6 bits para os minutos e 5 bits para
horas. Para os dias existem trs outros campos secundrios com 5 bits para dia, 4 bits para ms e
6 bits para ano.
Tamanho: o de 32 bits usado para armazenar o tamanho do arquivo. Em teoria, os arquivos
podem ter at 4 GB, porm, outros fatores limitam o tamanho do arquivo em 2 GB ou menos.
Entrada de diretrios: com o tamanho de 10 bytes, porm no usado.
Existem trs verses para o sistema de arquivos FAT:
FAT12: usa blocos de 512 bytes, proporcionando um tamanho mximo de parties de 212
x 512 bytes. Com isso, o tamanho mximo de parties em disco era cerca de 2 MB e o
tamanho da tabela FAT na memria era de 4.096 entradas de 2 bytes cada propcio para
discos flexveis. Os discos rgidos demandaram algo mais elaborado, portanto a Microsoft
aprimorou o FAT12, preservando a estrutura da tabela, porm, permitindo tamanhos de
blocos adicionais de 1 KB, 2 KB e 4 KB, permitindo parties de 16 MB. Como o MSDOS
suportava quatro parties por disco, a nova verso do sistema de arquivos FAT12 era
compatvel com discos de at 64 MB.
FAT16: possua ponteiros de disco de 16 bits e permitiu tamanhos de blocos de 8 KB, 16 KB e 32
KB a tabela FAT16 ocupava constantemente 128 KB da memria principal. A maior partio de
disco suportada por um sistema de arquivos FAT16 de 2 GB (64 K com entradas de 32 KB cada).
O maior disco de 8 GB ocupando quatro parties de 2 GB cada.
94

FUNDAMENTOS DE SISTEMAS OPERACIONAIS


FAT32: introduzido a partir da segunda verso do Windows 95 com endereos de disco
de 28 bits. Em teoria, esse sistema de arquivos poderia conter 228 x 215 bytes, porm, na
prtica, era limitado em 2 TB (2.028 GB). Isso se deve ao fato de que internamente o
sistema de arquivos FAT32 monitora os tamanhos das parties em setores de 512 bytes,
com um nmero de 32 bits, portanto, 29 x 232 igual a 2 TB. Permite discos de 8 GB com
uma nica partio.
Anlise: comparativo entre o FAT16 versus o FAT32
Demonstraremos, na Figura 48, que para arquivos pequenos o FAT16 apresentar um grande
desperdcio do disco. No exemplo, estamos considerando uma partio de 2 GB (Figura 48a) e arquivo
de 4 KB.
Como foi detalhado anteriormente, um sistema de arquivo FAT16 tem de usar blocos de
32 KB (Figura 48b) para atender uma partio de 2 GB. Portanto, se gravarmos arquivos de
4 KB, cada bloco ter uma taxa de ocupao de somente 13%, ou seja, 87% do bloco ser
desperdiado.
Blocos de 32 KB
KB
Arquivo com 4 KB
a. Tamanho da partio

2 GB
b. Tamanho de cada bloco do FAT-16

4K
c. Endereos de blocos = 68644
2249326592 / 32768 = 68644
d. Problemas com blocos de 32K - FAT-16
porm 64 K = 65536, portanto em blocos de 32 K no possvel mapear todo disco de 2 GB
Figura 48 Anlise de uma partio FAT16 de 2 GB e arquivo de 4 KB

Outro ponto importante destacado na Figura 48c e 48d que a partio de 2 GB que teria 68.644
endereos possveis, porm com o mximo de 64 K (65.536) de endereos que o FAT16 suporta, ser
parcialmente desperdiada.
Na Figura 49, teremos o mesmo comparativo, porm, agora com FAT32 / blocos de 4 KB e manteremos
a partio de 2 GB com arquivo de 4 KB.

95

Unidade IV
Blocos de 4 KB

KB
Arquivo com 4 KB
a. Tamanho da partio

2 GB
b. Tamanho de cada bloco do FAT-16

4K
c. Endereos de blocos = 549152
2249326592 / 4096 = 549152
Figura 49 Anlise de uma partio FAT32 de 2 GB e arquivo de 4 KB

Usando blocos menores, h melhor aproveitamento do disco, conforme demonstrado anteriormente,


porm eleva o consumo de memria RAM (memria principal). Com bloco de 4 KB e uma partio de
2 GB, h 512 K blocos, portanto a FAT32 dever ter 512 K entradas na memria que ocupar 2 MB
de RAM.
A Tabela 1 ilustra as possveis combinaes entre as extenses do MSDOS:
Tamanho do
bloco (KB)

FAT-12 (MB)

0,5

128

16

256

512

16

1024

32

2048

FAT-16 (MB)

FAT-32 (TB)

Tabela 1 Tamanho mximo da partio versus diferentes tamanhos de blocos

Observao
No exemplo apresentado na Figura 48, usamos o tamanho de bloco de
32 KB e FAT16 com 2.048 MB = 2 GB.
7.6.3 Sistema de arquivos do ambiente Unix
Antes de falarmos do sistema de arquivos Unix, importante conhecermos sua origem para que
possamos entender como um sistema de arquivos pode ter, logo em sua primeira verso, funcionalidades
que so primordiais para ambientes multiusurios, por exemplo.
96

FUNDAMENTOS DE SISTEMAS OPERACIONAIS


O Multics (Multics ou Multiplexed Information and Computing Service) foi criado em 1964,
fomentado pelo projeto liderado pelo MIT (com Fernando Corbat), e a diviso de produtos para grandes
computadores da companhia General Electric e dos Laboratrios Bell de telefonia. O sistema Multics seria
implantado na plataforma GE 645 da GE. Uma viso geral da arquitetura desse sistema operacional tinha
como ambio estar alinhada com quase todos os computadores existentes, suprindo as necessidades
de computadores de grande porte, mesmo os que estariam frente do seu tempo.

Saiba mais
Para obter mais informaes sobre o Multics, acesse http://www.
multicians.org/fjcc1.html (site em ingls).
Mesmo no sendo bemsucedido, o Multics contribuiu muito para o desenvolvimento da computao,
devido as suas ideias inovadoras. Ele foi muito criticado na sua poca, contudo a histria provou que as
crticas negativas no tinham fundamento.
O sistema de arquivos do Unix, o mesmo da primeira verso dessa plataforma, j nasceu com suporte
a multiusurios, isso porque esse sistema derivado do Multics. Diferentemente do sistema de arquivos
do MSDOS, o sistema de arquivos Unix tem os nomes de arquivos de at 14 caracteres. Eles suportam
qualquer caractere ASCII, com exceo do NUL, que usado para preencher os espaos que sobram nos
nomes menores do que 14 caracteres, e da barra (/), devido ao fato de que ela o objeto separador entre
os componentes de um caminho. Em outras palavras, a / a demarcao para que o usurio saiba
que antes dela um diretrio e depois da barra o prximo diretrio filho. Se a / est sem nenhum
antecessor ou sucessor, ento o diretrio chamado de diretrio raiz.
A estrutura de uma entrada de diretrio no Unix bem simples, contendo o campo nome do arquivo
formado por 14 bytes e o nmero do inode23 que formado por 2 bytes.
O inode possui vrios atributos que vo desde a informao do tamanho do arquivo, at os
momentos que determinam a criao, o ltimo acesso e a ltima alterao, o proprietrio, o grupo, a
informao de proteo e o contador do nmero de entradas apontando para o inode.
O apontador para o inode tem um contador que ser incrementado quando uma nova ligao
feita. Quando a ligao desfeita, ento o contador decrescido. Ao chegar a zero, o inode ser
subtrado por completo e os blocos de disco so colocados novamente na lista de livres.
A localizao dos blocos de disco de um arquivo deve ser fornecida pelo sistema quando um arquivo
aberto. Para entendermos como um arquivo localizado, por exemplo, no caminho /home/user/file.
txt, veja as etapas a seguir:
Inode: uma estrutura de dados no sistema de arquivos em um sistema de arquivos tradicional Unix. Ele
armazena informaes bsicas sobre um arquivo regular, diretrio, ou outros objetos do sistema de arquivos.
23

97

Unidade IV
1. O sistema do Unix localiza o diretrio raiz (que ser o ponto de partida e referncia). O inode do
diretrio raiz est localizado em um local fixo do disco rgido, porm o prprio diretrio raiz (/)
pode estar em qualquer endereo de blocos.
2. Assim que o sistema j est posicionado na raiz da estrutura, ento busca pelo prximo componente
do caminho que o home do diretrio raiz. Dessa forma, o sistema ir encontrar o nmero do
inode para o /home.
3. Nessa etapa, o sistema localiza o diretrio /home, e busca nele o prximo componente que o user.
Ao encontrar a entrada user, esse diretrio tem o inode para /home/user. Uma vez no diretrio
/home/user, ento possvel fazer uma busca no prprio diretrio e localizar o componente file.
txt. Assim que a localizao for feita at o /home/user/, o inode, para esse arquivo ser carregado
na memria, ser mantido at que o arquivo seja fechado.
Todos os diretrios possuem entradas . (ponto) e .. (ponto ponto) que so criadas juntamente no
momento da criao do diretrio. A entrada . (ponto) tem o nmero do inode do diretrio atual, e a
entrada .. (ponto ponto), o nmero do inode do diretrio pai (diretrio que antecede o diretrio atual).
No diretrio raiz, o .. (ponto ponto) aponta para o . (ponto) que por consequncia ele mesmo.
Isso se deve ao fato de que o diretrio raiz o nvel mais elevado na estrutura e ele no tem um diretrio
pai antecessor.
7.6.4 Sistema de arquivos do Linux
A primeira verso do sistema de arquivos do Linux foi o Minix, porm, como ele seguia estritamente
os padres do Unix, ele tambm tinha arquivos com limites de nomes de 14 caracteres e seu tamanho
mquina de arquivo era de 64 MB. Esse padro atendia quase que na totalidade as necessidades da poca,
porm, com o passar do tempo, 64 MB passou a ser brincadeira de criana, demandando sistemas
de arquivos mais robustos e melhorados. O sistema de arquivos ext (extended file system) apresenta
melhorias com relao ao tamanho do nome que passou a suportar at 255 caracteres e arquivos com
tamanho de at 2 GB. Por outro lado, a desvantagem do sistema de arquivos ext, comparado com o
Minix, era seu desempenho, apresentando lentido considervel.
Principalmente motivado pela necessidade de melhorar a deficincia de velocidade que o ext
apresentava, foi desenvolvido o ext2 (second extended file system).
Limites tericos do sistema de arquivos ext32
Tamanho do bloco

1 KB

2 KB

4 KB

8 KB

Tamanho mximo do
arquivo

16 GB

256 GB

2 TB

2 TB

Tamanho mximo do
sistema de arquivos

4 TB

8 TB

16 TB

32 TB

Tabela 2 Limites tericos do sistema de arquivos ext2

98

FUNDAMENTOS DE SISTEMAS OPERACIONAIS


Alm do sistema de arquivos ext2, o Linux suporta novas verses do ext, como ext3 e ext4. O ext3
(third extended file system) um sistema de arquivos que suporta o journaling24. Essa funcionalidade
permite melhorias na confiabilidade e elimina a necessidade de verificar o sistema de arquivo quando h
uma parada do sistema de forma abrupta (por exemplo, quando acontece interrupo de fornecimento
eltrico).
O ext4 (fourth extended file system) um sistema de arquivos que tambm mantm registro de
aes (journaling) sendo o sucessor do ext3. Esse sistema de arquivos foi desenvolvido como uma srie
oposta de complexidade a da que o ext3 tinha. Muitas dessas complexidades foram originalmente
desenvolvidas para sistemas de arquivos em grupo (cluster file system) destinado ao sistema de arquivos
chamado Lustre.
Alm dos apresentados acima, existem vrios outros suportados pelo Linux, muitos deles com
caractersticas especficas para determinadas aplicaes. Entre uma longa lista, segue abaixo uma breve
descrio de alguns dos sistemas de arquivos suportados pelo Linux:
FAT File Allocation Table (ou Tabela de Alocao de Arquivos).
JFS Journaling File System, um sistema de arquivos desenvolvido pela IBM, disponvel em
licena open source.
XFS um sistema de arquivos inicialmente desenvolvido pela Silicon Graphics, Inc. para o seu
sistema operacional IRIX.
HPFS High Performance File System, Sistema de Arquivos de Alta Performance.
Minix foi um dos primeiros sistemas do tipo Unix baseado no projeto de um microncleo.
ReiserFS criado por Hans Reiser e inicialmente mantido pela empresa The Naming System Venture
(Namesys), o ReiserFS foi o primeiro sistema de arquivos com suporte ao journaling includo no
ncleo Linux 2.4+.
Reiser4 usa rvores balanceadas para tornar o processo de busca de arquivos, informaes sobre
segurana e outros metadados mais eficiente.
ISO 9660 (sistema de arquivos usado em CDROMs), tambm com as extenses RRIP (IEEE P1282)
e ZISOFS.
Alguns sistemas de arquivos com caractersticas especiais so:
SWAP parties SWAP so usadas para suportar a memria principal.
Journaling: registros armazenados de toda a comunicao no sistema de arquivos, usados para auxiliar na
recuperao de arquivos depois de uma quebra ou falha do sistema.
24

99

Unidade IV
UnionFS permite que arquivos e diretrios de sistemas de arquivos diferentes sejam
transparentemente sobrepostos, formando um nico sistema de arquivos.
SquashFS um sistema de arquivos somente leitura para Linux que implementa compresso.
Tmpfs um sistema de arquivo que no armazena as informaes em dispositivos de
armazenamento como disco duro, memria flash, CD, DVD etc. Ao invs disso, manipula
informaes diretamente na memria RAM, assim como o procfs.
Aufs AnotherUnionFS, servio de arquivos que implementa uma unio para montar sistemas de
arquivos Linux.
NFS Network File System, sistema de compartilhamento de arquivos em rede.
8 GERENCIAMENTO DE ENTRADA E SADA
8.1 Introduo a gerenciamento de entrada e sada

Como foi descrito no primeiro captulo desta srie, o gerenciamento de entrada e sada tem como
princpio bsico a abstrao, tornando a interao do programador com a mquina algo muito mais fcil
e permitindo que os programas e os hardwares evoluam de forma independente, porm estruturada.
O gerenciamento de entrada e sada na viso de dentro do sistema operacional algo complexo
e que exige dos desenvolvedores de sistemas operacionais boa parte do tempo e dos esforos para
obter um sistema estvel e confivel. E no poderia ser diferente, pois toda a lgica e complexidade de
controlar os diversos dispositivos demandam muita ao e dinamismo.
Estudaremos, neste captulo, os fundamentos do hardware de entrada e sada (E/S) e o software de
E/S. Com esses conceitos poderemos tratar de dispositivos, como discos, relgios, teclados e vdeos.
8.2 Fundamentao hardware de entrada e sada (E/S)

Diferentemente do ocorrido no incio da histria da computao, atualmente os elementos de


um equipamento so segmentados e especialistas focam suas atenes, estudos e desenvolvimentos
para sua rea especfica. Os recursos de entrada e sada, no diferentemente, esto seguindo a
mesma trajetria histrica. Organizaes globais, muitas vezes sem fins lucrativos, formadas por
contribuintes, como engenheiros, pesquisadores, fsicos, matemticos e at mesmo estudantes da
rea, vm tentando, e conseguindo, padronizar tipo de material, nveis de sinalizao eltrica,
tipo de condutores, mistura de material que ir compor a placa ou o circuito e assim por diante.
Todo esse esforo acaba gerando uma sinergia em escala global. Se imaginarmos um engenheiro
na China, ou um aqui no Brasil, trabalhando num projeto de software num sistema operacional
Linux e um computador padro PC (personal computer), ento a tendncia que, no nvel do
hardware e controladores de E/S, ambos estejam montando produtos 100% compatveis. Isso s
possvel devido abstrao, caso contrrio o engenheiro do Brasil poderia estar interagindo
100

FUNDAMENTOS DE SISTEMAS OPERACIONAIS


com o hardware e demandando procedimentos que poderiam ser muito diferentes daqueles que o
engenheiro chins estaria usando.
Neste material, no est englobado como desenvolvido o hardware, porm estudaremos como o
hardware programado para que tenhamos os resultados esperados de cada dispositivo especfico. Nas
prximas sees, trataremos, de forma geral, o hardware de computadores tpicos. Esse material no
visa abordar hardware especfico nem entrar em profundidade acerca da viso que um engenheiro de
hardware dever ter do assunto.
8.3 Dispositivos de entrada e sada

Os dispositivos de entrada e sada tpicos e os que estaremos dando nfase so divididos em duas
categorias:
Dispositivos de blocos: entre outras caractersticas, armazenam informaes em blocos de
tamanho fixo e endereo prprio. Todas as transferncias esto em unidades consecutivas de um
ou mais blocos. Para essa categoria, cada bloco pode ser lido ou escrito independentemente de
todos os outros.

Figura 50 - Dispositivos de blocos

Dispositivos de caractere: nesse caso, h o envio e recebimento de caracteres. Diferentemente da


categoria anterior, os dispositivos de caractere no so endereveis e no possuem funcionalidades
de posicionamento.

Figura 51 - Dispositivos de caractere

101

Unidade IV
Alguns dispositivos, como o relgio do computador e o vdeo mapeado em memria, no pertencem
a nenhuma dessas duas categorias. Considerando que os modelos de blocos e caracteres so os mais
comuns e este material no visa se aprofundar no hardware, ento ser reservado ao autor cobrir essas
duas categorias particularmente.
Existem diversos dispositivos de entrada e sada, bem como para cada taxa de dados que vem
evoluindo e variando com o passar do tempo. A Tabela 3 mostra o comparativo de alguns dispositivos e
suas respectivas taxas de dados.
bytes / segundo x tipo
600.000.000

500.000.000

400.000.000

300.000.000

200.000.000

t
tE

as

e
ern

fla

sh

ire

eW
Fir

a
-R

lue

et

n
So

it

b
iga

et

rn

e
th

pe

O
e-

Lin

ea

ap
rT

al

ri
Se

Tabela 3 Alguns exemplos de dispositivos e suas respectivas taxas de dados

102

Tipo de dispositivo

bytes / segundo

Teclado

10

Mouse

100

Modem 56K

7K

Scanner

400 K

Wireless 802.11g

6,75 M

CD-ROM 52x

7,8 M

Fast Ethernet (802.3u)

12,5 M

he

c
tta

S
a U CSI)
Ba ltr
rra inu
me m
nt
oP
CI

e
rel

ss

Fit

80
2.1
-R 1g
OM
Ca
52
rt
o
(80 x
2.3
co u)
mp
(IE act
EE o
Pa
dr
13
o
94
)
(
12
OC
x)
-1
U
2(
S
62 B 2
Di 2.0 .0
8
sc
o S Mi
t
C
LTO
SI /s
Ul
-5
(
(IE tra
2
EE
SA
80
S(
2.3
z)

e
od

n
ca

CD

o
lad
Te
c

ne

se

ou

56

5)

100.000.000

FUNDAMENTOS DE SISTEMAS OPERACIONAIS


Carto flash compacto

40 M

FireWire (IEEE 1394)

50 M

Blue-Ray (12x)

54 M

USB 2.0

60 M

Padro Sonet OC-12 (622.08 Mbit/s)

78 M

Disco SCSI Ultra 2

80 M

Gigabit Ethernet (IEEE 802.3z)

125 M

LTO-5 (Linear Tape-Open 5)

120 M

SAS (Serial Attached SCSI)

300 M

Fita Ultrinum

320 M

Barramento PCI

528 M

Tabela 4 Detalhamento da tabela 3

8.3.1 Controladores de dispositivos (driver)


As unidades de entrada e sada tpicas so constitudas por dois componentes:
Componente mecnico: o dispositivo mais aparente para o usurio final, ou seja, impressora,
teclado, mouse e outros.
Componente eletrnico: conhecido como controlador de dispositivo ou adaptador.
Esses adaptadores so inseridos em um conector de expanso localizado na placame do
computador.
Os componentes mecnicos e eletrnicos so mostrados em destaque na Figura 52.

Figura 52 Unidade de E/S componentes mecnicos e eletrnicos

103

Unidade IV
Geralmente, os fabricantes de controladores de dispositivos criam as interfaces seguindo um padro
oficial baseados nas organizaes ANSI, IEEE, ISO e outras. Com isso, os tipos de conectores, sinalizao
eltrica, determinaes mecnicas e todos os demais itens regidos pelos rgos padronizadores so
seguidos pelos fabricantes. Isso permite que, em paralelo, um fabricante de dispositivos mecnicos
como impressora, mouse, e outros possam usar controladoras sem qualquer preocupao de
compatibilidade.

Saiba mais
Para mais informaes a respeito dos rgos responsveis pelos padres
descritos acima consulte:
ANSI: American National Standards Institute Instituto Nacional
Americano de Padronizao (http://www.ansi.org/).
IEEE: Institute of Electrical and Electronics Engineers Instituto de
Engenheiros Eletricistas e Eletrnicos (www.ieee.org/).
ISO: International Organization for Standardization Organizao
Internacional de Normalizao (www.iso.org/).
Os controladores de dispositivos, observados de uma forma mais abstrata e da perspectiva do
usurio, so sumarizados como sendo uma nova entrada para comando de um dispositivo ou programa.
Formando, assim, uma unidade perifrica, cria uma interface permitindo a conexo com o dispositivo
desejado.
Ao adicionarmos um novo dispositivo a uma interface do computador, este requer um driver25,
que, na perspectiva lgica, um programa que normalmente vem junto com o dispositivo ou como
parte inerente do sistema operacional e deve ser instalado ou carregado. Sem esse controlador
de dispositivo o programa do usurio no ir conseguir obter os resultados de entrada e sada
desejados. Como exemplo, podemos citar o de um usurio que comprou um mouse sem fio e
quer installo no seu computador. Geralmente, o mouse sem fio usa um adaptador USB que
servir para mandar e receber os sinais desse novo dispositivo para o computador e viceversa.
Analogicamente, teremos ento o mouse como dispositivo mecnico e o adaptador usando
padro USB como dispositivo eletrnico, porm, para que esses dois elementos possam ser vistos
e operados pelos programas do usurio, ser necessrio um driver (que tambm chamamos de
controlador de dispositivo). Esse driver ir estabelecer a conectividade lgica entre o elemento
USB e o sistema operacional, e ficar a cargo deste ltimo estabelecer uma interface abstrata para
o programa do usurio.
Driver: programa ou rotina usada para interfacear e gerenciar um dispositivo de entrada/sada ou outros
perifricos.
25

104

FUNDAMENTOS DE SISTEMAS OPERACIONAIS


8.3.2 E/S mapeada em memria
Os registradores so responsveis por estabelecer o canal de comunicao entre os controladores
de dispositivos e a unidade central de processamento. O sistema operacional se comunica com os
dispositivos por meio da gravao e da leitura dos registradores. Alm dos registradores, atualmente
comum os dispositivos terem buffers de dados que sero usados pelo sistema operacional para gravar
e escrever.
A comunicao entre a unidade central de processamento e os registradores e buffers pode ser
realizada pelas duas formas descritas abaixo:
E/S mapeada por porta (portmapped I/O): associado a um nmero de porta de entrada e
sada que pode compreender de 8 a 16 bits. Somente o sistema operacional pode acessar o
espao de portas E/S (conjunto de portas de E/S). Dessa forma, o programa do usurio no
tem permisso para acessar diretamente o espao de portas. Esse modelo demonstrado na
Figura 53a.
E/S mapeada em memria (memorymapped I/O): nesse modelo, todos os registradores so
mapeados em endereos de memria exclusivos. Esse mtodo usa o mesmo endereo de
barramento para enderear memria e dispositivos de entrada e sada, e as instrues de
CPU para acessar a memria so as mesmas usadas para acessar os dispositivos de E/S.
Para acomodar os dispositivos de E/S, espaos das reas endereveis da CPU devem ser
temporariamente reservados para E/S exclusivamente. Cada dispositivo de entrada e sada
fica escutando o barramento e responder as suas requisies. Esse modelo demonstrado
na Figura 53b.
O funcionamento do exemplo de uma CPU querendo ler uma palavra que pode ser tanto da memria
ou de uma porta de entrada se dar da seguinte forma:
1. A CPU emite nas linhas de endereo do barramento o endereo de que precisa.
2. Emite um sinal de READ sobre a linha de controle do barramento.
3. Uma nova linha de sinal usada para informar se o espao requerido memria ou entrada e
sada.
4. Nessa etapa, a memria ou o dispositivo de E/S ir responder ao comando de leitura (read).
Alm dos dois mtodos descritos acima, existe tambm o E/S por processos dedicados (dedicated I/O
processors), porm no ser debatido neste material por se tratar de um mtodo bem especfico para
um determinado ambiente menos popular.

105

Unidade IV

Dois endereos
0xFFFF...

Um espao de
endereamento

Endereo de
E/S

Memria

Espao de
endereo de
memria
Portas de E/S

0
a.

b.

Figura 53 a. Espaos de memria e E/S independentes b. E/S mapeado na memria

8.3.3 Acesso direto memria (DMA)


Com base na premissa de que o hardware possui controlador de DMA, muitas vezes o sistema
operacional poder usar o acesso direto memria (Direct Memory Access DMA) com o objetivo
de melhorar a performance do ambiente. Em alguns casos, o controlador de DMA est integrado ao
controlador do dispositivo, contudo isso demanda um controlador de DMA para cada controlador
de dispositivo. Geralmente, um nico controlador de DMA est contido na placame, controlando a
transferncia de vrios dispositivos, mesmo que simultaneamente.
O controlador de DMA tem acesso ao barramento e contm vrios registradores que podem ser lidos
e escritos pela CPU, conforme descrito abaixo:
Registrador de endereamento de memria.
Registrador contador de bytes.
Registrador de controle (diferentemente dos dois anteriores, que so somente um para cada
tarefa, esse pode ser composto por um ou mais registradores). Esse registrador especifica a
porta de entrada e sada em uso, se a transferncia uma escrita ou leitura no dispositivo
de entrada e sada, unidade em byte ou palavras por vez e o nmero de bytes a ser
transmitido.

Saiba mais
Mais detalhes a respeito dos fundamentos do DMA em vrias plataformas
de PC podem ser obtidos em: <http://cires.colorado.edu/jimenezgroup/
QAMSResources/Docs/DMAFundamentals.pdf>.
106

FUNDAMENTOS DE SISTEMAS OPERACIONAIS


A Figura 54 ilustra a operao de transferncia utilizando o controlador DMA. Podemos observar
que nesse modo a CPU ir interagir com a controladora de DMA e esta ir, por meio do barramento,
comunicarse com a controladora de dispositivo.
1.

Controlador DMA
Endereo
Contador

CPU

Controle
Interrompo quando
concludo

4.

Controlador de
Disco

2.

Buffer

Memria
principal
3.

Barramento
Figura 54 Transferncia por DMA

Legenda da figura
1. CPU programa o controlador de DMA.
2. DMA solicita transferncia para a memria.
3. Dados transferidos.
4. Confirmao.
A complexidade dos controladores de DMA pode variar. H controladores mais simples que tratam
uma transferncia por vez e os mais sofisticados que podem ser programados para lidar simultaneamente
com mltiplas transferncias. Controladores capazes de tratar mltiplos canais possuem internamente
vrios conjuntos de registradores. Cada transferncia usa um controlador de dispositivo distinto. Um
algoritmo de alternncia, com prioridade ou no, necessrio para o controlador de DMA decidir qual
dispositivo ser o prximo a ser atendido.
Os barramentos podem operar no modo palavra e no modo bloco e alguns controladores de DMA
podem operar em ambos os modos. O controlador de DMA por meio do modelo modo direto (fly by mode)
pode dizer para o controlador de dispositivo transferir dados diretamente memria RAM (memria
principal). O modo direto pode operar pelo roubo de ciclo ou surto.
Roubo de ciclo (cycle stealing): a operao se d por meio do controlador que solicita a transferncia
de uma palavra e a transfere em seguida. Nesse modo, a CPU ou o controlador de DMA estar
usando o barramento a cada ciclo de barramento.
Surto (burst mode): o controlador de DMA solicita ao dispositivo para obter o barramento, em
seguida, desfere uma rajada de transferncias e, por fim, libera o barramento. A vantagem desse
modo que em uma nica aquisio ao barramento vrias palavras podem ser transferidas.
107

Unidade IV
Por outro lado, a desvantagem que o tempo de bloqueio do barramento durante o surto de
transferncia pode ser grande o suficiente para fazer com que a CPU e outros dispositivos fiquem
esperando por muito tempo.
Como opo ao modelo descrito anteriormente, existe a possibilidade de alguns controladores de
DMA estabelecerem que o controlador do dispositivo envie a palavra para o controlador de DMA, e uma
segunda aquisio do barramento escrever a palavra para o destino necessrio. Mesmo usando um
ciclo de barramento adicional, esse mtodo permite a flexibilidade da cpia entre dispositivos ou de
memria para memria.
Mesmo antes de a controladora atuar em um dos modelos descritos at agora, necessrio que os
discos rgidos carreguem dados em seus buffers internos antes que o DMA inicialize. Podemos destacar
duas razes para isso ocorrer:
1. Conferncia da soma de verificao (checksum), tambm conhecida como cdigo de correo de
erro (errorcorrecting code ECC), antes de iniciar a transferncia. Com essa funcionalidade, se
algum erro for encontrado, sinalizado e nenhuma transferncia se realiza.
2. Assim que j se tem a confirmao da soma de verificao positiva, iniciada a transferncia e a
taxa de chegada dos bits do disco sua controladora mantida de forma constante, mesmo que
o controlador do dispositivo esteja pronto para recebimento ou no. No modelo em que no h o
controlador de DMA, o controlador do dispositivo (nesse caso, do disco rgido) tentaria escrever os
dados diretamente na memria, acessando o barramento para cada palavra a ser transferida. Se outros
dispositivos estivessem usando o barramento, isso obrigaria o controlador de disco a esperar.
8.4 Software de E/S

Existem alguns pontos importantes para alinharmos quando estamos tratando de software de
entrada e sada, os quais esto destacados a seguir:
O software de entrada e sada deve estar suportado pelo conceito de independncia do hardware.
Isso parte do pressuposto que deveria ser possvel que os programas pudessem acessar os
dispositivos de E/S sem a necessidade especfica de conhecer o dispositivo. Ento, um programa
que tem no seu conjunto de funcionalidades a possibilidade de ler um arquivo de entrada deveria,
de forma transparente e sem ter que mudar o programa, poder ler tanto um disco rgido, CD e
DVD, quanto um USB.
Um outro ponto que os programas de E/S deveriam estar alheios ao tratamento de erros,
ficando a cargo dos nveis mais prximos ao hardware esse tratamento, ou seja, o controlador
deveria resolver o problema e, se no conseguisse, ento o driver do dispositivo deveria tratar
disso.
Ainda primordial o tipo de transferncia sncrona ou assncrona. Na transferncia sncrona o
modo de bloqueio e na assncrona orientada a interrupo.
108

FUNDAMENTOS DE SISTEMAS OPERACIONAIS


A utilizao de buffers para armazenamento temporrio envolve frequentes e elevadas operaes
de cpia, gerando um impacto considervel no desempenho da entrada e sada.
O ltimo ponto que devemos nos atentar com a mesma importncia dos apresentados anteriormente
o de dispositivos dedicados versus compartilhados. Pode parecer contraditrio, porm, nos dias
atuais, os dispositivos no compartilhados (dedicados) podem apresentar grandes problemas, bem
como impasses. Se imaginarmos dois processos necessitando acessar a mesma fita magntica,
mas com dados em endereos distintos, certamente um dos processos ficar esperando por um
tempo muito grande.
8.4.1 E/S programada
O mtodo mais simples de entrada e sada ter a CPU fazendo todo o tratamento. E/S programada
o mtodo de transferncia de dados entre a unidade central de processamento e os perifricos como
um NIC (Network Interface Card) ou um dispositivo de armazenamento ATA, por exemplo.
Em geral, entrada e sada programada acontece quando o programa que est rodando na CPU usa
instrues que acessam o endereo de entrada e sada para realizar transferncia de dados de um ou
para um dispositivo de entrada e sada. Isso vai na contramo das transferncias em modo DMA que
estudamos na seo anterior.
Um exemplo de um dispositivo no computador padro PC que usa a E/S programada a interface
ATA (Advanced Technology Attachment). Entretanto, essa interface pode operar em um dos modos
DMA. Outros dispositivos tambm usam a E/S programada, tais como:
1. Portas seriais.
2. Portas paralelas (quando no esto em modo ECP Extended Capability Port).
3. Portas PS/2 que eram usadas para teclado e mouse.
4. Portas MIDI (Musical Instrument Digital Interface).
5. Portas de joystick.
6. Relgio interno.
7. NICs (Network Interface Card) antigas.
Apesar de ser simples, a entrada e sada programada tem uma desvantagem que o fato de segurar
a CPU o tempo todo at que a E/S seja realizada. A espera ociosa ineficiente em sistemas complexos.
Exemplificando a E/S programada, podemos imaginar um processo que quer imprimir na
impressora:
109

Unidade IV
1. O programa primeiro monta a cadeia de caracteres em um buffer.
2. Um processo que resista impressora por meio de uma chamada de sistema.
3. Assim que o processo j obteve o acesso impressora ele ento efetuar uma chamada de sistema
para imprimir a cadeia de caracteres.
4. Tipicamente, o sistema operacional copia o buffer para um vetor x no espao do ncleo.
5. O sistema operacional verifica se a impressora est disponvel.
6. Assim que confirmado que a impressora est disponvel, o sistema operacional copia o primeiro
caractere para o registrador de dados da impressora (caso a impressora no esteja disponvel, o
sistema operacional ficar esperando).
7. Dependendo da impressora, nesse exato momento j estar sendo impresso o primeiro caractere
ou, em outros casos, a impressora ir armazenar linhas ou at mesmo pginas antes de iniciar a
impresso.
8. Assim que esse primeiro ciclo est pronto, o sistema operacional faz novamente uma nova
verificao para ento enviar outro caractere.
9. O lao ser repetido at que a impresso termine, retornando o controle ao processo que originou
a chamada.
8.4.2 E/S usando interrupo
Nesse caso, a impressora, ao invs de armazenar caracteres, imprimeos sequencialmente conforme
ordem de chegada. Se essa impressora pode imprimir 100 caracteres por segundo, ento cada caractere
ser impresso em 10 milissegundos (1.000 milissegundos = 1 segundo, ou seja, 1.000/100 = 10). Portanto,
durante os intervalos de 10 milissegundos necessrios para que a impressora emita a permisso para
a CPU transmitir o prximo caractere, a CPU ficar liberada para executar algum outro processo que
aperfeioar seu desempenho.
O modo que permite CPU executar outro processo enquanto espera o trmino do antecessor
usando a interrupo.

Saiba mais
Para mais informaes a respeito de E/S usando interrupo consulte:
<http://www.ibm1130.net/functional/IOInterrupts.html>.
110

FUNDAMENTOS DE SISTEMAS OPERACIONAIS


8.4.3 E/S usando DMA
O acesso direto memria consegue melhorar a velocidade do sistema. Isso porque no modo de E/S
visto anteriormente cada caractere est demandando uma interrupo, que, por consequncia, demanda
CPU para controlar essa dinmica. Usar o controlador de memria para alimentar os caracteres da
impressora fornece a grande vantagem de, ao invs de ser gerada uma interrupo por caractere, gerar
uma interrupo por buffer impresso. Porm, como a velocidade do DMA consideravelmente menor
que a da CPU, em sistemas com pouco uso de CPU melhor e mais rpido manter a E/S programada ou
por interrupo.
8.5 Camadas de software de E/S

Conforme ilustrado na Figura 55, tipicamente os softwares de E/S possuem quatro camadas e esto
logo acima do hardware. Cada camada do software de entrada e sada tem funo especfica e interface
com as camadas vizinhas.
Software de E/S no nvel do usurio
Software do sistema operacional
independente do dispositivo
Drives do dispositivo
Tratadores de interrupo

Hardware

Figura 55 Camadas do software de E/S

Como cada sistema operacional possui caractersticas prprias do software de entrada e sada,
uma generalidade para estudos acadmicos sem entrar nos detalhes especficos de cada plataforma
fsica e lgica.
8.5.1 Tradutores de interrupo
As interrupes so desagradveis, porm, como no podem ser evitadas, o sistema operacional deve
escondlas. Dessa forma, apenas uma pequena parte do sistema operacional saber da sua existncia. A
melhor maneira de ocultar a maioria das interrupes usar um driver que inicie a operao de entrada
e sada e que bloqueie at a tarefa a ser finalizada.
Quando isso acontecer, a rotina de interrupo faz as suas tarefas, depois desbloqueia e liberta o
driver que iniciou e a chamou.
111

Unidade IV
A seguir, veja os passos a serem realizados pelo sistema operacional quando ocorre interrupo no
ambiente genrico padro PC:
1. Salvar registros que ainda no tenham sido guardados pelo hardware de interrupo.
2. Estabelecer o contexto para a rotina de atendimento de interrupes.
3. Preparar uma pilha (stack) para rotina de tratamento de interrupo.
4. Confirmar (ack) o controlador de interrupo e ativar interrupo.
5. Copiar registros de onde foram salvos para a tabela de processos.
6. Executar rotina de tratamento de interrupo, extraindo informaes dos registradores do
controlador do dispositivo que est interrompido.
7. Escolher qual o novo processo que ir ser executado. O algoritmo de alternncia pode ser
necessrio.
8. Preparar contexto da MMU para executar prximo processo.
9. Carregar registros do novo processo.
10. Iniciar a execuo do novo processo.
11. Processamento de interrupo dispendioso e complexo, por isso a necessidade de ser
evitado.
8.5.2 Drivers dos dispositivos
Os drives dos dispositivos diferem entre a pluralidade de componentes disponveis e a
forma de tratamento que se deve dar a cada um. Por exemplo, o driver do mouse enderear
informaes de movimento e acionamento dos botes, a ponto de o driver de um disco rgido
ser capaz de tratar assuntos relacionados a setores, trilhas, cilindros, cabeotes, movimento
do brao, controladores do motor e demais semnticas para o funcionamento adequado desse
dispositivo.
Driver do dispositivo: so os cdigos especficos que cada dispositivo necessita e so normalmente
desenvolvidos pelos fabricantes dos dispositivos. Devido diversidade de sistemas operacionais,
pode acontecer do fabricante no ter desenvolvido um driver de dispositivo para a verso do
sistema operacional que est sendo executado em uma determinada mquina. Por esse motivo,
normalmente, quando um novo sistema operacional lanado, pode haver problemas para o
usurio encontrar um driver para seu dispositivo legado. A Figura 56 ilustra o controlador de
dispositivos e os drivers.
112

FUNDAMENTOS DE SISTEMAS OPERACIONAIS


Processo do usurio

Espao
do
usurio

Restante do sistema operacional


Espao
do
ncleo

Driver da
impressora

Driver
do
disco

Barramento

Hardware

Controlador
da impressora

Controlador
do disco rgido

Dispositivo

Figura 56 Camadas do software de E/S

Os drivers de dispositivos esto classificados em poucas categorias. Entre elas as mais comuns so:
Dispositivo de bloco.
Dispositivos de caractere.
Os sistemas operacionais possuem uma interface padro para os drivers de bloco e outra para
driver de caractere. Essas interfaces permitem que os dispositivos sejam manipulados pelo sistema
operacional.
Em alguns ambientes o sistema operacional pode ser um nico programa binrio que contm intricados
os driver necessrios. Quando preciso a instalao de um novo dispositivo, ento deve-se recompilar o
ncleo do sistema operacional com o novo driver, construindo um novo binrio. Esse modelo, no incio do
Linux, causou grande impacto para os leigos usurios desse sistema, exatamente pela obrigatoriedade do
usurio ter de procurar o driver necessrio para seu dispositivo e, posteriormente, compilar o ncleo do
sistema ao que para muitos ainda uma misso impossvel.
Com a enorme diversidade de dispositivos de E/S e a demanda por trocas e atualizaes constantes, o
modelo apresentado anteriormente no mais adequado. Os sistemas operacionais para computadores
pessoais passaram para um modelo, no qual os drivers podem ser dinamicamente carregados no sistema
durante a execuo.
113

Unidade IV
8.5.3 Software de E/S independente de dispositivo
O software de dispositivos possui geralmente duas partes, sendo a primeira inerente ao dispositivo e
outra parte que independente.
Os softwares independentes de dispositivos executam funes de entrada e
sada comuns para todos os dispositivos, fornecendo uma interface uniforme
para o software no nvel do usurio.26

As funes descritas a seguir, em geral, so feitas no software independente de dispositivo.


Interface normalizada com driver de dispositivos.
Providenciar um tamanho de bloco independente de dispositivo.
Buffering.
Processamento e reporte de erros.
Alocao e liberao de dispositivos dedicados.
A construo de uma interface uniforme permite ao sistema que todos os dispositivos de entrada e
sada e drivers paream similares. Na Figura 57a, ilustrada uma colocao simblica, na qual os drivers
de cada dispositivo apresentam uma interface diferente para o sistema operacional. Tendo em vista que
as funes do ncleo do sistema operacional, requeridas pelo driver, tambm diferem de um driver para
o outro, a resultante um grande esforo de programao.
Na Figura 57b, so simbolizados os drivers com a mesma interface e, se um novo driver estiver em
conformidade com essa interface, isso ir tornar muito mais fcil conectar um novo dispositivo. Dessa
forma, fica muito mais previsvel para os programadores de driver saberem quais funes eles devem
fornecer, bem como quais funes eles podero chamar do ncleo.
Sistema operacional

Drive do
disco

Drive do
teclado
a.

Drive do
mouse

Sistema operacional

Drive do
disco

Drive do
teclado

Drive do
mouse

b.

Figura 57 a. Sem interface padro para o driver. b. Com uma interface padro para o driver

26

114

Disponvel em: <http://www.ufpi.br/subsiteFiles/eml/arquivos/files/SO/SO_Livro.pdf>. Acesso em: 8 jun. 2011.

FUNDAMENTOS DE SISTEMAS OPERACIONAIS


8.5.4 Software de E/S do espao do usurio
Nesse cenrio, em camadas de software de E/S, somente uma pequena parte constituda de
bibliotecas atreladas aos programas do usurio e de programas que executam fora do ncleo do sistema
operacional. Alm dos softwares de E/S no nvel do usurio constitudo de rotinas de biblioteca, outra
categoria o sistema de spooling.
Um processo especial, chamado daemon, e um diretrio especial no sistema, chamado de diretrio
de spool, so criados para tratar as novas entradas. Em um caso de uma impressora que est sendo
acessada por um processo durante 20 minutos, mas nenhuma impresso est sendo realizada por ele,
isso significaria que mais nenhum outro processo poderia ter usado a impressora, tendo em vista que ela
estava ocupada. Entretanto, com o spooling, o processo gera um arquivo a ser impresso e o coloca no
diretrio de spool, ficando como responsabilidade do processo especial daemon a exclusiva permisso
para usar o arquivo especial da impressora e imprimir os arquivos no diretrio. Com isso, eliminada a
possibilidade de outro processo tomar para si o recurso e mantlo ocupado mesmo sem necessidade.
O spool tambm usado em outros casos, tal como a transferncia de arquivos pela rede, em que o
processo de transmisso de arquivo usa um spool de rede e, posteriormente, o daemon respectivo de
rede ir retirar o arquivo do diretrio de spool e transmitilo.
A Figura 58 demonstra, de forma geral, o sistema de E/S, ilustrando todas as camadas e as principais
funes de cada uma delas.
Funes de E/S
Chama E/S; formata E/S; coloca
no spool
Nomeao, proteo, bloqueio,
utilizao de buffer e alocao

Camada
1.

2.
Processo do usurio

Software independente de
dispositivo

Ajusta os registradores do
dispositivo; verifica status

Drivers dos dispositivos

Acorda driver quando a E/S


est completa

Tratadores de interrupo

Execura operaes de E/S

Hardware
1. Requisio de E/S
2. Resposta de E/S

Figura 58 Sistema de E/S: camadas e principais funes

8.6 Hardware de E/S

Para todos os tipos de plataformas de computadores, necessitamos de algum tipo de dispositivo para
informar entradas e receber resultados, constituindo o que chamamos genericamente de dispositivos de
Entrada e Sada (E/S).
115

Unidade IV
Com base no sentido do fluxo de dados entre o computador e o dispositivo,
denominamos esses dispositivos como perifricos de entrada, perifricos de
sada, ou ainda, perifricos de entrada e sada. Um perifrico qualquer
dispositivo conectado a um computador, possibilitando sua interao com
o mundo externo.
Um componente de hardware denominado interface permite que os
perifricos sejam conectados ao computador. Portanto, os perifricos no
esto conectados diretamente aos barramentos do computador. Dessa forma,
as interfaces constituem um elemento primordial para que a transferncia
de dados entre perifrico e processador, ou entre perifrico e memria,
ocorra.
Outro componente de hardware denominado controlador integra
as interfaces. Um controlador corresponde a um processador/chip
projetado para realizar uma funo especfica, como controlar um
disco rgido.27

Os hardwares de E/S tem como principais componentes os chips, as ligaes eltricas e os componentes
fsicos.
Os dispositivos de E/S esto divididos em trs classes:
Dispositivo de bloco: armazena informao em blocos de tamanho fixo, com endereo (exemplo:
disco).
Dispositivo de caractere: envia ou recebe fluxo de caracteres sem considerar qualquer estrutura
de blocos (exemplo: impressoras, interface de rede, mouse).
Outros dispositivos: relgio.
8.6.1 Discos rgidos
Os discos rgidos so dispositivos de armazenamento destinados a grandes quantidades de
dados. Atualmente, qualquer computador pessoal vem com algo em torno de 500 GB, a ponto
de a unidade de medida dos primeiros computadores ser na casa das dezenas ou centenas de
bytes.
Fisicamente, um disco rgido composto por dois grandes blocos.

27

116

Disponvel em: <http://professor.rodrigoscama.com.br/textos/SO_EntradaeSaida.pdf>. Acesso em: 8 jun. 2011.

FUNDAMENTOS DE SISTEMAS OPERACIONAIS

Figura 59 Discos metlicos e estrutura mecnica de um disco rgido

1. Conjunto de discos metlicos: superposto e disposto em alturas diferentes


suportado por um eixo central. As duas superfcies de cada disco so recobertas
por uma cobertura magntica, possibilitando a gravao dos dados.
No momento de acesso ao disco, essa estrutura mantida em uma rotao
constante em torno de 7.200 rpm.
2. Estrutura mecnica: suporta um conjunto de cabeotes, sendo um para
cada superfcie de disco. capaz de realizar movimentos de vaivm,
possibilitando que os cabeotes possam ser deslocados do centro at a
borda do disco e viceversa.
Do ponto de vista da organizao lgica, cada superfcie de um disco
dividida em circunferncias concntricas denominadas trilhas. Cada trilha
subdividida radialmente em unidades chamadas blocos lgicos.
Tipicamente, todos os blocos tm o mesmo tamanho, variando entre 512 e
4.096 bytes. O bloco constituise na menor unidade de leitura e gravao
possvel em um disco.28

RAID (Redundant Array of Independent Disks)


A RAID uma estrutura que se prope a solucionar problemas associados
com o armazenamento de grandes quantidades de dados. Ela associada
sempre cpia de segurana.
O princpio fundamental de uma estrutura RAID combinar vrios discos
rgidos fsicos em uma estrutura lgica de discos de forma a aumentar a
confiabilidade e o desempenho do ambiente.
28

Disponvel em: <http://professor.rodrigoscama.com.br/textos/SO_EntradaeSaida.pdf>. Acesso em: 8 jun. 2011.

117

Unidade IV
O conjunto de discos (array) independentes (independent) em RAID armazena
informaes de forma redundante (redundant), viabilizando a recuperao
de dados em caso de falha fsica de um dos discos.29

A estrutura de RAID dividida em nveis, sendo:


RAID 0: nesse nvel, os dados escritos so divididos entre os diferentes
discos fsicos que compem o disco RAID sem considerar nenhum
mecanismo para o controle ou correo de erros. Denominamos de
stripping o mtodo de escrever (e depois acessar) os dados em paralelo
em diferentes discos.30
RAID 0
A1
A3
A5
A7

A2
A4
A6
A8

Disco 0

Disco 1

Figura 60 RAID 0

RAID 1: esse nvel conhecido como espelhamento (mirroring). Aqui, um


dado escrito simultaneamente em um disco primrio e em um disco
secundrio de cpia.31
RAID 1
A1
A2
A3
A4

A1
A2
A3
A4

Disco 0

Disco 1

Figura 61 RAID 1

Disponvel em: <http://professor.rodrigoscama.com.br/textos/SO_EntradaeSaida.pdf>. Acesso em: 8 jun. 2011.


Idem.
31
Idem.
29
30

118

FUNDAMENTOS DE SISTEMAS OPERACIONAIS


RAID 2/3/4: os dados so armazenados em diferentes discos, utilizandose
stripping. No RAID 2, so armazenadas informaes ECC (Error Correcting
Code), que so as informaes de controle de erros, no lugar da paridade.
No RAID 3, um nico bit de paridade computado para cada palavra de
dados e escrito em um drive de paridade. O RAID 4, assim como outros
RAIDs, cuja caracterstica utilizarem paridade, usa um processo de
recuperao de dados mais abrangente que arrays espelhados, como RAID
1. Esse nvel tambm til para criar discos virtuais de grande dimenso,
pois consegue somar o espao total oferecido por todos os discos, exceto
o disco de paridade. O desempenho oferecido razovel nas operaes
de leitura, pois podem ser utilizados todos os discos simultaneamente.32
Em caso de falha em um dos discos, a informao contida nos demais discos,
mais a informao da paridade, so suficientes para a reconstruo dos
dados armazenados no disco que apresentou problemas. A diferena entre
os nveis 2, 3 e 4 est na forma pela qual a paridade calculada: paridade a
bit no RAID 2, paridade a byte no RAID 3 e paridade de bloco no RAID 4.33
RAID 2
A1
B1
C1
D1

A2
B2
C2
D2

Disco 0

Disco 1

A3
B3
C3
D3

Disco 2

A4
B4
C4
D4

Ap1
Bp1
Cp1
Dp1

Ap2
Bp2
Cp2
Dp2

Ap3
Bp3
Cp3
Dp3

Disco 3

Disco 4

Disco 5

Disco 6

Figura 62 RAID 2
RAID 3

A1
A4
B1
B4

A2
A5
B2
B5

A3
A6
B3
B6

Ap(1-3)
Ap(4-6)
Bp(1-3)
Bp(4-6)

Disco 0

Disco 1

Disco 2

Disco 3

Figura 63 RAID 3
32
33

Disponvel em: <http://pt.wikipedia.org/wiki/RAID>. Acesso em: 8 jun. 2011.


Disponvel em: <http://professor.rodrigoscama.com.br/textos/SO_EntradaeSaida.pdf>. Acesso em: 8 jun. 2011.

119

Unidade IV
RAID 4

A1

A2

A3

Ap

B1

B2

B3

Bp

C1
D1

C2
D2

C3
D3

Cp
Dp

Disco 1

Disco 2

Disco 3

Disco 0

Figura 64 RAID 4

RAID 5: esse nvel similar ao nvel de RAID 3, ou seja, os dados so


divididos entre os diferentes discos e, para cada strip, calculada a
paridade. A diferena reside no fato de que essa informao de paridade
no mais concentrada em um nico disco, mas sim distribuda entre os
diferentes discos.34
RAID 5

A1

A2

B1
C1
Dp

Disco 0

A3

Ap

B2

Bp

B3

Cp
D1

C2
D2

C3
D3

Disco 1

Disco 2

Disco 3

Figura 65 RAID 5

RAID 6: um padro relativamente novo, suportado por apenas algumas


controladoras de disco. semelhante ao RAID 5, porm usa o dobro
de bits de paridade, garantindo a integridade dos dados caso at dois
dos discos rgidos falhem ao mesmo tempo. Ao usar oito discos rgidos
de 36 GB cada um em RAID 6, teremos 216 GB de dados e 72 GB de
paridade.35

34
35

120

Disponvel em: <http://professor.rodrigoscama.com.br/textos/SO_EntradaeSaida.pdf>. Acesso em: 8 jun. 2011.


Disponvel em: <http://pt.wikipedia.org/wiki/RAID>. Acesso em: 8 jun. 2011.

FUNDAMENTOS DE SISTEMAS OPERACIONAIS


RAID 6

A1
B1
C1
Dp
Eq

Disco 0

A2
B2
Cp
Dq
E1

A3
Bp
Cq
D1
E2

Ap
Bq
C2
D2
E3

Aq
B3
C3
D3
Ep

Disco 1

Disco 2

Disco 3

Disco 4

Figura 66 RAID 6

RAID 0+1: uma combinao dos nveis 0 (striping) e 1 (mirroring), na


qual os dados so divididos entre os discos para melhorar o rendimento
e tambm utilizar outros discos para duplicao de dados. Dessa forma,
possvel utilizar o bom rendimento do nvel 0 com a redundncia do
nvel 1. No entanto, necessrio, pelo menos, quatro discos para montar
um RAID 0+1. Sua arquitetura faz do RAID 0+1 o mais rpido e seguro,
porm o mais caro. No RAID 0+1, se um dos discos apresentar falha, o
sistema vira um RAID 0. Se os dois discos que possuem a sequncia A1,
A3 e A5 falharem ao mesmo tempo, haver perda de dados. Se apenas
uma das controladoras falhar, o sistema continua funcionando, mas
nessa situao o ambiente estar sem tolerncia falha e sem o ganho
de velocidade.36
RAID 0 + 1
RAID 1
RAID 0

RAID 0

A1

A2

A1

A2

A3

A4

A3

A4

A5

A6

A5

A6

A7

A8

A7

A8

Disco 0

Disco 1

Disco 2

Disco 3

Figura 67 RAID 0+1


36

Disponvel em: <http://pt.wikipedia.org/wiki/RAID>. Acesso em: 8 jun. 2011.

121

Unidade IV
RAID 1+0 ou 10: exige ao menos quatro discos rgidos. Cada par ser espelhado
para garantir redundncia e, para melhorar o desempenho, os pares sero
distribudos. Nesse cenrio, at metade dos discos pode falhar simultaneamente,
desde que no falhem os dois discos de um espelho qualquer. Isso porque so
usados discos de lotes diferentes de cada lado do espelho. o nvel recomendado
para bases de dados por ser o mais seguro e com melhor desempenho.37
RAID 10
RAID 0
RAID 0

RAID 1

A1

A1

A2

A2

A3

A3

A4

A4

A5

A5

A6

A6

A7

A7

A8

A8

Disco 0

Disco 1

Disco 2

Disco 3

Figura 68 RAID 1+0

RAID 50: um arranjo hbrido que usa as tcnicas de RAID com paridade
em conjuno com a segmentao de dados. Um arranjo RAID50
essencialmente um arranjo com as informaes segmentadas por meio
de dois ou mais arranjos.38
RAID 0

RAID 5

RAID 5

A1
B1
Cp
D1

A2
Bp
C1
D2

Ap
B2
C2
Dp

Disk 0
120GB

Disk 1
120GB

Disk 2
120GB

A3
B3
Cp
D3

RAID 5

A4
Bp
C3
D4

Disk 3 Disk 4
120GB 120GB

Ap
B4
C4
Dp

A5
B5
Cp
D5

Disk 5
120GB

Disk 6
120GB

Figura 69 RAID 50
37
38

122

Idem.
Disponvel em: <http://pt.wikipedia.org/wiki/RAID>. Acesso em: 8 jun. 2011.

A6
Bp
C5
D6

Disk 7
120GB

Ap
B6
C6
Dp

Disk 8
120GB

FUNDAMENTOS DE SISTEMAS OPERACIONAIS


RAID 100: composto do RAID 10+0. Normalmente, ele implementado utilizando uma
combinao de software e hardware, ou seja, implantase o RAID 0 via software sobre o RAID 10
via hardware.39
RAID 0
RAID 0

RAID 0

RAID 1

RAID 1

A1
A5
B1
B5

A1
A5
B1
B5

A2
A6
B2
B6

Disk 0
120GB

Disk 1
120GB

Disk 2
120GB

RAID 1

A2
A6
B2
B6

Disk 3
120GB

RAID 1

A3
A7
B3
B7

A3
A7
B3
B7

A4
A8
B4
B8

A4
A8
B4
B8

Disk 4
120GB

Disk 5
120GB

Disk 6
120GB

Disk 7
120GB

Figura 70 RAID 100

O controle requerido para implantao de uma configurao RAID pode ser


realizado por software ou hardware. Se a implantao for por hardware,
a capacidade de stripping, o clculo de paridade e da escrita simultnea
em discos so providos pela prpria controladora de disco, portanto, no
necessria nenhuma interveno especial do sistema operacional.
Em um RAID implantado por software, as informaes devem ser fornecidas
pelo prprio sistema operacional. Dessa forma, os dados a serem escritos
so divididos pelo sistema operacional da mquina e as diferentes fatias de
dados so enviadas aos discos um por um.40
8.7 Relgio

Os temporizadores (timers relgios) so extremamente necessrios por algumas razes, porm, em


sistemas operacionais, o mais relevante :
Manter o funcionamento de segundos, minutos, horas, data e ano, mesmo que o computador
esteja desligado. Com isso, quando o equipamento estiver ligado e em funcionamento, o relgio
que ir fornecer o tempo real e atual para o ambiente. Portanto, o sistema pode calcular quanto
tempo um processo j est na CPU e, de ciclos em ciclos, quanto ir alternar entre os demais
processos.
39
40

Idem.
Disponvel em: <http://professor.rodrigoscama.com.br/textos/SO_EntradaeSaida.pdf>. Acesso em: 8 jun. 2011.

123

Unidade IV
Apesar do temporizador no ser um dispositivo de bloco nem um dispositivo de caractere, o software
desse componente pode tomar a forma de um driver de dispositivo.
8.7.1 Hardware do relgio viso geral
Os computadores tpicos e atuais utilizam um relgio interno que no parecido com os nossos
relgios de pulso ou de mesa. Os relgios dos computadores so formados por trs componentes:
Oscilador de cristal.
Controlador.
Registrador de apoio.
Devido ao processo extremamente preciso da seleo, corte e montagem sob presso de um
fragmento de cristal de quartzo, possvel obter um sinal cclico de alta preciso medido em centenas
de megahertz. Somando a capacidade da eletrnica, podem ser obtidas frequncias de 1.000 MHz ou
superiores.
O sinal gerado pelo circuito eletrnico descrito anteriormente servir como referncia de sincronizao
para os vrios elementos do computador que necessitem desse tipo de interao.
O sinal gerado alimenta um controlador que ir realizar uma contagem regressiva at zero.
Quando o controlador chega contagem igual a zero, este, por sua vez, ir gerar uma interrupo
na CPU.
A bateria que vem juntamente com a placame (bother board) necessria para manter o relgio
funcionando at quando o computador est desligado ou mesmo desconectado da tomada.
Observao
Essa bateria fcil de ser identificada na placame. Ela tem o tamanho
aproximado de uma moeda de R$ 0,05 e prximo a ela h um jumper para
reset caso necessrio.
Se o relgio no estiver presente no sistema, ento ser solicitado ao usurio informar a data e a
hora no momento do processo de inicializao da mquina.
Para sistemas em rede, existe outra forma que o uso de um computador remoto de sincronismo de
data e hora. Com isso, todos os equipamentos na rede estaro no mesmo tempo ou, em outras palavras,
estaro sincronizados.

124

FUNDAMENTOS DE SISTEMAS OPERACIONAIS

Figura 71 Bateria instalada na placame

8.7.2 Software do relgio viso geral


O software do relgio usar o dado de sada fornecido pelo hardware do relgio, que responsvel
por gerar os pulsos em intervalos extremamente precisos e, preferencialmente, em repeties infinitas.
Ento preciso fornecer as seguintes entregas:
1. Manter o dia e a hora: a cada tique do relgio haver um incremento do contador.
2. Evitar processo executando por tempo maior que o devido: quando um processo iniciado, o
escalonador inicia o contador com o valor do tempo (quantum) do processo em tiques de relgio.
Em cada interrupo, o driver do relgio decresce um no contador. Assim que o contador atinge
o valor zero, ento chamado o escalonamento para selecionar outro processo.
3. Contabilizar o uso da CPU. Geralmente usado um segundo temporizador, diferente do relgio
principal do sistema, sempre que um processo inicializado. Quando o processo interrompido,
o temporizador pode ser lido para saber por quanto tempo o processo esteve em execuo.
4. Tratar a chamada de sistema alarm feita pelos processos do usurio, ou seja, quando um
determinado processo necessita de que o sistema operacional lhe d um aviso aps certo
intervalo.
5. Fornecer temporizadores watchdog. Um exemplo prtico do uso do watchdog quando uma
unidade de disco flexvel est sendo chamada para uso. No instante zero, o motor da unidade
encontrase parado. Somente aps o motor estabelecer a rotao adequada que a cabea de
leitura estar pronta para iniciar a procura, bem como o programa do usurio poder executar sua
tarefa. Portanto, o watchdog que dar ao sistema a referncia de tempo necessria para que o
motor j esteja na rotao adequada para no danificar as partes.
125

Unidade IV
6. Perfil de execuo, realizar monitoramentos e coletar estatsticas. Essa funo permite que o
programa do usurio tenha condies de receber do sistema um histograma do contador de
programa, podendo assim relatar onde est sendo gasto o tempo.
8.7.3 Temporizador por software viso geral
Geralmente, os computadores possuem um segundo relgio programvel, podendo ser ajustado
para refletir interrupes na taxa que o programa necessitar.
Interrupes e polling so as duas maneiras tpicas de gerenciar entrada e sada. As interrupes
possuem bom tempo de resposta, ou seja, baixa latncia, porm, quando em conjunto com as CPUs
modernas, esse mtodo causa sobrecarga devido necessidade de chaveamentos de contexto.
O polling a alternativa para o gerenciamento de E/S por interrupo. Ele permite que a aplicao
realize o processo diretamente, verificando a ocorrncia do evento esperado em intervalos de tempo.
Porm, se o evento ocorrer imediatamente aps a verificao, ento haver atraso por fazer a aplicao
esperar at o prximo polling.
8.8 Teclado, mouse e monitor viso geral

Nos computadores pessoais, os dispositivos, como teclado, mouse e monitor, so praticamente


indispensveis. Mesmo os equipamentos portteis, quando no munidos de mouse, possuem a opo
do touch screen ou algum outro mtodo que faz a funo similar do mouse.
Para os servidores de rede, nem sempre so disponibilizados teclados, mouse e monitor. Isso acontece at
por uma questo de economia, de espao ou at mesmo por segurana. Em muitas empresas de outsourcing o
data center praticamente uma sala apagada, ou seja, somente mquinas instaladas nos racks. Muitas vezes,
em outro prdio que pode estar a quilmetros de distncia, fica a equipe tcnica que suporta ou executa as
atividades nos servidores. Normalmente, quando acontece um problema mais especfico, o operador do data
center, que fica no prprio local onde esto os servidores, vai at o equipamento danificado com um console
ou ento faz uso do teclado, mouse e monitor. Em alguns casos, instalado juntamente com os servidores um
conjunto com teclado, mouse e monitor embutido que pode ser retrado e guardado de forma a no ocupar
um espao considervel. Esse dispositivo possui cabos e entradas para atender vrios servidores, necessitando
apenas selecionar por chave qual servidor quer obter controle e acesso.

Figura 72 Kit teclado, mouse e monitor para rack padro 19 (1U) fechado (esquerda), aberto (direita).

126

FUNDAMENTOS DE SISTEMAS OPERACIONAIS


8.8.1 Software do teclado
Entre os dispositivos disponveis para os usurios que serviro de entrada temos o teclado que
possui um circuito impresso e um conjunto de teclas sendo conectado ao computador por meio de
uma porta serial ou USB. Toda vez que pressionado ou liberado, uma interrupo imediatamente
gerada.

Figura 73 Circuito do teclado

O cdigo de varredura o nmero composto por 7 bits e que ir compor uma identificao distinta
para cada tecla, sendo necessrio para o driver controlador o oitavo bit para definir se a tecla encontrase
pressionada (igual a zero) ou solta (igual a um).
Quando uma tecla pressionada, o cdigo da tecla colocado no registrador de E/S. O driver capaz
de determinar se a tecla minscula, maiscula, precedida de CRTL, ALT ou CTRLALT.

Figura 74 Cdigo de varredura teclado com 106 teclas

Os teclados so definidos conforme norma ISO9995.

Saiba mais
Para saber mais a respeito, consulte:
<http://www01.ibm.com/software/globalization/topics/keyboards/iso.jsp>.
127

Unidade IV
Conforme padro POSIX, existem dois modos para driver de teclado: no cannico e cannico.
O no cannico baseado em caractere ou sequncia de caractere. Isso implica que, se durante
a digitao o usurio errar e tentar usar a tecla backspace (retrocesso), na realidade, o resultado ser a
palavra ou caractere errado.
O modo cannico com base em linha, ou seja, o driver trata toda a edio interna da linha e
entrega somente as linhas corrigidas para os programas do usurio.
8.8.2 Software do mouse
Os modelos de mouse mais antigos possuem internamente dois dispositivos mecnicos com pequenos
orifcios. Conforme Figura 75, fixado em um dos lados de cada roda um emissor de luz e do outro
lado, o receptor. Conforme movimentao do mouse, a esfera de borracha ir por consequncia girar as
rodas perfuradas e, com base nos movimentos e passagem de luz por cada orifcio, sero determinadas
as coordenadas para os eixos X e Y.
eixo X

eixo Y

Figura 75 Estrutura interna do mouse

Os mouses pticos modernos possuem um processador de imagens que, continuamente, tira fotos
de baixa resoluo da superfcie e as compara em busca de alterao.
Quando detectada a movimentao do mouse, com o boto sendo pressionado ou liberado, uma
informao enviada para o computador. As informaes so compostas por trs itens:
1. Deslocamento do eixo X.
2. Deslocamento do eixo Y.
3. Informao dos botes.
O menor deslocamento de espao detectado por um mouse normalmente de 0,1 mm e faz uma
varredura de 40 vezes por segundo. Alguns programas diferem o comando que esperado pelo usurio,
128

FUNDAMENTOS DE SISTEMAS OPERACIONAIS


quando pressionado o boto duas vezes seguidas e rapidamente. Vale destacar que com base nos
parmetros de espao e tempo informados previamente, a sensibilidade para detectar o double click
fica a cargo do ajuste a ser configurado no programa.
8.8.3 Software de sada
Se comparado com o software de entrada, o software de sada mais simples, entretanto existem particularidades
e varincias que necessitam de nossa ateno. Nesta seo, daremos nfase ao software de interface grfica,
tendo em vista que, para os usurios, o principal dispositivo de sada o monitor do computador.
Em 1984, o MIT (Massachusetts Institute of Technology) desenvolveu o projeto Athena, resultando
no sistema XWindow, tambm conhecido como X. Ele um protocolo de rede que tem como
objetivo conectar diversos terminais a um servidor central, provendo base para GUI (Graphical User
Interface). O X composto por dois componentes principais: o software client e o software host
que podem funcionar em mquinas distintas, ou, nos casos mais atuais, nas mquinas com o sistema
operacional Linux, ambos no mesmo equipamento.

Saiba mais
Para saber mais a respeito do X consulte: <http://www.linfo.org/
x.html>.
Na Figura 76 demonstrado o ambiente Gnome (GNU Network Object Model Environment) e na
Figura 77 o ambiente KDE (K Desktop Environment) que so dois dos ambientes grficos disponveis em
sistemas Linux e ambos so executados sobre o ambiente XWindow.

Figura 76 Ambiente grfico Gnome

129

Unidade IV

Saiba mais
Para saber mais a respeito do Gnome consulte o site: http://www.gnome.org/

Figura 77 Ambiente grfico KDE

Saiba mais
Para saber mais a respeito do KDE consulte o site: http://www.kde.org/
O servidor X o software responsvel por coletar a entrada no teclado e o mouse ento escrever
a sada na tela e controlar a janela ativa. Os clientes X so os programas em funcionamento, podendo
estar localmente na mesma mquina ou remotamente por meio de uma rede.
Em outras palavras, o servidor X fica localizado na mquina do usurio a qual tem por funo
principal exibir bits na tela do terminal. demonstrado na Figura 78 o modelo de quando o servidor e o
cliente X esto em mquinas distintas e conectadas por uma rede.

Cliente X

Mquina remota

Rede (LAN / WAN)

Servidor X

Estao do usurio
Figura 78 Sistema XWindow cliente e servidor

130

FUNDAMENTOS DE SISTEMAS OPERACIONAIS

Observao
No caso de uma nica mquina com o sistema operacional Linux e
com o ambiente grfico Gnome ou KDE, o cliente simplesmente um
programa que utiliza a biblioteca X e se comunica com o servidor X que
est na mesma mquina. Essa comunicao feita internamente por
meio do protocolo TCP/IP, da mesma forma que na comunio por rede
demonstrada na Figura 78.
Em geral, os computadores pessoais possuem uma interface grfica do usurio (GUI Graphical
User Interface) que tem quatro elementos essenciais (WIMP):
1. Windows: janelas, reas retangulares para executar problemas.
2. Icons: cones, pequenos smbolos que possuem alguma ao associada assim que executados.
3. Menus: so listas de aes agrupadas.
4. Pointing: apontador pode ser um mouse ou outro dispositivo com a finalidade de mover um
cursor na tela.
O software de GUI implementado no Windows como parte inerente do sistema operacional ou por
meio de cdigos no nvel do usurio, como feito nos sistemas Unix.
Geralmente, a entrada de dados para as interfaces grficas so via teclado e mouse e a sada pelo
hardware de adaptador grfico. Os adaptadores grficos possuem uma memria chamada de RAM de
vdeo e tm a finalidade de armazenar as imagens exibidas na tela. Tipicamente, os adaptadores grficos
de alta resoluo possuem processadores de 32 ou 64 bits e at 4 GB de memria RAM de vdeo. A
memria de vdeo pode ser usada para armazenar outro tipo de dado alm das imagens, como o
caso do Zbuffer, que gerencia coordenao em grficos 3D, texturas, vertex buffer e a compilao de
programas de sombreamento.
Os adaptadores grficos suportam dimenses distintas de tela. Entre os tamanhos mais comuns
encontrados, temos 1.024 x 768, 1.280 x 960, 1.600 x 1.200 e 1.920 x 1.200. Exceto o 1.920 x 1.200, os
demais esto na formatao 4:3, conforme padro NTSC e PAL, e fornecem pixels quadrados. O tamanho
1.920 x 1.200 est alinhado com as telas widescreen.
Se usada a melhor resoluo, somente para conter a imagem, uma placa de vdeo colorida com 24
bits por pixel necessita de 6,5 MB de memria RAM. Sendo a tela completamente restaurada 75 vezes
por segundo, a RAM de vdeo deve entregar dados continuamente em uma frequncia de 489 MB/s.
Para saber mais a respeito dos softwares de sada para as GUIs indicado estudo usando livros
dedicados ao tema, por exemplo: Petzold, 1999.
131

Unidade IV
Um programa para Windows, diferentemente do ambiente Unix, em geral, cria uma ou mais janelas
com um objetoclasse para cada janela. Cada programa possui uma fila de mensagens e um conjunto de
procedimentos tratadores. O comportamento do programa dirigido pelos eventos que so originados
por mouse e teclado e so processados pelos procedimentos tratadores.
O GDI (Graphics Device Interface Dispositivo de Interface Grfica), um dos trs subsistemas
principais do Microsoft Windows. um padro desse sistema operacional para representar objetos
grficos e transmitilos para dispositivos de sada. O GDI responsvel por tarefas como desenhar
linhas, curvas e fontes, providenciando todo um API (Application Programming Interface Interface de
Programao de Aplicaes) especfico para a execuo dessas operaes.
Uma coleo de chamadas de rotinas GDI pode ser concentrada em um arquivo, denominado
metaarquivo, capaz de descrever um desenho completo. No so todas as imagens manipuladas que
podem ser geradas a partir de grficos vetoriais. As fotografias e os vdeos so exemplos de imagens que
no usam grficos vetoriais.
Imagem vetorial um tipo de imagem gerada a partir de descries geomtricas de formas, diferente
das imagens chamadas de mapa de bits (bitmaps), que so geradas a partir de pontos minsculos
diferenciados por suas cores. Uma imagem vetorial tipicamente composta por elipses, curvas, polgonos,
texto, entre outros elementos, ou seja, utilizamse vetores matemticos para sua descrio. Em um
trecho de desenho slido, monocromtico, um programa vetorial apenas repete o padro, no tendo
que armazenar dados para cada pixel.
Nas verses mais antigas dos sistemas operacionais da Microsoft, cada caractere era representado
por mapas de bits. Uma vez que podem ser necessrios todos os caracteres de todos os tipos de fontes
e em tamanhos variados, seria necessrio um enorme nmero de mapas de bits para termos todas as
combinaes possveis, o que o tornava um sistema totalmente inadequado para textos.
Os esboos de caracteres ou fontes TrueTypes so definidos por uma sequncia de pontos ao redor de
seu permetro, portanto todos os pontos so relativos origem de coordenada (0,0) o que permite escalar os
caracteres de maneira crescente ou decrescente multiplicando cada coordenada pelo mesmo fator de escala.
8.9 Thin clients clientes magros

Os clientes magros so mquinas com capacidade limitada, com pouco software instalado localmente
e se comunicando com um computador central por meio do protocolo de rede.
Os conceitos antagnicos de centralizao ou descentralizao so assuntos que vm sendo discutidos
por dcadas. Nos primrdios da computao, o modelo centralizado era muito utilizado. Posteriormente,
o modelo descentralizado passou a tomar corpo e fora e ultimamente h uma tendncia expressiva
para a volta do modelo antigo.
Essa volta, em termos conceituais, exatamente o modelo idealizado no incio da histria da
computao, porm, devido ao fato de termos a internet como a nova varivel no cenrio atual, esse
132

FUNDAMENTOS DE SISTEMAS OPERACIONAIS


modelo centralizado , na prtica, uma verso muito mais complexa e com possibilidades muito mais
amplas que anteriormente.
No incio da computao, os servidores, denominados computadores de grande porte, possuam
para a poca muitos bytes de memria, bytes de disco e IPIs (Instructions per Second Instrues por
Segundo), capacidade de processamento e os denominados terminais burros (basicamente dispositivos
de entrada e sada e uma placa de rede). Com o passar dos anos, vimos as estaes de trabalho ficarem
cada vez mais poderosas, com milhes de bytes de espao em disco, milhes de bytes em memria e
processadores que dariam depresso aos primeiros supercomputadores.
Atualmente, com a internet, notamos usurios que no esto mais dispostos a perderem tempo,
adicionarem riscos de perda de arquivos e armazenarem emails no disco duro localmente. Hoje trivial
usarmos os provedores desse servio na hora que desejamos, de forma remota, de onde estivermos e por
meio de qualquer dispositivo com navegador, acessar a internet. Essa filosofia vem se expandindo e no
ir demorar para estarmos trabalhando da mesma forma com os nossos arquivos de texto, apresentaes,
planilhas, vdeos, sons e outros.
Com essa nova onda tendencial, apareceu o thinc, desenvolvido pelos pesquisadores da Universidade
de Columbia.
O thinc tem por princpio tirar todos os programas do equipamento do usurio e uslo somente
como tela, com toda a computao sendo realizada pelo servidor. O protocolo entre o cliente thinc e o
servidor simplesmente informa tela como atualizar a RAM de vdeo.
Microsoft Windows
Embedded CE 6.0 R2

Sistema operacional instalado

Browser supported
Memria padro

SDRAM DDR2 de 512 MB

Memria flash

128 MB

Grficos

Placa de vdeo integrado VIAChrome9


HC3 com suporte para monitores de alta
resoluo at 1920 x 1440 ou at 32
bits de profundidade de cor (64 MB de
memria de vdeo)

Figura 79 Thin clients Informao geral

8.10 Gerenciamento de energia


Atualmente, a humanidade consome 30% a mais dos recursos naturais do que
a capacidade de renovao da Terra. Se no houver mudana nos padres de
consumo e produo, em menos de 50 anos j sero necessrios mais de dois
planetas Terra para suprir nossas necessidades de gua, energia e alimentos.

133

Unidade IV
Todo consumo causa impacto (positivo ou negativo) na economia, nas
relaes sociais, na natureza e em cada indivduo. Ao ter conscincia desses
impactos, o consumidor pode buscar maximizar os impactos positivos
e minimizar os negativos para construir um mundo melhor. Consumo
consciente um consumo com conscincia de seu impacto e voltado
sustentabilidade da vida no planeta.
(...)
Segundo o professor Luiz Pinguelli Rosa, da psgraduao e pesquisa de
engenharia da UFRJ (Universidade Federal do Rio de Janeiro), as emisses de
gases de efeito estufa mundiais (aqueles que contribuem para o aquecimento
global) cresceram 80%, entre 1970 e 2004, e representavam, em 2004, 77%
das emisses causadas por atividades humanas. Nesse perodo, o maior
crescimento das emisses ficou com o setor de energia, que aumentou 145%.
Apesar disso, segundo a Agncia Internacional de Energia (IEA), levando em
considerao o ritmo atual, o consumo energtico do mundo aumentar em
50% at 2030.
Por isso, uma das principais preocupaes do consumidor consciente deve
ser a reduo no gasto de energia. Alm das questes ambientais, tambm
existem as questes sociais. Quanto mais energia gastamos, mais energia ter
de ser produzida. A capacidade do Brasil de fornecer eletricidade j est no seu
limite, e novas usinas tero de ser construdas para atender demanda.41

Conforme Eletrobras (www.eletrobras.com), no setor eltrico a capacidade nominal instalada em


2008 (milhes de kW) era de 103 milhes de kW distribudos em:
Trmicas (25%).
Hidrulicas (73%).
Outros (0,2%).
Energia eltrica disponvel em 2008: 541 bilhes de kWh.
Consumo nacional de energia eltrica em 2008: 418 bilhes de kWh.
Nmero de consumidores: 63,5 milhes.
estimado que, em 2030, o Brasil dever estar com a capacidade nominal instalada de 216,6 milhes
de kW (156 milhes de kW de hidroeltricas, 39,8 milhes de kW trmicos, destes, 21,0 milhes a gs
41

134

Disponvel em: <http://www.hp.com/latam/br/consumoconsciente/energia.html>. Acesso em: 8 jun. 2011.

FUNDAMENTOS DE SISTEMAS OPERACIONAIS


natural, 6 milhes a carvo, 7,35 milhes a combustvel nuclear, e 5,5 milhes de outros, e, ainda, 30,8
milhes de energia alternativa PCHs, biomassa e elica).
Atualmente (dezembro de 2010), somente no Brasil existem cerca de 74 milhes de
computadores pessoais. Agora, imaginando um cenrio hipottico, considere que esses
computadores consumam algo estimado em 500 Watts e fiquem ligados por 5 horas por dia
(mdia).
Para calcular o valor de kWh devemos aplicar a frmula:
potncia real x tempo de uso
1.000
Portanto, cada computador teria o consumo dirio de:
500 Watts x 5 horas
= 2,5 kWh
1.000
E cada computador teria o consumo mensal de:
2,5 kWh x 30 = 75 kWh
Usando a tarifa (valor do kWh) de outubro de 2010, aplicada pela AESEletropaulo, teramos para
cada computador o equivalente (sem aplicar os tributos PIS/PASEP e COFINS) a:
75 kWh x 0,29651 = R$ 22,24
Agora, calcule o valor em reais para os 74 milhes de computadores existentes hoje e ter a ordem
de grandeza em kWh e financeira que representam os computadores ligados. Vale destacar que, na
realidade, muitos desses computadores ficam mais que 5 horas ligados e possuem consumo maior que
500 Watts por hora. Isso devido s diversas necessidades dos usurios e placas e dispositivos conectados,
sem contar que monitores antigos possuem consumo mais elevado que os novos modelos de monitores
com tecnologia LED.
Para o tema relacionado com consumo de energia, o sistema operacional pode contribuir desligando
as partes do computador que no estejam em uso. Os aplicativos tambm podem contribuir usando
menos energia.
As baterias so divididas em duas categorias, no recarregveis e carregveis. Inicialmente, as
baterias recarregveis eram feitas de nquel cdmio (NiCd). Em seguida, vieram as baterias hbridas de
metal nquel (NiMH), sendo mais resistentes e menos poluentes quando descartadas. Atualmente, as
baterias mais modernas so as de on ltio, permitindo que sejam recarregadas mesmo antes de sua
descarga total.
135

Unidade IV
Os fabricantes de computadores portteis, principalmente notebooks que demandam mais da bateria,
precisam projetar componentes que possibilitem diversas possibilidades de estado:
Ligado: quando o dispositivo est em uso.
Dormindo: quando o dispositivo no estiver em uso por um perodo curto de tempo.
Hibernando: quando o dispositivo no estiver em uso por um longo perodo de tempo.
Desligado: quando o dispositivo no for mais usado por um perodo indeterminado nesse estado
no h consumo de energia.
O sistema operacional est pronto para gerenciar as transies dos estados quando os equipamentos
possuem essas funcionalidades: ligado, dormindo, hibernando e desligado.
Se compararmos isoladamente, o monitor o dispositivo que mais consome energia em um computador.
Portanto, ajustarmos o sistema operacional para desligar o monitor num intervalo de tempo justo de
acordo com cada necessidade de cada usurio, ou aplicabilidade, uma forma de contribuirmos para a
economia de energia. Ao retornar atividade, basta o usurio movimentar o mouse ou pressionar qualquer
tecla. Outra tcnica de melhoramento foi proposta por Flinn e Satyanarayanan (2004). Eles sugeriram que
o monitor consistisse em zonas que pudessem ser ligadas ou desligadas independentemente. Essa proposta
deixaria a rea que no faz parte da janela em uso escura, com isso, dependendo do tamanho da rea que
no estivesse em uso, iria gerar uma economia substancial de energia.
Em segundo lugar na nossa lista de maiores consumidores de energia em um computador padro
PC tpico, est o disco rgido, devido a sua parte mecnica composta de cilindros e motores, nos quais
devem manter o disco em uma rotao que pode chegar a 15.000 rpm. Principalmente em notebooks,
bastante aplicada para economia de energia a tcnica de colocar o disco para hibernar quando ele
fica sem uso por alguns minutos. Outras tcnicas, como a existncia de memria cache suficiente para
retardar o acionamento do disco que est hibernando ou mensagens avisando aos programas que o
disco est em hibernao, retardando o acesso ao disco para as aes de menor relevncia, tambm so
mecanismos para economia de energia.
Tambm existem mecanismos para controle da CPU. O sistema operacional pode controlar a CPU
para dormir e com isso reduz o consumo de energia desse componente para quase zero. Essa tcnica
pode ser aplicada pelo sistema operacional toda vez que no houver necessidade de uso ou quando a
CPU estiver aguardando pelo dispositivo de E/S.
Para se aprofundar no assunto, quem tiver interesse pode pesquisar outros itens relacionados a
controle de energia associado memria, dispositivos de comunicao sem fio, controle dos ventiladores
internos que resfriam as CPUs, entre outros.
As aplicaes tambm podem contribuir para diminuir o consumo de energia. Em linhas gerais,
podemos imaginar que uma figura com a extenso bmp normalmente bem maior que uma figura
136

FUNDAMENTOS DE SISTEMAS OPERACIONAIS


no formato jpeg ou gif e, portanto, se na hora que o desenvolvedor estiver preparando sua aplicao,
ele resolver optar pela figura mais leve, isso ir economizar tempo e espao de uso de recursos e, por
consequncia, reduzir o consumo de energia. Reduzir a qualidade do vdeo, usar um codec de voz com
menos amostragens e outras diversas tcnicas podem ajudar nesse processo.
Resumo
O sistema de arquivos um exemplo claro de abstrao no mundo da
computao. Pela viso do usurio, o sistema de arquivos um conjunto
de arquivos de sistema, documentos e figuras, todos dispostos em pastas
de acordo com a necessidade do sistema e do usurio. Os usurios leigos no
assunto no imaginam que os sistemas de arquivos possuem caractersticas
intrnsecas de acordo com suas necessidades e plataformas. H at usurios
que tentam ler um arquivo que no compatvel entre sistemas de arquivos
e mesmo assim dizem que existem problemas na mquina ou at mesmo
que o arquivo est corrompido.
Os arquivos possuem caractersticas que permitem que sejam lidos
e escritos (alterados); os diretrios podem ser criados e excludos e
tambm podem armazenar outros subdiretrios e arquivos dentro
deles.
Arquivos contguos, lista encadeada, tabelas de alocao de arquivos
e inodes so possveis formas de descobrir como o sistema operacional
aloca a memria e monitorar qual bloco vai para qual arquivo.
As estruturas de diretrios podem ser diferentes entre os sistemas. Os
atributos podem ficar nos diretrios ou em outro lugar, como no inode. O
espao em disco pode ser gerenciado por listas de espaos livres ou mapas
de bits.
Os sistemas mais modernos possuem mecanismos para melhorar a
confiabilidade. Isso s possvel com tcnicas de cpia incrementais e de
programa que possa reparar sistemas de arquivos danificados.
Tcnicas como a incluso de cache de bloco, a leitura antecipada e a
disposio de blocos relacionados prximos uns dos outros melhoram a
performance do sistema de arquivos.
Diversos sistemas de arquivos foram comentados ao longo do material,
porm somente uma pequena parte das opes existentes no mercado.
Entretanto, so os sistemas de arquivos que esto na quase totalidade dos
computadores no mundo.
137

Unidade IV
O sistema de entrada e sada (E/S) pode ser implantado de trs
maneiras:
1. E/S programada: a CPU escreve ou l cada palavra ou byte, ento
espera em um lao estreito at que seja obtido ou haja possibilidade
de enviar o prximo dado.
2. E/S por interrupo: a CPU escreve ou l cada palavra ou byte, ento
segue para outra tarefa at que ocorra uma interrupo informando
a concluso da E/S.
3. E/S por DMA: um chip separado da CPU gerencia a transferncia
de um bloco de dados. Somente quando o bloco for totalmente
transferido, ento haver uma interrupo.
Os quatro nveis de uma estrutura de E/S so:
1. Rotinas dos servios de interrupo.
2. Drivers dos dispositivos.
3. Software de E/S independente de dispositivo.
4. Software de E/S do espao do usurio.
Existem vrios tipo de mdias, incluindo as magnticas, pticas e as
tecnologias de RAID.
Estudamos os relgios com o objetivo do entendimento a respeito
do controle do tempo real, da definio exata do tempo de execuo
dos processos, do tratamento de temporizadores e para fins de
contabilidade.
Os terminais so estruturados com base em caracteres pontos, como
as questes referentes aos caracteres especiais. Baseado na necessidade
de controle que cada programa pode exigir so possveis duas formas de
entrada:
1. Entrada em modo natural.
2. Entrada em modo preparado.
Atualmente, quase que a totalidade dos computadores usam GUIs como
sada. Os programas para as interfaces grficas do usurio so baseados
138

FUNDAMENTOS DE SISTEMAS OPERACIONAIS


em eventos que so enviados para serem processados praticamente de
imediato.
Em muitos sistemas em que necessrio pouco ou praticamente nada de
inteligncia e capacidade de processamento nas pontas, os equipamentos
denominados clientes magros possuem vantagens quando comparados
com os PC tradicionais. Entre outras, o preo por unidade e a simplicidade
dos dispositivos.
Para os equipamentos portteis que esto a cada dia conquistando mais o
mercado de computadores, a bateria ainda um ponto crucial. Os programas
podem contribuir para otimizar tarefas, de tal forma que deem preferncia
longevidade da carga da bateria, porm sacrificando algo. Esse mecanismo
permite que os usurios que estejam em um local desprovido de fonte de
energia externa para recarga da bateria, ou sem bateria extra, tenham pelo
menos mais alguns minutos de carga para continuar sua atividade.

Saiba mais
<http://www.inf.ufes.br/~zegonc/material/Sistemas%20Operacionais/
Exercicios/Solucoes%20de%20Exercicios_Autores_V%203.2.pdf>

Exerccios
Questo 1. A tcnica RAID (Redundant Arrays of Inexpensive Disk) usada em gerenciamento de
discos para otimizar as operaes de E/S e implementar redundncia e proteo de dados.
(Processo Seletivo Pblico Edital Petrobras / PSP RH 1/2005. <pciconcursos.com.br/provas/Petrobras/2>. Analista de Sistemas
Jnior Suporte de Infraestrutura. Acesso em 21 de abril de 2011).

A tcnica RAID 5 consiste em:


A) Distribuir os dados entre os discos do array, implementando redundncia baseada em paridade.
B) Distribuir o espelhamento ou mirroring de todo o contedo do disco principal, em um ou mais
discos denominados espelhos ou secundrios.
C) Distribuir as operaes de E/S entre os discos fsicos, porm um dos discos dedicado (parity disk),
usado para a recuperao dos dados em casos de falha.
139

Unidade IV
D) Implementar disk stripping, que distribui as operaes de E/S entre os diversos discos fsicos
contidos no array, sem redundncia.
E) Armazenar informao ECC (Error Correcting Code), que a informao de controle de erros, no
lugar da paridade.
Resposta correta: alternativa A.
Anlise das alternativas
A) Alternativa correta.
Justificativa: no modelo RAID 5, os dados so divididos entre os diferentes discos e, para cada strip,
calculada a paridade. A informao de paridade no concentrada em um nico disco, mas sim
distribuda entre os diferentes discos.
B) Alternativa incorreta.
Justificativa: a caracterstica de espelhamento acontece na juno dos modelos RAID 0 e 1.
C) Alternativa incorreta.
Justificativa: o modelo RAID 5 no utiliza um disco dedicado para recuperao.
D) Alternativa incorreta.
Justificativa: no modelo RAID 5 existe redundncia baseada em paridade.
E) Alternativa incorreta.
Justificativa: no RAID 2, so armazenadas informaes ECC (Error Correcting Code), que so as
informaes de controle de erros, no lugar da paridade.
Questo 2. (Adaptado de ENADE 2005) O mtodo de alocao de espao de disco utilizado para
armazenamento de informaes em um sistema de arquivos determina o desempenho desse sistema.
Com relao a esse assunto, julgue os itens seguintes.
I. A alocao contgua um mtodo adequado para sistemas em que inseres e remoes de
arquivos so frequentes.
II. Acesso direto (ou aleatrio): possvel indicar a posio no arquivo onde cada leitura ou escrita
deve acontecer sem a necessidade de um ponteiro. Por isso, caso se conhea previamente a
posio de um determinado dado no arquivo, no preciso percorrlo sequencialmente at
encontrlo.
140

FUNDAMENTOS DE SISTEMAS OPERACIONAIS


III. Acesso indexado: um mtodo de acesso mais sofisticado, que tem como princpio o acesso
direto, tambm conhecido como acesso indexado ou acesso por chave. A estrutura interna do
arquivo pode ser vista como um conjunto de pares chave/valor que deve possuir uma rea de
ndice onde existam ponteiros para os diversos registros.
Assinale a opo correta.
A) Apenas um item est correto.
B) Apenas os itens I e II esto corretos.
C) Apenas os itens I e III esto corretos.
D) Apenas os itens II e III esto corretos.
E) Os itens I, II e III esto corretos.
Resoluo desta questo na Plataforma.

141

FIGURAS E ILUSTRAES
Figuras
Figura 1
Figura elaborada pelo autor.
Figura 2
Figura elaborada pelo autor.
Figura 3
Figura elaborada pelo autor.
Figura 4
CHARLES BABBAGE. Dimenses: 400309 pixels. Tamanho: 38,36KB (39.280 bytes). Formato: Imagem JPEG.
Disponvel em: <http://www.ntut.edu.tw/~tjhsieh/cs2007f/CharlesBabbage.jpg>. Acesso em: 18 abr. 2011.
Figura 5
[ABC.jpg]. Dimenses: 363430 pixels (redimensionada para 140166 pixels). Tamanho: 72,42KB
(74.153 bytes). Formato: Imagem JPEG. Disponvel em: < http://1.bp.blogspot.com/_j8YnT36f3Y4/
SuW9VdxgTPI/AAAAAAAACyw/BtGKMjxeuE0/s1600/ABC.jpg>. Acesso em: 18 abr. 2011.
Figura 6
COMUNICACIONES: COMPUTADORA Z3: Dimenses: 320253 pixels (redimensionada para 317207
pixels). Tamanho: 28,1KB (28.771 bytes). Formato: Imagem JPEG. Disponvel em: <http://3.bp.blogspot.
com/_1T1E0LG2Kvg/S8tCDa9wxhI/AAAAAAAAAA4/B00mJp2dRcw/s320/Z3.jpg>. Acesso em: 18 abr. 2011.
Figura 7
19371949. Dimenses: 389311 pixels (redimensionada para 253231 pixels). Tamanho: 12,2KB
(12.488 bytes). Formato: Imagem JPEG. Disponvel em: < http://helmutsy.homestead.com/files/
computacion/Historia/Colossus2.jpg>. Acesso em: 18 abr. 2011.
Figura 8
ARQUITETURA DE COMPUTADORES: MARK I (1944) AIKEN. Dimenses: 320214 pixels. Tamanho:
23,32KB (23.880 bytes). Formato: Imagem JPEG. Disponvel em: <http://1.bp.blogspot.com/_
V0D4RXAphU/ScAWnZlZGvI/AAAAAAAAADo/bfqfTI44fIo/s320/Mark+I.gif>. Acesso em: 18 abr. 2011.
142

Figura 9
NOTCIAS PRIMEIRO COMPUTADOR DO MUNDO FAZ 65 ANOS FACULDADE IDEZ. Dimenses:
1.500900 pixels. Tamanho: 32,83KB (33.618 bytes). Formato: Imagem JPEG. Disponvel em: <http://
www.faculdadeidez.com.br/site/imgs/bg_body.jpg>. Acesso em: 18 abr. 2011.
Figura 10
TANENBAUM, A. S. Operacionais modernos. 3 Edio. Prentice Hall Brasil, 2010.
Figura 11
IBM1401.JPG. Dimenses: 444188 pixels (redimensionada para 188106 pixels). Tamanho: 9,67KB
(9.906 bytes). Formato: Imagem JPEG. Disponvel em: <http://www03.ibm.com/systems/resources/
servers_eserver_zseries_zvse_images_history_ibm1401.jpg>. Acesso em: 18 abr. 2011.
Figura 12
LELIO ARQUITETURA DE COMPUTADORES: MARO 2009. Dimenses: 320245 pixels. Tamanho: 23,98KB
(24.553 bytes). Formato: Imagem JPEG. Disponvel em: < http://3.bp.blogspot.com/_9pY6Q1XHkmY/
SbKNhLgSiII/AAAAAAAAABc/bKRkjN9TQzs/s320/7094.jpg>. Acesso em: 18 abr. 2011.
Figura 13
PDP1. Dimenses: 300234 pixels (redimensionada para 170128 pixels). Tamanho: 7,51KB (7.691
bytes). Formato: Imagem JPEG. Disponvel em: <http://www.gameclassification.com/files/machines/
PDP1.jpg>. Acesso em: 18 abr. 2011.
Figura 14
Figura elaborada pelo autor.
Figura 15
Figura elaborada pelo autor.
Figura 16
Figura elaborada pelo autor.
Figura 17
LEI DE MOORE WIKIPDIA, A ENCICLOPDIA LIVRE. Dimenses: 350245 pixels. Tamanho: 35,08KB
(35.923 bytes). Formato: Imagem PNG. Disponvel em: < http://upload.wikimedia.org/wikipedia/
143

commons/thumb/e/e6/Lei_de_moore_2006.svg.png/350pxLei_de_moore_2006.svg.png>. Acesso em:


18 abr. 2011.
Figura 18
DUAL CORE, PROCESSADOR DUAL CORE. Dimenses: 400300 pixels. Tamanho: 24,06KB (24.637
bytes). Formato: Imagem JPEG. Disponvel em: <http://www.coders4fun.com/wpcontent/
uploads/2007/09/dualcore.jpg>. Acesso em: 18 abr. 2011.
Figura 19
Figura elaborada pelo autor.
Figura 20
Figura adaptada pelo autor de DUAL CORE, PROCESSADOR DUAL CORE. Dimenses: 400300 pixels.
Tamanho: 24,06KB (24.637 bytes). Formato: Imagem JPEG. Disponvel em: <http://www.coders4fun.
com/wpcontent/uploads/2007/09/dualcore.jpg>. Acesso em: 18 abr. 2011.
Figura 21
TIPOS DE MEMRIA RAM. Computer Desktop Encyclopedia, 2007.
Figura 22
LINUX: MEMRIAS. Dimenses: 329261 pixels. Tamanho: 13,79KB (14.126 bytes). Formato: Imagem JPEG.
Disponvel em: < http://img.vivaolinux.com.br/imagens/artigos/comunidade/rom.png>. Acesso em: 18 abr. 2011.
Figura 23
CLEAR_CMOS.jpg. Dimenses: 425319 pixels. Tamanho: 70,6KB (72.295 bytes). Formato: Imagem
JPEG. Disponvel em: <http://www.paulespcforum.de/infothek/artikel/hardware/bios/CMOS_Clear/
CLEAR_CMOS.jpg>. Acesso em: 18 abr. 2011.
Figura 24
SEAGATE DISCO RGIDO BARRACUDA 7XT 2 TB 7200 RPM 64 MB SATA 6 (ST32000641AS).
Dimenses: 600532 pixels (redimensionada para 298264 pixels). Tamanho: 35,22KB (36.068 bytes).
Formato: Imagem JPEG. Disponvel em: <http://pan.fotovista.com/dev/9/3/04025939/l_04025939.
jpg>. Acesso em: 18 abr. 2011.
Figura 25
Figura adaptada pelo autor.
144

Figura 26
Figura elaborada pelo autor.
Figura 27
IBM
Figura 28
IBM
Figura 29
SMBOLO USB. Dimenses: 320x320 pixels. Tamanho: 15,77 KB (16.144 bites). Formato: Imagem PNG.
Disponvel em: <http://culturareino.blogspot.com/2010/11/seita-evangelica-declara-o-usb.html
Figura 30
Figura elaborada pelo autor.
Figura 31
Figura elaborada pelo autor.
Figura 32
Figura elaborada pelo autor.
Figura 33
Figura elaborada pelo autor.
Figura 34
Figura elaborada pelo autor.
Figura 35
Figura elaborada pelo autor.
Figura 36
Figura elaborada pelo autor.
145

Figura 37
Figura elaborada pelo autor.
Figura 38
Figura elaborada pelo autor.
Figura 39
Figura elaborada pelo autor.
Figura 40
Figura elaborada pelo autor.
Figura 41
Figura elaborada pelo autor.
Figura 42
MAZIERO, C. A. Sistemas operacionais VI Gerncia de arquivos. Disponvel em: <http://pt.scribd.com/
doc/12385571/SistemasOperacionaisGerenciadeArquivos>, p. 21. Acesso em: 18 abr. 2011.
Figura 43
Figura elaborada pelo autor.
Figura 44
Figura elaborada pelo autor.
Figura 45a e 45b
Figura adaptada de TANENBAUM, A. S. Operacionais modernos. 3 Edio. So Paulo: Prentice Hall Brasil, 2010.
Figura 46
Tela de configurao de cota no Windows Vista.
Figura 47
Figura elaborada pelo autor.
146

Figura 48
Figura elaborada pelo autor.
Figura 49
Figura elaborada pelo autor.
Figura 50
Figura elaborada pelo autor.
Figura 51
Figura elaborada pelo autor.
Figura 52
Figura elaborada pelo autor.
Figura 53
Figura elaborada pelo autor.
Figura 54
Figura elaborada pelo autor.
Figura 55
Figura elaborada pelo autor.
Figura 56
Figura elaborada pelo autor.
Figura 57
Figura elaborada pelo autor.
Figura 58
Figura elaborada pelo autor.
147

Figura 59
Figura elaborada pelo autor.
Figura 60
RAID 0. Dimenses: 325500 pixels (redimensionada para 65100 pixels). Tamanho: 20,56KB (21.055
bytes). Formato: Imagem PNG. Disponvel em: <http://www.hirensbootcd.org/images/RAID_0.png>.
Acesso em: 18 abr. 2011.
Figura 61
RAID 1. Dimenses: 325500 pixels (redimensionada para 65100 pixels). Tamanho: 18,18KB (18.613
bytes). Formato: Imagem PNG. Disponvel em: <http://www.hirensbootcd.org/images/RAID_1.png>.
Acesso em: 18 abr. 2011.
Figura 62
RAID 2. Dimenses: 800400 pixels (redimensionada para 12060 pixels). Tamanho: 67,68KB (69.309
bytes). Formato: Imagem PNG. Disponvel em: < http://www.hirensbootcd.org/images/RAID_2.png>.
Acesso em: 18 abr. 2011.
Figura 63
RAID 3. Dimenses: 675500 pixels (redimensionada para 135100 pixels). Tamanho: 26,08KB (26.704
bytes). Formato: Imagem PNG. Disponvel em: <http://www.hirensbootcd.org/images/RAID_3.png>.
Acesso em: 18 abr. 2011.
Figura 64
RAID 4. Dimenses: 675500 pixels (redimensionada para 9570 pixels). Tamanho: 29,88KB (30.596
bytes). Formato: Imagem PNG. Disponvel em: < http://www.hirensbootcd.org/images/RAID_4.png>.
Acesso em: 18 abr. 2011.
Figura 65
RAID 5. Dimenses: 675500 pixels (redimensionada para 135100 pixels). Tamanho: 26,21KB (26.837
bytes). Formato: Imagem PNG. Disponvel em: < http://www.hirensbootcd.org/images/RAID_5.png>.
Acesso em: 18 abr. 2011.
Figura 66
RAID 6. Dimenses: 800471 pixels (redimensionada para 13680 pixels). Tamanho: 65,13KB (66.697
bytes). Formato: Imagem PNG. Disponvel em: < http://www.hirensbootcd.org/images/RAID_6.png>.
Acesso em: 18 abr. 2011.
148

Figura 67
RAID WIKIPDIA, A ENCICLOPDIA LIVRE. Dimenses: 200214 pixels. Tamanho: 20,33KB
(20.816 bytes). Formato: Imagem PNG. Disponvel em: <http://upload.wikimedia.org/
wikipedia/commons/thumb/d/d1/RAID_01.png/200pxRAID_01.png>. Acesso em: 18 abr.
2011.
Figura 68
LINUX RAID 10 IN ACTION. Dimenses: 500536 pixels. Tamanho: 54,36KB (55.660 bytes). Formato:
Imagem PNG. Disponvel em: <http://files.cyberciti.biz/uploads/tips/2008/10/raid10diagram.png>.
Acesso em: 18 abr. 2011.
Figura 69
PARTITIONING A RAID VOLUME. Dimenses: 1.706579 pixels (redimensionada para 800272 pixels).
Tamanho: 236,96KB (242.644 bytes). Formato: Imagem PNG. Disponvel em: <http://upload.wikimedia.
org/wikipedia/commons/9/9d/RAID_50.png>. Acesso em: 18 abr. 2011.
Figura 70
RAID_100. Dimenses: 300136 pixels. Tamanho: 28,8KB (29.494 bytes). Formato: Imagem PNG.
Disponvel em: <http://infodaiworld.files.wordpress.com/2010/04/raid_100.png?w=300&h=136>.
Acesso em: 18 abr. 2011.
Figura 71
Figura elaborada pelo autor.
Figura 72
KIT TECLADO, MOUSE E MONITOR PARA RACK PADRO 19 (1U). Disponvel em: http://www.fujitsu.
com/global/.
Figura 73
Figura adaptada pelo autor.
Figura 74
TECLADO COM 106 TECLAS. Disponvel em: <http://publib.boulder.ibm.com/infocenter/aix/
v6r1/index.jsp?topic=/com.ibm.aix.keyboardtechref/doc/kybdtech/Key.htm>. Acesso em: 18
abr. 2011.
149

Figura 75
ESTRUTURA INTERNA DO MOUSE. Dimenses: 351305 pixels. Tamanho: 41,38KB (42.375 bytes).
Formato: Imagem PNG. Disponvel em: <http://wwwbargalho.blogspot.com/2008/01/placametambm
denominadamainboardou.html> (com adaptaes). Acesso em: 3 mai. 2011.
Figura 76
AMBIENTE GRFICO GNOME. Disponvel em: <www.gnome.org>.
Figura 77
AMBIENTE GRFICO KDE. Disponvel em: <www.kde.org>.
Figura 78
Figura elaborada pelo autor.
Figura 79

THIN CLIENTS. Disponvel em: <www.hp.com.br> Thin Clients HP t5540.


Tabelas
Tabela 1
Tabela elaborada pelo autor.
Tabela 2
Tabela elaborada pelo autor.
REFERNCIAS
Textuais
ALMEIDA, M. Sistema operacional I. 1. ed. So Paulo: Brasport, 1999.
CARISSIMI, A.; TOSCANI, S.; OLIVEIRA, R. S. de. Sistemas operacionais. 4. ed. Porto Alegre: Bookman
Companhia Editora, 2010.
DEITEL, H. M. e DEITEL, P. J. Operating systems. 3. ed. New York: Prentice Hall, 2003.
LEVINE, D.; ELMASRI, R.; CARRICK, A. G. Operating systems a spiral approach. 1. ed. Nova Deli:
McGrawHill Professional, 2009.
150

TANENBAUM, A. S. Operacionais modernos. 3. ed. So Paulo: Prentice Hall Brasil, 2010.


Exerccios
Unidade I
Questo 2
INSTITUTO NACIONAL DE ESTUDOS E PESQUISAS EDUCACIONAIS ANSIO TEIXEIRA (INEP). Exame
Nacional de Desempenho dos Estudantes (ENADE) 2005: Computao. Questo 11. Disponvel em:
<http://download.inep.gov.br/download/enade/2005/provas/COMPUTACAO.pdf>. Acesso em: 19 mai.
2011.
Unidade II
Questo 1
INSTITUTO NACIONAL DE ESTUDOS E PESQUISAS EDUCACIONAIS ANSIO TEIXEIRA (INEP). Exame
Nacional de Desempenho dos Estudantes (ENADE) 2008: Computao. Questo 19. Disponvel em:
<http://download.inep.gov.br/download/Enade2008_RNP/COMPUTACAO.pdf>. Acesso em: 19 mai.
2011.
Questo 2
INSTITUTO NACIONAL DE ESTUDOS E PESQUISAS EDUCACIONAIS ANSIO TEIXEIRA (INEP). Exame
Nacional de Desempenho dos Estudantes (ENADE) 2008: Computao. Questo 11. Disponvel em:
<http://download.inep.gov.br/download/Enade2008_RNP/COMPUTACAO.pdf>. Acesso em: 19 mai.
2011.
Unidade IV
Questo 1
PROCESSO SELETIVO PBLICO EDITAL PETROBRS / PSP RH 1/2005. Analista de Sistemas
Jnior Suporte de Infraestrutura. Questo 67. Disponvel em: <http://www.pciconcursos.com.br/
provas/2005/7>. Acesso em: 21 abr. 2011.
Questo 2
INSTITUTO NACIONAL DE ESTUDOS E PESQUISAS EDUCACIONAIS ANSIO TEIXEIRA (INEP). Exame
Nacional de Desempenho dos Estudantes (ENADE) 2005: Computao. Questo 52. Disponvel em:
<http://download.inep.gov.br/download/enade/2005/provas/COMPUTACAO.pdf>. Acesso em: 19 mai.
2011.
151

Sites
<http://support.amd.com/us/Processor_TechDocs/24592.pdf>.
<http://developer.amd.com/documentation/guides/pages/default.aspx>.
<http://developer.intel.com/technology/hyperthread/>.
<http://developer.intel.com/products/processor/manuals/index.htm>.
<http://developer.intel.com/technology/multicore/index.htm>.
<http://www.kingston.com/Brasil/branded/server_memory.asp>.
<http://www.museudocomputador.com.br/1940dc_1950dc.php>.
<http://marketshare.hitslink.com/operatingsystemmarketshare.aspx?qprid=8>.
<http://www.intel.com/support/processors/>.
<http://www.intel.com/pressroom/kits/quickrefyr.htm>.
<http://www3.intel.com/cd/software/products/asmona/eng/index.htm>.
<ftp://ftp.dca.fee.unicamp.br/pub/docs/ea876/so-caps12.pdf>.
<http://www.training.com.br/lpmaia/multithread.pdf>.
<http://www.di.ufpb.br/raimundo/Hierarquia/Hierarquia>.
<http://www.gta.ufrj.br/grad/01_1/barramento>.
<http://www.las.ic.unicamp.br/edmar/PUC/2006/SO/SO-Aula2.pdf>.
<http://www.facom.ufu.br/~faina/BCC_Crs/INF09-1S2009/Prjt_SO1/semaphor.html>.
<http://www.deinf.ufma.br/~fssilva/graduacao/so/aulas/monitores.pdf>.
<http://www.slideshare.net/audineisilva1/gerenciamento-de-memoria>.
<homepages.dcc.ufmg.br/~scampos/cursos/so/aulas/aula12_4.ps>.
<http://www.inf.ufes.br/~zegonc/material/Sistemas%20Operacionais/Exercicios/Solucoes%20de%20Ex
ercicios_Autores_V%203.2.pdf>.
152

153

154

155

156

157

158

159

160

Informaes:
www.sepi.unip.br ou 0800 010 9000

Anda mungkin juga menyukai