Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

TEMA 10: SISTEMA DE ARQUIVOS 
DISCIPLINA: SISTEMAS OPERACIONAIS MODERNOS 
PROFESSOR: MARIO A MONTEIRO 
 
APRESENTAÇÃO: 
Anteriormente nestes textos, foi explicado que os SO são organizações modulares, 
constituídos dos componentes (módulos) que administram (gerenciam) os diversos 
recursos que o usuário precisa de um sistema de computação. 
 
Entre esses recursos, cita-se o Processador (o SO é responsável pelas atividades de criar 
processos, alocar o processador aos processos e conduzir a alternância entre os 
processos em um ambiente de multiprogramação-assunto a ser apresentados nos 
textos dos Temas 6, 7 e 8), como também a Memória (o SO é responsável por alocar e 
desalocar e distribuir o espaço de armazenamento principal e secundário para os 
diversos processos em execução-assunto a ser apresentado nos textos dos Temas 9 e 
10). 
 
Um dos recursos mais importantes que o SO administra refere-se a administração e uso 
das informações que são criadas e manipuladas pelos programas. Chama-se essas 
informações genericamente de Dados e a gerência desses dados pelo SO é realizada por 
um módulo conhecido como Sistema de Arquivos. 
 
Este texto apresenta alguns dos aspectos mais relevantes de Sistema de Arquivos, a 
saber: 
 
 Conceito de Arquivo 
 Organização de Arquivos 
 Operações de E/S 
 Alocação de espaço em disco 
 Observações complementares 
 
Bons estudos! 
 
Ao final deste Conteúdo, você deve apresentar os seguintes aprendizados: 
 Reconhecer os aspectos básicos do conceito de Arquivo e de Sistema de Arquivos 
 Identificar as características de uma organização de arquivos 
 Compreender os métodos de alocação de espaço em disco para armazenamento 
de arquivos. 
 
 
 
 
 
 TEMA 10: SISTEMA DE ARQUIVOS 
DESCRIÇÃO DE ASPECTOS RELEVANTES DO ASSUNTO. 
Parte A: 
CONCEITO DE ARQUIVOS 
 
Tanto nesta disciplina de SO quanto em outras de TI, seja Arquitetura de 
Computadores ou de Programação, que se observa os objetivos dos computadores, 
como máquinas projetadas para manipular (processar, computar) informações. Esta 
manipulação segue sempre uma lógica, apropriada para solucionar os problemas do 
cotidiano, de forma rápida; esta lógica, conhecida como algoritmos, é codificada 
adequadamente para ser entendida pela máquina. 
 
A medida que a tecnologia foi evoluindo, essas informações a serem manipuladas (e 
que são conhecidos genericamente como DADOS), foram crescendo, em todo tipo 
de aplicação. Seja na indústria, para montagem ou fabricação ou manipulação de 
objetos, ou na vida comercial comum, em escritórios, bancos ou grandes 
corporações seja, na área de energia ou militar. 
 
No interior de um computador, todas as informações armazenadas ou processadas, 
estão sempre representadas por valores numéricos (códigos) binários e se 
enquadram em apenas duas categorias: 
 
INSTRUÇÕES ou DADOS 
 
