Buscar

Sistema F Unidade IV

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 92 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 92 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 92 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

71
FUNDAMENTOS DE SISTEMAS OPERACIONAIS
Re
vi
sã
o:
 S
ilv
an
a 
- 
Di
ag
ra
m
aç
ão
: M
ár
ci
o 
- 
04
/0
5/
20
11
Unidade IV
7 SISTEMAS DE ARQUIVOS
7.1 Introdução a 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
Podemos definir um arquivo como sendo um conjunto de dados armazenados 
em um dispositivo físico não volátil, com um nome e/ou referência que 
permita sua localização futura.1
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.
Um sistema de armazenamento de arquivos pode conter milhões de 
arquivos que são organizados em estruturas hierárquicas denominadas 
diretórios. A estrutura e a organização física e lógica dos arquivos e 
diretórios dentro de um dispositivo de armazenamento são 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 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.
72
Unidade IV
Re
vi
sã
o:
 S
ilv
an
a 
- 
Di
ag
ra
m
aç
ão
: M
ár
ci
o 
- 
04
/0
5/
20
11
• 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.
• Proprietário: atualmente, com os sistemas em rede e multiusuários, cada arquivo tem 
um proprietário, que deve estar corretamente identificado – em alguns casos o próprio 
sistema é o proprietário do arquivo e por isso nenhum usuário deveria alterá‑lo.
• 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.
7.1.3 Estrutura de arquivo
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.
Isso oferece a máxima flexibilidade, tendo em vista que os programas dos 
usuários podem pôr qualquer coisa que seja necessária em seus arquivos e 
ter os nomes que mais forem convenientes.3
Na Figura 40b, é demonstrada uma forma estruturada.
Nessa estrutura, o arquivo é uma sequência de registros de tamanho fixo, 
cada um com alguma estrutura interna. A principal característica dessa 
3 Disponível em: <http://www.ufpi.br/subsiteFiles/eml/arquivos/files/SO/SO_Livro.pdf>. Acesso em: 8 jun. 2011.
73
FUNDAMENTOS DE SISTEMAS OPERACIONAIS
Re
vi
sã
o:
 S
ilv
an
a 
- 
Di
ag
ra
m
aç
ão
: M
ár
ci
o 
- 
04
/0
5/
20
11
estrutura é que a operação de leitura retorna um registro e a operação de 
escrita sobrepõe ou anexa um registro, entretanto, esse modelo não é mais 
aplicado nos sistemas atuais.4
Na organização demonstrada na Figura 40c, um arquivo é constituído de uma árvore de registros, 
cada uma contendo um campo‑chave em uma posição fixa no registro. Para que uma chave específica 
seja buscada de forma mais rápida, a árvore é ordenada pelo campo‑chave. O sistema operacional 
decide onde colocar novos registros no arquivo. Esse tipo de arquivo é bem diferente dos fluxos de 
bytes desestruturados que são usados pelo Windows e Unix, porém são ainda muito usados para alguns 
processamentos de dados comerciais.
1 byte 1 registro
a. b. c.
Elefante Jacaré Gato
Lagarto Cobra Leão Coelho
Cavalo Tartaruga
Figura 40 – Estrutura de arquivos
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.
As operações básicas envolvendo arquivos são:
• Criar: a criação de um novo arquivo demanda a alocação de espaço no 
dispositivo de armazenamento e a definição de seus atributos (nome, 
localização, proprietário, permissões de acesso etc.).
• Ler: permite transferir dados presentes no arquivo para uma área de 
memória da aplicação e, se necessário, enviar para um dispositivo de 
saída 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.
74
Unidade IV
Re
vi
sã
o:
 S
ilv
an
a 
- 
Di
ag
ra
m
aç
ão
: M
ár
ci
o 
- 
04
/0
5/
20
11
permissões associadas permitem acesso ao arquivo, terceiro, localizar seu 
conteúdo no dispositivo de armazenamento, então criar uma referência 
para ele na memória.
• Escrever: essa operação permite transferir dados da memória do 
aplicativo para o arquivo armazenado no dispositivo físico; os novos 
dados podem ser adicionados no final do arquivo ou sobrescrever dados 
já existentes.
• Fechar: ao concluir o uso do arquivo, a aplicação deve informar ao 
sistema operacional que esse arquivo não é mais necessário, a fim de 
liberar as estruturas de gerência do arquivo na memória do núcleo.
• Mudar atributos: usado para modificar outras características do arquivo, 
como nome, proprietário, localização, permissões etc.
• Remover: elimina o arquivo do dispositivo, descartando seus dados e 
liberando o espaço ocupado por ele.
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
7.2 Uso de arquivos
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.
7.2.1 Abertura de arquivo
Conforme demonstrado na sequência a seguir, é necessário que o núcleodo sistema operacional 
execute algumas operações para que seja possível 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 físico.
2. Verificar se a aplicação tem permissão para usar o arquivo da forma 
desejada (leitura e/ou escrita).
5 Disponível em: <http://www.scribd.com/doc/12385571/Sistemas‑Operacionais‑Gerencia‑de‑Arquivos>.
75
FUNDAMENTOS DE SISTEMAS OPERACIONAIS
Re
vi
sã
o:
 S
