Buscar

S O Aula 4 Sistemas Arquivos

Prévia do material em texto

Sistemas de Arquivos
Patrícia Bonezi
Introdução
O sistema de arquivos é a parte mais visivel do SO
Cria um recurso lógico a partir de recursos fisicos através de uma interface coerente, simples e fácil de usar
Mecanismos de armazenamento de dados e acesso a programas
Duas partes básicas
Arquivos
Armazenamento de dados e programas
Diretórios
Organização e informações de arquivos
Objetivos do sistema de arquivos
Fornecer mecanismos para o usuário manipular arquivos e diretórios
Garantir a validade e coerencia dos dados
Minimizar ou eliminar o risco de perda / alteração das informações
Otimizar o acesso
Fornecer suporte a outros sistemas de arquivos
Suporte a varios usuarios (multiprogramação)
Uso compartilhado (proteção e acesso concorrente)
Requisitos minimos: ponto de vista do usuario
Cada usuário deve ser capaz de:
Criar, apagar, ler e alterar arquivos
Controlar as permissões de acesso a seus arquivos
Nomear arquivos de forma simbólica
Estruturar os arquivos de forma a adequa-los a suas necessidades especificas
Criação de diretórios e subdiretórios
Realizar backups e restarurar em caso de perdas
Requisitos minimos: ponto de vista do sistema
O SO deve ser capaz de :
Descrever a localização de todos os arquivos e seus atributos
Via diretório
Gerenciar espaço físico de disco
Alocar blocos
Liberar blocos de arquivos removidos
Mecanismos para localizar eficientemente blocos (setores) que compoem arquivos
 Arquivo: um conjunto de informações, identificado por um nome
 Sistema de arquivos: a parte do sistema operacional que gerencia o armazenamento de arquivos e provê facilidades de acesso a arquivos
 Diretório: tabela de símbolos que permite identificar informações sobre os arquivos
Partição: Abstração que permite a partir do disco físico criar discos lógicos
Conceitos básicos
Conceito de Arquivo
Um arquivo é um espaço de endereçamento lógico e contíguo.
Tipos:
Dados
númerico
caracter
Binário
Programa
Estrutura do Arquivo
Nenhuma - seqüência de palavras ou bytes.
Estrutura de Registros Simples 
Linhas
Tamanho Fixo
Tamanho Variável
Estruturas Complexas
Formatado por Documento
Quem decide o formato do arquivo é o criador do mesmo (usuário, sistema operacional, operador).
Atributos do Arquivo
Nome
Tipo
Localização
Tamanho
Proteção
Data, hora e identificador de usuário
Informações sobre os arquivos são mantidas em estruturas de diretórios, as quais são mantidas em um disco.
Operações em Arquivo
Criação
Escrita
Leitura
Reposicionamento de ponteiro dentro do arquivo
Remoção
Abertura
Fechamento
Armazenamento
 Meios físicos de armazenamento comuns: fitas magnéticas e discos
 Organização de disco: superfícies, trilhas e setores
Armazenamento
Gerenciamento de Espaço em Disco
 O sistema de arquivos deve ser capaz de:
 controlar a área de espaço livre nos discos: SO possui uma lista de espaços livres
 utilizar métodos de acesso às informações: modo seqüencial ou direto
 utilizar métodos de alocação que sejam convenientes e eficientes: métodos contíguo, encadeado ou indexado	
Lista de Espaços Livres
 Registra o endereço de todos os blocos que estão livres no disco
 mapa de bits: sistema de arquivos mantém um vetor de bits, com um bit para cada bloco de disco
 Exemplo: 
00111011 
os blocos 0, 1 e 5 estão livres
 mapa de bits permite controle mais compacto dos blocos de disco livres
Lista de Espaços Livres
 lista encadeada: sistema de arquivos mantém uma lista encadeada de blocos, a lista possui o ponteiro do primeiro bloco e
 cada bloco contém um ponteiro para o próximo bloco livre 
 o ponteiro dos n blocos livres são armazenados no primeiro bloco. Se necessário, última posição do bloco é o ponteiro para outro bloco contendo ponteiros para outros n blocos livres
 número n de blocos livres contíguos
Métodos de Acesso
 Seqüencial: blocos acessados em ordem 
Direto: o arquivo é visto como uma seqüência numerada de blocos 
 bloco 
 tamanho fixo, definido pelo SO
 pode ser lido ou escrito aleatoriamente
