Sistemas de Arquivos
Disciplina:Sistemas Operacionais
Professora: Marianne Diniz
Natal, 25 de Janeiro de 2017.


UNIVERSIDADE DO ESTADO DO RIO GRANDE DO NORTE
PRÓ-REITORIA DE GRADUAÇÃO
DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO
Roteiro
- Introdução
- Arquivos
- Diretórios
- Esquemas dos Sistemas de Arquivos
- Implementação de Sistemas de Arquivos
- Sistemas de Arquivos Compartilhados
- Cache de Blocos
Introdução
- Existe a necessidade de se armazenar informação permanentemente
- Que precisam sobreviver ao processo que as criou
- E podem ser acessadas de forma concorrente por vários processos
- Normalmente, grandes volumes de informação

Arquivo
- Um arquivo é a abstração usada para permitir essa forma de armazenamento permanente.
-
Além dos dados propriamente, arquivos têm metadados associados a si, que servem para:
-

-
Identificar a informação armazenada;
-
Definir permissões de acesso ao arquivo;
-
Informar onde os dados do arquivo estão armazenados;
-
Outras informações importantes para a gerência dos arquivos.
Arquivo
- Um sistema de arquivos define a forma de como o sistema operacional organiza os dados e os metadados dos arquivos em um dispositivo de armazenamento permanente.
-
Eficiência de um sistema de arquivos: manter parte das informações em memória.
-
Um sistema de arquivos define também as estruturas de dados que precisam ser mantidas em memória para esse fim.
-
-
Eficiência de um sistema de arquivos: manter parte das informações em memória.
Arquivo
- O acesso às informações armazenadas em arquivos é feito por meio de chamadas ao sistema bem definidas:
- Read/Write
- Open/Close
- Get/Set (Metadados)
- Seek
- ...

Diretórios
- A maior parte dos sistemas de arquivos armazena os metadados em arquivos especiais chamados de diretórios
- Os diretórios são organizados hierarquicamente, fornecendo uma árvore no qual os elementos no interior da árvore são diretórios e os elementos nas folhas podem ser arquivos ou diretórios
Diretórios

As letras indicam os donos dos diretórios e arquivos
Diretórios
- A junção de nomes de diretórios até chegar a um determinado arquivo nessa árvore define um caminho para se chegar até o arquivo partindo de algum diretório.
- Quando o caminho começa do diretório raiz, ele é dito absoluto.
- Quando o caminho começa de um diretório diferente do raiz, ele é dito relativo .
Diretórios
Nome dos caminhos

Árvore de diretórios UNIX
Esquema dos Sistemas de Arquivos
- MBR – setor 0 do disco que tem no final uma tabela indicando as partições do disco, onde começam e terminam e qual está ativa.
- Quando o computador é iniciado, a BIOS executa o programa no MBR.
- Ele localiza a partição ativa e executa o bloco de inicialização dela que carrega o SO contido na partição.
Esquema dos Sistemas de Arquivos

Implementação de Arquivos
- Controle de quais blocos são de determinado arquivo.
- Algumas formas:
- Alocação contígua;
- Alocação por lista encadeada;
- Alocação por lista encadeada usando uma tabela na memória;
- I-nodes;
Alocação contígua
- Armazena arquivo em blocos sequenciais no disco
- Vantagens:
-
Localização do arquivo através do endereço do primeiro bloco;
Acesso simples e eficiente, só necessitando um seek.
-
Localização do arquivo através do endereço do primeiro bloco;
-
Desvantagens:
- Fragmentação externa do disco.
- Usada em CDs-ROM e DVDs.
Alocação contígua

Alocação contígua do espaço em disco para 7 arquivos
Estado do disco depois dos arquivos D e F terem sido removidos
Alocação por lista encadeada
- Conjunto de blocos ligados.
- Cada bloco possui ponteiro para bloco seguinte do arquivo.
- Vantagem:
- Não há fragmentação externa, já que os blocos não precisam estar juntos.
- Desvantagem:
- Acesso aleatório muito lento, pois para buscar o bloco n, deve-se ler os n-1 primeiros blocos antes
- Desperdício de espaço no bloco com o ponteiro
Alocação por lista encadeada

Armazenamento de um arquivo como uma lista encadeada de blocos de disco.
Alocação por lista encadeada com tabela na memória
- FAT – tabela de alocação de arquivos
- As palavras do ponteiro são colocadas em uma entrada na tabela
- Vantagens:
- Todo o bloco é utilizado para dados
- Ainda se segue o encadeamento na busca, mas como é na memória, é mais rápido
- Desvantagens:
- A tabela inteira deve estar o tempo todo na memória
- Não funciona para discos grandes, já que a tabela seria enorme e gastaria muita memória
Alocação por lista encadeada com tabela na memória

Alocação por lista encadeada com tabela na memória
Esquema usado pelo MS-DOS, Win95 e Win98
I-nodes
- A cada arquivo um i-node é associado
- I-node contém os atributos e endereços em disco dos blocos do arquivo
- Vantagem:
- I-node só está na memória se o arquivo estiver aberto, logo, menos uso de memória.
- Desvantagem:
- Se o i-node tiver tamanho fixo para endereços no disco, o que ocorre se o arquivo crescer além do limite?
Solução: usar o último bloco do disco contendo mais endereços do próprio disco e a última entrada do i-node seria indicação para esse bloco.
I-nodes