ilv
an
a 
- 
Di
ag
ra
m
aç
ão
: M
ár
ci
o 
- 
04
/0
5/
20
11
3. Criar uma estrutura na memória do núcleo para representar o 
arquivo aberto.
4. Para fins de gerência, inserir uma referência a essa estrutura na lista de 
arquivos abertos mantida pelo sistema.
5. Devolver à aplicação uma referência a essa estrutura para ser usada nos 
acessos subsequentes ao arquivo recém‑aberto.
Assim que estiver concluída a abertura do arquivo, o processo solicitante recebe 
do núcleo do sistema operacional uma referência para o arquivo recém‑aberto. 
Assim que o processo tiver terminado de usar um arquivo, ele deve solicitar 
ao núcleo o seu fechamento, que implica em concluir as operações de escrita 
eventualmente pendentes e remover da memória do núcleo as estruturas de 
gerência criadas durante sua abertura. As referências a arquivos abertos usadas 
pelas aplicações dependem da linguagem de programação utilizada para 
construí‑las. (...) Cada sistema operacional tem sua própria convenção para 
a representação de arquivos abertos. Por exemplo, em sistemas Windows, os 
arquivos abertos por um processo são representados pelo núcleo por referências 
de arquivos (file handles), que são estruturas de dados criadas pelo núcleo para 
representar cada arquivo aberto. Por outro lado, em sistemas Unix, os arquivos 
abertos por um processo são representados por descritores de arquivos (file 
descriptors). Um descritor de arquivo aberto é um número inteiro não negativo, 
usado como índice em uma tabela que relaciona os arquivos abertos pelo 
processo, mantida pelo núcleo. Dessa forma, cabe às bibliotecas e ao suporte 
de execução de cada linguagem de programação mapear a representação de 
arquivo aberto fornecida pelo núcleo do sistema operacional subjacente na 
referência de arquivo aberto usada por aquela linguagem. Esse mapeamento 
é necessário para garantir que as aplicações que usam arquivos (ou seja, quase 
todas elas) sejam portáveis entre sistemas operacionais distintos.6
7.2.2 Formas de acesso
Assim que o arquivo encontra‑se aberto, a aplicação pode ler os dados contidos nele, modificando 
ou escrevendo novas linhas.
Existem várias formas de se ler ou escrever dados em um arquivo, que 
dependem da estrutura interna de cada arquivo. Considerando arquivos 
como uma sequência de bytes, três formas de acesso são usuais:
1. Acesso sequencial.
6 Disponível em: <http://www.scribd.com/doc/12385571/Sistemas‑Operacionais‑Gerencia‑de‑Arquivos>. Acesso 
em: 8 jun. 2011.
76
Unidade IV
Re
vi
sã
o:
 S
ilv
an
a 
- 
Di
ag
ra
m
aç
ão
: M
ár
ci
o 
- 
04
/0
5/
20
11
2. Acesso direto (ou acesso aleatório).
3. Acesso indexado.
Acesso sequencial: os dados são lidos e/ou escritos em sequência, do início 
ao final do arquivo. É definido um ponteiro de acesso para cada arquivo 
aberto por uma aplicação que inicialmente aponta para a primeira posição 
do arquivo. A cada leitura ou escrita, esse ponteiro é incrementado e passa 
a indicar a posição da próxima leitura ou escrita. Quando esse ponteiro 
atinge o final do arquivo, as leituras não são mais possíveis, entretanto, 
as novas escritas são. A chegada do ponteiro ao final do arquivo é 
normalmente sinalizada ao processo por meio de um flag de fim de arquivo 
(EoF – End‑of‑File). Arquivos sequenciais eram eficientes quando o meio de 
armazenamento era a fita magnética.
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. Esse tipo 
de acesso é importante para gerenciadores de bancos de dados e aplicações 
com a mesma característica, que precisam acessar rapidamente as posições do 
arquivo correspondentes aos registros desejados em uma operação. “Na prática, 
a maioria dos sistemas operacionais usa o acesso sequencial como modo básico 
de operação, mas oferece operações para mudar a posição do ponteiro do 
arquivo caso necessário, o que permite então o acesso direto a qualquer registro 
do arquivo.” No Windows e Unix é usada uma operação especial chamada seek 
que é fornecida para estabelecer a posição atual. Após a operação seek, o arquivo 
pode ser lido sequencialmente a partir de sua posição atual.
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, 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.
Positivo
Sublinhado
77
FUNDAMENTOS DE SISTEMAS OPERACIONAIS
Re
vi
sã
o:
 S
ilv
an
a 
- 
Di
ag
ra
m
aç
ão
: M
ár
ci
o 
- 
04
/0
5/
20
11
7.3 Compartilhamentos
Em um sistema multitarefas e em redes, frequentemente se tem arquivos 
sendo acessados por mais de um processo ou por mais de um usuário. 
O acesso simultâneo a recursos compartilhados pode gerar condições 
de disputa (race conditions), levando à inconsistência de dados e outros 
problemas. A possibilidade de escritas e leituras simultâneas tem de ser 
prevista e tratada com muito planejamento e controle de acesso desses 
elementos compartilhados.8
7.3.1 Travas em arquivos
Por meio de uma ou mais travas (locks) aplicadas aos arquivos abertos, 
tipicamente os sistemas operacionais oferecem algum mecanismo de 
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)”.
• Travas obrigatórias: são impostas pelo núcleo do sistema operacional 
de forma compulsória, de modo que se um processo obtiver a trava do 
arquivo, então outros processos que solicitarem acesso ao arquivo serão 
suspensos até que a respectiva trava seja liberada.
• Travas recomendadas: não são impostas pelo núcleo do sistema 
operacional. Portanto, um processo pode acessar um arquivo mesmo 
sem ter sua trava e caso sejam usadas travas recomendadas, fica a cargo 
de o programador implantar em suas aplicações os controles de trava 
necessários para impedir acessos conflitantes aos arquivos.
As travas sobre arquivos também podem ser exclusivas ou compartilhadas.
• Trava exclusiva: também chamada trava de escrita, garante acesso 
exclusivo ao arquivo, portanto, enquanto uma trava exclusiva estiver ativa, 
nenhum outro processo poderá obter uma trava sobre aquele arquivo.
• Trava compartilhada (ou trava de leitura): impede outros processos 
de criar travas exclusivas sobre o arquivo, mas permite aexistência de 
outras travas compartilhadas.
8 Disponível em: <http://www.scribd.com/doc/12385571/Sistemas‑Operacionais‑Gerencia‑de‑Arquivos>. Acesso 
em: 8 jun. 2011.
78
Unidade IV
Re
vi
sã
o:
 S
