Sistemas de Arquivos
Problemas da alocação em RAM
● Baixa capacidade● Volatilidade
Solução: uso de arquivos
Conceito de arquivo● Espaço endereços lógico contíguo● Coleção informações correlatas com mesmo nome armazenadas no disco
Tipos● Dados● Programas● Programas-fonte
Estrutura de um arquivo● Nenhuma: sequência bytes (Unix)● Registro● Complexa (documento formatado, arquivo relocável)
Atributos de um arquivo (mantidos na entrada diretórios)● Nome● Identificador: número (único) identifica arquivo dentro FS● Tipo● Localização: ponteiro para 1o bloco● Tamanho● Proteção● Hora e data da criação● Hora e data da última alteração
Operações com arquivos
(um arquivo é um ADT)
● Criar● Escrever● Ler● Reposicionar● Apagar● Truncar● Open: move conteúdo para memória● Close: move conteúdo para disco
Arquivos abertos – dados necessários
● Ponteiro para último local acessado (por processo)● Direitos de acesso
Métodos de acesso
● Sequencial
Ler próximoEscrever próximoReset
● Direto (aleatório)
Ler nEscrever nProcurar n
Ler próximoEscrever próximo
Reescrever n
n: número do bloco
Diretórios: organizadores dos arquivos
Estrutura de diretórios
Coleção de nós contendo informação sobre todos os arquivos (número de registros, umpor arquivo)
(ambos, estrutura de diretórios e arquivos, são mantidos no disco
F 1 F 2F 3
F 4
F n
Directory
Files
Operações realizadas num diretório
● Procurar um arquivo● Criar um arquivo● Apagar● Listar um diretório● Renomear um arquivo
Organização lógica do diretório
● Nível único● Dois níveis● Estruturação em árvore● Grafos acíclicos● Grafos gerais
Nível único
Um único diretório para todos os usuários
Problemas: nomes, impossibilidade compartilhamento
Dois níveis
Um diretório para cada usuário
● Pode-se ter o mesmo nome de arquivo para diferentes usuários● Surge o path name (caminho para o arquivo)● impossibilidade de compartilhamento
Diretórios estruturados em árvore
● Diretório atual (de trabalho)● Nome caminho absoluto, relativo● Impossibilidade de compartilhamento
Grafos acíclicos
● Permite subdiretórios e arquivos compartilhados● Problemas:
● Múltiplos caminhos absolutos● Garantir que não haja ciclos
● Implementações ● Soft link (Unix, Windows)● Hard link (Unix): contador
Grafos genéricos
Quando se permite que usuários criem links, ciclos podem ocorrer● Algorítimos são mais complexos (atravessar o grafo)
Como garantir que não há ciclos? ● Permitir links para arquivos mas não para subdiretórios● Algorítimo de deteção de ciclos no momento da criação do link → computacionalmente caro
Proteção
Tipos de acesso
● Leitura (R)● Escrita (W)● Execução (X)● Append● Delete● List
Exemplo bits proteção:
RWXa) owner access 7 ⇒ 1 1 1
RWXb) group access 6 ⇒ 1 1 0
RWXc) public access 1 ⇒ 0 0 1
owner group public
chmod 761 game
Exemplo: listagem diretório Unix
File control block: estrutura de armazenamento contendo informações sobre um arquivo
Métodos de alocação
Forma como blocos do disco são alocados aos arquivos
● Contígua● Encadeada● Indexada
Alocação Contígua
Blocos contíguos no disco
● Simples: necessita bloco início e #blocos● Acesso aleatório● Desperdício espaço● Arquivos não podem crescer
Alocação encadeada
Cada arquivo é uma lista encadeada de blocos de disco, que podem estar espalhados pelodisco.● Simples: necessita apenas endereço início● Não há fragmentação externa● Acesso aleatório impossível
FAT (tabela alocação arquivos)● Variação alocação encadeada: ponteiros na tabela
● Vantagem: acesso aleatório● Desvantagem: grande número disk head seeks
● EOF (-1)● 0: bloco não usado
Alocação indexada
Armazena todos os ponteiros no bloco de índice● Necessita tabela índices● Acesso aleatório● Pode-se encadear blocos de índice
index table
Gerência do espaço livre
Vetor de bits (bitmap)● Requer espaço adicional
Example:block size = 212 bytesdisk size = 230 bytes (1 gigabyte)n = 230/212 = 218 bits (or 32K bytes)
…
0 1 2 n-1
bit[i] =0 ⇒ block[i] free
1 ⇒ block[i] occupied
Gerência de espaço livreLista encadeada de blocos livres
Sistemas arquivos log estruturados orientados a transação (jornalados)
● Gravam cada alteração num log (transação)● As transações são escritas no sistema de arquivos de forma assíncrona● Se houver um crash, as transações pendentes serão realizadas
Fragmentação interna
(dentro do segmento, dentro do bloco)
● Surge quando tamanho do arquivo não é múltiplo tamanho bloco● Em média perde-se ½ bloco por arquivo (estatisticamente)
Fragmentação externa
(fora do segmento → entre segmentos)
● Surge quando se deleta um arquivo
Tamanho dos blocos
● Blocos pequenos
Vantagem: fragmentação interna menorDesvantagem: maior custo gerência espaço livre: bitmap maior
● Blocos grandes
Vantagem: menor custo gerênciaDesvantagem: fragmentação interna maior
Top Related