Usados por sistemas baseados no UNIX
Sistemas de Arquivos Compartilhados

- Se os diretórios tiverem os endereços de disco do arquivo, deve haver uma cópia desses endereços nos diretórios que não são donos, mas estão usando o arquivo.
- Problema: se há mudanças nos endereços de um, os outros não vão vê-las.
Sistemas de Arquivos Compartilhados
- Soluções:
- Colocar os endereços de disco do arquivo em uma estrutura associada ao próprio arquivo e os diretórios só apontam para essa estrutura;
- Como o Unix faz com os i-nodes;
- Usar ligação simbólica – apenas um arquivo do tipo LINK é criado no diretório de quem quer “ver também” o arquivo;
- O link só possui o caminho para o arquivo.
- Quando o SO vai abrir esse arquivo, vê que é um link e abre realmente o arquivo que o caminho no link indica.
Sistemas de Arquivos Compartilhados
- Problema com a primeira solução
- O dono continua sendo C;
- Se, ao C apagar o arquivo, também limpar o i-node, B terá uma entrada para i-node inválido em seu diretório;
- Solução: só remove a entrada no diretório de C, mas arquivo e i-node ficam intactos.

Sistemas de Arquivos Compartilhados
- Com ligação simbólica o problema anterior não ocorre.
- Já que só quem realmente tem informação no diretório para o arquivo é o dono.
- Se ele apagar o arquivo, ele é definitivamente removido.
- Problemas com ligações simbólicas.
- Sobrecarga na busca do i-node depois de lido o link.
- Sobrecarga na criação de i-node e bloco de disco extras para armazenar o caminho.
- Grande vantagem.
- Pode endereçar arquivos em qualquer máquina usando o endereço de rede.
Cache de Bloco
- lSO separa uma parte da memória para fazer cache de blocos de arquivos.
- Quando um bloco vai ser usado, é logo procurado na cache.
- Se estiver lá, ótimo, já evita o atraso de acesso ao disco.
- Se não estiver, ele é buscado no disco e trazido para a cache.
- A cache é atualizada usando um dos algoritmos de substituição já vistos.
- FIFO, Segunda Chance ou LRU.
Cache de Bloco
-
Só que se um bloco passa muito tempo em cache e há um problema com o sistema, perdem-se várias mudanças feitas no bloco.
-
Soluções:
-
SO usa uma rotina que periodicamente atualiza em disco os blocos modificados.
-
Ou sempre que um bloco é modificado, já é atualizado em disco.
-
A solução 1 é mais eficiente, mas a probabilidade de perda de dados é maior.
-
A solução 2 é menos eficiente, mas a perda é mais rara
A solução 1 é mais usada.
-
-
Leitura antecipada de Bloco
-
Tentar transferir blocos para a cache antes que sejam necessários, assim, quando o forem, eles já estarão na cache ou a caminho.
-
Funciona bem para arquivos tendo acesso sequencial.
- Já que realmente se sabe que bloco vai ser necessário depois.
- Piora o desempenho pra arquivos com acesso aleatório.
-
gasta banda de disco com blocos que não serão utilizados naquele momento.
-
Leitura antecipada de Bloco
-
Solução
-
Um bit associado a cada arquivo diz se ele está sendo lido sequencialmente (1) ou aleatoriamente (0).
-
Todos começam com 1, se houver um seek (posicionamento), vira 0 e se começar a ser lido de modo sequencial de novo, volta para 1.
-
Daí, o sistema de arquivos verifica o bit e decide se vai ler blocos antecipadamente ou não.
-
Exercício de Fixação
- Como os diretórios são organizados?
- A junção de nomes de diretórios até chegar a um determinado arquivo nessa árvore define um tipo de caminho para se chegar até o arquivo partindo de algum diretório, quais são eles? Explique
Exercício de Fixação
-
Explique as seguintes formas de implementar arquivos, citando as vantagens e desvantagens de cada uma:
a. Alocação contígua
b. Alocação por lista encadeada
c. Alocação por lista encadeada usando uma tabela na memória
d. I-nodes
Exercício de Fixação
-
Explique as soluções para compartilhamento de arquivos e seus problemas.
Referências
-
TANENBAUM, A. S.; WOODHULL, A. S.: Sistemas Operacionais, Projeto e Implementação BOOKMAN COMPANHIA ED., 3ª Edição – 2008
-
MACHADO Francis Beranger; MAIA Luiz Paulo Arquitetura de Sistemas Operacionais, 4ª edição, LTC, 2007
-
SILBERSCHATZ, Abraham; GALVIN, Peter Baer; GAGNE, Greg Fundamentos de Sistemas Operacionais LTC, 2010
Sistemas de Arquivos - UERN
By Marianne Diniz
Sistemas de Arquivos - UERN
- 1,781