ilv
an
a 
- 
Di
ag
ra
m
aç
ão
: M
ár
ci
o 
- 
04
/0
5/
20
11
Em conjunto, as travas exclusivas e compartilhadas implementam um 
modelo de sincronização leitores/escritores, no qual os leitores acessam 
arquivos, usando travas compartilhadas e os escritores o fazem, usando 
travas exclusivas.
Geralmente, as travas de arquivos são atribuídas a processos. Dessa forma, 
um processo só pode possuir um tipo de trava sobre um mesmo arquivo e 
todas as travas são liberadas quando o processo fecha o arquivo ou finaliza 
sua execução. No sistema operacional Unix, a manipulação 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 obrigatórias sobre arquivos, que podem ser exclusivas 
ou compartilhadas, ou travas recomendadas sobre trechos de arquivos.9
7.3.2 Semântica de trava de acesso
Quando um arquivo é usado por um único processo, o funcionamento das 
operações de leitura e escrita é simples e claro. Dessa forma, quando um 
dado é escrito no arquivo, ele está prontamente disponível para leitura. No 
entanto, arquivos podem ser abertos por vários processos simultaneamente 
e os dados escritos por um processo podem não estar prontamente 
disponíveis aos demais processos que estão lendo aquele arquivo. Isso 
ocorre porque as memórias secundárias em disco rígido são lentas em 
comparação com a memória principal, levando os sistemas operacionais a 
usar buffers intermediários para acumular os dados que deverão ser escritos/
manipulados, otimizando o acesso aos discos. A forma como os dados escritos 
por um processo é notada pelos demais processos que também abriram um 
determinado arquivo é chamada de semântica de compartilhamento.
Entre outras semânticas possíveis, as mais usuais são:
Semântica Unix: toda modificação em um arquivo é imediatamente visível a 
todos os processos que mantêm o arquivo aberto, existindo também a possibilidade 
de vários processos compartilharem o mesmo ponteiro de posicionamento do 
arquivo. Esse tipo de semântica é comumente aplicada em sistemas de arquivos 
locais, ou seja, para acesso a arquivos nos dispositivos locais.
Semântica de sessão: considera que cada processo usa um arquivo em 
uma sessão, iniciando com a abertura do arquivo e terminando com o seu 
9 Disponível em: <http://www.scribd.com/doc/12385571/Sistemas‑Operacionais‑Gerencia‑de‑Arquivos>. Acesso 
em: 8 jun. 2011.
79
FUNDAMENTOS DE SISTEMAS OPERACIONAIS
Re
vi
sã
o:
 S
ilv
an
a 
- 
Di
ag
ra
m
aç
ão
: M
ár
ci
o 
- 
04
/0
5/
20
11
fechamento. Modificações em um arquivo feitas em uma sessão somente são 
visíveis na mesma sessão e pelas sessões que iniciarem depois do encerramento 
da mesma, ou seja, depois que o processo fechar o arquivo. Sessões concorrentes 
de acesso a um arquivo compartilhado podem ver conteúdos distintos para o 
mesmo arquivo. Essa semântica é normalmente aplicada a sistemas de arquivos 
de rede, usados para acesso a arquivos em outros computadores.
Semântica imutável: se um arquivo pode ser compartilhado por vários 
processos, ele é marcado como imutável. Dessa forma, seu conteúdo não 
pode ser modificado. É a forma mais trivial que garante a consistência do 
conteúdo do arquivo entre os processos que compartilham seu acesso, 
portanto, usada em alguns sistemas de arquivos distribuídos.10
7.4 Introdução a diretórios
Os diretórios ajudam a controlar e organizar os arquivos. Geralmente, os 
sistemas de arquivos possuem diretórios ou pastas, que em muitos sistemas 
também são arquivos.11
Nesta seção, discutiremos os diretórios, suas propriedades, organizações e operações.
7.4.1 Organização de volumes
Diversos dispositivos de armazenamento estão disponíveis no mercado, que podem ser discos rígidos, 
discos óticos, memória flash etc.
Um disco rígido pode ser visto basicamente como um grande vetor de 
blocos de bytes. Esses blocos de dados, também denominados setores, 
têm tamanho fixo geralmente entre 512 e 4.096 bytes (4 K a 32 K) e são 
numerados sequencialmente. As operações de leitura e escrita de dados nos 
discos rígidos são feitas bloco a bloco, por essa razão esses dispositivos são 
chamados de dispositivos de blocos (block devices).
Em um computador no padrão PC, o espaço de armazenamento de cada 
dispositivo é dividido em uma pequena área inicial de configuração e uma ou 
mais partições, que podem ser vistas como espaços independentes. A área de 
configuração é denominada MBR – Master Boot Record, e contém uma tabela 
de partições com informações sobre o particionamento do dispositivo. Além 
disso, contém também um pequeno código executável, usado no processo de 
inicialização do sistema operacional. No início de cada partição geralmente há 
um bloco reservado, utilizado para a descrição do conteúdo daquela partição 
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.
80
Unidade IV
Re
vi
sã
o:
 S
ilv
an
a 
- 
Di
ag
ra
m
aç
ão
: M
ár
ci
o 
- 
04
/0
5/
20
11
e para armazenar o código de lançamento do sistema operacional, se for uma 
partição inicializável (bootable partition). Esse bloco reservado é denominado 
bloco de inicialização ou VBR – Volume Boot Record. O restante dos blocos da 
partição está disponível para o armazenamento de arquivos.
Disco total
Tabela de partição Partições do disco
MBR
Bloco de 
inicialização Superbloco
Gerenciamento 
de espaço livre I‑Nodes
Diretório 
raiz Arquivos e diretórios
Figura 41 – Exemplo de organização para um sistema de arquivos
A Figura 41 ilustra a organização básica do espaço de armazenamento em 
um dispositivo de blocos típico: um disco rígido. Cada partição deve ser 
formatada, ou seja, estruturada para conter um sistema de arquivos, que 
pode conter arquivos, diretório, atalhos e outras entradas. Cada dispositivo 
ou partição devidamente preparada e formatada para receber um sistema 
de arquivos é designado como um volume.12
7.4.2 Diretórios
O sistema organiza logicamente os diversos arquivos contidos em um disco 
numa estrutura denominada diretórios. O diretório é uma estrutura de 
dados que contém entradas associadas aos arquivos, na qual cada entrada 
armazena informações como localização física, 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 usuários. Identificar e localizar um arquivo 
específico em meio a milhões de outros arquivos de forma rápida e direta 
pode ser o mesmo que procurar uma “agulha num palheiro”.
Para permitir a organização de arquivos dentro de uma partição, são usados 
diretórios. Um diretório, também chamado de pasta (folder), representa 
12 Disponível em: <http://www.scribd.com/doc/12385571/Sistemas‑Operacionais‑Gerencia‑de‑Arquivos>. Acesso 
em: 8 jun. 2011.
13 Disponível em: <http://www.scribd.com/doc/5566097/10GERENCIA‑DO‑SISTEMA‑DE‑ARQUIVOS>. Acesso em: 
8 jun. 2011.
81
FUNDAMENTOS DE SISTEMAS OPERACIONAIS
Re
vi
sã
o:
 S
