Sistemas operacionais
Carlos Oberdan Rolim
Ciência da Computação
Sistemas de Informação
Sistema de arquivos
* Baseado no material da Profa. Maria Clicia Stelling de Castro - UERJ
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
Conceitos básicos
 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
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
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
readme.txt
prova.doc
aula.pdf
Arquivos
0 1 2
0 1 2 3 4 5 6 7
0 1 2 3 4
?
0 1 2 3 4 5 6 7
Vetor de
blocos
lógicos
Dispositivo
físico
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
arquivo
inicio #blocos
readme.txt
010
003
prova.doc
002
008
Aula.pdf
017
005
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
aloca
aloca
remove
remove
t
aloca
remove
aloca
Agora, como alocar um arquivo com 4 blocos ?
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
Situação inicial
First-fit
Best-fit
Worst-fit
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
arquivo
inicio #blocos
readme.txt
010
003
prova.doc
002
008
Aula.pdf
017
005
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 (inode)
diretório aponta para os i-nodes
blocos podem estar espalhados
Base de funcionamento do UNIX
Alocação indexada
• 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
arquivo
inicio #blocos
readme.txt
010
003
prova.doc
002
008
Aula.pdf
017
005
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ório
arquivos
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
MFD
UFD
user 1
a cat bo
user 2
a cat y
user 3
a
x
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
spell bin
prog
arquivos
raiz
mail
prt
copy
exp
a
a
x
p
mail
last
test
first
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
raiz
list
a x pr
spell
dict
mail
list
rad
word
w7
count
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 raiz spell dict
 Garbage Collection
list a x pr
mail
list
word
list
word
hyp
rad
w7
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
Download

Arquivo