O documento discute os principais conceitos e implementações de sistemas de arquivos. Aborda tópicos como arquivos, diretórios, métodos de acesso, gerenciamento de espaço em disco e alocação de espaço. Explica como os sistemas de arquivos organizam e fornecem acesso aos dados armazenados de forma permanente nos dispositivos de armazenamento.
1. Cap. 11 – Sistema de Arquivos 1
Arquitetura de Sistemas
Operacionais
Apostila 8
Sistema de Arquivos
2. Cap. 11 – Sistema de Arquivos 2
Sumário
• Introdução
• Arquivos
– Organização de Arquivos
– Métodos de Acesso
– Operações de Entrada/Saída
• Atributos
• Diretórios
• Gerência de Espaço Livre em Disco
• Gerência de Alocação de Espaço em Disco
• Proteção de Acesso
• Implementação de Caches
3. Cap. 11 – Sistema de Arquivos 3
Introducão
• Um processo deve ser capaz de ler e
gravar grande volume de dados em
dispositivos como fitas e discos de forma
permanente, além de poder compartilhá-
los com outros processos.
• O armazenamento e a recuperação de
dados é uma atividade essencial para
qualquer tipo de aplicação.
• A maneira pela qual o sistema operacional
estrutura e organiza estas informações é
através da implementação de arquivos.
4. Cap. 11 – Sistema de Arquivos 4
Introducão
• Os arquivos são gerenciados pelo SO de
maneira a facilitar o acesso dos usuários ao
seu conteúdo.
• A parte do sistema responsável por essa
gerência é denominada sistema de arquivos.
• O sistema de arquivos é a parte mais visível
de um SO, pois a manipulação de arquivos é
uma atividade frequentemente realizada
pelos usuários, devendo sempre ocorrer de
forma uniforme, independentemente dos
diferentes dispositivos de armazenamento.
5. Cap. 11 – Sistema de Arquivos 5
Disco
• Cada trilha é dividida em setores
• O setor é a menor unidade do disco
• As operações de entrada e saída no disco são feitas sobre
os setores
• As transferências entre memória e disco são realizadas em
blocos que são compostos por vários setores.
6. Cap. 11 – Sistema de Arquivos 6
Atributos de Arquivos
• São informações de controle que
dependendo do sistema de arquivos
variam, porém alguns como tamanho,
criador, proteção e data estão presentes
em quase todos.
• Alguns atributos especificados na criação
do arquivo não podem ser mudados e
outros são modificados pelo próprio
sistema operacional. E ainda existe alguns
que podem ser alterados pelo usuário tais
como proteção, tamanho e senha.
7. Cap. 11 – Sistema de Arquivos 7
Tipos de Arquivos
Tipo do Arquivo Extensão comum Função
Executável exe, com, bin, ou nada Programa em linguagem de máquina
pronto para executar
Objeto obj, o Linguagem de máquina, compilado,
sem linkedição
Código fonte c, cc, pas, java, asm, a Código fonte em várias linguagens
Batch bat, sh Comandos para o interpretador de
comandos
Texto txt, doc Dados textuais, documentos
Processador de testo wpd, tex, doc, etc Vários formatos de procesador de
textos
Biblioteca lib, a, dll Bibliotecas de rotinas para
programadoresa
Impressão ou visualização ps, dvi, gif Arquivos ASCII ou binário em um
formato para impressão ou
visualização
Arquivo compactado arc, zip, tar Arquivos correlatos agrupados em
um arquivo único, ás vezes
compactado, para fins de
arquivamento ou
armazenamento
8. Cap. 11 – Sistema de Arquivos 8
Organização de Arquivos
• A organização de arquivos consiste em como os seus dados estão
internamente armazenados.
• A estrutura dos dados pode variar em função do tipo de informação
contida no arquivo.
• Arquivos texto possuem propósitos completamente distintos de
arquivos executáveis, consequentemente, estruturas diferentes
podem adequar-se melhor a um tipo do que a outro.
• No momento da criação de um arquivo, seu criador pode definir qual
a organização adotada.
• Esta organização pode ser uma estrutura suportada pelo SO ou
definida pela própria aplicação.
• A forma mais simples de organização de arquivos é através de uma
sequência não-estruturada de bytes (Fig. 11.1a)
• Neste tipo de organização, o sistema de arquivos não impõe
nenhuma estrutura lógica para os dados.
• A aplicação deve definir toda a organização, estando livre para
estabelecer seus próprios critérios.
• A grande vantagem deste modelo é a grande flexibilidade para criar
diferentes estruturas de dados, porém todo o controle de acesso ao
arquivo é de inteira responsabilidade da aplicação.
9. Cap. 11 – Sistema de Arquivos 9
Organização de Arquivos
• Organização de Arquivos
Byte
(a) Organização não-estruturada
Ana Cláudia Teresa
Beatriz Camila Daniele Patrícia Tina Vanessa
Isabela Maria
Registro
(b) Organização Indexada
10. Cap. 11 – Sistema de Arquivos 10
Métodos de Acesso
• Em função de como o arquivo está organizado, o sistema de arquivos
pode recuperar registros de diferentes maneiras.
• Acesso Sequencial - Inicialmente, os SOs só armazenavam arquivos em
fitas magnéticas.
• Com isso, o acesso era restrito a leitura dos registros na ordem em que
eram gravados e a gravação de novos registros só era possível no final do
arquivo.
• Este tipo de acesso, chamado de acesso sequencial, era próprio da fita
magnética que, como meio de armazenamento, possuía esta limitação.
• Acesso Direto - Com o advento dos discos magnéticos, foi possível a
introdução de métodos de acesso mais eficientes. O primeiro foi o acesso
direto, que permite a leitura/gravação de um registro diretamente na sua
posição. Este método é realizado através do número do registro que é a
sua posição relativa em relação ao início do arquivo.
• É importante ressaltar que o acesso direto somente é possível quando o
arquivo é definido com registros de tamanho fixo.
• Acesso Indexado - Um método de acesso mais sofisticado, que tem
como base o acesso direto, é o chamado acesso indexado ou acesso por
chave. Para este acesso, o arquivo deve possuir uma área de índice onde
existam ponteiros para os diversos registros. Sempre que a aplicação
desejar acessar um registro, deverá ser especificada uma chave através
do qual o sistema pesquisará na área de índice o ponteiro
correspondente.
11. Cap. 11 – Sistema de Arquivos 11
Métodos de Acesso
• Acesso direto
Registro
0
Registro
1
Registro
2
Registro
n
Deslocamento de
dois registros
12. Cap. 11 – Sistema de Arquivos 12
Operações de Entrada/Saída
D i s p o s it iv o s
R o ti n a s d e E / S
A p l ic a ç ã o
• Operações de Entrada/Saída
13. Cap. 11 – Sistema de Arquivos 13
Operações de Entrada/Saída
• A Tabela abaixo apresenta algumas
destas rotinas encontradas na maioria das
implementações de sistemas de arquivos
14. Cap. 11 – Sistema de Arquivos 14
Operações sobre Arquivos
• Criar Arquivo
• Escrever em um arquivo
• Ler um arquivo
• Reposicionar dentre do arquivo – Essa
operação de arquivo também é
chamada de busca no arquivo.
• Excluir um arquivo
• Truncar um arquivo
• Anexar e renomear
15. Cap. 11 – Sistema de Arquivos 15
Atributos
• Cada arquivo possui informações de controle denominadas atributos. Os
atributos variam dependendo do sistema de arquivos porém alguns, como
tamanho do arquivo, proteção, identificação do criador e data de criação,
estão presente em quase todos os sistemas.
• Alguns atributos especificados na criação do arquivo não podem ser
modificados em função de sua própria natureza, como organização e
data/hora de criação. Outros são alterados pelo próprio SO, como
tamanho e data/hora da última atualização. Existem ainda atributos que
podem ser modificados pelo próprio usuário, como proteção de arquivo,
tamanho máximo e senha de acesso. Abaixo temos os principais atributos
presentes nos sistemas de arquivos.
16. Cap. 11 – Sistema de Arquivos 16
Atributos de Arquivos
• Atributos podem ser:
– Nome – O nome simbólico de arquivo é a única
informação mantida no formato legível pelo homem.
– Tipo – Essas informações são necessárias para o
sistemas que suportam tipos diferentes.
– Posição – Essas informações são um ponteiro para o
dispositivo e para a posição do arquivo no dispositivo.
– Tamanho - O tamanho atual do arquivo( em bytes,
palavras ou blocos) e possivelmente o tamanho máximo
permitido estão incluídos neste atributo.
– Proteção – Informações de controle de acesso que
controlam quem pode realiza as operações de leitura,
escrita, execução etc.
– Hora, data e identificação de usuário – Essas
informações pode ser mantidas para criação, último
modificação e último uso. Esses dados podem ser úteis
para proteção, segurança e monitoração de uso.
17. Cap. 11 – Sistema de Arquivos 17
Diretórios
• A estrutura de diretórios é como o sistema
organiza logicamente os diversos arquivos
contidos em um disco.
• O diretório é uma estrutura de dados onde cada
entrada armazena informações como localização
física, nome, organização e demais atributos.
• Quando um arquivo é aberto, o SO procura a sua
entrada na estrutura de diretórios, armazenando
as informações sobre atributos e localização do
arquivo em uma tabela mantida na memória
principal.
18. Cap. 11 – Sistema de Arquivos 18
Diretórios
• Um diretório contém:
– uma lista de todos os arquivos por nome
– os endereços de todos os descritores de todos
os arquivos
• Permite ao usuário se preocupar com o
diretório lógico e ignorar os problemas da
alocação física
• Principais estruturas para diretórios:
Diretório de Nível Simples, Diretório de
Dois Níveis, Diretório em Árvores e
Diretório em Grafos Acíclicos.
19. Cap. 11 – Sistema de Arquivos 19
Diretórios
• Estrutura de diretórios de nível único
Identificação
Proteção
Organização
Localização
Atributos
Diretórios Arquivos
20. Cap. 11 – Sistema de Arquivos 20
Diretórios
• Como o sistema de nível
único é bastante limitado,
uma evolução do modelo foi a
implementação de uma
estrutura onde para cada
usuário existiria um diretório
particular denominado User
File Directory (UFD).
• Para que o sistema possa
localizar arquivos nessa
estrutura, deve haver um
nível de diretório adicional
para controlar os diretórios
individuais dos usuários.
• Este nível, denominado
Master File Directory (MFD) é
indexado pelo nome do
usuário, onde cada entrada
aponta para o diretório
pessoal. A figura ilustra este
modelo de estrutura de
diretórios com dois níveis
(two-level directory).
Usuário
1
Usuário
2
Usuário
3
Usuário
n
Arquivo
1
Arquivo
2
Arquivo
3
Arquivo
1
Arquivo
1
Arquivo
2
Arquivo
3
User File Directory
(UFD)
Arquivos
21. Cap. 11 – Sistema de Arquivos 21
Diretórios
• Estrutura de
diretórios
em árvore Usuário
1
Usuário
2
Usuário
3
Usuário
n
Diretório Raiz
Diretório
1
Diretório
2
Arquivo
1
Arquivo
1
Diretório
1
Arquivo
1
Arquivo
2
Arquivo
1
Arquivo
2
Arquivo
1
Arquivo
1
Arquivo
2
22. Cap. 11 – Sistema de Arquivos 22
Diretórios
• Path de um arquivo
Disco C:/
IvanIvanCarlos Paulo
Teste Pessoal
Soma.exe
23. Cap. 11 – Sistema de Arquivos 23
Gerência de Espaço Livre em Disco
• A criação de arquivos em disco exige que o SO tenha o
controle de quais áreas ou blocos estão livres no disco.
• Este controle é realizado usando-se alguma estrutura de
dados que armazena informações que possibilitam ao
sistema de arquivos gerenciar o espaço livre do disco.
• Nesta estrutura, geralmente uma lista ou tabela, é
possível identificar blocos livres que poderão ser
alocados a um novo arquivo.
• Neste caso, o espaço é removido da estrutura para que
não seja reutilizado. No momento em que o arquivo é
eliminado, todos os seus blocos são liberados para a
lista de espaços livres.
• A forma mais simples de implementar uma estrutura de
espaços livres é através de uma tabela denominada
mapa de bits (bit map). Cada entrada na tabela é
associada a um bloco do disco representado por um bit
(0 – livre e 1 – alocado).
25. Cap. 11 – Sistema de Arquivos 25
Gerência de Alocação de Espaço
em Disco
• Da mesma forma que o SO gerencia os
espaços livres no disco, a gerência dos
espaços alocados aos arquivos é de
fundamental importância em um
sistema de arquivos.
• A seguir as principais técnicas de
alocação serão apresentadas:
– Alocação contígua
– Alocação encadeada
– Alocação indexada
26. Cap. 11 – Sistema de Arquivos 26
Gerência de Alocação de Espaço
em Disco
• Alocação Contígua
0 1 2
3 4 5
6 7 8
9 10 11
12 13 14
Arquivo Bloco
A. TXT 4
B. TXT 10
C. TXT 13
3
1
2
Extensão
27. Cap. 11 – Sistema de Arquivos 27
Gerência de Alocação de Espaço
em Disco
• Estratégias de Alocação
First-Fit
Best-Fit
Worst-Fit
28. Cap. 11 – Sistema de Arquivos 28
Gerência de Alocação de Espaço
em Disco
• Desfragmentação
Área de trabalho
29. Cap. 11 – Sistema de Arquivos 29
Gerência de Alocação de Espaço
em Disco
• Alocação Encadeada - A
fragmentação dos espaços
livres não representa
nenhum problema na
alocação encadeada pois
os blocos livres alocados
para um arquivo não
precisam necessariamente
ser contíguos.
• O que ocorre neste
método é a fragmentação
de arquivos, que é a
quebra do arquivo em
diversos pedaços
denominados extents.
Início
0 1 2
3 4 5
6 7 8
9 10 11
12 13 14
Arquivo Bloco
A.TXT 6
. . . . . .
. . . . . .
. . . . . .
. . . . . .
30. Cap. 11 – Sistema de Arquivos 30
Gerência de Alocação de Espaço
em Disco
• Alocação Indexada - A
alocação indexada
soluciona uma das
principais limitações da
alocação encadeada, que é
a impossibilidade de acesso
direito aos blocos dos
arquivos. O princípio desta
técnica é manter os
ponteiros de todos os
blocos do arquivo em uma
única estrutura
denominada bloco de
índice.
• A alocação indexada, além
de permitir o acesso direito
aos blocos, não usa
informações de controle
nos blocos de dados, como
na alocação encadeada.
0 1 2
3 4 5
6 7 8
9 10 11
12 13 14
Bloco de
índice
3
10
11
7
31. Cap. 11 – Sistema de Arquivos 31
Proteção de Acesso
• Proteção por grupos de usuários - A
proteção baseada em grupos de usuários
é implementada por diversos SOs.
• Este tipo de proteção tem como princípio
a associação de cada usuário do sistema a
um grupo.
DADOS.TXT
Owner
Group
All
Leitura
Escrita
Execução
Eliminação
Leitura
32. Cap. 11 – Sistema de Arquivos 32
Proteção de Acesso
• Lista de Controle de Acesso - A Lista de
Controle de Acesso (Access Control List –
ACL) consiste em uma lista associada a
cada arquivo, onde são especificados
quais os usuários e os tipos de acesso
permitidos.
Usuário: Maia
Acesso: Leitura + Escrita
Usuário: Machado
Acesso: Leitura
Usuário: Maia
Acesso: Leitura + Escrita + Execução
Usuário: Machado
Acesso: Eliminação
33. Cap. 11 – Sistema de Arquivos 33
Implementação de Caches
• Acesso a disco é bastante lento
• Buffer cache minimiza este problema
• Quando uma operação é realizada o sistema verifica
se a informação se encontra no buffer cache
– Em caso positivo, não é necessário o acesso ao disco
– Caso o bloco requisitado não se encontre no cache, a
operação de E/S é realizada e o cache é atualizado
• Políticas para substituição de blocos: FIFO ou LRU
• Aspectos de segurança
– Atualização periódica
– Write-through caches
34. Cap. 11 – Sistema de Arquivos 34
Escalonamento de Disco
• Escolha de qual solicitação de E/S atender
• O tempo para atender uma solicitação de
leitura ou gravação é dividido em3 etapas:
– Tempo de Seek: tempo gasto para locomover
a cabeça de leitura/gravação da trilha atual
para a trilha desejada.
– 2. Tempo de Latência: tempo gasto para
esperar que o disco rotacione até que o bloco
desejado esteja sob a cabeça de
leitura/gravação.
– 3. Tempo de Transferência: tempo gasto para
transferir os dados do bloco do disco para a
memória principal.
35. Cap. 11 – Sistema de Arquivos 35
Escalonamento de Disco
• Para exemplificarmos as três técnicas,
vamos supor que existe uma fila de
requisição de acesso ao disco, onde as
trilhas que devam ser acessadas estão na
seguinte seqüência
98, 183, 37, 122, 14, 124, 65 e
67
de forma que a primeira solicitação que
foi feita é a trilha 98 e a ultima é a 67.
Supomos que a cabeça de
leitura/gravação do disco esteja na
posição 53.
36. Cap. 11 – Sistema de Arquivos 36
Escalonamento de Disco
98, 183, 37, 122, 14, 124, 65 e 67
disco na posição 53.
14 37 53 65 67 98 122 124
183
FCFS
640
SSTF
236
SCA
N