ilv
an
a 
- 
Di
ag
ra
m
aç
ão
: M
ár
ci
o 
- 
04
/0
5/
20
11
um contêiner de informações, que pode conter arquivos ou mesmo outros 
diretórios. Da mesma forma que os arquivos, diretórios têm nome e atributos, 
que são usados na localização e acesso aos arquivos neles contidos.
Cada espaço de armazenamento possui ao menos um diretório principal, 
denominado diretório raiz (root directory). Em sistemas de arquivos mais 
antigos e simples, o diretório raiz de um volume estavadefinido em seus 
blocos de inicialização, normalmente reservados para informações de 
gerência. Todavia, como o número de blocos reservados era pequeno e fixo, 
o número de entradas no diretório raiz era limitado. Nos sistemas mais 
recentes, um registro específico dentro dos blocos de inicialização aponta 
para a posição do diretório raiz dentro do sistema de arquivos, permitindo 
que este tenha um número muito maior de entradas.
O uso de diretórios permite construir uma estrutura hierárquica (em 
árvore) de armazenamento dentro de um volume, sobre a qual os 
arquivos são distribuídos. A Figura 42 representa uma parte da árvore 
de diretórios típica de um sistema Linux, cuja estrutura é definida nas 
normas Filesystem Hierarchy.14
bin
etc
home
lib
proc
root
tmp
usr
var
opt
sgml
skel
X11
/ — X11R6
bin
include
lib
local
man
share
src
tmp
adm
cache
cron
lib
local
log
mail
run
spoll
at
cron
lpd
mail
news
smail
bin
lib
include
X11
X11
asm
linux
g++
X11
gcc‑lib
groff
uucp
bin
doc
etc
include
lib
man
share
doc
games
info
locale
man
zoneinfo
Figura 42 – Estrutura de diretórios típica de um sistema Linux
14 Disponível em: <http://www.scribd.com/doc/12385571/Sistemas‑Operacionais‑Gerencia‑de‑Arquivos>. 
Acesso em: 8 jun. 2011.
82
Unidade IV
Re
vi
sã
o:
 S
ilv
an
a 
- 
Di
ag
ra
m
aç
ão
: M
ár
ci
o 
- 
04
/0
5/
20
11
7.4.3 Sistema de diretórios em nível único
O nível mais simples de uma estrutura de diretórios é chamado de nível único 
(single‑level directory). Nessa estrutura, existe somente um único diretório 
contendo todos os arquivos do disco. Esse modelo é bastante limitado, já 
que não permite que usuários criem arquivos com o mesmo nome, o que 
ocasionaria um conflito no acesso aos arquivos.15
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
Figura 43 – Sistema de diretório em nível único contendo cinco arquivos
As vantagens desse esquema de diretório em nível único são a simplicidade e a capacidade de 
localizar os arquivos rapidamente – tendo em vista que todos os arquivos estão no mesmo local e não 
podemos ter nomes repetidos.
7.4.4 Sistema de diretórios hierárquico
O sistema de nível único é bastante limitado demandando uma evolução 
do modelo, então foi implantada uma estrutura na qual para cada usuário 
existiria um diretório particular denominado Diretório de Arquivo do 
Usuário (UDF – User File Directory) conhecido como sistema de diretório 
em dois níveis.
Pela perspectiva do usuário, a organização dos seus arquivos em um 
único diretório não permite uma organização adequada. A extensão 
do modelo de dois níveis para um de múltiplos níveis permitiu que os 
arquivos fossem logicamente melhor organizados. Esse novo modelo, 
chamado estrutura de diretórios em árvore (tree‑structured directory), é 
adotado pela maioria dos sistemas.16
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.
83
FUNDAMENTOS DE SISTEMAS OPERACIONAIS
Re
vi
sã
o:
 S
ilv
an
a 
- 
Di
ag
ra
m
aç
ão
: M
ár
ci
o 
- 
04
/0
5/
20
11
propostaV1
propostaV2
propostaV3
propostaV4
propostas
relatorios
usuario1
usuario2
usuario3
Diretório raiz
Figura 44 – Sistema hierárquico de diretórios
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.
A possibilidade de cada usuário criar um número arbitrário de subdiretórios proporciona uma 
ferramenta poderosa de estruturação dos trabalhos de cada usuário. A grande maioria dos sistemas de 
arquivos modernos é organizada dessa forma.
7.5 Gerenciamento e otimização 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 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.
7.5.1 Gerenciamento do espaço em disco
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 
estratégias gerais para armazenar um arquivo e n bytes:
1. Alocação de n bytes consecutivos de espaço em disco.
2. Divisão em vários blocos não necessariamente juntos.
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.
84
Unidade IV
Re
vi
sã
o:
 S
