Unidade IV
7 Sistemas de Arquivos
Em linhas gerais, no ambiente computacional, espera‑se que dados inseridos na entrada saiam
como produto final, informação processada. Essas informações podem ser compreendidas como textos,
planilhas, figuras, filmes etc. As informações que podem ocupar de alguns bytes a milhares de milhões
de bytes devem ser armazenadas em dispositivos não voláteis, ou seja, não podem ser perdidas com o
desligamento do computador e podem ser acessadas por múltiplos processos de forma concorrente.
As informações são armazenadas tipicamente em disco e o armazenamento resume‑se em sequências
lineares de blocos de tamanho fixo que suportam duas operações: busca do bloco k e escrita no bloco k,
surgindo, portanto, o conceito de arquivo.
7.1.1 Arquivos
Arquivos podem ter diversos formatos, desde um simples arquivo texto ASCII com alguns poucos
bytes, até mesmo vídeos com vários megabytes ou gibabytes em diversos formatos.
Cada arquivo é diferenciado por um conjunto de atributos. Tipicamente, temos alguns atributos mais
usados:
• Nome: uma sequência de caracteres para identificar de tal forma que um ser humano, ao vê‑lo
na tela, consiga identificá‑lo. Exemplo: relatorio.doc.
1
Disponível em: <http://www.scribd.com/doc/12385571/Sistemas‑Operacionais‑Gerencia‑de‑Arquivos>. Acesso
em: 8 jun. 2011.
2
Idem.
71
Unidade IV
• Data: é muito útil no que tange ao gerenciamento do ambiente. Além de ajudar o usuário a saber
quando um arquivo foi criado, pode também controlar a data e a hora do último acesso, da última
modificação do conteúdo e até mesmo da última alteração de outro atributo, como o nome do
arquivo, por exemplo.
• Tipo: indica se o formato do arquivo é áudio, vídeo, imagem, texto ou outro. O sistema de
arquivos do Windows e outros usam a extensão, que é parte do nome, para indicar o tipo do
arquivo. Exemplo: “.doc” no arquivo com o nome “relatorio.doc” refere‑se a um arquivo de texto
(abreviação de document).
• Tamanho: esse atributo determina quanto de espaço em bytes (1 byte = 8 bits) ou registros.
Exemplo: relatorio.doc 906.085 bytes.
• Permissões de acesso: determina qual usuário têm acesso ao arquivo e quais permissões são
atribuídas a cada usuário (leitura, escrita, remoção etc.).
— Um usuário de sistema Unix chamado root, na teoria, deveria ter acesso total ao arquivo,
enquanto um usuário ou um processo que só deve consultar um arquivo de registros de log
deveria ter acesso só de leitura.
• Localização: esse atributo indica o dispositivo físico onde o arquivo se encontra e da posição do
arquivo dentro do mesmo. Para o usuário do sistema a localização do arquivo é demonstrada como
uma estrutura hierárquica que parte da raiz que é o pai de todos os demais repositórios filhos.
Os arquivos podem ser estruturados de várias formas. A Figura 40 demonstra três possibilidades
comuns, sendo a Figura 40a uma sequência de estrutura de bytes. Para os sistemas operacionais Windows
e Unix, a estrutura de um arquivo nada mais é que uma sequência desestruturada de bytes.
Revisão: Silvana - Diagramação: Márcio - 04/05/2011
3
Disponível em: <http://www.ufpi.br/subsiteFiles/eml/arquivos/files/SO/SO_Livro.pdf>. Acesso em: 8 jun. 2011.
72
Fundamentos de Sistemas Operacionais
Cavalo Tartaruga
a. b. c.
7.1.4 Operações
Os aplicativos e o sistema operacional armazenam e recuperam dados dos arquivos e por meio de
um conjunto de operações fazem uso deles.
4
Idem.
73
Unidade IV
Além dessas operações básicas, outras operações podem ser definidas, como
copiar, mover ou renomear arquivos. Entretanto, essas operações geralmente
podem ser construídas usando as operações básicas.5
Os processos podem ler e escrever dados em arquivos de forma não volátil. Uma interface
de acesso tipicamente composta por uma representação lógica de cada arquivo contido no
dispositivo de armazenamento é necessária para que um processo use um arquivo. Por meio dessa
interface, os processos podem, entre outras opções, localizar arquivos no disco, ler e modificar
seu conteúdo.
5
Disponível em: <http://www.scribd.com/doc/12385571/Sistemas‑Operacionais‑Gerencia‑de‑Arquivos>.
74
Fundamentos de Sistemas Operacionais
5. Devolver à aplicação uma referência a essa estrutura para ser usada nos
acessos subsequentes ao arquivo recém‑aberto.
1. Acesso sequencial.
6
Disponível em: <http://www.scribd.com/doc/12385571/Sistemas‑Operacionais‑Gerencia‑de‑Arquivos>. Acesso
em: 8 jun. 2011.
75
Unidade IV
3. Acesso indexado.
existam ponteiros para os diversos registros, permitindo que sempre que uma
aplicação desejar acessar um registro, então 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 núcleo do sistema operacional implanta os mecanismos de acesso e
indexação do arquivo, o armazenamento e a busca de dados nesse tipo de
arquivo é tipicamente muito rápido e em aplicações mais simples dispensa
o uso de bancos de dados.7
7
Disponível em: <http://www.scribd.com/doc/12385571/Sistemas‑Operacionais‑Gerencia‑de‑Arquivos>. Acesso
em: 8 jun. 2011.
76
Fundamentos de Sistemas Operacionais
7.3 Compartilhamentos
Por meio de uma ou mais travas (locks) aplicadas aos arquivos abertos,
tipicamente os sistemas operacionais oferecem algum mecanismo de
sincronização para acesso a arquivos. A sincronização pode ser feita
aplicando‑se a trava no arquivo inteiro ou somente em um trecho
específico. Isso permitirá que dois ou mais processos possam trabalhar em
partes distintas de um arquivo sem necessidade de sincronização entre
eles. “As travas oferecidas pelo sistema operacional podem ser obrigatórias
(mandatory locks) ou recomendadas (advisory locks)”.
8
Disponível em: <http://www.scribd.com/doc/12385571/Sistemas‑Operacionais‑Gerencia‑de‑Arquivos>. Acesso
em: 8 jun. 2011.
77
Unidade IV
9
Disponível em: <http://www.scribd.com/doc/12385571/Sistemas‑Operacionais‑Gerencia‑de‑Arquivos>. Acesso
em: 8 jun. 2011.
78
Fundamentos de Sistemas Operacionais
Diversos dispositivos de armazenamento estão disponíveis no mercado, que podem ser discos rígidos,
discos óticos, memória flash etc.
10
Disponível em: <http://www.scribd.com/doc/12385571/Sistemas‑Operacionais‑Gerencia‑de‑Arquivos>. Acesso
em: 8 jun. 2011.
11
Disponível em: <http://www.ufpi.br/subsiteFiles/eml/arquivos/files/SO/SO_Livro.pdf>. Acesso em: 8 jun. 2011.
79
Unidade IV
Disco total
Tabela de partição Partições do disco
MBR
7.4.2 Diretórios
bin
opt lib
sgml include
bin skel
etc X11 X11
home X11
lib asm
/— proc X11R6
bin linux
root g++
tmp include
usr lib
local X11
var gcc-lib
man
share groff
src uucp
tmp bin
doc
adm etc
cache include
cron lib
lib
Revisão: Silvana - Diagramação: Márcio - 04/05/2011
man
local share
log
mail at doc
run cron games
spoll lpd info
mail locale
news man
smail zoneinfo
14
Disponível em: <http://www.scribd.com/doc/12385571/Sistemas‑Operacionais‑Gerencia‑de‑Arquivos>.
Acesso em: 8 jun. 2011.
81
Unidade IV
O primeiro supercomputador da história foi um CDC 6600 e usava um sistema de diretório único. A
Figura 43 ilustra esse sistema.
Diretório raiz
Arquivo 1
Arquivo 2
Arquivo 3
Arquivo 4
Arquivo 5
Com essa estratégia, os usuários do sistema com permissão adequada podem criar tantos diretórios
quanto necessário para agrupar os arquivos de uma maneira natural. Nos servidores em redes, cada
usuário geralmente tem o seu diretório raiz para criar a sua própria hierarquia.
15
Disponível em: <http://www.scribd.com/doc/5566097/10GERENCIA‑DO‑SISTEMA‑DE‑ARQUIVOS>.
16
Idem.
82
Fundamentos de Sistemas Operacionais
Diretório raiz
usuario1
propostas
propostaV1
propostaV2
propostaV3
propostaV4
usuario2
usuario3
relatorios
A estratégia é mostrada na Figura 44, em que cada diretório, com nomes de usuario1, usuario2
e usuario3 contidos na raiz, pertence a um usuário diferente. O “usuário um” criou um subdiretório
para propostas e quatro arquivos de propostas com versões diferentes; o “usuário dois” não criou
nada até o momento e o “usuário três” criou um diretório para relatórios, porém não criou nenhum
arquivo.
Da mesma forma que qualquer outro componente do sistema, existe um abismo entre colocar um
sistema de arquivos para funcionar e fazê‑los funcionar da forma eficaz ou pelo menos mais eficiente
possível. Nas seções a seguir, serão detalhadas algumas questões relacionadas ao gerenciamento de
discos.
Geralmente, os arquivos são armazenados em discos rígidos, fazendo com que os projetistas de
sistemas despendam boa parte de suas energias no gerenciamento de espaço em disco. Existem duas Revisão: Silvana - Diagramação: Márcio - 04/05/2011
estratégias gerais para armazenar um arquivo e n bytes:
Na primeira opção, 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 não necessitam ser adjacentes.
83
Unidade IV
Tamanho do bloco
Nessa segunda estratégia, temos uma questão 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 decisão errada pode comprometer muito a capacidade do ambiente. Uma grande unidade
de alocação, como um cilindro inteiro, quer dizer que mesmo um arquivo de 1 byte ocupará um cilindro
todo, desperdiçando um espaço significativo do disco. Por outro lado, um tamanho muito pequeno de
bloco quer dizer que os arquivos ocuparão mais de um bloco e, com isso, demandarão múltiplas buscas
e atrasos de rotação para serem lidos, reduzindo significativamente o desempenho do sistema.
Após definido o tamanho do bloco, o próximo requerimento é monitorar os blocos livres. São usados
três métodos para monitoração dos blocos livres:
1. Lista de blocos livres – representada na Figura 45a – usa‑se uma lista encadeada de blocos com
cada bloco contendo tantos blocos livres quanto couberem nele.
É importante destacar que blocos livres são blocos que não estão em branco. Ficam contidas, nesses
blocos livres, informações que o sistema operacional armazena para mapear o espaço livre. Se pegarmos
como base que cada bloco possui um tamanho de 1 KB e um ponteiro tem tamanho de 32 bits, então
em um bloco livre temos 255 ponteiros para os próximos blocos livres do disco, sendo que uma entrada
é reservada ao ponteiro para o bloco seguinte.
84
Fundamentos de Sistemas Operacionais
No intuito de conter o uso exacerbado do espaço dos discos rígidos, os sistemas operacionais
multiusuários oferecem um mecanismo para impor cotas de utilização de disco.
Essa importante ferramenta permite que os administradores de redes não sejam surpreendidos por
falta de disco de forma abrupta. O sistema de cota pode ser implantado para avisar ao administrador
quando um threshold19 é atingido abruptamente. Geralmente, quando não há uma política bem definida
no que diz respeito ao uso dos recursos computacionais, os usuários podem gravar vários tipos de arquivos
que não são necessariamente pertinentes ao trabalho corporativo que deveria estar desenvolvendo.
O serviço de cota pode ser configurado para somente avisar o administrador de que um determinado
usuário, ou múltiplos, está atingindo ou já ultrapassou a cota estabelecida, entretanto, nesse caso,
nenhuma ação automática negando novos consumos será tomada. A outra forma é definindo não
somente o aviso, mas também a ação automática de proibição do consumo de espaço em disco superior
à cota determinada previamente. Na Figura 46, é demonstrada a tela de configuração de cota no
Windows Vista.
Revisão: Silvana - Diagramação: Márcio - 04/05/2011
Observação
Funcionamento de cota
• Em uma tabela alocada na memória principal estão contidos os atributos de todos os arquivos
Revisão: Silvana - Diagramação: Márcio - 04/05/2011
• Uma segunda tabela registra as informações de cota para cada usuário que tenha algum arquivo
aberto.
86
Fundamentos de Sistemas Operacionais
• O limite flexível permite que um usuário exceda o treashold previamente estabelecido, entretanto o
usuário só terá essa facilidade durante uma sessão. Por exemplo, se após editar uma apresentação
em PowerPoint adicionando várias figuras e textos, o usuário tentar salvá‑la, o limite flexível irá
deixar que o usuário grave seu arquivo sem risco de perdê‑lo. Porém, se após fechar os arquivos
abertos, o usuário tentar fazer isso novamente, uma mensagem de erro irá aparecer informando
que o limite de espaço não permite essa operação.
• Os limites estritos nunca são excedidos, ou seja, se o usuário acabou de abrir o gerenciador de
arquivos e nota que há 2 mbytes ainda disponíveis e mesmo assim tenta gravar um arquivo de 5
mbytes, então a operação não será aceita.
No ambiente computacional, o disco rígido é o ponto mais crítico que merece total suporte e pleno
planejamento para que nada de errado aconteça com ele. Numa escala de prioridades ou de preferências,
se assim pode‑se dizer, é preferível que todos os componentes de um computador sejam danificados por
alguma catástrofe contanto que o disco rígido mantenha‑se íntegro.
O fato é que não é o disco o principal protagonista dessa história, e sim os dados contidos nele.
Diversos casos de problemas com sistemas são reportados diariamente, ora por desastre natural
(chuva, incêndio, enchente, terremotos etc.), ora por descuido com o sistema de aterramento, que, por
consequência ocasiona a queima dos equipamentos.
Imagine que os dados contidos em um determinado disco rígido são referentes ao banco de dados que
servirá de base para bilhetagem dos serviços prestados por uma empresa de telefonia e, abruptamente, algo
acontece resultando na danificação total do disco rígido. Ou uma instituição financeira que possui todos os
dados de movimentações, valores em conta, agenda de pagamentos e dezenas de outros dados armazenados
em um servidor que foi danificado a tal ponto que o disco rígido encontra‑se totalmente inutilizável.
Com base nos hipotéticos cenários apresentados anteriormente, é necessário que alguma tecnologia,
Revisão: Silvana - Diagramação: Márcio - 04/05/2011
prática ou até mesmo processo seja implantado, objetivando a guarda dos dados de forma segura em
algum outro local que não dentro do servidor em questão. Isso será necessário por dois principais
motivadores ou causas dos possíveis problemas previamente apresentados:
2. Recuperação quando é feito algum procedimento errado (entende‑se por “procedimento errado”
geralmente algo relacionado a erro humano).
No primeiro caso, o objetivo é recuperar o ambiente após um desastre natural como enchente,
incêndio, terremoto ou outro.
87
Unidade IV
O segundo caso geralmente acontece devido a erro do usuário, que apaga ou altera o conteúdo de
um ou mais arquivos. Há também alguns casos nos quais uma aplicação, geralmente desenvolvida in
house,20 com algum tipo de erro no código, de alguma forma altera os arquivos inadequadamente.
Portanto, para resolver esses casos, é necessário possuir uma boa política de segurança que seja
baseada em normas como a ISO 27001. Devemos ter a disciplina e o entendimento da importância do
backup21 no ambiente computacional. O backup é todo e qualquer processo que gere uma cópia de
segurança que irá possibilitar futuras restaurações de ambiente em caso de acidente ou não. Conforme
normas do Banco Central brasileiro, todas as instituições financeiras, desde corretoras até grandes
bancos, devem guardar historicamente os dados de aplicações por anos. Ou seja, se o auditor do Banco
Central ou de alguma outra empresa de auditoria for realizar uma análise no ambiente – por exemplo:
os auditores que estão alinhados com as exigências do Bacen –, ele pode pedir que seja restaurada
uma determinada informação de 12 de agosto de 2005 ou outra data aleatoriamente só para averiguar
se o sistema de cópia de segurança (backup) e a restauração da cópia de segurança (restore) estão
funcionando adequadamente.
Uma estrutura de backup desse maquinário, pessoas e produtos, pode custar alguns milhões,
principalmente para grandes corporações que possuem diversos servidores e, muitas vezes, são
descentralizados entre prédios ou até mesmo entre países. Outro ponto crítico é que o backup leva
muito tempo e ocupa muito espaço; portanto, operacionalizá‑lo de maneira eficaz é muito importante.
Essas considerações destacam alguns pontos importantes:
Revisão: Silvana - Diagramação: Márcio - 04/05/2011
1. Devemos fazer cópia de segurança somente dos diretórios específicos e de tudo o que está contido
neles. Portanto, cópia de binários (programas executáveis que residem em uma parte limitada da
árvore do sistema de arquivos) e não devem ser copiadas para fita.
20
In house: termo em inglês para “em casa” – aplicado na área de informática para qualquer produto ou serviço
feito na própria empresa e por profissionais próprios ou contratados.
21
Backup: cópia de um arquivo ou conjunto de dados mantidos por questão de segurança contra erros no original
ou cópia principal.
22
Survey: estudo de pesquisa do ambiente que formula perguntas a fim de receber informação sobre atitudes,
motivos e opiniões. Esses estudos podem ser feitos frente a frente, pelo telefone ou pelo correio eletrônico.
88
Fundamentos de Sistemas Operacionais
2. Devemos sempre iniciar o primeiro backup com uma cópia full, que compreende a cópia total e
integral dos diretórios e arquivos que fazem parte da tarefa de cópia de segurança (job de backup),
porém, posteriormente, devemos intercalar entre full e incremental. Isso porque não faz sentido
copiarmos diariamente os arquivos que não foram mudados – deixamos o backup completo (full)
para os finais de semana e os incrementais para os diários. Nesse procedimento, durante a semana
as janelas para atividades operacionais normalmente são curtas (geralmente menos de 8 horas
por noite durante os dias da semana) em comparação com o final de semana (que pode ser de
mais de 24 horas, em alguns casos das 18 h da sexta‑feira até 6 h da segunda‑feira). Embora esse
processo minimize o tempo de cópia, esse esquema torna a recuperação mais trabalhosa. Isso se
deve ao fato de que se o problema acontecer – por exemplo, na quarta‑feira –, então deveremos
restaurar o jogo de fitas do último final de semana, pois é esse que contém todos os arquivos,
e, posteriormente, restaurar todas as fitas contendo os dados incrementais. Esquemas de cópia
incremental mais sofisticado ajudam a facilitar a restauração das cópias de segurança.
3. Como o volume de dados copiados é geralmente muito grande, pode ser necessário comprimir os
dados antes de escrevê‑los na fita. Esse processo, na maioria dos casos, irá economizar tempo e
dinheiro. Porém, para muitos algoritmos de compressão, se porventura acontecer algum problema,
mesmo que pequeno, na fita de backup, pode‑se perder o algoritmo de descompressão, tornando‑se
impossível ler um arquivo por completo, uma parte da fita que contém vários arquivos, ou até
mesmo a fita por completo.
4. Se durante o processo de backup o sistema de arquivos estiver sendo utilizado para novas cópias,
adição de arquivos, alteração e remoção, então poderá acarretar numa cópia inconsistente.
5. A cópia que está sendo feita para a fita deve ser criteriosamente bem manipulada e transportada
para lugares seguros. O fato de um administrador de sistema criar uma cópia e deixar a fita sobre
sua mesa implica em várias vulnerabilidades com alto índice de ser um incidente de segurança.
Entre outros, são destacados os três mais críticos:
a) A fita pode ser subtraída por alguém não autorizado e, posteriormente, o dado com alto nível de
confidencialidade ser indevidamente publicado ou manipulado.
b) A fita fora de caixas de transporte apropriadas para essa finalidade pode sofrer sérios danos causados pela
Revisão: Silvana - Diagramação: Márcio - 04/05/2011
intempérie do local que normalmente não é uma estrutura adequada como a de locais de guarda de fitas.
c) A fita pode ser esquecida nesse local, que geralmente é muito próximo fisicamente do servidor onde
estão os dados originais, e se por alguma catástrofe, o disco rígido for impactado negativamente,
pela proximidade física dos ambientes, é praticamente zero a probabilidade de termos a cópia
íntegra para restauração.
• Existem duas estratégias para copiar os dados do disco rígido para fita magnética, sendo cópia
física ou cópia lógica.
89
Unidade IV
• A cópia física, também conhecida como dump físico, copia todos os blocos do disco para
fita, iniciando no bloco zero e terminando no último bloco. As principais vantagens da
cópia física são a simplicidade e a alta taxa de transferência. As desvantagens são a falta
de capacidade de saltar diretórios específicos, permitir cópias incrementais e restaurar
arquivos individuais.
• A cópia lógica, também conhecida como dump lógico, é realizada baseada num diretório ou vários
que são especificados. Em uma cópia lógica, a fita contém uma série de diretórios e arquivos
meticulosamente identificados, possibilitando, assim, a restauração de um arquivo ou diretório
específico.
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 são desenvolvidos, muitas vezes, por motivos
comerciais, outras, por alinhamento tecnológico com o propósito do hardware ou até mesmo motivados
por interoperabilidade entre sistemas. Nesta próxima seção, estudaremos alguns mais relevantes por
serem os mais populares.
O sistema de arquivos ISO 9660 é um padrão internacional e mais usado em tecnologia de CD‑ROMs.
A quase totalidade de CD‑ROM no mercado atual é compatível com esse padrão.
O objetivo principal do padrão ISO 9660 era tornar possível que todo CD‑ROM fosse legível por
todos os computadores, independentemente da ordem em que os bytes são armazenados e qual sistema
operacional esteja carregado no hardware.
Tecnicamente, uma grande diferença dos discos rígidos para os CD‑ROMs é que estes não possuem
cilindros concêntricos, mas sim uma única espiral contínua que contém bits em uma sequência
linear.
Revisão: Silvana - Diagramação: Márcio - 04/05/2011
Lembrete
Em uma espiral do CD‑ROM, os bits são agrupados em blocos lógicos de 2.352 bytes. Tirando
a parte referente a preâmbulos, correção de erro ou outras finalidades estruturais, a parte que
realmente será usada para gravação de dados contém 2.048 bytes, ou seja, 16 kbits. Uma das
aplicabilidades desse tipo de mídia é a gravação de música, o que fica mais fácil usarmos o
tempo como unidade de medida. Portanto, a posição de um bloco é representada em minutos ou
segundos.
90
Fundamentos de Sistemas Operacionais
Lembrete
• 16 blocos iniciais (não é definido pelo padrão); os fabricantes de CD‑ROM podem oferecer um
programa de inicialização que permita que o computador seja inicializado pelo CD‑ROM ou outra
finalidade definida pelo fabricante.
• Em seguida, vem um bloco descritor de volume primário, contendo algumas informações gerais sobre
o CD‑ROM, 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.
Além desses, o descritor de volume primário contém o nome de três arquivos que podem ter uma
notificação de direitos autorais, um resumo e informações bibliográficas. O tamanho de blocos lógicos,
o número de blocos do CD‑ROM, as datas de criação e de validade do CD‑ROM e a entrada de diretório
para o diretório raiz (indicação do bloco inicial) também fazem parte do descritor de volume primário.
• O diretório raiz, bem como os demais, é formado por um número variável de entradas, sendo que
a última contém um bit que irá marcar como entrada final.
• As entradas de diretórios têm tamanho variável e cada uma pode ser formada de dez a doze
campos – parte em ASCII e outros numéricos binários.
• Os campos binários dos diretórios são codificados duas vezes: uma com os bits menos significativos
nos primeiros bytes (little‑endian), que estão nos computadores padrão PC, e outra com os bits
mais significativos nos primeiros bytes (big‑endian), sendo estes usados por SPARCS.
O formato de uma entrada de diretório ISO 9660 é ilustrado na Figura 47, sendo:
• Os dois primeiros bytes para tamanho da entrada de diretório e tamanho do registro de atributos
estendidos. Revisão: Silvana - Diagramação: Márcio - 04/05/2011
• A localização de um arquivo é totalmente especificada pelo bloco inicial e pelo tamanho que são
os 8 bytes seguintes.
• O campo flag seguinte de 1 byte é usado para ocultar a entrada nas listagens.
91
Unidade IV
• O próximo campo de 2 bytes, denominado intervalo, não é usado na versão mais simples do ISO
9660.
• O campo CD# com 4 bytes serve para indicar em qual CD‑ROM um arquivo está localizado.
• O campo nome do arquivo vem em seguida, com a estrutura com o nome base, um ponto,
extensão, um ponto e vírgula e um número binário de versão (o nome do arquivo pode ter até oito
caracteres, a extensão, até três. Isso se deve à necessidade de compatibilidade, como o MS‑DOS
que segue esse padrão).
• O campo preenchimento será usado para alinhar os campos numéricos das entradas subsequentes
em limites de 2 bytes.
A extensão denominada Rock Ridge foi elaborada pela comunidade Unix, objetivando a representação
de sistemas de arquivos Unix em CD‑ROMs. O campo uso do sistema é usado pelas extensões para
viabilizar que qualquer computador leia o Rock Ridge. Se um sistema específico não reconhece a extensão
Rock Ridge, então esse ignorará a extensão e reconhecerá um CD‑ROM como padrão básico ISO 9660.
Revisão: Silvana - Diagramação: Márcio - 04/05/2011
• PX – Atributos POIX: padrão Unix para bits de permissão de rwxrwxrwx (r = read, w = write e x =
execute – ler, escrever e executar).
• CL –Localização do filho.
• Localização do pai.
• Realocação: os dois campos anteriores, em conjunto com este, são usados para evitar o limite de
oito diretórios que podem ser aninhados conforme ISO 9660.
• TF – Estampa de tempo (timestamp) – contém três estampas: o instante que o arquivo foi criado,
o instante que o arquivo foi modificado pela última vez e a estampa com o instante que ocorreu
o último acesso.
Extensão Joliet
Da mesma forma que o sistema Rock Bridge foi projetado para permitir que o sistema de arquivos
do Unix fosse copiado para o CD‑ROM, a Microsoft desenvolveu o sistema Joliet para suportar o sistema
de arquivos do Windows. Quase que na totalidade os computadores com sistema operacional Windows
que possuem CD‑ROM suportam Joliet.
• Nomes de arquivos mais longos com 64 caracteres. O ISO 9660 pode até oito caracteres, a extensão,
até três.
• Conjunto de caracteres unicode: importante para locais onde não se usa o alfabeto latino. Exemplo:
Japão, China e outros.
• Estrutura de diretórios mais profunda que oito níveis: as árvores de diretórios podem ser
estruturadas em quantos níveis de profundidade forem necessários.
• Nomes de diretórios com extensão: mesmo com essa opção disponível, atualmente não vem sendo
usada.
Revisão: Silvana - Diagramação: Márcio - 04/05/2011
7.6.2 Sistema de arquivo do FAT
Os primeiros computadores pessoais da IBM já utilizavam o sistema de arquivos MS‑DOS e por anos
foi o mais usado mundialmente. Até o Windows 98 e o ME, a Microsoft manteve o mesmo sistema de
arquivos. O Windows 2000, XP e o Vista suportam a esse sistema, porém, ele não é mais padrão nos
equipamentos Personal Computer atuais.
O sistema de arquivos MS‑DOS possui extensão FAT‑32, que vem sendo usada amplamente em máquinas
fotográficas, MP3 e outros. Atualmente, o sistema de arquivos MS‑DOS e suas extensões são mais usados do
que em qualquer outra época. O sistema de arquivo usado pela Microsoft atualmente é o NTFS.
93
Unidade IV
• O caminho é procurado, item por item, até que o diretório final seja encontrado e carregado na
memória.
No formato de uma entrada de diretório MS‑DOS, os campos são de acordo com a sequência
abaixo:
• Atributos: é usado para determinar se um arquivo é somente para leitura, se precisa ser feita cópia
de segurança, 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 três outros campos secundários com 5 bits para dia, 4 bits para mês e
6 bits para ano.
• FAT‑12: usa blocos de 512 bytes, proporcionando um tamanho máximo de partições de 212
x 512 bytes. Com isso, o tamanho máximo de partições em disco era cerca de 2 MB e o
Revisão: Silvana - Diagramação: Márcio - 04/05/2011
tamanho da tabela FAT na memória era de 4.096 entradas de 2 bytes cada – propício para
discos flexíveis. Os discos rígidos demandaram algo mais elaborado, portanto a Microsoft
aprimorou o FAT‑12, preservando a estrutura da tabela, porém, permitindo tamanhos de
blocos adicionais de 1 KB, 2 KB e 4 KB, permitindo partições de 16 MB. Como o MS‑DOS
suportava quatro partições por disco, a nova versão do sistema de arquivos FAT‑12 era
compatível com discos de até 64 MB.
Demonstraremos, na Figura 48, que para arquivos pequenos o FAT‑16 apresentará um grande
desperdício do disco. No exemplo, estamos considerando uma partição de 2 GB (Figura 48a) e arquivo
de 4 KB.
Como foi detalhado anteriormente, um sistema de arquivo FAT‑16 tem de usar blocos de
32 KB (Figura 48b) para atender uma partição de 2 GB. Portanto, se gravarmos arquivos de
4 KB, cada bloco terá uma taxa de ocupação de somente 13%, ou seja, 87% do bloco será
desperdiçado.
Blocos de 32 KB
KB
Arquivo com 4 KB
a. Tamanho da partição
2 GB
Outro ponto importante destacado na Figura 48c e 48d é que a partição de 2 GB que teria 68.644 Revisão: Silvana - Diagramação: Márcio - 04/05/2011
endereços possíveis, porém com o máximo de 64 K (65.536) de endereços que o FAT‑16 suporta, será
parcialmente desperdiçada.
Na Figura 49, teremos o mesmo comparativo, porém, agora com FAT‑32 / blocos de 4 KB e manteremos
a partição de 2 GB com arquivo de 4 KB.
95
Unidade IV
Blocos de 4 KB
KB
Arquivo com 4 KB
a. Tamanho da partição
2 GB
Observação
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 versão, funcionalidades
que são primordiais para ambientes multiusuários, por exemplo.
96
Fundamentos de Sistemas Operacionais
O Multics (Multics ou Multiplexed Information and Computing Service) foi criado em 1964,
fomentado pelo projeto liderado pelo MIT (com Fernando Corbató), e a divisão de produtos para grandes
computadores da companhia General Electric e dos Laboratórios Bell de telefonia. O sistema Multics seria
implantado na plataforma GE 645 da GE. Uma visão geral da arquitetura desse sistema operacional tinha
como ambição estar alinhada com quase todos os computadores existentes, suprindo as necessidades
de computadores de grande porte, mesmo os que estariam à frente do seu tempo.
Saiba mais
Mesmo não sendo bem‑sucedido, o Multics contribuiu muito para o desenvolvimento da computação,
devido as suas ideias inovadoras. Ele foi muito criticado na sua época, contudo a história provou que as
críticas negativas não tinham fundamento.
O sistema de arquivos do Unix, o mesmo da primeira versão dessa plataforma, já nasceu com suporte
a multiusuários, isso porque esse sistema é derivado do Multics. Diferentemente do sistema de arquivos
do MS‑DOS, o sistema de arquivos Unix tem os nomes de arquivos de até 14 caracteres. Eles suportam
qualquer caractere ASCII, com exceção do NUL, que é usado para preencher os espaços 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 demarcação para que o usuário saiba
que antes dela é um diretório e depois da barra é o próximo diretório filho. Se a / está sem nenhum
antecessor ou sucessor, então o diretório é chamado de diretório raiz.
A estrutura de uma entrada de diretório no Unix é bem simples, contendo o campo nome do arquivo
formado por 14 bytes e o número do i‑node23 que é formado por 2 bytes.
O i‑node possui vários atributos que vão desde a informação do tamanho do arquivo, até os
momentos que determinam a criação, o último acesso e a última alteração, o proprietário, o grupo, a
informação de proteção e o contador do número de entradas apontando para o i‑node.
Revisão: Silvana - Diagramação: Márcio - 04/05/2011
O apontador para o i‑node tem um contador que será incrementado quando uma nova ligação
é feita. Quando a ligação é desfeita, então o contador é decrescido. Ao chegar a zero, o i‑node será
subtraído por completo e os blocos de disco são colocados novamente na lista de livres.
A localização 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:
I‑node: é uma estrutura de dados no sistema de arquivos em um sistema de arquivos tradicional Unix. Ele
23
armazena informações básicas sobre um arquivo regular, diretório, ou outros objetos do sistema de arquivos.
97
Unidade IV
1. O sistema do Unix localiza o diretório raiz (que será o ponto de partida e referência). O i‑node do
diretório raiz está localizado em um local fixo do disco rígido, porém o próprio diretório raiz (/)
pode estar em qualquer endereço de blocos.
2. Assim que o sistema já está posicionado na raiz da estrutura, então busca pelo próximo componente
do caminho que é o “home” do diretório raiz. Dessa forma, o sistema irá encontrar o número do
i‑node para o “/home”.
3. Nessa etapa, o sistema localiza o diretório /home, e busca nele o próximo componente que é o user.
Ao encontrar a entrada user, esse diretório tem o i‑node para /home/user. Uma vez no diretório
/home/user, então é possível fazer uma busca no próprio diretório e localizar o componente file.
txt. Assim que a localização for feita até o /home/user/, o i‑node, para esse arquivo ser carregado
na memória, será mantido até que o arquivo seja fechado.
Todos os diretórios possuem entradas “.” (ponto) e “..” (ponto ponto) que são criadas juntamente no
momento da criação do diretório. A entrada “.” (ponto) tem o número do i‑node do diretório atual, e a
entrada “..” (ponto ponto), o número do i‑node do diretório pai (diretório que antecede o diretório atual).
No diretório raiz, o “..” (ponto ponto) aponta para o “.” (ponto) que por consequência é ele mesmo.
Isso se deve ao fato de que o diretório raiz é o nível mais elevado na estrutura e ele não tem um diretório
pai antecessor.
A primeira versão do sistema de arquivos do Linux foi o Minix, porém, como ele seguia estritamente
os padrões do Unix, ele também tinha arquivos com limites de nomes de 14 caracteres e seu tamanho
máquina de arquivo era de 64 MB. Esse padrão atendia quase que na totalidade as necessidades da época,
porém, com o passar do tempo, 64 MB passou a ser “brincadeira de criança”, demandando sistemas
de arquivos mais robustos e melhorados. O sistema de arquivos ext (extended file system) apresenta
melhorias com relação 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 lentidão considerável.
Revisão: Silvana - Diagramação: Márcio - 04/05/2011
Tamanho do bloco 1 KB 2 KB 4 KB 8 KB
Tamanho máximo do
arquivo 16 GB 256 GB 2 TB 2 TB
Tamanho máximo do
sistema de arquivos 4 TB 8 TB 16 TB 32 TB
98
Fundamentos de Sistemas Operacionais
Além do sistema de arquivos ext2, o Linux suporta novas versões do ext, como ext3 e ext4. O ext3
(third extended file system) é um sistema de arquivos que suporta o journaling24. Essa funcionalidade
permite melhorias na confiabilidade e elimina a necessidade de verificar o sistema de arquivo quando há
uma parada do sistema de forma abrupta (por exemplo, quando acontece interrupção de fornecimento
elétrico).
O ext4 (fourth extended file system) é um sistema de arquivos que também mantém registro de
ações (journaling) sendo o sucessor do ext3. Esse sistema de arquivos foi desenvolvido como uma série
oposta de complexidade a da que o ext3 tinha. Muitas dessas complexidades foram originalmente
desenvolvidas para sistemas de arquivos em grupo (cluster file system) destinado ao sistema de arquivos
chamado Lustre.
Além dos apresentados acima, existem vários outros suportados pelo Linux, muitos deles com
características específicas para determinadas aplicações. Entre uma longa lista, segue abaixo uma breve
descrição de alguns dos sistemas de arquivos suportados pelo Linux:
• JFS – Journaling File System, é um sistema de arquivos desenvolvido pela IBM, disponível em
licença open source.
• XFS – é um sistema de arquivos inicialmente desenvolvido pela Silicon Graphics, Inc. para o seu
sistema operacional IRIX.
• Minix – foi um dos primeiros sistemas do tipo Unix baseado no projeto de um micronúcleo.
• ReiserFS – criado por Hans Reiser e inicialmente mantido pela empresa The Naming System Venture
(Namesys), o ReiserFS foi o primeiro sistema de arquivos com suporte ao journaling incluído no
núcleo Linux 2.4+.
• Reiser4 – usa árvores balanceadas para tornar o processo de busca de arquivos, informações sobre
Revisão: Silvana - Diagramação: Márcio - 04/05/2011
segurança e outros metadados mais eficiente.
• ISO 9660 (sistema de arquivos usado em CD‑ROMs), também com as extensões RRIP (IEEE P1282)
e ZISOFS.
24
Journaling: registros armazenados de toda a comunicação no sistema de arquivos, usados para auxiliar na
recuperação de arquivos depois de uma quebra ou falha do sistema.
99
Unidade IV
• SquashFS – é um sistema de arquivos somente leitura para Linux que implementa compressão.
• Aufs – AnotherUnionFS, serviço de arquivos que implementa uma união para montar sistemas de
arquivos Linux.
Como foi descrito no primeiro capítulo desta série, o gerenciamento de entrada e saída tem como
princípio básico a abstração, tornando a interação do programador com a máquina algo muito mais fácil
e permitindo que os programas e os hardwares evoluam de forma independente, porém estruturada.
com o hardware e demandando procedimentos que poderiam ser muito diferentes daqueles que o
engenheiro chinês estaria usando.
Neste material, não está englobado como é desenvolvido o hardware, porém estudaremos como o
hardware é programado para que tenhamos os resultados esperados de cada dispositivo específico. Nas
próximas seções, trataremos, de forma geral, o hardware de computadores típicos. Esse material não
visa abordar hardware específico nem entrar em profundidade acerca da visão que um engenheiro de
hardware deverá ter do assunto.
Os dispositivos de entrada e saída típicos e os que estaremos dando ênfase são divididos em duas
categorias:
101
Unidade IV
Alguns dispositivos, como o relógio do computador e o vídeo mapeado em memória, não pertencem
a nenhuma dessas duas categorias. Considerando que os modelos de blocos e caracteres são os mais
comuns e este material não visa se aprofundar no hardware, então será reservado ao autor cobrir essas
duas categorias particularmente.
Existem diversos dispositivos de entrada e saída, 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.
500.000.000
400.000.000
300.000.000
200.000.000
100.000.000
0
se er
ou nn
o
-R 1g
(80 x
co u)
EE o
Di 2.0 .0
CS it/s
z)
5)
a U CSI)
me m
CI
en
94
2x
52
lad
(IE act
56
2.3
2
(IE ltra
rra inu
2.3
oP
a
2.1
M em Op
1
8M
Sc y
13
ed
2 ( USB
S
OM
c
a
(
mp
80
Ba ltr
nt
od
80
-
IU
Te
s et -R pe ch
les
EE
M h e tta
ire ern as ire Blu rT
a
62
CD
et
oS
Fit
th fl A
W E W rn inea rial
sc
e
Fir e
-1
st
o
Et
h L Se
rtã
Fa
OC
t
ne bit
(
Ca
S(
-5
So ga
SA
LTO
Gi
ão
dr
Pa
Revisão: Silvana - Diagramação: Márcio - 04/05/2011
102
Fundamentos de Sistemas Operacionais
• Componente mecânico: é o dispositivo mais aparente para o usuário final, ou seja, impressora,
teclado, mouse e outros.
103
Unidade IV
Saiba mais
quer instalá‑lo 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 vice‑versa.
Analogicamente, teremos então o mouse como dispositivo mecânico e o adaptador usando
padrão USB como dispositivo eletrônico, porém, para que esses dois elementos possam ser vistos
e operados pelos programas do usuário, será necessário um driver (que também chamamos de
controlador de dispositivo). Esse driver irá estabelecer a conectividade lógica entre o elemento
USB e o sistema operacional, e ficará a cargo deste último estabelecer uma interface abstrata para
o programa do usuário.
25
Driver: programa ou rotina usada para interfacear e gerenciar um dispositivo de entrada/saída ou outros
periféricos.
104
Fundamentos de Sistemas Operacionais
• E/S mapeada por porta (port‑mapped I/O): associado a um número de porta de entrada e
saída que pode compreender de 8 a 16 bits. Somente o sistema operacional pode acessar o
espaço de portas E/S (conjunto de portas de E/S). Dessa forma, o programa do usuário não
tem permissão para acessar diretamente o espaço de portas. Esse modelo é demonstrado na
Figura 53a.
• E/S mapeada em memória (memory‑mapped I/O): nesse modelo, todos os registradores são
mapeados em endereços de memória exclusivos. Esse método usa o mesmo endereço de
barramento para endereçar memória e dispositivos de entrada e saída, e as instruções de
CPU para acessar a memória são as mesmas usadas para acessar os dispositivos de E/S.
Para acomodar os dispositivos de E/S, espaços das áreas endereçáveis da CPU devem ser
temporariamente reservados para E/S exclusivamente. Cada dispositivo de entrada e saída
fica escutando o barramento e responderá as suas requisições. Esse modelo é demonstrado
na Figura 53b.
O funcionamento do exemplo de uma CPU querendo ler uma palavra que pode ser tanto da memória
ou de uma porta de entrada se dará da seguinte forma:
4. Nessa etapa, a memória ou o dispositivo de E/S irá responder ao comando de leitura (read).
Além dos dois métodos descritos acima, existe também o E/S por processos dedicados (dedicated I/O
processors), porém não será debatido neste material por se tratar de um método bem específico para
um determinado ambiente menos popular.
105
Unidade IV
Um espaço de
Dois endereços endereçamento
0xFFFF...
Endereço de
E/S
Memória Espaço de
endereço de
memória
Portas de E/S
0
a. b.
Com base na premissa de que o hardware possui controlador de DMA, muitas vezes o sistema
operacional poderá usar o acesso direto à memória (Direct Memory Access – DMA) com o objetivo
de melhorar a performance do ambiente. Em alguns casos, o controlador de DMA está integrado ao
controlador do dispositivo, contudo isso demanda um controlador de DMA para cada controlador
de dispositivo. Geralmente, um único controlador de DMA está contido na placa‑mãe, controlando a
transferência de vários dispositivos, mesmo que simultaneamente.
O controlador de DMA tem acesso ao barramento e contém vários registradores que podem ser lidos
e escritos pela CPU, conforme descrito abaixo:
• Registrador de controle (diferentemente dos dois anteriores, que são somente um para cada
tarefa, esse pode ser composto por um ou mais registradores). Esse registrador especifica a
Revisão: Silvana - Diagramação: Márcio - 04/05/2011
Saiba mais
1. Controlador DMA
Endereço
Contador Controlador de Memória
CPU 4.
Controle Disco principal
Legenda da figura
3. Dados transferidos.
4. Confirmação.
A complexidade dos controladores de DMA pode variar. Há controladores mais simples que tratam
uma transferência por vez e os mais sofisticados que podem ser programados para lidar simultaneamente
com múltiplas transferências. Controladores capazes de tratar múltiplos canais possuem internamente
vários conjuntos de registradores. Cada transferência usa um controlador de dispositivo distinto. Um
algoritmo de alternância, com prioridade ou não, é necessário para o controlador de DMA decidir qual
dispositivo será o próximo 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 à memória RAM (memória Revisão: Silvana - Diagramação: Márcio - 04/05/2011
principal). O modo direto pode operar pelo roubo de ciclo ou surto.
• Roubo de ciclo (cycle stealing): a operação se dá por meio do controlador que solicita a transferência
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 transferências e, por fim, libera o barramento. A vantagem desse
modo é que em uma única aquisição ao barramento várias palavras podem ser transferidas.
107
Unidade IV
Por outro lado, a desvantagem é que o tempo de bloqueio do barramento durante o surto de
transferência pode ser grande o suficiente para fazer com que a CPU e outros dispositivos fiquem
esperando por muito tempo.
Mesmo antes de a controladora atuar em um dos modelos descritos até agora, é necessário que os
discos rígidos carreguem dados em seus buffers internos antes que o DMA inicialize. Podemos destacar
duas razões para isso ocorrer:
Existem alguns pontos importantes para alinharmos quando estamos tratando de software de
entrada e saída, os quais estão destacados a seguir:
• O software de entrada e saída deve estar suportado pelo conceito de independência do hardware.
Isso parte do pressuposto que deveria ser possível que os programas pudessem acessar os
dispositivos de E/S sem a necessidade específica de conhecer o dispositivo. Então, um programa
Revisão: Silvana - Diagramação: Márcio - 04/05/2011
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 rígido, 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 níveis mais próximos ao hardware esse tratamento, ou seja, o controlador
deveria resolver o problema e, se não conseguisse, então o driver do dispositivo deveria tratar
disso.
• O último ponto que devemos nos atentar com a mesma importância dos apresentados anteriormente
é o de dispositivos dedicados versus compartilhados. Pode parecer contraditório, porém, nos dias
atuais, os dispositivos não compartilhados (dedicados) podem apresentar grandes problemas, bem
como impasses. Se imaginarmos dois processos necessitando acessar a mesma fita magnética,
mas com dados em endereços distintos, certamente um dos processos ficará esperando por um
tempo muito grande.
O método mais simples de entrada e saída é ter a CPU fazendo todo o tratamento. E/S programada
é o método de transferência de dados entre a unidade central de processamento e os periféricos como
um NIC (Network Interface Card) ou um dispositivo de armazenamento ATA, por exemplo.
Em geral, entrada e saída programada acontece quando o programa que está rodando na CPU usa
instruções que acessam o endereço de entrada e saída para realizar transferência de dados de um ou
para um dispositivo de entrada e saída. Isso vai na contramão das transferências em modo DMA que
estudamos na seção anterior.
1. Portas seriais.
2. Portas paralelas (quando não estão em modo ECP – Extended Capability Port).
6. Relógio interno.
Apesar de ser simples, a entrada e saída programada tem uma desvantagem que é o fato de segurar
a CPU o tempo todo até que a E/S seja realizada. A espera ociosa é ineficiente em sistemas complexos.
3. Assim que o processo já obteve o acesso à impressora ele então efetuará uma chamada de sistema
para imprimir a cadeia de caracteres.
4. Tipicamente, o sistema operacional copia o buffer para um vetor “x” no espaço do núcleo.
6. Assim que confirmado que a impressora está disponível, o sistema operacional copia o primeiro
caractere para o registrador de dados da impressora (caso a impressora não esteja disponível, 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 páginas antes de iniciar a
impressão.
8. Assim que esse primeiro ciclo está pronto, o sistema operacional faz novamente uma nova
verificação para então enviar outro caractere.
9. O laço será repetido até que a impressão termine, retornando o controle ao processo que originou
a chamada.
O modo que permite à CPU executar outro processo enquanto espera o término do antecessor é
usando a interrupção.
Saiba mais
110
Fundamentos de Sistemas Operacionais
O acesso direto à memória consegue melhorar a velocidade do sistema. Isso porque no modo de E/S
visto anteriormente cada caractere está demandando uma interrupção, que, por consequência, demanda
CPU para controlar essa dinâmica. Usar o controlador de memória para alimentar os caracteres da
impressora fornece a grande vantagem de, ao invés de ser gerada uma interrupção por caractere, gerar
uma interrupção por buffer impresso. Porém, como a velocidade do DMA é consideravelmente menor
que a da CPU, em sistemas com pouco uso de CPU é melhor e mais rápido manter a E/S programada ou
por interrupção.
Conforme ilustrado na Figura 55, tipicamente os softwares de E/S possuem quatro camadas e estão
logo acima do hardware. Cada camada do software de entrada e saída tem função específica e interface
com as camadas vizinhas.
Drives do dispositivo
Tratadores de interrupção
Hardware
Como cada sistema operacional possui características próprias do software de entrada e saída, é
uma generalidade para estudos acadêmicos sem entrar nos detalhes específicos de cada plataforma
As interrupções são desagradáveis, porém, como não podem ser evitadas, o sistema operacional deve
escondê‑las. Dessa forma, apenas uma pequena parte do sistema operacional saberá da sua existência. A
melhor maneira de ocultar a maioria das interrupções é usar um driver que inicie a operação de entrada
e saída e que bloqueie até a tarefa a ser finalizada.
Quando isso acontecer, a rotina de interrupção 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 interrupção no
ambiente genérico padrão PC:
1. Salvar registros que ainda não tenham sido guardados pelo hardware de interrupção.
7. Escolher qual o novo processo que irá ser executado. O algoritmo de alternância pode ser
necessário.
ser capaz de tratar assuntos relacionados a setores, trilhas, cilindros, cabeçotes, movimento
do braço, controladores do motor e demais semânticas para o funcionamento adequado desse
dispositivo.
• Driver do dispositivo: são os códigos específicos que cada dispositivo necessita e são normalmente
desenvolvidos pelos fabricantes dos dispositivos. Devido à diversidade de sistemas operacionais,
pode acontecer do fabricante não ter desenvolvido um driver de dispositivo para a versão do
sistema operacional que está sendo executado em uma determinada máquina. Por esse motivo,
normalmente, quando um novo sistema operacional é lançado, pode haver problemas para o
usuário encontrar um driver para seu dispositivo legado. A Figura 56 ilustra o controlador de
dispositivos e os drivers.
112
Fundamentos de Sistemas Operacionais
Processo do usuário
Espaço
do
usuário
Barramento
Controlador Controlador
Hardware da impressora do disco rígido
Dispositivo
Os drivers de dispositivos estão classificados em poucas categorias. Entre elas as mais comuns são:
• Dispositivo de bloco.
• Dispositivos de caractere.
Os sistemas operacionais possuem uma interface padrão 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 binário que contém intricados
os driver necessários. Quando é preciso a instalação de um novo dispositivo, então deve-se recompilar o Revisão: Silvana - Diagramação: Márcio - 04/05/2011
núcleo do sistema operacional com o novo driver, construindo um novo binário. Esse modelo, no início do
Linux, causou grande impacto para os leigos usuários desse sistema, exatamente pela obrigatoriedade do
usuário ter de procurar o driver necessário para seu dispositivo e, posteriormente, compilar o núcleo do
sistema – ação que para muitos ainda é uma missão impossível.
Com a enorme diversidade de dispositivos de E/S e a demanda por trocas e atualizações constantes, o
modelo apresentado anteriormente não é mais adequado. Os sistemas operacionais para computadores
pessoais passaram para um modelo, no qual os drivers podem ser dinamicamente carregados no sistema
durante a execução.
113
Unidade IV
O software de dispositivos possui geralmente duas partes, sendo a primeira inerente ao dispositivo e
outra parte que é independente.
• Buffering.
A construção de uma interface uniforme permite ao sistema que todos os dispositivos de entrada e
saída e drivers pareçam similares. Na Figura 57a, é ilustrada uma colocação simbólica, na qual os drivers
de cada dispositivo apresentam uma interface diferente para o sistema operacional. Tendo em vista que
as funções do núcleo do sistema operacional, requeridas pelo driver, também diferem de um driver para
o outro, a resultante é um grande esforço de programação.
Na Figura 57b, são simbolizados os drivers com a mesma interface e, se um novo driver estiver em
conformidade com essa interface, isso irá tornar muito mais fácil conectar um novo dispositivo. Dessa
forma, fica muito mais previsível para os programadores de driver saberem quais funções eles devem
fornecer, bem como quais funções eles poderão chamar do núcleo.
Revisão: Silvana - Diagramação: Márcio - 04/05/2011
Figura 57 – a. Sem interface padrão para o driver. b. Com uma interface padrão para o driver
26
Disponível em: <http://www.ufpi.br/subsiteFiles/eml/arquivos/files/SO/SO_Livro.pdf>. Acesso em: 8 jun. 2011.
114
Fundamentos de Sistemas Operacionais
Nesse cenário, em camadas de software de E/S, somente uma pequena parte é constituída de
bibliotecas atreladas aos programas do usuário e de programas que executam fora do núcleo do sistema
operacional. Além dos softwares de E/S no nível do usuário constituído de rotinas de biblioteca, outra
categoria é o sistema de spooling.
A Figura 58 demonstra, de forma geral, o sistema de E/S, ilustrando todas as camadas e as principais
funções de cada uma delas.
1. 2.
Chama E/S; formata E/S; coloca
no spool Processo do usuário
Ajusta os registradores do
dispositivo; verifica status Drivers dos dispositivos
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 Saída (E/S).
115
Unidade IV
Os hardwares de E/S tem como principais componentes os chips, as ligações elétricas e os componentes
físicos.
• Dispositivo de bloco: armazena informação em blocos de tamanho fixo, com endereço (exemplo:
disco).
• Dispositivo de caractere: envia ou recebe fluxo de caracteres sem considerar qualquer estrutura
de blocos (exemplo: impressoras, interface de rede, mouse).
27
Disponível em: <http://professor.rodrigoscama.com.br/textos/SO_EntradaeSaida.pdf>. Acesso em: 8 jun. 2011.
116
Fundamentos de Sistemas Operacionais
28
Disponível em: <http://professor.rodrigoscama.com.br/textos/SO_EntradaeSaida.pdf>. Acesso em: 8 jun. 2011.
117
Unidade IV
RAID 0
A1 A2
A3 A4
A5 A6
A7 A8
Disco 0 Disco 1
Figura 60 – RAID 0
RAID 1
A1 A1
A2 A2
A3 A3
Revisão: Silvana - Diagramação: Márcio - 04/05/2011
A4 A4
Disco 0 Disco 1
Figura 61 – RAID 1
29
Disponível em: <http://professor.rodrigoscama.com.br/textos/SO_EntradaeSaida.pdf>. Acesso em: 8 jun. 2011.
30
Idem.
31
Idem.
118
Fundamentos de Sistemas Operacionais
RAID 2
Figura 62 – RAID 2
RAID 3
A1 A2 A3 Ap(1-3)
Figura 63 – RAID 3
32
Disponível em: <http://pt.wikipedia.org/wiki/RAID>. Acesso em: 8 jun. 2011.
33
Disponível em: <http://professor.rodrigoscama.com.br/textos/SO_EntradaeSaida.pdf>. Acesso em: 8 jun. 2011.
119
Unidade IV
RAID 4
A1 A2 A3 Ap
B1 B2 B3 Bp
C1 C2 C3 Cp
D1 D2 D3 Dp
Figura 64 – RAID 4
RAID 5
A1 A2 A3 Ap
B1 B2 Bp B3
C1 Cp C2 C3
Dp D1 D2 D3
Figura 65 – RAID 5
Revisão: Silvana - Diagramação: Márcio - 04/05/2011
34
Disponível em: <http://professor.rodrigoscama.com.br/textos/SO_EntradaeSaida.pdf>. Acesso em: 8 jun. 2011.
35
Disponível em: <http://pt.wikipedia.org/wiki/RAID>. Acesso em: 8 jun. 2011.
120
Fundamentos de Sistemas Operacionais
RAID 6
A1 A2 A3 Ap Aq
B1 B2 Bp Bq B3
C1 Cp Cq C2 C3
Dp Dq D1 D2 D3
Eq E1 E2 E3 Ep
Figura 66 – RAID 6
RAID 0 + 1
RAID 1
RAID 0 RAID 0
A1 A2 A1 A2
A3 A4 A3 A4
A5 A6 A5 A6 Revisão: Silvana - Diagramação: Márcio - 04/05/2011
A7 A8 A7 A8
36
Disponível em: <http://pt.wikipedia.org/wiki/RAID>. Acesso em: 8 jun. 2011.
121
Unidade IV
• RAID 1+0 ou 10: exige ao menos quatro discos rígidos. Cada par será espelhado
para garantir redundância e, para melhorar o desempenho, os pares serão
distribuídos. Nesse cenário, até metade dos discos pode falhar simultaneamente,
desde que não falhem os dois discos de um espelho qualquer. Isso porque são
usados discos de lotes diferentes de cada “lado” do espelho. É o nível 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
• RAID 50: É um arranjo híbrido que usa as técnicas de RAID com paridade
em conjunção com a segmentação de dados. Um arranjo RAID‑50 é
essencialmente um arranjo com as informações segmentadas por meio
de dois ou mais arranjos.38
RAID 0
A1 A2 Ap A3 A4 Ap A5 A6 Ap
B1 Bp B2 B3 Bp B4 B5 Bp B6
Cp C1 C2 Cp C3 C4 Cp C5 C6
D1 D2 Dp D3 D4 Dp D5 D6 Dp
Disk 0 Disk 1 Disk 2 Disk 3 Disk 4 Disk 5 Disk 6 Disk 7 Disk 8
120GB 120GB 120GB 120GB 120GB 120GB 120GB 120GB 120GB
Figura 69 – RAID 50
37
Idem.
38
Disponível em: <http://pt.wikipedia.org/wiki/RAID>. Acesso em: 8 jun. 2011.
122
Fundamentos de Sistemas Operacionais
• RAID 100: é composto do RAID 10+0. Normalmente, ele é implementado utilizando uma
combinação de software e hardware, ou seja, implanta‑se o RAID 0 via software sobre o RAID 10
via hardware.39
RAID 0
RAID 0 RAID 0
A1 A1 A2 A2 A3 A3 A4 A4
A5 A5 A6 A6 A7 A7 A8 A8
B1 B1 B2 B2 B3 B3 B4 B4
B5 B5 B6 B6 B7 B7 B8 B8
8.7 Relógio
Os temporizadores (timers – relógios) são extremamente necessários por algumas razões, porém, em
sistemas operacionais, o mais relevante é: Revisão: Silvana - Diagramação: Márcio - 04/05/2011
• Manter o funcionamento de segundos, minutos, horas, data e ano, mesmo que o computador
esteja desligado. Com isso, quando o equipamento estiver ligado e em funcionamento, é o relógio
que irá fornecer o tempo real e atual para o ambiente. Portanto, o sistema pode calcular quanto
tempo um processo já está na CPU e, de ciclos em ciclos, quanto irá alternar entre os demais
processos.
39
Idem.
40
Disponível em: <http://professor.rodrigoscama.com.br/textos/SO_EntradaeSaida.pdf>. Acesso em: 8 jun. 2011.
123
Unidade IV
Apesar do temporizador não ser um dispositivo de bloco nem um dispositivo de caractere, o software
desse componente pode tomar a forma de um driver de dispositivo.
Os computadores típicos e atuais utilizam um relógio interno que não é parecido com os nossos
relógios de pulso ou de mesa. Os relógios dos computadores são formados por três componentes:
• Oscilador de cristal.
• Controlador.
• Registrador de apoio.
O sinal gerado pelo circuito eletrônico descrito anteriormente servirá como referência de sincronização
para os vários elementos do computador que necessitem desse tipo de interação.
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 interrupção
na CPU.
A bateria que vem juntamente com a placa‑mãe (bother board) é necessária para manter o relógio
funcionando até quando o computador está desligado ou mesmo desconectado da tomada.
Observação
Se o relógio não estiver presente no sistema, então será solicitado ao usuário informar a data e a
hora no momento do processo de inicialização da máquina.
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 estarão no mesmo tempo ou, em outras palavras,
estarão sincronizados.
124
Fundamentos de Sistemas Operacionais
O software do relógio usará o dado de saída fornecido pelo hardware do relógio, que é responsável
por gerar os pulsos em intervalos extremamente precisos e, preferencialmente, em repetições infinitas.
Então é preciso fornecer as seguintes entregas:
2. Evitar processo executando por tempo maior que o devido: quando um processo é iniciado, o
escalonador inicia o contador com o valor do tempo (quantum) do processo em tiques de relógio.
Em cada interrupção, o driver do relógio decresce um no contador. Assim que o contador atinge
o valor zero, então é chamado o escalonamento para selecionar outro processo.
125
Unidade IV
6. Perfil de execução, realizar monitoramentos e coletar estatísticas. Essa função permite que o
programa do usuário tenha condições de receber do sistema um histograma do contador de
programa, podendo assim relatar onde está sendo gasto o tempo.
Interrupções e polling são as duas maneiras típicas de gerenciar entrada e saída. As interrupções
possuem bom tempo de resposta, ou seja, baixa latência, porém, quando em conjunto com as CPUs
modernas, esse método causa sobrecarga devido à necessidade de chaveamentos de contexto.
O polling é a alternativa para o gerenciamento de E/S por interrupção. Ele permite que a aplicação
realize o processo diretamente, verificando a ocorrência do evento esperado em intervalos de tempo.
Porém, se o evento ocorrer imediatamente após a verificação, então haverá atraso por fazer a aplicação
esperar até o próximo polling.
Nos computadores pessoais, os dispositivos, como teclado, mouse e monitor, são praticamente
indispensáveis. Mesmo os equipamentos portáteis, quando não munidos de mouse, possuem a opção
do touch screen ou algum outro método que faz a função similar à do mouse.
Para os servidores de rede, nem sempre são disponibilizados teclados, mouse e monitor. Isso acontece até
por uma questão de economia, de espaço ou até mesmo por segurança. Em muitas empresas de outsourcing o
data center é praticamente uma sala apagada, ou seja, somente máquinas instaladas nos racks. Muitas vezes,
em outro prédio que pode estar a quilômetros de distância, fica a equipe técnica que suporta ou executa as
atividades nos servidores. Normalmente, quando acontece um problema mais específico, o operador do data
center, que fica no próprio local onde estão os servidores, vai até o equipamento danificado com um console
ou então faz uso do teclado, mouse e monitor. Em alguns casos, é instalado juntamente com os servidores um
conjunto com teclado, mouse e monitor embutido que pode ser retraído e guardado de forma a não ocupar
um espaço considerável. Esse dispositivo possui cabos e entradas para atender vários servidores, necessitando
Revisão: Silvana - Diagramação: Márcio - 04/05/2011
apenas selecionar por chave qual servidor quer obter controle e acesso.
Figura 72 – Kit teclado, mouse e monitor para rack padrão 19” (1U) fechado (esquerda), aberto (direita).
126
Fundamentos de Sistemas Operacionais
Entre os dispositivos disponíveis para os usuários que servirão de entrada temos o teclado que
possui um circuito impresso e um conjunto de teclas sendo conectado ao computador por meio de
uma porta serial ou USB. Toda vez que é pressionado ou liberado, uma interrupção é imediatamente
gerada.
O código de varredura é o número composto por 7 bits e que irá compor uma identificação distinta
para cada tecla, sendo necessário para o driver controlador o oitavo bit para definir se a tecla encontra‑se
pressionada (igual a zero) ou solta (igual a um).
Quando uma tecla é pressionada, o código da tecla é colocado no registrador de E/S. O driver é capaz
de determinar se a tecla é minúscula, maiúscula, precedida de CRTL, ALT ou CTRL‑ALT.
Saiba mais
<http://www‑01.ibm.com/software/globalization/topics/keyboards/iso.jsp>.
127
Unidade IV
Conforme padrão POSIX, existem dois modos para driver de teclado: não canônico e canônico.
O “não canônico” é baseado em caractere ou sequência de caractere. Isso implica que, se durante
a digitação o usuário errar e tentar usar a tecla backspace (retrocesso), na realidade, o resultado será a
palavra ou caractere errado.
O modo “canônico” é com base em linha, ou seja, o driver trata toda a edição interna da linha e
entrega somente as linhas corrigidas para os programas do usuário.
Os modelos de mouse mais antigos possuem internamente dois dispositivos mecânicos com pequenos
orifícios. Conforme Figura 75, é fixado em um dos lados de cada roda um emissor de luz e do outro
lado, o receptor. Conforme movimentação do mouse, a esfera de borracha irá por consequência girar as
rodas perfuradas e, com base nos movimentos e passagem de luz por cada orifício, serão 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 resolução da superfície e as compara em busca de alteração.
Quando é detectada a movimentação do mouse, com o botão sendo pressionado ou liberado, uma
Revisão: Silvana - Diagramação: Márcio - 04/05/2011
informação é enviada para o computador. As informações são compostas por três itens:
O menor deslocamento de espaço 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 usuário,
128
Fundamentos de Sistemas Operacionais
quando é pressionado o botão duas vezes seguidas e rapidamente. Vale destacar que com base nos
parâmetros de espaço e tempo informados previamente, a sensibilidade para detectar o “double click”
fica a cargo do ajuste a ser configurado no programa.
Se comparado com o software de entrada, o software de saída é mais simples, entretanto existem particularidades
e variâncias que necessitam de nossa atenção. Nesta seção, daremos ênfase ao software de interface gráfica,
tendo em vista que, para os usuários, o principal dispositivo de saída é o monitor do computador.
Saiba mais
129
Unidade IV
Saiba mais
Saiba mais
O servidor X é o software responsável por coletar a entrada no teclado e o mouse então escrever
a saída na tela e controlar a janela ativa. Os clientes X são os programas em funcionamento, podendo
estar localmente na mesma máquina ou remotamente por meio de uma rede.
Em outras palavras, o servidor X fica localizado na máquina do usuário a qual tem por função
principal exibir bits na tela do terminal. É demonstrado na Figura 78 o modelo de quando o servidor e o
cliente X estão em máquinas distintas e conectadas por uma rede.
Revisão: Silvana - Diagramação: Márcio - 04/05/2011
130
Fundamentos de Sistemas Operacionais
Observação
Em geral, os computadores pessoais possuem uma interface gráfica do usuário (GUI – Graphical
User Interface) que tem quatro elementos essenciais (WIMP):
2. Icons: ícones, pequenos símbolos que possuem alguma ação associada assim que executados.
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 códigos no nível do usuário, como é feito nos sistemas Unix.
Geralmente, a entrada de dados para as interfaces gráficas são via teclado e mouse e a saída pelo
hardware de adaptador gráfico. Os adaptadores gráficos possuem uma memória chamada de RAM de
vídeo e têm a finalidade de armazenar as imagens exibidas na tela. Tipicamente, os adaptadores gráficos
de alta resolução possuem processadores de 32 ou 64 bits e até 4 GB de memória RAM de vídeo. A
memória de vídeo pode ser usada para armazenar outro tipo de dado além das imagens, como é o
caso do Z‑buffer, que gerencia coordenação em gráficos 3‑D, texturas, vertex buffer e a compilação de
programas de sombreamento.
Se usada a melhor resolução, somente para conter a imagem, uma placa de vídeo colorida com 24
bits por pixel necessita de 6,5 MB de memória RAM. Sendo a tela completamente restaurada 75 vezes
por segundo, a RAM de vídeo deve entregar dados continuamente em uma frequência de 489 MB/s.
Para saber mais a respeito dos softwares de saída 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 objeto‑classe para cada janela. Cada programa possui uma fila de mensagens e um conjunto de
procedimentos tratadores. O comportamento do programa é dirigido pelos eventos que são originados
por mouse e teclado e são processados pelos procedimentos tratadores.
O GDI (Graphics Device Interface – Dispositivo de Interface Gráfica), é um dos três subsistemas
principais do Microsoft Windows. É um padrão desse sistema operacional para representar objetos
gráficos e transmiti‑los para dispositivos de saída. O GDI é responsável por tarefas como desenhar
linhas, curvas e fontes, providenciando todo um API (Application Programming Interface – Interface de
Programação de Aplicações) específico para a execução dessas operações.
Uma coleção de chamadas de rotinas GDI pode ser concentrada em um arquivo, denominado
meta‑arquivo, capaz de descrever um desenho completo. Não são todas as imagens manipuladas que
podem ser geradas a partir de gráficos vetoriais. As fotografias e os vídeos são exemplos de imagens que
não usam gráficos vetoriais.
Imagem vetorial é um tipo de imagem gerada a partir de descrições geométricas de formas, diferente
das imagens chamadas de mapa de bits (bitmaps), que são geradas a partir de pontos minúsculos
diferenciados por suas cores. Uma imagem vetorial tipicamente é composta por elipses, curvas, polígonos,
texto, entre outros elementos, ou seja, utilizam‑se vetores matemáticos para sua descrição. Em um
trecho de desenho sólido, monocromático, um programa vetorial apenas repete o padrão, não tendo
que armazenar dados para cada pixel.
Nas versões mais antigas dos sistemas operacionais da Microsoft, cada caractere era representado
por mapas de bits. Uma vez que podem ser necessários todos os caracteres de todos os tipos de fontes
e em tamanhos variados, seria necessário um enorme número de mapas de bits para termos todas as
combinações possíveis, o que o tornava um sistema totalmente inadequado para textos.
Os esboços de caracteres ou fontes TrueTypes são definidos por uma sequência de pontos ao redor de
seu perímetro, portanto todos os pontos são 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.
Os clientes magros são máquinas com capacidade limitada, com pouco software instalado localmente
e se comunicando com um computador central por meio do protocolo de rede.
Os conceitos antagônicos de centralização ou descentralização são assuntos que vêm sendo discutidos
por décadas. Nos primórdios da computação, o modelo centralizado era muito utilizado. Posteriormente,
o modelo descentralizado passou a tomar corpo e força e ultimamente há uma tendência expressiva
para a volta do modelo antigo.
modelo centralizado é, na prática, uma versão muito mais complexa e com possibilidades muito mais
amplas que anteriormente.
Atualmente, com a internet, notamos usuários que não estão mais dispostos a perderem tempo,
adicionarem riscos de perda de arquivos e armazenarem e‑mails no disco duro localmente. Hoje é trivial
usarmos os provedores desse serviço na hora que desejamos, de forma remota, de onde estivermos e por
meio de qualquer dispositivo com navegador, acessar a internet. Essa filosofia vem se expandindo e não
irá demorar para estarmos trabalhando da mesma forma com os nossos arquivos de texto, apresentações,
planilhas, vídeos, sons e outros.
Com essa nova onda tendencial, apareceu o thinc, desenvolvido pelos pesquisadores da Universidade
de Columbia.
O thinc tem por princípio tirar todos os programas do equipamento do usuário e usá‑lo somente
como tela, com toda a computação sendo realizada pelo servidor. O protocolo entre o cliente thinc e o
servidor simplesmente informa à tela como atualizar a RAM de vídeo.
Browser supported
(...)
• Térmicas (25%).
• Hidráulicas (73%).
• Outros (0,2%).
Revisão: Silvana - Diagramação: Márcio - 04/05/2011
É estimado que, em 2030, o Brasil deverá estar com a capacidade nominal instalada de 216,6 milhões
de kW (156 milhões de kW de hidroelétricas, 39,8 milhões de kW térmicos, destes, 21,0 milhões a gás
41
Disponível em: <http://www.hp.com/latam/br/consumoconsciente/energia.html>. Acesso em: 8 jun. 2011.
134
Fundamentos de Sistemas Operacionais
natural, 6 milhões a carvão, 7,35 milhões a combustível nuclear, e 5,5 milhões de outros, e, ainda, 30,8
milhões de energia alternativa – PCHs, biomassa e eólica).
Usando a tarifa (valor do kWh) de outubro de 2010, aplicada pela AESEletropaulo, teríamos para
cada computador o equivalente (sem aplicar os tributos – PIS/PASEP e COFINS) a:
Agora, calcule o valor em reais para os 74 milhões de computadores existentes hoje e terá a ordem
de grandeza em kWh e financeira que representam os computadores ligados. Vale destacar que, na
realidade, muitos desses computadores ficam mais que 5 horas ligados e possuem consumo maior que
500 Watts por hora. Isso devido às diversas necessidades dos usuários e placas e dispositivos conectados,
sem contar que monitores antigos possuem consumo mais elevado que os novos modelos de monitores
com tecnologia LED.
Revisão: Silvana - Diagramação: Márcio - 04/05/2011
Para o tema relacionado com consumo de energia, o sistema operacional pode contribuir desligando
as partes do computador que não estejam em uso. Os aplicativos também podem contribuir usando
menos energia.
135
Unidade IV
• Dormindo: quando o dispositivo não estiver em uso por um período curto de tempo.
• Hibernando: quando o dispositivo não estiver em uso por um longo período de tempo.
• Desligado: quando o dispositivo não for mais usado por um período indeterminado – nesse estado
não há consumo de energia.
O sistema operacional está pronto para gerenciar as transições dos estados quando os equipamentos
possuem essas funcionalidades: ligado, dormindo, hibernando e desligado.
Também 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 técnica
pode ser aplicada pelo sistema operacional toda vez que não 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 à memória, dispositivos de comunicação sem fio, controle dos ventiladores
internos que resfriam as CPUs, entre outros.
As aplicações também podem contribuir para diminuir o consumo de energia. Em linhas gerais,
podemos imaginar que uma figura com a extensão bmp normalmente é bem maior que uma figura
136
Fundamentos de Sistemas Operacionais
no formato jpeg ou gif e, portanto, se na hora que o desenvolvedor estiver preparando sua aplicação,
ele resolver optar pela figura mais “leve”, isso irá economizar tempo e espaço de uso de recursos e, por
consequência, reduzirá o consumo de energia. Reduzir a qualidade do vídeo, usar um codec de voz com
menos amostragens e outras diversas técnicas podem ajudar nesse processo.
Resumo
Saiba mais
<http://www.inf.ufes.br/~zegonc/material/Sistemas%20Operacionais/
Exercicios/Solucoes%20de%20Exercicios_Autores_V%203.2.pdf>
Exercícios
(Processo Seletivo Público Edital Petrobras / PSP – RH – 1/2005. <pciconcursos.com.br/provas/Petrobras/2>. Analista de Sistemas
Júnior – Suporte de Infraestrutura. Acesso em 21 de abril de 2011).
C) Distribuir as operações de E/S entre os discos físicos, porém um dos discos é dedicado (parity disk),
usado para a recuperação dos dados em casos de falha.
139
Unidade IV
D) Implementar disk stripping, que distribui as operações de E/S entre os diversos discos físicos
contidos no array, sem redundância.
E) Armazenar informação ECC (Error Correcting Code), que é a informação de controle de erros, no
lugar da paridade.
A) Alternativa correta.
Justificativa: no modelo RAID 5, os dados são divididos entre os diferentes discos e, para cada strip,
é calculada a paridade. A informação de paridade não é concentrada em um único disco, mas sim
distribuída entre os diferentes discos.
B) Alternativa incorreta.
C) Alternativa incorreta.
D) Alternativa incorreta.
E) Alternativa incorreta.
Justificativa: no RAID 2, são armazenadas informações ECC (Error Correcting Code), que são as
informações de controle de erros, no lugar da paridade.
Revisão: Silvana - Diagramação: Márcio - 04/05/2011
Questão 2. (Adaptado de ENADE 2005) O método de alocação de espaço de disco utilizado para
armazenamento de informações em um sistema de arquivos determina o desempenho desse sistema.
Com relação a esse assunto, julgue os itens seguintes.
II. Acesso direto (ou aleatório): é possível indicar a posição no arquivo onde cada leitura ou escrita
deve acontecer sem a necessidade de um ponteiro. Por isso, caso se conheça previamente a
posição de um determinado dado no arquivo, não é preciso percorrê‑lo sequencialmente até
encontrá‑lo.
140
Fundamentos de Sistemas Operacionais
III. Acesso indexado: é um método de acesso mais sofisticado, que tem como princípio o acesso
direto, também 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.
141
Figuras e ilustrações
Figuras
Figura 1
Figura 2
Figura 3
Figura 4
CHARLES BABBAGE. Dimensões: 400×309 pixels. Tamanho: 38,36KB (39.280 bytes). Formato: Imagem JPEG.
Disponível em: <http://www.ntut.edu.tw/~tjhsieh/cs2007f/CharlesBabbage.jpg>. Acesso em: 18 abr. 2011.
Figura 5
[ABC.jpg]. Dimensões: 363×430 pixels (redimensionada para 140×166 pixels). Tamanho: 72,42KB
(74.153 bytes). Formato: Imagem JPEG. Disponível em: < http://1.bp.blogspot.com/_j8YnT36f3Y4/
SuW9VdxgTPI/AAAAAAAACyw/BtGKMjxeuE0/s1600/ABC.jpg>. Acesso em: 18 abr. 2011.
Figura 6
Figura 7
1937‑1949. Dimensões: 389×311 pixels (redimensionada para 253×231 pixels). Tamanho: 12,2KB
(12.488 bytes). Formato: Imagem JPEG. Disponível em: < http://helmutsy.homestead.com/files/
computacion/Historia/Colossus2.jpg>. Acesso em: 18 abr. 2011.
Figura 8
Figura 10
Figura 11
IBM1401.JPG. Dimensões: 444×188 pixels (redimensionada para 188×106 pixels). Tamanho: 9,67KB
(9.906 bytes). Formato: Imagem JPEG. Disponível em: <http://www‑03.ibm.com/systems/resources/
servers_eserver_zseries_zvse_images_history_ibm1401.jpg>. Acesso em: 18 abr. 2011.
Figura 12
LELIO ARQUITETURA DE COMPUTADORES: MARÇO 2009. Dimensões: 320×245 pixels. Tamanho: 23,98KB
(24.553 bytes). Formato: Imagem JPEG. Disponível em: < http://3.bp.blogspot.com/_9pY6Q1XHkmY/
SbKNhLgSiII/AAAAAAAAABc/bKRkjN9TQzs/s320/7094.jpg>. Acesso em: 18 abr. 2011.
Figura 13
PDP‑1. Dimensões: 300×234 pixels (redimensionada para 170×128 pixels). Tamanho: 7,51KB (7.691
bytes). Formato: Imagem JPEG. Disponível em: <http://www.gameclassification.com/files/machines/
PDP‑1.jpg>. Acesso em: 18 abr. 2011.
Figura 14
Figura 15
Figura 16
Figura 17
LEI DE MOORE – WIKIPÉDIA, A ENCICLOPÉDIA LIVRE. Dimensões: 350×245 pixels. Tamanho: 35,08KB
(35.923 bytes). Formato: Imagem PNG. Disponível em: < http://upload.wikimedia.org/wikipedia/
143
commons/thumb/e/e6/Lei_de_moore_2006.svg.png/350px‑Lei_de_moore_2006.svg.png>. Acesso em:
18 abr. 2011.
Figura 18
DUAL CORE, PROCESSADOR DUAL CORE. Dimensões: 400×300 pixels. Tamanho: 24,06KB (24.637
bytes). Formato: Imagem JPEG. Disponível em: <http://www.coders4fun.com/wp‑content/
uploads/2007/09/dual‑core.jpg>. Acesso em: 18 abr. 2011.
Figura 19
Figura 20
Figura adaptada pelo autor de DUAL CORE, PROCESSADOR DUAL CORE. Dimensões: 400×300 pixels.
Tamanho: 24,06KB (24.637 bytes). Formato: Imagem JPEG. Disponível em: <http://www.coders4fun.
com/wp‑content/uploads/2007/09/dual‑core.jpg>. Acesso em: 18 abr. 2011.
Figura 21
Figura 22
LINUX: MEMÓRIAS. Dimensões: 329×261 pixels. Tamanho: 13,79KB (14.126 bytes). Formato: Imagem JPEG.
Disponível em: < http://img.vivaolinux.com.br/imagens/artigos/comunidade/rom.png>. Acesso em: 18 abr. 2011.
Figura 23
CLEAR_CMOS.jpg. Dimensões: 425×319 pixels. Tamanho: 70,6KB (72.295 bytes). Formato: Imagem
JPEG. Disponível em: <http://www.paules‑pc‑forum.de/infothek/artikel/hardware/bios/CMOS_Clear/
CLEAR_CMOS.jpg>. Acesso em: 18 abr. 2011.
Figura 24
SEAGATE DISCO RÍGIDO BARRACUDA 7XT –2 TB –7200 RPM –64 MB –SATA 6 (ST32000641AS).
Dimensões: 600×532 pixels (redimensionada para 298×264 pixels). Tamanho: 35,22KB (36.068 bytes).
Formato: Imagem JPEG. Disponível em: <http://pan.fotovista.com/dev/9/3/04025939/l_04025939.
jpg>. Acesso em: 18 abr. 2011.
Figura 25
Figura 27
IBM
Figura 28
IBM
Figura 29
SÍMBOLO USB. Dimensões: 320x320 pixels. Tamanho: 15,77 KB (16.144 bites). Formato: Imagem PNG.
Disponível em: <http://culturareino.blogspot.com/2010/11/seita-evangelica-declara-o-usb.html
Figura 30
Figura 31
Figura 32
Figura 33
Figura 34
Figura 35
Figura 36
Figura 38
Figura 39
Figura 40
Figura 41
Figura 42
Figura 43
Figura 44
Figura adaptada de TANENBAUM, A. S. Operacionais modernos. 3ª Edição. São Paulo: Prentice Hall Brasil, 2010.
Figura 46
Figura 47
Figura 49
Figura 50
Figura 51
Figura 52
Figura 53
Figura 54
Figura 55
Figura 56
Figura 57
Figura 58
147
Figura 59
Figura 60
RAID 0. Dimensões: 325×500 pixels (redimensionada para 65×100 pixels). Tamanho: 20,56KB (21.055
bytes). Formato: Imagem PNG. Disponível em: <http://www.hirensbootcd.org/images/RAID_0.png>.
Acesso em: 18 abr. 2011.
Figura 61
RAID 1. Dimensões: 325×500 pixels (redimensionada para 65×100 pixels). Tamanho: 18,18KB (18.613
bytes). Formato: Imagem PNG. Disponível em: <http://www.hirensbootcd.org/images/RAID_1.png>.
Acesso em: 18 abr. 2011.
Figura 62
RAID 2. Dimensões: 800×400 pixels (redimensionada para 120×60 pixels). Tamanho: 67,68KB (69.309
bytes). Formato: Imagem PNG. Disponível em: < http://www.hirensbootcd.org/images/RAID_2.png>.
Acesso em: 18 abr. 2011.
Figura 63
RAID 3. Dimensões: 675×500 pixels (redimensionada para 135×100 pixels). Tamanho: 26,08KB (26.704
bytes). Formato: Imagem PNG. Disponível em: <http://www.hirensbootcd.org/images/RAID_3.png>.
Acesso em: 18 abr. 2011.
Figura 64
RAID 4. Dimensões: 675×500 pixels (redimensionada para 95×70 pixels). Tamanho: 29,88KB (30.596
bytes). Formato: Imagem PNG. Disponível em: < http://www.hirensbootcd.org/images/RAID_4.png>.
Acesso em: 18 abr. 2011.
Figura 65
RAID 5. Dimensões: 675×500 pixels (redimensionada para 135×100 pixels). Tamanho: 26,21KB (26.837
bytes). Formato: Imagem PNG. Disponível em: < http://www.hirensbootcd.org/images/RAID_5.png>.
Acesso em: 18 abr. 2011.
Figura 66
RAID 6. Dimensões: 800×471 pixels (redimensionada para 136×80 pixels). Tamanho: 65,13KB (66.697
bytes). Formato: Imagem PNG. Disponível em: < http://www.hirensbootcd.org/images/RAID_6.png>.
Acesso em: 18 abr. 2011.
148
Figura 67
Figura 68
LINUX RAID 10 IN ACTION. Dimensões: 500×536 pixels. Tamanho: 54,36KB (55.660 bytes). Formato:
Imagem PNG. Disponível em: <http://files.cyberciti.biz/uploads/tips/2008/10/raid‑10‑diagram.png>.
Acesso em: 18 abr. 2011.
Figura 69
PARTITIONING A RAID VOLUME. Dimensões: 1.706×579 pixels (redimensionada para 800×272 pixels).
Tamanho: 236,96KB (242.644 bytes). Formato: Imagem PNG. Disponível em: <http://upload.wikimedia.
org/wikipedia/commons/9/9d/RAID_50.png>. Acesso em: 18 abr. 2011.
Figura 70
RAID_100. Dimensões: 300×136 pixels. Tamanho: 28,8KB (29.494 bytes). Formato: Imagem PNG.
Disponível em: <http://infodaiworld.files.wordpress.com/2010/04/raid_100.png?w=300&h=136>.
Acesso em: 18 abr. 2011.
Figura 71
Figura 72
KIT TECLADO, MOUSE E MONITOR PARA RACK PADRÃO 19” (1U). Disponível em: http://www.fujitsu.
com/global/.
Figura 73
Figura 74
149
Figura 75
ESTRUTURA INTERNA DO MOUSE. Dimensões: 351×305 pixels. Tamanho: 41,38KB (42.375 bytes).
Formato: Imagem PNG. Disponível em: <http://wwwbargalho.blogspot.com/2008/01/placa‑me‑tambm
‑denominada‑mainboard‑ou.html> (com adaptações). Acesso em: 3 mai. 2011.
Figura 76
Figura 77
Figura 78
Figura 79
Tabelas
Tabela 1
Tabela 2
Referências
Textuais
CARISSIMI, A.; TOSCANI, S.; OLIVEIRA, R. S. de. Sistemas operacionais. 4. ed. Porto Alegre: Bookman
Companhia Editora, 2010.
DEITEL, H. M. e DEITEL, P. J. Operating systems. 3. ed. New York: Prentice Hall, 2003.
LEVINE, D.; ELMASRI, R.; CARRICK, A. G. Operating systems a spiral approach. 1. ed. Nova Deli:
McGraw‑Hill Professional, 2009.
150
TANENBAUM, A. S. Operacionais modernos. 3. ed. São Paulo: Prentice Hall Brasil, 2010.
Exercícios
Unidade I
Questão 2
Unidade II
Questão 1
Questão 2
Unidade IV
Questão 1
Questão 2
151
Sites
<http://support.amd.com/us/Processor_TechDocs/24592.pdf>.
<http://developer.amd.com/documentation/guides/pages/default.aspx>.
<http://developer.intel.com/technology/hyperthread/>.
<http://developer.intel.com/products/processor/manuals/index.htm>.
<http://developer.intel.com/technology/multi‑core/index.htm>.
<http://www.kingston.com/Brasil/branded/server_memory.asp>.
<http://www.museudocomputador.com.br/1940dc_1950dc.php>.
<http://marketshare.hitslink.com/operating‑system‑market‑share.aspx?qprid=8>.
<http://www.intel.com/support/processors/>.
<http://www.intel.com/pressroom/kits/quickrefyr.htm>.
<http://www3.intel.com/cd/software/products/asmo‑na/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
Informações:
www.sepi.unip.br ou 0800 010 9000