Escolar Documentos
Profissional Documentos
Cultura Documentos
Sistemas Operacionais
Sistemas Operacionais 2
Objetivos do sistema de arquivos
Sistemas Operacionais 3
Requisitos mínimos: ponto de vista do usuário
Sistemas Operacionais 4
Requisitos mínimos: ponto de vista do sistema
Sistemas Operacionais 5
Conceitos básicos
• Arquivos
• Recipientes que contêm dados
• Diretórios
• Conjuntos de referências a arquivos
• Partição
• Abstração que permite a partir do disco físico criar discos lógicos
Sistemas Operacionais 6
Conceito de arquivo
Sistemas Operacionais 7
Nomes de arquivos
Sistemas Operacionais 8
Atributos de um arquivo
Sistemas Operacionais 9
Estruturas de arquivos
• Sequência de bytes
• Sequência de registros
• Árvore
Sistemas Operacionais 10
Seqüência de bytes
Sistemas Operacionais 11
Seqüência de registros
Sistemas Operacionais 12
Árvore
A F P
C C D P R W
G L O
H I L
Sistemas Operacionais 13
Tipos de arquivo
Sistemas Operacionais 14
Exemplos de arquivos UNIX
executável biblioteca
(formato a.out)
Sistemas Operacionais 15
Métodos de acesso
Sistemas Operacionais 16
Acesso sequencial
Sistemas Operacionais 17
Acesso relativo
Sistemas Operacionais 18
Outros tipos de acesso
Sistemas Operacionais 19
Operações básicas sobre arquivos
Sistemas Operacionais 20
Controle de acesso
Sistemas Operacionais 21
Listas de acesso
Sistemas Operacionais 22
Exemplo: UNIX
• Cada objeto oferece 3 bits (rwx) para três domínios diferentes: proprietário,
grupo e outros
• Problema de flexibilidade
• Quando um usuário pertence a vários grupos ele é identificado por um
grupo primário e o arquivo (/etc/groups) mantém todos os grupos a que
ele pertence
Sistemas Operacionais 23
Outra abordagem: senhas
Sistemas Operacionais 24
Implementação de arquivos
Sistemas Operacionais 25
Tabelas de descritores de arquivos
Sistemas Operacionais 26
Tabelas de arquivos abertos por processo
Sistemas Operacionais 27
Emprego conjunto das tabelas TAAP e TDAA
Arquivo B Arquivo A
FileHandle PosCor=12
Leitura
FileHandle PosCor=55
Leitura & esc
Descritor Arquivo A
Tabela de arquivos
abertos processo 0
Descritor Arquivo B
FileHandle PosCor=10
Leitura
Sistemas Operacionais 28
Leituras complementares
Sistemas Operacionais 29
Gerenciamento do dispositivo de armazenamento
Sistemas Operacionais 30
Alocação do espaço em disco
00 01 02 03 04
05 06 .... 53 54
55 .... 72 73 74
... 96 97 98 ....
Sistemas Operacionais 31
Alocação contígua
Sistemas Operacionais 32
Esquema alocação contígua
Sistemas Operacionais 33
Problemas com alocação contígua
Sistemas Operacionais 34
Alocação encadeada
Sistemas Operacionais 35
Esquema de alocação encadeada
Sistemas Operacionais 36
Prós e contras da alocação encadeada
Sistemas Operacionais 37
Exemplo: File Allocation Table (FAT)
Sistemas Operacionais 38
Sistema de arquivos FAT (MS-DOS)
Diretório raiz
Arquivos
Setor n
Sistemas Operacionais 39
Esquema de funcionamento da FAT
FAT 0
Diretório
jeep 217 618 217
Primeiro setor do
arquivo
400 399
(start block) EOF
400
399 618
Sistemas Operacionais 40
Alocação indexada
Sistemas Operacionais 41
Esquema de alocação indexada
Sistemas Operacionais 42
Prós e contras da alocação indexada
Sistemas Operacionais 43
Variações em alocação indexada
Sistemas Operacionais 44
Método encadeado
• O índice mantém ponteiros para os blocos que compõem o arquivo com
exceção da última entrada
• Mantém um ponteiro para outro bloco onde o índice continua
Bloco de dados
Bloco de índices (618)
(0) Bloco de dados
(500)
0
Bloco de índices
k 618 (300)
k+1
n-1 400 k 500
n 300 k+1
n-1 NULL
n NULL
Sistemas Operacionais 45
Método multinível
• Mantém um índice de índices
• Não resolve completamente o problema de limite
n-1
n
Sistemas Operacionais 46
Método combinado
Bloco de dados
(310)
Bloco combinado
(0)
Bloco de índices Bloco de dados
Ponteiros p/ 0 310 (700) (442)
bloco de dados 0
442
Ponteiros p/ n-1 530
bloco de índices n 700
n-1
n
Sistemas Operacionais 47
Exemplo: estrutura de i-nodes (UNIX)
128
bytes
10
Sistemas Operacionais 48
Problema com os métodos de alocação não contígua
Sistemas Operacionais 49
Resumo dos tipos de alocação
• Alocação contígua
• Só armazena endereço do primeiro bloco
• Acesso randômico é possível (bloco inicial + deslocamento)
• Gera fragmentação externa no disco
• Alocação encadeada
• Armazena endereço do primeiro bloco
• Problema de desempenho (seek)
• Não recomendado para acesso randômico
• Alocação indexada
• Visa solucionar problemas dos tipos anteriores
• Análise de desempenho (tamanho + tempo de acesso ) é complexa
• Depende da estrutura de índice e do tamanho de arquivo
Sistemas Operacionais 50
Conclusão: qual o melhor método de alocação?
Sistemas Operacionais 51
Suporte a múltiplos sistemas de arquivos
Sistemas Operacionais 52
Implementação de múltiplos sistemas de arquivos
Sistemas Operacionais 53
Múltiplos sistemas de arquivos: estrutura de dados
Tabela com descritores virtuais Descritor do S.A. 1
dos arquivos abertos
open
read
...
write
Tab. descritores ...
tipo Sist. Arq. 1
contador de uso tab. descritores
dados dependentes tamanho
localização dados
... direitos
etc
tipo ...
contador de uso
dados dependentes
...
Descritor do S.A. 2
...
open
read
write
Tab. descritores ...
Sist. Arq. 2 tab. descritores
tamanho
localização dados
direitos
etc
...
...
Sistemas Operacionais 54
Organização da cache de disco
Sistemas Operacionais 55
Funcionamento da cache de disco
Sistemas Operacionais 56
Políticas de atualização da cache
• Posterga ao máximo
• Atualiza a cada intervalo de tempo
• Atualiza imediatamente no disco
• Atualiza imediatamente apenas informações sensíveis a consistência do
sistema do arquivo
Sistemas Operacionais 57
Política de substituição
Sistemas Operacionais 58
Implementação da política LRU
Sistemas Operacionais 59
Implementação da cache do sistema de arquivos
Sistemas Operacionais 60
Gerenciamento do espaço livre
00 01 02 03 ....
25 26 .... 53 54
55 .... 72 73 74
... 96 97 98 ....
Sistemas Operacionais 61
Mapa de bits (bit map)
Disco
Bloco 0
Físico 1 Mapa de Bits.
2
0 0 1 0 1 0 1 0
3
4 0 0 1 1 0 0 0 0
5
6
7
8
9 Capacidade _ disco(bytes)
10 tamanho _ bit _ map
11
12
8 tamanho _ bloco(bytes)
13
14
15
Sistemas Operacionais 62
Lista de blocos livres
Sistemas Operacionais 63
Gerência de espaço livre através de blocos livres
Bloco Disco
lógico Físico 2
0 4
1 6
2 7
3
4
8
5
9
6
10
7
11
8
9
10
14
11
15
12
13
14
15
Sistemas Operacionais 64
Leituras complementares
Sistemas Operacionais 65
Diretório
• Problema:
• Quantidade (grande) de arquivos implica na necessidade de organizá-los
• Sistema de arquivos oferece duas formas de organização
• Partição
• Diretório
• Partição divide um disco em discos lógicos (virtuais), mas não resolve a
organização de arquivos dentro desse disco lógico
• No mínimo uma em um sistema
• Onde “residem” os arquivos e os diretórios
Sistemas Operacionais 66
O conceito de diretório
Sistemas Operacionais 67
Organização de diretório
Sistemas Operacionais 68
Diretório linear
• Mais simples
• O diretório corresponde a uma lista de todos os arquivos do disco
• Desvantagem:
• Problema de nomeação e agrupamento
• 2 ou mais usuários não podem ter arquivos com o mesmo nome
(colisão)
Silberchatz, Galvin, Gagne. Applied Operating System Concepts (1st Ed.) John Wiley & Sons, 2000.
Sistemas Operacionais 69
Diretório linear a dois níveis
Silberchatz, Galvin, Gagne. Applied Operating System Concepts (1st Ed.) John Wiley & Sons, 2000.
Sistemas Operacionais 70
Diretório em arvóre
Silberchatz, Galvin, Gagne. Applied Operating System Concepts (1st Ed.) John Wiley & Sons, 2000.
Sistemas Operacionais 71
Conceitos associados a um diretório em árvore
Sistemas Operacionais 72
Prós e contras da estrutura em árvore
• Vantagem:
• Procura eficiente por arquivos
• Possibilidade de agrupamento de arquivos
• Desvantagem:
• Compartilhamento de arquivos
• Questão é: copiar ou não arquivos a compartilhar?
• Conceito de search path
• Lista de diretórios (caminhos absolutos) a pesquisar um arquivo
Sistemas Operacionais 73
Diretório estruturado em grafos acíclicos
Silberchatz, Galvin, Gagne. Applied Operating System Concepts (1st Ed.) John Wiley & Sons, 2000.
Sistemas Operacionais 74
Aliases
Sistemas Operacionais 75
Problema da remoção de arquivos
• Solução 1:
• Acesso a um link simbólico dangling é detectado no momento do
acesso ao arquivo (não resolvido para nome válido)
• Solução 2:
• Preservar o arquivo enquanto houver referências a ele
• Contador de links ativos
• Lista de links
• Solução 3:
• Não permitir compartilhamento
Sistemas Operacionais 76
Prós e contras de diretórios estruturados em grafos
• Vantagem:
• Compartilhamento de arquivos
• Desvantagem:
• Estrutura mais complexa de manter
• Um arquivo pode possuir mais de um caminho de acesso
• e.g.: Problemas para contabilização de acessos, back-ups, etc...
• Remoção de um arquivo compartilhado
• Problema de dangling pointer
• Criação de laços através de aliases
• Necessita algoritmo para verificar se não cria um laço
(desempenho)
Sistemas Operacionais 77
Exemplos de aliases: UNIX
Diretório
bloco arquivo index
index
hlink
bloco slink
slink
Sistemas Operacionais 78
Organização de diretórios do UNIX
• Baseado em partições
• Diretório raiz do sistema de arquivos corresponde a uma partição especial
(root)
• Conceito de ponto de montagem
• Pontos importantes:
• Cada partição possui seu próprio sistema de arquivos
• Capacidade de integrar diferentes sistemas de arquivos em uma
mesma hierarquia
• Sistemas de arquivos podem ser diferentes
• e.g.: ext2, FAT12, FAT32, NTFS, etc...
Sistemas Operacionais 79
Montagem de Partição 1 Partição 2 Partição 3
partições em um
etc usr bin joão maria ls who Mail
subdiretório
passwd hosts
so teste teste trab
trab1 trab2
Pontos de
montagem
trab1 trab2
Sistemas Operacionais 80
Implementação de diretórios
Sistemas Operacionais 81
Conjunto de arquivos de descritores de arquivos
raiz
Arquivo Arquivo
diretório raiz diretório etc Arquivo passwd
etc usr bin
“etc” “passwd”
passwd hosts Descritores “hosts”
de arquivo Arquivo hosts
Sistemas Operacionais 82
Vetor de descritores
/
raiz
etc
etc usr bin usr
bin
passwd hosts
passwd
hosts
Sistemas Operacionais 83
Implementação de diretórios como tabelas
Sistemas Operacionais 84
Organização interna de uma partição
Sistemas Operacionais 85
Partições primárias em um disco IDE
Tabela de partições
MBR
Master Boot Record Pré-boot
Setor de boot
Partição primária
/dev/hda1
Setor de boot
Partição primária
/dev/hda4
Sistemas Operacionais 86
Leituras complementares
Sistemas Operacionais 87