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.

 

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.
  • 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