Organização de arquivos
Problema:
Como armazenar diversos arquivos dentro
de um único vetor de blocos lógicos ?
Cada arquivo também deve ser visto como
uma seqüência de blocos lógicos.
Restrições:
flexibilidade de alocação
rapidez de acesso (seqüencial e aleatório)
eficiência no uso do espaço real em disco
Organização de arquivos
0
1
2
3
4
5
6
7
?
readme.txt
0
1
2
prova.doc
0
1
2
3
4
5
6
7
aula.pdf
0
1
2
3
4
Dispositivo
físico
Vetor de
blocos
lógicos
Arquivos
Técnicas de alocação
Formas de mapear os blocos dos arquivos em posições no vetor de blocos lógicos
Alocação contígua de arquivos
Alocação em listas encadeadas
listas diretas ou listas indexadas
Alocação indexada
Alocação contígua de arquivos
Cada arquivo ocupa um conjunto de blocos lógicos consecutivos.
Não há blocos vazios entre os blocos de um mesmo arquivo.
Para cada arquivo, o diretório informa seu bloco de início e o no de blocos.
Alocação contígua
readme.txt 010 003
prova.doc 002 008
Aula.pdf 017 005
arquivo inicio #blocos
0
1
2
3
4
5
6
7
Alocação contígua
Alocação contígua
Vantagens:
Simplicidade de implementação.
Rapidez de acesso aos arquivos:
todos os blocos do arquivo estão próximos.
Facilidade de acesso seqüencial e aleatório:
sequencial: basta ler os blocos consecutivos
aleatório: posições internas podem ser facilmente calculadas a partir da posição do bloco inicial.
Alocação contígua
Desvantagens:
Pouca flexibilidade no crescimento dos arquivos.
Tamanho máximo do arquivo deve ser conhecido no momento da alocação.
Ocorrência de fragmentação externa.
Necessidade de desfragmentação periódica.
Fragmentação externa
Espaços vazios entre blocos de arquivos.
À medida que o sistema evolui:
arquivos são criados e removidos
mais espaços vazios aparecem.
os espaços vazios ficam menores.
 Alocar novos arquivos torna-se difícil !
Evolução da fragmentação
t
aloca
aloca
aloca
aloca
Agora, como alocar um arquivo com 4 blocos ?
remove
remove
remove
Desfragmentação
Mover arquivos para reagrupar os fragmentos em espaços maiores
Visa permitir alocar arquivos maiores
Deve ser feita periodicamente
Uso de algoritmos para minimizar movimentação de arquivos (rapidez)
Estratégias de desfragmentação
Situação inicial
Moveu 6 blocos
Moveu 4 blocos
Moveu 2 blocos
Estratégias de alocação
First-fit: usar o primeiro espaço livre
maior rapidez de alocação
pouca preocupação com fragmentos
Best-fit: usar o menor espaço livre
usar o melhor possível os espaços em disco
fragmentos residuais são pequenos
Worst-fit: usar o maior espaço livre
fragmentos residuais são maiores (mais úteis)
Alocando um arquivo c/ 2 blocos
Worst-fit
Best-fit
First-fit
Situação inicial
Alocação encadeada
Os arquivos são armazenados como listas de blocos
cada bloco aponta para o próximo
diretório aponta para o bloco inicial
os blocos podem estar espalhados
Base de funcionamento da FAT
sistema de arquivos Windows
Alocação encadeada
readme.txt 010 003
prova.doc 002 008
Aula.pdf 017 005
arquivo inicio #blocos
Alocação encadeada
Alocação encadeada
Vantagens
não há fragmentação externa
todo o disco pode ser usado
tamanho dos arquivos pode ser mudado facilmente
Desvantagens
acesso aleatório é mais demorado
maior fragilidade em caso de problemas
Alocação indexada
Baseada em tabelas de blocos
um bloco especial guarda a tabela de blocos do arquivo: index-node (i-node)
diretório aponta para os i-nodes
blocos podem estar espalhados
Base de funcionamento do UNIX
 Os INODES contêm informações a respeito de arquivos e diretórios no sistema de arquivos.A única coisa que inode não contém é o
nome do arquivo. 
 O INODE contém informações sobre as permissões do arquivo, contagem de links, blocos duplicados, blocos ruins, associações de tamanho, e ponteiros para os blocos de dados.
 O INODE possui também apontadores para os blocos de dados dos arquivos.
 EX:Solaris , cada INODE possui 16 destes apontadores. Os apontadores de 0 a 11 apontam para os 12 primeiros blocos de dados do arquivo (blocos
diretos). Os apontadores 12 e 13 apontam para blocos indiretos
Alocação indexada
Alocação indexada
readme.txt 010 003
prova.doc 002 008
Aula.pdf 017 005
arquivo inicio #blocos
I-node
Alocação Indexada
Alocação indexada
Vantagens
não há fragmentação externa
todo o disco pode ser usado
acesso rápido
robustez em caso de problemas
Desvantagens
gerência mais complexa
espaço em disco perdido com os i-nodes
Fragmentação interna
Arquivos são alocados em blocos:
Os blocos têm tamanho fixo.
Entre 512 bytes e 8 Kbytes.
Um bloco não pode ser alocado parcialmente.
Se usarmos blocos de 4096 bytes:
um arquivo de 5700 bytes ocupará 2 blocos.
2492 bytes serão perdidos no último bloco.
Em média, perde-se 1/2 bloco por arquivo.
Tamanho dos blocos
A escolha do tamanho dos blocos é importante para a eficiência do sistema.
Blocos pequenos:
menor perda por fragmentação interna
mais blocos por arquivo: maior custo de gerência
Blocos grandes:
maior perda por fragmentação interna
menos blocos por arquivo: menor custo de gerência
Sistema de Diretórios
 Acesso à arquivos a partir do nome
 Mapeamento: nome do arquivo x blocos diretório
 Diretório arquivo especial, armazena 
 registros de tamanho fixo = entradas de diretório
 informações relacionadas 
 ao dispositivo físico: nome, localização, tamanho, modo de alocação 
 à organização lógica: nome, tipo do arquivo, proprietário, código de proteção 
 Outras informações: posição corrente, proteção, contabilidade de uso, tempo, data, identificação do processo