ilv
an
a 
- 
Di
ag
ra
m
aç
ão
: M
ár
ci
o 
- 
04
/0
5/
20
11
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.
Monitoração dos blocos livres
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.
A abordagem de lista de blocos livres pode ser implantada de várias formas. 
Na forma mais simples, cada bloco livre contém um ponteiro para o próximo 
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 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.
Essa solução leva em consideração que blocos contíguos são, geralmente, 
alocados ou liberados simultaneamente. Dessa forma, o disco é determinado 
como um conjunto de segmentos de blocos livres. Esse conceito define que 
é possível manter uma tabela com o endereço do primeiro bloco de cada 
segmento e o número de blocos livres contíguos que se seguem. Essa técnica 
de gerência de espaço 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 memória, já que para cada 
bloco do disco deve existir uma entrada na tabela.18
17 Disponível em:<http://www.scribd.com/doc/12385571/Sistemas‑Operacionais‑Gerencia‑de‑Arquivos>. Acesso 
em: 8 jun. 2011.
18 Disponível em: <http://www.scribd.com/doc/5566097/10GERENCIA‑DO‑SISTEMA‑DE‑ARQUIVOS>. Acesso em: 8 jun. 2011.
85
FUNDAMENTOS DE SISTEMAS OPERACIONAIS
Re
vi
sã
o:
 S
ilv
an
a 
- 
Di
ag
ra
m
aç
ão
: M
ár
ci
o 
- 
04
/0
5/
20
11
42
136
210
97
41
63
21
48
262
310
516
230
162
612
342
214
160
664
216
320
180
482
86
234
897
422
140
223
223
160
126
142
141
1001101101101100
0110110111110111
1010110110110110
0110110110111011
1110111011101111
1101101010001111
0000111011010111
1011101101101111
1100100011101111
0111011101110111
1101111101110111
Blocos de disco livres: 16, 17, 18
Mapa de bit4 KB de blocos de disco pode 
suportar 256 números de 
blocos de disco a. b.
Figura 45a – Lista de blocos livres; Figura 45b – Mapa de bits
7.5.2 Cotas de utilização de disco
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.
 Observação
Note que a configuração estabelecida foi de 1.000 kbytes, porém, 
dependendo da quantidade total de disco disponível e necessário, 
poderíamos estar configurando múltiplos mbytes, gbytes, pbytes ou até 
mesmo ebytes. Acontece da mesma forma para o controle de quando o 
sistema receberá uma nova entrada de log.
19 Threshold: ponto em que um estímulo é exatamente suficiente para ser percebido ou produzir uma resposta.
86
Unidade IV
Re
vi
sã
o:
 S
ilv
an
a 
- 
Di
ag
ra
m
aç
ão
: M
ár
ci
o 
- 
04
/0
5/
20
11
Figura 46 – Exemplo da tela de configuração de cota no Windows Vista
Funcionamento de cota
• Em uma tabela alocada na memória principal estão contidos os atributos de todos os arquivos 
que estão abertos no sistema.
• Toda vez que um usuário abre um arquivo, o atributo de determinado proprietário do arquivo 
passa a fazer parte dessa tabela de controle dos arquivos abertos versus proprietário.
• Qualquer acréscimo no tamanho do arquivo será proporcionalmente decrescido à quantidade 
restante de cota disponível para o usuário do sistema.
• Uma segunda tabela registra as informações de cota para cada usuário que tenha algum arquivo aberto.
87
FUNDAMENTOS DE SISTEMAS OPERACIONAIS
Re
vi
sã
o:
 S
ilv
an
a 
- 
Di
ag
ra
m
aç
ão
: M
ár
ci
o 
- 
04
/0
5/
20
11
• Sempre que um bloco é adicionado a um arquivo, o número total de blocos é incrementado no 
controle de cotas do usuário, e os limites flexíveis e estritos são checados.
• 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.
7.5.3 Cópia de segurança
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, 
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:
1. Recuperação em caso de um desastre (natural ou não).
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.
88
Unidade IV
Re
vi
sã
o:
 S
ilv
an
a 
- 
Di
ag
ra
m
aç
ão
: M
ár
ci
o 
- 
04
/0
5/
20
11
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.
Tipicamente, o backup é efetivado em fitas magnéticas. Existem no mercado várias tecnologias de 
unidades, fitas e softwares de backup que variam entre capacidade de armazenamento, velocidade de 
transferência dos dados, funcionalidades (como criptografia), entre outros. O mais importante é ter o 
backup em funcionamento esempre sendo revisado para garantir que tudo está dentro do planejado. 
Para mitigar problemas de backup, é implementado para cada servidor, ou para cada aplicação, um 
processo composto de documentos denominados survey.22 Esse processo coleta informações referentes 
ao tempo de retenção do backup, a quais arquivos devem fazer parte da tarefa que irá executar a 
cópia de segurança, a qual periodicidade – se é diária, semanal, mensal ou anual –, se o backup será 
incremental, full, diferencial, a qual software e parâmetros serão utilizados para fazer o backup, entre 
outros pontos que irão definir para cada ambiente as características necessárias para que, no futuro, 
quando um acidente ocorrer, a restauração da informação seja o mais transparente possível.
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:
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.
89
FUNDAMENTOS DE SISTEMAS OPERACIONAIS
Re
vi
sã
o:
 S
ilv
an
a 
- 
Di
ag
ra
m
aç
ão
: M
ár
ci
o 
- 
04
/0
5/
20
11
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 
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.
Tipos de processo para copiar os dados de um disco para fita
• 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.
90
Unidade IV
Re
vi
sã
o:
 S
ilv
an
a 
- 
Di
ag
ra
m
aç
ão
: M
ár
ci
o 
- 
04
/0
5/
20
11
• 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.
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 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.
7.6.1 Sistema de arquivos ISO 9660
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.
 Lembrete
Mesmo estruturado em uma espiral contínua, é possível buscar o 
CD‑ROM transversalmente às espirais.
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.
91
FUNDAMENTOS DE SISTEMAS OPERACIONAIS
Re
vi
sã
o:
 S
ilv
an
a 
- 
Di
ag
ra
m
aç
ão
: M
ár
ci
o 
- 
04
/0
5/
20
11
 Lembrete