No princípio da computação, os dados a serem manipulados por um programa 
estavam sempre associados a este programa; com passar do tempo, isso não pode 
permanecer desta forma em face do aumento da quantidade de dados a ser 
manipulada e, principalmente, com o surgimento da multiprogramação, com 
diversos programas e seus dados compartilhando a mesma memória finita e não tão 
grande quanto desejável. Além disso, esta memória de processamento (MP ou RAM0 
é volátil e, desta forma, ao término do uso, os dados tendem a desaparecer. 
 
Em consequência desses fatores, pode-se resumir a ocorrência de alguns dos 
principais problemas encontrados pelos projetistas de sistemas e que levaram, 
naquela época, a se pesquisar e solucionar os referidos problemas com a criação de 
um conceito nos sistemas, chamado: ARQUIVO. 
 
A ideia que gerou a criação e desenvolvimento de Arquivos era a de dissociar os 
dados do programa que os utiliza, tornando esses dados independentes, os quais 
podem ser manipulados por diversas aplicações (multiprogramação) e permanecer 
íntegros, mesmo depois que o programa termine (pois antes eles poderiam 
desaparecer com o término do processamento). 
 
Por exemplo, em um sistema acadêmico, os dados de cada aluno de uma Instituição 
são organizados em conjuntos de registros (itens de informação, como nome, 
matrícula, endereço, etc.). Com a organização em Arquivos, esses dados podem ser 
manipulados de diversas formas: seja para atualizar informações cadastrais do aluno 
ou para incluir, excluir ou alterar graus, disciplinas, etc. Essa organização, então, 
 
 TEMA 10: SISTEMA DE ARQUIVOS 
independe do programa; ela é individualmente tratada, sendo esse conceito uma 
das grandes vantagens da estrutura de um arquivo. 
 
Arquivo, então, é uma coleção de informações lógicas relacionadas (mesma 
afinidade, como as notas ou alunos de uma turma). O SO manipula os arquivos de 
todas as formas: criando ou excluindo, ou alterando para incluir ou excluir itens e 
gerenciando onde são armazenados e os atributos que podem possuir. 
Em resumo, esta atividade gerencial dos SO para manipulação de dados é um 
componente dos SO chamado SISTEMA DE ARQUIVOS. 
Um Arquivo pode conter diversos tipos de dados, caracterizando o arquivo em si: 
 
 Dados com um específico objetivo (um conjunto de textos de um artigo, um 
trabalho escolar, contas de um banco, itens de um estoque de peças, etc. 
 Informações de uma imagem (pixels) ou 
 Som (pulsos PCM) ou 
 Bits de um programa executável, já em linguagem binária de máquina ou 
pixels de uma imagem. 
 
Ainda sobre o conceito de Arquivos: 
 
 Conforme já mencionado, um Arquivo é constituído por informações logicamente 
relacionadas, podendo representar instruções ou dados e pode ser armazenado 
em diferentes dispositivos físicos. 
 
 São gerenciados pelo sistema operacional e é mediante a implementação de 
arquivos que o sistema operacional estrutura e organiza as informações (os 
dados). 
 
 A parte do sistema responsável pela gerência é denominada sistema de arquivo 
que é a parte mais visível do sistema operacional, por ser uma atividade 
frequentemente realizada pelos usuários. 
 
Deste modo, a unidade básica de armazenamento de dados é o Arquivo, embora 
estes sejam organizados em itens (por exemplo, os graus de uma turma ou os itens 
de um estoque de um depósito). 
 
Os Arquivos, então, são unidades independentes, separando-se dos programas que 
os manipula; podem, desta forma, se manter armazenados, mesmo depois do 
término da execução do programa que manipulou com eles. Podem ser bem 
grandes, por estar armazenados em memória secundária (HDs ou outros dispositivos 
semelhantes), sendo trazidos em partes para MP (RAM) durante a execução de um 
programa. 
 
Cada Arquivo possui uma identificação para o usuário que o criou, chamado Nome 
(como os seres humanos). A partir do nome, o sistema de arquivos localiza e 
 
 TEMA 10: SISTEMA DE ARQUIVOS 
manipula o conteúdo do arquivo. Naturalmente, as características de definição do 
nome de um Arquivo dependem do SO (do seu módulo gerenciados de dados -
Sistema de Arquivos). 
 
Ao longo do tempo, os desenvolvedores e pesquisadores criaram diferentes tipos de 
Sistemas de Arquivo, cada um com suas características, parâmetros, capacidades, 
vantagens e desvantagens. Usualmente, estão associados a um fabricante de HW 
(como IBM, Apple ou SUN) ou desenvolvedor de SW (como Microsoft ou Google). 
 
Exemplos de Sistemas de Arquivo, cujos detalhes podem ser estudados pelos 
diversos textos e livros sobre o assunto: 
 
FAT (16 ou 32) – File Alocation Table (Windows) – Microsoft 
 
NTFS – new technology file system -Windows NT e seguintes) – Microsoft 
 
Ext-3 e ext-4– third and forth extend file system - (Linux) 
 
Android – Google 
 
APFS – Apple File System - Apple 
 
 
ORGANIZAÇÃO DE ARQUIVOS 
 
Conforme já vem sendo mencionado nos textos anteriores, SO variam de modelo 
para modelo, na forma de exercer a gerência dos recursos específicos de um módulo. 
Ou seja, o gerente de processos (doprocessamento) de um determinado SO pode 
usar técnicas de processamento em tempo compartilhado, enquanto outros usam 
processamento em tempo real. 
 
Desta mesma forma, a organização e operação do Sistema de Arquivo varia de SO 
para SO, não só devido a forma de gerenciamento dos Arquivos, mas também do 
tipo de arquivos gerenciados pelo específico SO. 
 
Um SO pode organizar internamente os dados em arquivos de uma maneira, 
enquanto outro organiza de maneira diferente, embora ambos realizem tarefas 
semelhantes, como cria um arquivo ou excluir um arquivo ou acrescentar e excluir 
itens individuais do arquivo. 
 
A forma de usar os dados de um arquivo influencia a organização dos mesmos. Uma 
aplicação que manipula textos usa arquivos de uma forma bem diversa de uma 
aplicação que usa arquivos de som ou imagem ou um código executável. 
 
A organização básica dos arquivos em um sistema consiste na forma pelo qual os 
dados são “arranjados” entre si e como o SO localiza um dado específico desejado 
pela aplicação em execução. 
 
 
 
 
 TEMA 10: SISTEMA DE ARQUIVOS 
Atualmente, pode-se classificar arranjos de dados em arquivos de duas formas 
básicas: 
 
 NÃO ESTRUTURADA 
 ESTRUTURADA (suportada pelo SO) 
 
NÃO ESTRUTURADA 
 
A figura 1 mostra uma organização não estruturada de arquivos. Nesse formato, os 
dados são simplesmente arranjados de uma forma contínua de Bytes, sem nenhuma 
outra especificação. Essa forma de organização é bastante flexível, pois não se 
preocupa com a aplicação; pode ser um código executável ou um conjunto de 
caracteres de um texto ou ainda uma imagem. O SO não trata o conteúdo do arquivo, 
sendo essa uma tarefa da aplicação. Por outro lado, o SO não ajuda em nada na 
manipulação (ele desconhece seu significado). 
 
Em resumo: 
 
 O sistema de arquivo não impõe estrutura lógica para os dados e não 
interfere nas operações realizadas, conforme mencionou-se linhas 
acima. 
 
 
Figura 1 – Exemplo de organização não estruturada 
 
 Também já foi mencionado que é tarefa da aplicação conhecer a 
estrutura interna do arquivo e manipulá-la corretamente. 
 Se algum programa (a aplicação) cometer um erro e a estrutura for 
corrompida o sistema operacional não tem como detectar ou 
interferir, já que não conhece a estrutura do interior do arquivo. 
 Isso proporciona maior flexibilidade, permitindo-se a liberdade para 
criar qualquer tipo de estrutura. 
 
 TEMA 10: SISTEMA DE ARQUIVOS 
A figura 2 mostra exemplo de funcionalidade de uma organização não estruturada, 
quando uma aplicação acessa dados em um arquivo gerenciados pelo gerenciados 
de banco de dados e o sistema de arquivos do SO. 
 
 
 
 
Figura 2 – Exemplo de funcionamento de organização não estruturada 
 
Os SO Windows e Linux usam forma Não Estruturada de organização de arquivos. 
 
Estruturada 
 
Não é uma forma usada com frequência, mas é possível que sistemas de arquivos de 
alguma versão dos conhecidos SO suportem também a forma estruturada para 
atender a operação de algumas aplicações. Uma forma interessante deste tipo é a 
organização indexada. Os itens do arquivo não são acessados em sequência, mas sim 
pelo índice (chave de acesso), conforme pode ser observado no exemplo da figura 3. 
 
 
Figura 3-Exemplo de organização estruturada -indexada 
 
 
 
 
 TEMA 10: SISTEMA DE ARQUIVOS 
ATRIBUTOS DE ARQUIVOS 
 
O módulo Sistema de Arquivos dos SO devem ser capazes de manipular os arquivos 
e seguir algumas necessidades dos aplicativos (usuários), assim com atender 
informações criadas, como por exemplo, registrar o tamanho dos arquivos ou o 
momento em que foi modificado (registro de log do SO). Essas informações sobre 
cada arquivo são denominadas atributos do arquivo (características que identificam 
aquele arquivo e servem para diversas atividades do SO. 
 
O conjunto de atributos possíveis varia com o sistema de arquivos. 
Alguns atributos podem ser alterados pelo usuário, outros somente pelo sistema 
operacional. 
 
O quadro a seguir mostra alguns exemplos de atributos de arquivos: 
 
Atributo Descrição 
Tamanho Tamanho do arquivo 
Permissão Permissões de acesso ao arquivo (somente leitura ou leitura/escrita) 
Proprietário Usuário “dono” do arquivo 
Criador Usuário que criou o arquivo 
Criação Data/hora em que o arquivo foi criado 
Modificação Data/hora em que o arquivo foi modificado 
Escondido Indica se o arquivo deve ser omitido em listagens 
 
DIRETÓRIOS 
 
Assim, como determinadas organizações tem um processo de organizar o 
armazenamento e localização de produtos, os Sistemas de Arquivos também 
precisam organizar de forma lógica a localização dos arquivos nos dispositivos de 
armazenamento. Deste modo, o Sistema de Arquivo pode rapidamente localizar e 
acessar o arquivo desejado por uma aplicação. 
A forma geralmente utilizada de organização dos arquivos é conhecida como 
Diretório. Antigamente, as companhias telefônicas possuam Diretórios (chamadas 
listas telefônicas) que continham a identificação e localização de linhas telefônicas. 
 
Diretórios podem ser organizados em um único nível (poucos arquivos, poucos 
usuários) ou em múltiplos níveis (uma árvore). 
 
No primeiro caso (um nível), todos os arquivos ficam contidos em um único Diretório, 
sendo uma forma simples de criar e entender, conforme mostrado na figura 4. 
 
 
 TEMA 10: SISTEMA DE ARQUIVOS 
 
 
 
 
 
Figura 4-Exemplo de diretório de um nível (fig de Silberschatz) 
Por ser uma organização simples tem seus inconvenientes, principalmente quando o 
sistema é usado por múltiplos usuários. Isso porque não devem haver 2 ou mais arquivos 
com mesmo nome. Apesar de se poder criar até 255 nomes, é muito pouco para os 
sistemas atuais. 
A primeira das soluções desenvolvidas para superar o problema de conflito de nomes 
em um diretório foi criar mais um nível, de modo que cada usuário pode ocupar um 2º 
nível e, assim, deixa de haver conflito de nomes para múltiplos usuários. A figura 5 
mostra um exemplo de diretório de 2 níveis. 
 
 Figura 5- Exemplo de diretório de 2 níveis (fig de Silberschatz) 
Neste esquema, o sistema possui um Diretório Mestre (MFD-master file directory); este 
possui entradas para cada usuário e estes têm um diretório de usuário (UFD -user file 
directory). Assim, deixa de ocorrer conflito d enomes, pois cada usuário fica 
independente do outro. Nesse caso, acessar um arquivo requer indicar nome do usuário 
(ou conta ou ID) e nome do arquivo (é um primeiro passo para criação de caminhos 
(path) que levam ao arquivo em sistemas com múltiplos níveis. 
Cada SO possui uma forma diferente (sintaxe) para indicar-se o acesso a um arquivo 
desejado. Em um determinado sistema de arquivos, poderia ser, por exemplo, usuário 
b/notas x, indicando o arquivo notas x do usuário b. Sistemas como Windows ou Linux 
requerem, ainda indicar o volume (o HD); o Windows, p.ex., usa letras (B, C, etc.) para 
indicar o volume. No exemplo anterior, então, seria indicado D: usuário b/notas x. 
Tendo-se acostumado com o uso e a flexibilização (ainda pequena) de sistema com 
árvores de dois níveis (costuma-se também usar o termo: árvore de altura 2), pode-se, 
Diretório 
Arquivos 
 
 TEMA 10: SISTEMA DE ARQUIVOS 
em seguida, ampliar e flexibilizar mais ainda o sistema de arquivos, usando-se diversos 
níveis (árvore de altura n), conforme mostrado na figura 6. 
Neste esquema, um usuário pode criar seus próprios subdiretórios e, assim, organizar 
melhor o armazenamento e acesso a seus arquivos. 
 
Figura 6 – Exemplo de diretório em árvore de múltiplos níveis 
Para acessar um arquivo, o usuário normalmente precisa indicar ao sistema o caminho, 
a partir do volume, como por exemplo, D:/user a/sub-dir 1/notas x ou, com outra 
sintaxe, D:/user a.sub-dir 1.notas x. 
Cada sistema possui sua própria sintaxe,que o usuário, trabalhando com um 
determinado SO, em pouco tempo assimila. 
Conforme já mencionado anteriormente, o acesso a um arquivo em sistemas com 
múltiplos níveis ocorre com o usuário devendo especificar todos os níveis desde a raiz 
(MFD). Chama-se de Caminho  Representação para permitir a referência de qualquer 
arquivo. A separação entre os diversos níveis também varia de sistema para sistema: 
 No Windows usa-se o traço diagonal para a esquerda -----------\ 
 No Linux – usa-se traço diagonal para direita---------------------/ 
 
- Exemplos: 
 /home/jose/sistemas/slide1.ppt  Unix 
 C:\Usuarios\Jose\Sistemas\slide1.ppt  Windows 
 
 
 
 TEMA 10: SISTEMA DE ARQUIVOS 
MÉTODOS DE ACESSO 
 
O acesso a dados de um arquivo depende da forma que são organizados e da 
organização definida para o Sistema de Arquivos. O primeiro dos métodos de acesso 
usados era sequencial, isto é, um dado era armazenado em seguida ao outro, 
método típico das antigas fitas magnéticas (igual ao armazenamento em fitas de 
vídeo cassete). 
 
Uma grande evolução de acesso a arquivos foi o surgimento do método Direto, 
usado em discos magnéticos (HDs). Este método é muito mais rápido pois se acessa 
diretamente o dado (pelo seu endereço). 
Mais tarde surgiu outro método, Indexado. Nesse caso, o arquivo possui um índice 
e o sistema controla a localização dos arquivos pelos índices de cada um. 
 
 
IV – OPERAÇÕES COM ARQUIVOS 
 
Um sistema de arquivos deve ser capaz de realizar diversas operações sobre um 
arquivo, de modo que as aplicações usem os dados da melhor forma possível. 
 
Mais uma vez deve-se ressaltar que cada sistema possui seus modos de manipular 
com arquivos, porém de forma genérica as operações são as mesmas. Por exemplo, 
sempre se terá necessidade de criar um arquivo (operação Criar), mas a sintaxe do 
respectivo comando e sua forma de implementação pode variar de sistema para 
sistema. 
 
Há diversas rotinas do SO que implementam diferentes operações que manipulam 
com um arquivo. Elas servem de interface entre os programas aplicativos e os 
arquivos. 
 
A figura 7 mostra desse: 
 
Figura 7- posicionamento das rotinas de e/s do sistema de arquivos 
 
 
 TEMA 10: SISTEMA DE ARQUIVOS 
O quadro a seguir mostra as principais operações que podem ser realizadas com 
Arquivos, indicando-se o comando usualmente empregado para cada uma. 
 
Rotina Descrição 
CREATE Criação de um arquivo 
OPEN Abertura de um arquivo 
READ Leitura de um arquivo 
WRITE Gravação em um arquivo 
APPEND Variação do Write. Escreve no fim do arquivo 
SEEK Especificar a posição do arquivo onde deseja ler/escrever 
CLOSE Fechamento de um arquivo 
DELETE Eliminação de um arquivo 
GET/SET ATTRIBUTES Buscar/alterar atributos do arquivo 
 
ALOCAÇÃO DE ESPAÇO EM DISCO 
 
Um dos aspectos mais importantes a serem tratados no projeto de um Sistema de 
Arquivos refere-se ao controle do armazenamento dos arquivos em memória 
secundária (usualmente os HDs, mas podem ser outros dispositivos se o SO estiver 
preparado para isso). Um ponto refere-se ao efetivo controle de espaço de livre para 
armazenamento dos arquivos e outro ponto refere-se a forma dos dados serem 
organizados no arquivo e, consequentemente, quanto a alocação de espaço no 
dispositivo de armazenamento (HD) 
 
Alocação de espaço para os arquivos 
 
Durante a evolução de tecnologia de projeto de SO (e mais especificamente, de 
sistema de arquivos) foram sendo desenvolvidos alguns métodos para alocação de 
espaço em disco dos arquivos. Estes métodos referem-se a como os blocos de um 
arquivo são arranjados no HD. Podem ser: 
 
 Alocação Contígua 
 Alocação Encadeada 
 Alocação Indexada 
 
Alocação Contígua 
 
Neste modo, o mais simples de todos, os blocos são armazenados de forma contígua 
(adjacentes) no disco. O Sistema controla a localização dos arquivos pelo primeiro 
bloco. Os demais ficam registrados na lista como extensão. Na tabela de alocação o 
AS (sistema de arquivos) tem uma entrada por cada arquivo; a entrada contém a 
localização do primeiro bloco e o nr de blocos seguintes (extensão). A figura 8 mostra 
exemplo deste tipo de alocação. 
 
 TEMA 10: SISTEMA DE ARQUIVOS 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Figura 8 – Exemplo de alocação contígua 
 
No exemplo, observa-se a alocação de 3 arquivos, A, B e C. O arquivo A tem 1º bloco 
na área 4, seguido de mais 2 blocos, sendo o total de 3 blocos. Enquanto o bloco B só 
tem um bloco e se encontra na área 10. Na figura também se observa espaços vazios, 
livres (em branco), como o conjunto de blocos de 0 até 3 e de 7 até 9, além do 11 e 
12. 
 
Estes espaços são decorrentes de exclusão, inclusão de arquivos e seus blocos. Por 
exemplo, poderia ter havido 2 arquivos D (com 3 blocos), ocupando os blocos 0, 1 e 
2 e um arquivo de 1 bloco, armazenado no bloco 3. No decorrer do funcionamento 
do sistema, ambos foram excluídos. 
 
Estes 3 conjuntos de espaços livres constituem o que se chama Fragmentação. Isso 
pode se tornar ruim com o tempo, pois o disco pode ficar cheio de buracos pequenos 
(poucos blocos), não se podendo, assim, armazenar arquivos maiores. Por exemplo, 
na figura observa-se a existência de 9 blocos livres, mas nenhum arquivo de 5 blocos 
pode ser armazenado. 
 
A fragmentação pode ser solucionada, temporariamente, por rotinas periódicas de 
reorganização. 
 
Quando um novo arquivo está para ser incluído, o SO deve decidir qual espaço livre 
usará (no exemplo da figura o AS deveria decidir se usaria o espaço do bloco 0 ou do 
7 ou do 11 ou do 13. 
 
O principal problema é a determinação do espaço em disco requerido por um 
arquivo. Naturalmente, depende primeiro do tamanho do arquivo no momento da 
 
 TEMA 10: SISTEMA DE ARQUIVOS 
alocação. SE, p.ex., o arquivo ocupa 3 blocos, o espaço dos blocos 11 e 12 não serve 
e se for de 4 blocos, nem o 7 e nem o 11 servem. 
 
Mas pode e ocorre muito de haver diversos espaços em que o arquivo pode ser 
armazenado e o AS, então, deve decidir em qual espaço armazenar o arquivo. A 
literatura aponta algumas soluções: 
 
First-Fit-este modo indica que o AS ocupe imediatamente o primeiro bloco com 
tamanho suficiente, a partir do primeiro na lista (por exemplo da figura, o bloco 0 se 
tivesse espaço). A lista é normalmente sequencial crescente. 
 
Best-Fit- nesse caso, o AS deve percorrer toda a lista e escolher o conjunto que mais 
se encaixa no tamanho do arquivo, para não haver desperdícios. 
 
Alocação Encadeada 
 
No modo de alocação encadeada (linked list allocation), consegue-se evitar 
fragmentação, pois não há blocos de espaços livres como na alocação contígua. Neste 
caso, conforme se observa na figura 9, o arquivo não precisa ter blocos contíguos 
(juntos), embora isso acarrete bom desempenho (evita muitos movimentos do braço 
do disco). Cada bloco tem espaço para os dados e também um conjunto de bits que 
indica o endereço do bloco seguinte na lista; este pode estar armazenado em 
qualquer ponto do disco. 
 
Figura 9 – Exemplo de alocação encadeada 
 
Conforme se observa mais uma vez na figura 9, neste tipo de alocação, um arquivo é 
armazenado, com os blocos sendo logicamente encadeados no disco, independente 
de sua posição física (os ponteiros fazem a ligação). O AS mantém registro da 
localização do primeiro bloco do arquivo; à medida que dados vão sendo incluídos e 
 
 TEMA 10: SISTEMA DE ARQUIVOS 
um novo bloco se faz necessário, o AS localiza, na lista de espaço disponível, um bloco 
livre e cria o link do último existente para este novo bloco e assim por diante. 
Não há problema decorrente da fragmentação entre espaços livres entre segmentos. 
Mas ocorre fragmentação nos arquivos, por estarem encadeados em espaços não 
contíguos. 
Um problema que pode ocorrer com este método é a impossibilidade de acesso direto 
a um bloco (o acesso é sequencial pelos ponteiros), como se pode observarda figura. 
Além disso, ocorre, também, aumento de espaço de memória pois cada bloco tem que 
armazenar um ponteiro para o próximo bloco. Mas o limite de tamanho de cada arquivo 
não é afetado por este problema, nem pelo tamanho dos blocos. 
No exemplo da figura, observa-se que o último bloco encadeado é o bloco 8. O campo 
de índice normalmente tem um código (p.ex., o valor -1) que indica final atual do 
arquivo. 
O sistema MS-DOS e primeiras versões do Windows usavam o Sistema FAT 16 e depois 
32 (o primeiro deles era FAT 12), o qual usava este modo de alocação. FAT-File Allocation 
Table ou Tabela de alocação de arquivos. 
A figura 10 mostra outro exemplo, semelhante, de alocação encadeada 
 
Figura 10 – Alocação encadeada (fig do Silberschatz) 
 
 
Alocação Indexada 
 
Observou-se na alocação encadeada diversas vantagens em relação à alocação 
contígua e, naturalmente, algumas desvantagens. Uma delas é a impossibilidade de 
acesso direto a um bloco dos arquivos, pois a lista encadeada só permite percorrer 
 
 TEMA 10: SISTEMA DE ARQUIVOS 
sequencialmente. Além, também, da fragmentação do arquivo, que pode ficar 
espalhado pelo disco, acarretando muitos movimentos do bração do HD (operação 
de busca - seek), tornando o acesso muitas vezes bem lento. 
 
A solução encontrada chama-se alocação indexada e consiste, como mostrado na 
figura 10, de criação de um bloco contendo índices que apontam (endereços) para 
cada bloco do arquivo. Assim, o acesso ao bloco desejado é direto, sem passar por 
blocos anteriores. 
 
0 1 2
3 4 5
6 7 8
9 10 11
12 13 14
Bloco de
índice
3
10
11
7
 
 
Figura 10 – Exemplo de alocação indexada. 
 
Com este método, o limite de tamanho de cada arquivo é determinado pela largura, 
em bits, de cada índice e pelo tamanho do bloco de índices. Se o bloco de índices 
estiver cheio, não é possível inserir novos índices e o arquivo não pode aceitar mais 
blocos, o que pode ser um inconveniente em arquivos muito grandes. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 TEMA 10: SISTEMA DE ARQUIVOS 
 
Parte B- Arquivos com Slides que complementam o assunto abordado: 
 
 
SO-TEMA 
10-Sistema de Arquivos.pptx 
 
 
REFERÊNCIAS: 
Básica: Disponíveis na Biblioteca Digital 
MACHADO, F. B.; MAIA, L. P. M. Arquitetura de sistemas operacionais. 5. ed. Rio de 
Janeiro: LTC, 2013. 
SILBERSCHATZ, A. Fundamentos de Sistemas operacionais – Princípios básicos. 1. ed. 
Rio de Janeiro: LTC, 2013. 
TANEMBAUM, A. S.; WOODHULL, A.S.. Sistemas Operacionais -Projeto e 
Implementação. 3. ed. São Paulo: Pearson, 2008 
 
Complementar: 
TANEMBAUM, A. S.; WOODHULL, A.S.. Sistemas Operacionais Modernos. 4. ed. São 
Paulo: Pearson, 2016 
FLYNN, I. M.; MCHOES, A. M. Introdução aos Sistemas Operacionais. 1. ed. São Paulo: 
Pioneira Thomson Learning, 2002. 
MACHADO, F. B.; MAIA, L. P. M. Fundamentos de sistemas operacionais. 1. ed. Rio de 
Janeiro: LTC, 2011. 
MARQUES, J. A.; FERREIRA, P.; RIBEIRO, C.; VEIGA, L.; RODRIGUES, R. Sistemas 
Operacionais. 1. ed. Rio de Janeiro: LTC, 2011. 
OLIVEIRA, R. S.; CARISSIMI, A. S.; TOSCANI, S. S. Sistemas operacionais. 4. ed. Porto 
Alegre: Bookman, 2010. (Livros Didáticos Informática UFRGS, v. 11).

Mais conteúdos dessa disciplina