Sistema de Diretórios
 Operações realizadas num diretório
 busca, criação, remoção, listar conteúdo, 
cópias para backup
 Estruturas de diretório organizam os 
 arquivos presentes no sistema 


Diretório de um Único Nível
Diretórios de Dois Níveis
 Cada usuário tem seu próprio diretório de arquivo de usuário (UFD)
 Cada diretório de usuário tem uma estrutura similar
 Diretório de arquivo mestre (MFD)
 Isola usuários 
 Problema: compartilhamento de arquivos, se for permitido path name

Diretório Estruturado em Árvore
 Possui um diretório raíz
 Diretórios dos usuários são intermediários 
 Podem criar seus próprios subdiretórios e organizar seus arquivos
Diretório Estruturado em Árvore
 Path name 
 completo: define o caminho da raíz ao arquivo
 relativo: define o caminho do diretório corrente ao arquivo
 Apagar diretório depende da política de decisão 
 só se diretório estiver vazio
Assumir que deve apagar todos os arquivos e subdiretórios que estiverem contidos
 Default: não há compartilhamento de arquivos ou subdiretórios

Diretório em Grafo Acíclico
 Permite compartilhamento de arquivos e subdiretórios 
 Generalização do esquema de diretório estruturado em árvore
Diretório em Grafo Acíclico
 Compartilhamento pode ser implementado por 
 link: é criado um ponteiro,para outro arquivo ou subdiretório
 duplicar informações: pode gerar inconsistências de informação
 lista de referências ao arquivo: entradas no diretório ou links simbólicos
Diretório em Grafo Acíclico
 Eliminação de um arquivo ou diretório 
 retirada do link: não afeta o arquivo, arquivo ou diretório é eliminado se todos os links forem removidos
 retirada da referência da lista de referências
 arquivo só é eliminado quando a lista estiver vazia
 é preciso somente de um contador de referências, se contador = 0, arquivo pode ser eliminado
Diretório em Grafo Geral
 Permite a formação de ciclos, existe diversos caminhos para um mesmo arquivo ou diretório 
 Estruturas semelhantes as do grafo acíclico para o compartilhamento
 Garbage Collection
 
raiz
 
spell
 
dict
 
a
 
x
 
list
 
mail
 
pr
 
list
 
word
 
rad
 
w7
 
list
 
word
 
hyp
 
Proteção de Arquivos
 Contra 
 danos físicos (confiabilidade) 
 acessos impróprios (proteção) 
 Confiabilidade: cópia de arquivos com intervalos regulares
 Proteção resultado direto da habilidade de acessar arquivos
Proteção de Arquivos
 Níveis de Proteção de Sistemas
 não permitem o acesso a outros usuários, não precisam de proteção (default)
 têm proteção completa, proibindo o acesso
 têm livre acesso sem nenhuma proteção 
 Abordagens muito extremas
 Proteção através de um controle de acesso 
Proteção de Arquivos
 Proteção através de controle de acesso
 login + senha (password) 
 dependendo da operação sobre arquivos
 leitura, escrita e execução
 têm livre acesso sem nenhuma proteção 
 Usuários com necessidades de acesso diferentes 
 lista de acesso associada a cada arquivo ou diretório 

Proteção de Arquivos
 Lista de acesso pode ser muito grande dependendo da forma de implementação
 Redução do tamanho da lista 
 operações de leitura, escrita e execução
 classificação dos usuários em grupos
 proprietário: usuário que criou o arquivo
 grupo: vários usuários que compartilham e necessitam de acesso similar ao arquivo
 universo: todos os outros usuários
Proteção de Arquivos
 Classificação: três campos para definir a proteção
 Cada campo = coleção de bits que controlam o acesso, a cada bit está associado uma permissão 
 Exemplo: Unix like
 três campos com três bits ( 0 = negado, 1 = permitido)
 r = acesso de leitura
 w = acesso de escrita
 x = acesso de execução
diretório
arquivos
a
cat
bo
a
a
x
cat
y
user 1
user 2
user 3
MFD
UFD
raiz
bin
prog
spell
mail
copy
mail
a
a
p
prt
exp
last
first
x
test
raiz
bin
prog
spell
mail
copy
mail
a
a
p
prt
exp
last
first
x
test
 
raiz
 
spell
 
dict
 
a
 
x
 
list
 
mail
 
pr
 
list
 
word
 
rad
 
w7
 
count
 
raiz
spell
dict
a
x
list
mail
pr
list
word
rad
w7
count

Continue navegando