A conversão direta em um número linear de bloco é de 1 segundo para 
cada 75 blocos.
A estruturado CD‑ROM segue a sequência descrita abaixo:
• 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.
• O campo bloco inicial com 8 bytes já é o bloco inicial do arquivo.
• A localização de um arquivo é totalmente especificada pelo bloco inicial e pelo tamanho que são 
os 8 bytes seguintes.
• O campo data e hora é composto pelos próximos 7 bytes.
• O campo flag seguinte de 1 byte é usado para ocultar a entrada nas listagens.
92
Unidade IV
Re
vi
sã
o:
 S
ilv
an
a 
- 
Di
ag
ra
m
aç
ão
: M
ár
ci
o 
- 
04
/0
5/
20
11
• 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 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, 
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.
• O campo uso do sistema é usado por diferentes sistemas de diferentes maneiras.
Tamanho do registro de atributos estendidos flags
Uso do sistemaTamanho da entrada de diretório intervalo
Localização 
do arquivo
Tamanho 
do arquivo
Data e 
hora CD# L
Nome 
do arquivo
Preenchimento
Figura 47 – ISO 9660 – Entrada de diretório
Extensão Rock Ridge
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.
As extensões são divididas entre os seguintes campos:
• PX – Atributos POIX: padrão Unix para bits de permissão de rwxrwxrwx (r = read, w = write e x = 
execute – ler, escrever e executar).
• PN – Números de dispositivo principal e secundário: para permitir que dispositivos sejam 
representados em CD‑ROM.
• SL – Ligação simbólica: permitindo que o arquivo de um sistema de arquivos refira‑se ao outro 
arquivo de um sistema de arquivos distinto.
93
FUNDAMENTOS DE SISTEMAS OPERACIONAIS
Re
vi
sã
o:
 S
ilv
an
a 
- 
Di
ag
ra
m
aç
ão
: M
ár
ci
o 
- 
04
/0
5/
20
11
• NM – Nome alternativo: permite que um segundo nome seja associado ao arquivo.
• 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.
As principais extensões oferecidas pelo Joliet são:
• 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.
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.
94
Unidade IV
Re
vi
sã
o:
 S
ilv
an
a 
- 
Di
ag
ra
m
aç
ão
: M
ár
ci
o 
- 
04
/0
5/
20
11
O processo de leitura de um arquivo no sistema de arquivos MS‑DOS é executado conforme sequência 
descrita a seguir:
• Um programa faz uma chamada de sistema open (abrir).
• A chamada de sistema open determina o path (caminho) até o diretório de trabalho.
• O caminho é procurado, item por item, até que o diretório final seja encontrado e carregado 
na memória.
• O caminho então será buscado para o arquivo a ser aberto.
No formato de uma entrada de diretório MS‑DOS, os campos são de acordo com a sequência a seguir:
• Nome do arquivo: nomes compostos de 32 bytes.
• 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.
• Tamanho: o de 32 bits é usado para armazenar o tamanho do arquivo. Em teoria, os arquivos 
podem ter até 4 GB, porém, outros fatores limitam o tamanho do arquivo em 2 GB ou menos.
• Entrada de diretórios: com o tamanho de 10 bytes, porém não é usado.
Existem três versões para o sistema de arquivos FAT:
• 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 
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, permitindotamanhos 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.
• FAT‑16: possuía ponteiros de disco de 16 bits e permitiu tamanhos de blocos de 8 KB, 16 KB e 32 
KB – a tabela FAT‑16 ocupava constantemente 128 KB da memória principal. A maior partição de 
disco suportada por um sistema de arquivos FAT‑16 é de 2 GB (64 K com entradas de 32 KB cada). 
O maior disco é de 8 GB ocupando quatro partições de 2 GB cada.
95
FUNDAMENTOS DE SISTEMAS OPERACIONAIS
Re
vi
sã
o:
 S
ilv
an
a 
- 
Di
ag
ra
m
aç
ão
: M
ár
ci
o 
- 
04
/0
5/
20
11
• FAT‑32: introduzido a partir da segunda versão do Windows 95 com endereços de disco 
de 28 bits. Em teoria, esse sistema de arquivos poderia conter 228 x 215 bytes, porém, na 
prática, era limitado em 2 TB (2.028 GB). Isso se deve ao fato de que internamente o 
sistema de arquivos FAT‑32 monitora os tamanhos das partições em setores de 512 bytes, 
com um número de 32 bits, portanto, 29 x 232 é igual a 2 TB. Permite discos de 8 GB com 
uma única partição.
Análise: comparativo entre o FAT‑16 versus o FAT‑32
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
b. Tamanho de cada bloco do FAT‑16
 4 K
c. Endereços de blocos = 68644
 2249326592 / 32768 = 68644
d. Problemas com blocos de 32K ‑ FAT‑16
 porém 64 K = 65536, portanto em blocos de 32 K não é possível mapear todo disco de 2 GB
Figura 48 – Análise de uma partição FAT‑16 de 2 GB e arquivo de 4 KB
Outro ponto importante destacado na Figura 48c e 48d é que a partição de 2 GB que teria 68.644 
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.
96
Unidade IV
Re
vi
sã
o:
 S
ilv
an
a 
- 
Di
ag
ra
m
aç
ão
: M
ár
ci
o 
- 
04
/0
5/
20
11
Blocos de 4 KB
KB
Arquivo com 4 KB
a. Tamanho da partição
 2 GB
b. Tamanho de cada bloco do FAT‑16
 4 K
c. Endereços de blocos = 549152
 2249326592 / 4096 = 549152
Figura 49 – Análise de uma partição FAT‑32 de 2 GB e arquivo de 4 KB
Usando blocos menores, há melhor aproveitamento do disco, conforme demonstrado anteriormente, 
porém eleva o consumo de memória RAM (memória principal). Com bloco de 4 KB e uma partição de 
2 GB, há 512 K blocos, portanto a FAT‑32 deverá ter 512 K entradas na memória que ocupará 2 MB 
de RAM.
A Tabela 1 ilustra as possíveis combinações entre as extensões do MS‑DOS:
Tamanho do 
bloco (KB) FAT‑12 (MB) FAT‑16 (MB) FAT‑32 (TB)
0,5 2
1 4
2 8 128
4 16 256 1
8 512 2
16 1024 2
32 2048 2
Tabela 1 – Tamanho máximo da partição versus diferentes tamanhos de blocos
 Observação
