Sistemas Operacionais
Autores: Prof. Fbio Furukawa
Prof. Roberto Nunes
Colaboradores: Profa. Elisangela Monaco de Moraes
Prof. Roberto Macias
Prof. Fbio Vieira do Amaral
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.
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
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
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.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.3 Compartilhamentos.............................................................................................................................. 77
7.3.1 Travas em arquivos.................................................................................................................................. 77
7.3.2 Semntica de trava de acesso............................................................................................................ 78
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
APRESENTAO
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
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
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
13
Unidade I
Figura 3 Abstrao
14
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
15
Unidade I
2 HISTRIA DOS SISTEMAS OPERACIONAIS
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.
16
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.
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
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
5
6
19
Unidade I
2.2 Segunda gerao de computadores (19551965) Transistores e
sistemas em lote (batch)
Unidade
de fita
Fita de
entrada
Sistema
de fitas
Impressora
20
Fita de
sada
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
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
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
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
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
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
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.
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
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
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
32
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
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
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.
34
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
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.
36
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.
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
Barramento
local
Ponte
PCI
Barramento
cache
Cache
L2
CPU
Barramento PCI
Barramento IDE
Ponte
ISA
SCSI
USB
Barramento SCSI
Barramento
USB
Barramento ISA
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
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
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
42
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
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
Unidade III
5 GERENCIAMENTO DE PROCESSOS
5.1 Introduo a processos
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
core 1
core 2
Tempo core 1
Processo A
Tempo core 2
Processo C
Processo B
Processo D
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
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.
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
Processo Y
Y deixa a
regio crtica
Core 1
Regio crtica
Regio crtica
Processo X
Core 2
X Bloqueado
Figura 34 Regio crtica
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
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
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
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
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
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.
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
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
} 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
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.
24576 32767
8192 16383
pgina virtual 1
CPU
MMU
b.
64
moldura de pgina 4
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
Segmento 3
Segmento 3
Endereo
lgico
Endereo efetivo
0
Endereo linear
Segmento 1
66
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.
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)
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
72
1 registro
Elefante
Lagarto
Cavalo
a.
Jacar
Gato
Cobra
Leo
Coelho
Tartaruga
b.
c.
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
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
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
78
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
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
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
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
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
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
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
Mapa de bit
a.
b.
Threshold: ponto em que um estmulo exatamente suficiente para ser percebido ou produzir uma resposta.
85
Unidade IV
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
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
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
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
Localizao
do arquivo
Tamanho
do arquivo
Data e
hora
Preenchimento
CD#
intervalo
Nome
do arquivo
Uso do sistema
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
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
FAT-12 (MB)
0,5
128
16
256
512
16
1024
32
2048
FAT-16 (MB)
FAT-32 (TB)
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
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
98
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)
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.
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
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
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
40 M
50 M
Blue-Ray (12x)
54 M
USB 2.0
60 M
78 M
80 M
125 M
120 M
300 M
Fita Ultrinum
320 M
Barramento PCI
528 M
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
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.
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
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
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
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
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
Espao
do
usurio
Driver da
impressora
Driver
do
disco
Barramento
Hardware
Controlador
da impressora
Controlador
do disco rgido
Dispositivo
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
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
Camada
1.
2.
Processo do usurio
Software independente de
dispositivo
Ajusta os registradores do
dispositivo; verifica status
Tratadores de interrupo
Hardware
1. Requisio de E/S
2. Resposta 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
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
A2
A4
A6
A8
Disco 0
Disco 1
Figura 60 RAID 0
A1
A2
A3
A4
Disco 0
Disco 1
Figura 61 RAID 1
118
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
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
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
34
35
120
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
A1
A2
A1
A2
A3
A4
A3
A4
A5
A6
A5
A6
A7
A8
A7
A8
Disco 0
Disco 1
Disco 2
Disco 3
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
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
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
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
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
Figura 72 Kit teclado, mouse e monitor para rack padro 19 (1U) fechado (esquerda), aberto (direita).
126
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.
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
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
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.
129
Unidade IV
Saiba mais
Para saber mais a respeito do Gnome consulte o site: http://www.gnome.org/
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
Servidor X
Estao do usurio
Figura 78 Sistema XWindow cliente e servidor
130
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
Browser supported
Memria padro
Memria flash
128 MB
Grficos
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
134
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
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
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).
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
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
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
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