No exemplo apresentado na Figura 48, usamos o tamanho de bloco de 
32 KB e FAT‑16 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 versão, funcionalidades 
que são primordiais para ambientes multiusuários, por exemplo.
97
FUNDAMENTOS DE SISTEMAS OPERACIONAIS
Re
vi
sã
o:
 S
ilv
an
a 
- 
Di
ag
ra
m
aç
ão
: M
ár
ci
o 
- 
04
/0
5/
20
11
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
Para obter mais informações sobre o Multics, acesse http://www.
multicians.org/fjcc1.html (site em inglês).
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.
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:
23 I‑node: é uma estrutura de dados no sistema de arquivos em um sistema de arquivos tradicional Unix. Ele 
armazena informações básicas sobre um arquivo regular, diretório, ou outros objetos do sistema de arquivos.
98
Unidade IV
Re
vi
sã
o:
 S
ilv
an
a 
- 
Di
ag
ra
m
aç
ão
: M
ár
ci
o 
- 
04
/0
5/
20
11
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 aentrada “..” (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.
7.6.4 Sistema de arquivos do Linux
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.
Principalmente motivado pela necessidade de melhorar a deficiência de velocidade que o ext 
apresentava, foi desenvolvido o ext2 (second extended file system).
Limites teóricos do sistema de arquivos ext32
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
Tabela 2 – Limites teóricos do sistema de arquivos ext2
99
FUNDAMENTOS DE SISTEMAS OPERACIONAIS
Re
vi
sã
o:
 S
ilv
an
a 
- 
Di
ag
ra
m
aç
ão
: M
ár
ci
o 
- 
04
/0
5/
20
11
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:
• FAT – File Allocation Table (ou Tabela de Alocação de Arquivos).
• 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.
• HPFS – High Performance File System, Sistema de Arquivos de Alta Performance.
• Minix – foi um dos primeiros sistemas do tipo Unix baseado no projeto de um 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 
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.
Alguns sistemas de arquivos com características especiais são:
• SWAP – partições SWAP são usadas para suportar a memória principal.
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.
100
Unidade IV
Re
vi
sã
o:
 S
ilv
an
a 
- 
Di
ag
ra
m
aç
ão
: M
ár
ci
o 
- 
04
/0
5/
20
11
• UnionFS – permite que arquivos e diretórios 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 compressão.
• Tmpfs – é um sistema de arquivo que não armazena as informações em dispositivos de 
armazenamento como disco duro, memória flash, CD, DVD etc. Ao invés disso, manipula 
informações diretamente na memória RAM, assim como o procfs.
• Aufs – AnotherUnionFS, serviço de arquivos que implementa uma união para montar sistemas de 
arquivos Linux.
• NFS – Network File System, sistema de compartilhamento de arquivos em rede.
8 GERENCIAMENTO DE ENTRADA E SAÍDA
8.1 Introdução a gerenciamento de entrada e saída
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.
O gerenciamento de entrada e saída na visão de dentro do sistema operacional é algo complexo 
e que exige dos desenvolvedores de sistemas operacionais boa parte do tempo e dos esforços para 
obter um sistema estável e confiável. E não poderia ser diferente, pois toda a lógica e complexidade de 
controlar os diversos dispositivos demandam muita ação e dinamismo.
Estudaremos, neste capítulo, os fundamentos do hardware de entrada e saída (E/S) e o software de 
E/S. Com esses conceitos poderemos tratar de dispositivos, como discos, relógios, teclados e vídeos.
8.2 Fundamentação – hardware de entrada e saída (E/S)
Diferentemente do ocorrido no início da história da computação, atualmente os elementos de 
um equipamento são segmentados e especialistas focam suas atenções, estudos e desenvolvimentos 
para sua área específica. Os recursos de entrada e saída, não diferentemente, estão seguindo a 
mesma trajetória histórica. Organizações globais, muitas vezes sem fins lucrativos, formadas por 
contribuintes, como engenheiros, pesquisadores, físicos, matemáticos e até mesmo estudantes da 
área, vêm tentando, e conseguindo, padronizar tipo de material, níveis de sinalização elétrica, 
tipo de condutores, mistura de material que irá compor a placa ou o circuito e assim por diante. 
Todo esse esforço acaba gerando uma sinergia em escala global. Se imaginarmos um engenheiro 
na China, ou um aqui no Brasil, trabalhando num projeto de software num sistema operacional 
Linux e um computador padrão PC (personal computer), então a tendência é que, no nível do 
hardware e controladores de E/S, ambos estejam montando produtos 100% compatíveis. Isso só 
é possível devido à abstração, caso contrário o engenheiro do Brasil poderia estar interagindo 
101
FUNDAMENTOS DE SISTEMAS OPERACIONAIS
Re
vi
sã
o:
 S
ilv
an
a 
- 
Di
ag
ra
m
aç
ão
: M
ár
ci
o 
- 
04
/0
5/
20
11
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.
8.3 Dispositivos de entrada e saída
Os dispositivos de entrada e saída típicos e os que estaremos dando ênfase são divididos em duas categorias:
• Dispositivos de blocos: entre outras características, armazenam informações em blocos de 
tamanho fixo e endereço próprio. Todas as transferências estão em unidades consecutivas de um 
ou mais blocos. Para essa categoria, cada bloco pode ser lido ou escritoindependentemente de 
todos os outros.
Figura 50 ‑ Dispositivos de blocos
• Dispositivos de caractere: nesse caso, há o envio e recebimento de caracteres. Diferentemente da 
categoria anterior, os dispositivos de caractere não são endereçáveis e não possuem funcionalidades 
de posicionamento.
Figura 51 ‑ Dispositivos de caractere
102
Unidade IV
Re
vi
sã
o:
 S
ilv
an
a 
- 
Di
ag
ra
m
aç
ão
: M
ár
ci
o 
- 
04
/0
5/
20
11
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.
bytes / segundo x tipo
600.000.000
500.000.000
400.000.000
300.000.000
200.000.000
100.000.000
0
Tec
lad
o
Mo
use
Mo
de
m 
56
K
Sc
an
ne
r
Wi
rel
ess
 80
2.1
1g
CD
‑R
OM
 52
x
Fas
t E
the
rne
t (8
02
.3u
)
Ca
rtã
o fl
ash
 co
mp
act
o
Fir
eW
ire
 (IE
EE
 13
94
)
Blu
e‑R
ay
 (1
2x
)
US
B 2
.0
Pa
drã
o S
on
et 
OC
‑1
2 (
62
2.0
8 M
it/s
Dis
co
 SC
SI 
Ult
ra 
2
Gig
ab
it E
the
rne
t (I
EE
E 8
02
.3z
)
LTO
‑5
 (L
ine
ar 
Tap
e‑O
pe
n 5
)
SA
S (
Se
ria
l A
tta
ch
ed
 SC
SI)
Fit
a U
ltr
inu
m
Ba
rra
me
nto
 PC
I
Tabela 3 – Alguns exemplos de dispositivos e suas respectivas taxas de dados
Tipo de dispositivo bytes / segundo
Teclado 10
Mouse 100
Modem 56K 7 K
Scanner 400 K
Wireless 802.11g 6,75 M
CD‑ROM 52x 7,8 M
Fast Ethernet (802.3u) 12,5 M
103
FUNDAMENTOS DE SISTEMAS OPERACIONAIS
Re
vi
sã
o:
 S
ilv
an
a 
- 
Di
ag
ra
m
aç
ão
: M
ár
ci
o 
- 
04
/0
5/
20
11
Cartão flash compacto 40 M
FireWire (IEEE 1394) 50 M
Blue‑Ray (12x) 54 M
USB 2.0 60 M
Padrão Sonet OC‑12 (622.08 Mbit/s) 78 M
Disco SCSI Ultra 2 80 M
Gigabit Ethernet (IEEE 802.3z) 125 M
LTO‑5 (Linear Tape‑Open 5) 120 M
SAS (Serial Attached SCSI) 300 M
Fita Ultrinum 320 M
Barramento PCI 528 M
Tabela 4 – Detalhamento da tabela 3
8.3.1 Controladores de dispositivos (driver)
As unidades de entrada e saída típicas são constituídas por dois componentes:
• Componente mecânico: é o dispositivo mais aparente para o usuário final, ou seja, impressora, 
teclado, mouse e outros.
• Componente eletrônico: conhecido como controlador de dispositivo ou adaptador. 
Esses adaptadores são inseridos em um conector de expansão localizado na placa‑mãe do 
computador.
Os componentes mecânicos e eletrônicos são mostrados em destaque na Figura 52.
Figura 52 – Unidade de E/S – componentes mecânicos e eletrônicos
104
Unidade IV
Re
vi
sã
o:
 S
ilv
an
a 
- 
Di
ag
ra
m
aç
ão
: M
ár
ci
o 
- 
04
/0
5/
20
11
Geralmente, os fabricantes de controladores de dispositivos criam as interfaces seguindo um 
padrão oficial baseados nas organizações ANSI, IEEE, ISO e outras. Com isso, os tipos de conectores, 
sinalização elétrica, determinações mecânicas e todos os demais itens regidos pelos órgãos 
padronizadores são seguidos pelos fabricantes. Isso permite que, em paralelo, um fabricante de 
dispositivos mecânicos como impressora, mouse, e outros possam usar controladoras sem qualquer 
preocupação de compatibilidade.
 Saiba mais
Para mais informações a respeito dos órgãos responsáveis pelos padrões 
descritos acima consulte:
• ANSI: American National Standards Institute – Instituto Nacional 
Americano de Padronização (http://www.ansi.org/).
• IEEE: Institute of Electrical and Electronics Engineers – Instituto de 
Engenheiros Eletricistas e Eletrônicos (www.ieee.org/).
• ISO: International Organization for Standardization – Organização 
Internacional de Normalização (www.iso.org/).
Os controladores de dispositivos, observados de uma forma mais abstrata e da perspectiva 
do usuário, são sumarizados como sendo uma nova entrada para comando de um dispositivo ou 
programa. Formando, assim, uma unidade periférica, cria uma interface permitindo a conexão com o 
dispositivo desejado.
Ao adicionarmos um novo dispositivo a uma interface do computador, este requer um driver25, 
que, na perspectiva lógica, é 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 usuário não irá conseguir obter os resultados de entrada e saída 
desejados. Como exemplo, podemos citar o de um usuário que comprou um mouse sem fio e 
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.
105
FUNDAMENTOS DE SISTEMAS OPERACIONAIS
Re
vi
sã
o:
 S
ilv
an
a 
- 
Di
ag
ra
m
aç
ão
: M
ár
ci
o 
- 
04
/0
5/
20
11
8.3.2 E/S mapeada em memória
Os registradores são responsáveis por estabelecer o canal de comunicação entre os controladores 
de dispositivos e a unidade central de processamento. O sistema operacional se comunica com os 
dispositivos por meio da gravação e da leitura dos registradores. Além dos registradores, atualmente é 
comum os dispositivos terem buffers de dados que serão usados pelo sistema operacional para gravar 
e escrever.
A comunicação entre a unidade central de processamento e os registradores e buffers pode ser 
realizada pelas duas formas descritas abaixo:
• 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:
1. A CPU emite nas linhas de endereço do barramento o endereço de que precisa.
2. Emite um sinal de READ sobre a linha de controle do barramento.
3. Uma nova linha de sinal é usada para informar se o espaço requerido é memória ou entrada e saída.
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.
106
Unidade IV
Re
vi
sã
o:
 S
ilv
an
a 
- 
Di
ag
ra

Outros materiais