27
Sistemas Operacionais I Gerência de Armazenamento: Implementação do Sistema de Arquivos Prof. Alexandre Duarte : http://alexandrend.com Centro de Informática | Universidade Federal da Paraíba Estes slides são baseados no material que acompanha o livro Operating Systems Concepts de Silberschatz, Galvin and Gagne

Gerência de Armazenamento: Implementação do Sistema de Arquivos

Embed Size (px)

DESCRIPTION

Descrever os detalhes de implementação de um sistema de arquivos e de estruturas de diretórios locais Discutir alocação de blocos e de gerência de blocos livres

Citation preview

Page 1: Gerência de Armazenamento: Implementação do Sistema de Arquivos

Sistemas Operacionais I

Gerência de Armazenamento: Implementação do Sistema de Arquivos

Prof. Alexandre Duarte : http://alexandrend.comCentro de Informática | Universidade Federal da Paraíba

Estes slides são baseados no material que acompanha o livro Operating Systems Concepts de Silberschatz, Galvin and Gagne

Page 2: Gerência de Armazenamento: Implementação do Sistema de Arquivos

Objetivos

Descrever os detalhes de implementação de um sistema de arquivos e de estruturas de diretórios locais

Discutir alocação de blocos e de gerência de blocos livres

Page 3: Gerência de Armazenamento: Implementação do Sistema de Arquivos

Estrutura do Sistema de Arquivos Estrutura de arquivo

Unidade de armazenamento lógico Coleção de informações relacionadas

Sistema residente em armazenamento secundário

Organizados em camadas Bloco de controle de arquivos –

estrutura de armazenamento com todas as informações a respeito de um arquivo

Page 4: Gerência de Armazenamento: Implementação do Sistema de Arquivos

Sistema de arquivos em camada

Page 5: Gerência de Armazenamento: Implementação do Sistema de Arquivos

Exemplo de bloco de controle de arquivos

Page 6: Gerência de Armazenamento: Implementação do Sistema de Arquivos

Estrutura do sistema de arquivos em memória

Page 7: Gerência de Armazenamento: Implementação do Sistema de Arquivos

Sistemas de arquivos virtuais Sistemas de arquivo virtuais (VFS) fornecem

uma visão orientada a objetos para implementação de sistemas de arquivos

VFS permitem que a mesma interface de chamada de sistemas seja utilizada por diferentes tipos de sistemas de arquivos.

A API se comunica com o VFS ao invés de acessar diretamente o sistema de arquivos específico.

Page 8: Gerência de Armazenamento: Implementação do Sistema de Arquivos

Visão esquemática do sistema de arquivos virtual

Page 9: Gerência de Armazenamento: Implementação do Sistema de Arquivos

Implementação de Diretório

Lista linear de nomes de arquivos com ponteiros para blocos de dados. Fácil de programar Consome muito tempo de execução

Tabela Hash – lista linear com estrutura de hash Diminui o tempo de busca ao diretório

Requer tratamento de colisões Tamanho fixo

Page 10: Gerência de Armazenamento: Implementação do Sistema de Arquivos

Métodos de alocação

Um método de alocação se refere a forma como blocos livres são alocados para arquivos:

Alocação contígua

Alocação encadeada

Alocação indexada

Page 11: Gerência de Armazenamento: Implementação do Sistema de Arquivos

Alocação contígua

Cada arquivo ocupa um conjunto de blocos contíguos no disco

Vantagens Simplicidade – requer saber apenas o bloco inicial e

comprimento (número de blocos) Permite acesso aleatório Bom desempenho

Desvantagens Problemas com alocação de espaço Arquivos não podem crescer!

Quem usa VM/CMS da IBM

Page 12: Gerência de Armazenamento: Implementação do Sistema de Arquivos

Alocação contígua

Page 13: Gerência de Armazenamento: Implementação do Sistema de Arquivos

Sistemas baseadas em extensão Alguns sistemas de arquivos modernos

usam uma modificação do esquema de alocação contígua Sistemas de arquivos baseados em extensões

alocam blocos de disco em porções denominadas extensões

Uma extensão é uma porção contígua de blocos de disco Um arquivo consiste de uma ou mais extensões

Ainda é suscetível a problemas de fragmentação interna e externa!

Page 14: Gerência de Armazenamento: Implementação do Sistema de Arquivos

Alocação encadeada

Cada arquivo é uma lista encadeada de blocos

Vantagens Simplicidade – requer apenas o endereço inicial Gerência de espaço livre – não há fragmentação

externa Desvantagens

Não permite acesso aleatório Menor confiabilidade

Utilizado, com algumas variações, pelo File-allocation table (FAT) do MS-DOS

Page 15: Gerência de Armazenamento: Implementação do Sistema de Arquivos

Alocação encadeada

Page 16: Gerência de Armazenamento: Implementação do Sistema de Arquivos

File-Allocation Table (FAT)

Page 17: Gerência de Armazenamento: Implementação do Sistema de Arquivos

Alocação indexada

Mantém todos os ponteiros de um arquivo em um bloco de índice

Vantagens Permite acesso aleatório Acesso dinâmico sem fragmentação mas

com overhead do índice Desvantagens

Desperdício de espaço com arquivos com poucos blocos

Quem usa: Unix File System

Page 18: Gerência de Armazenamento: Implementação do Sistema de Arquivos

Alocação indexada

Page 19: Gerência de Armazenamento: Implementação do Sistema de Arquivos

Gerência de espaço livre

Mapa de bits (n blocos)

Facilita a obtenção de espaço livre contíguo Requer espaço adicional

Disco de 1TB com blocos de 4KB = 32 MB Disco de 1PB com blocos de 4KB = 32 GB

0 1 2 n-1

bit[i] = 0 bloco[i] livre

1 bloco[i] ocupado

Page 20: Gerência de Armazenamento: Implementação do Sistema de Arquivos

Gerência de espaço livre

Lista ligada (lista de livres) Mais difícil de conseguir espaço contiguo Diminui o desperdício de espaço

Variações Agrupamento: primeiro bloco livre possui

número de n blocos livres Contagem: lista de sequencias contiguas

de blocos livres

Page 21: Gerência de Armazenamento: Implementação do Sistema de Arquivos

Lista encadeada de blocos livres

Page 22: Gerência de Armazenamento: Implementação do Sistema de Arquivos

Eficiência e desempenho

Eficiência depende de: Algoritmos para alocação de disco e de

diretórios Exemplo: pré-alocação

Tipos de dados mantidos nas entradas de diretório

Desempenho Cache de buffer – seção separada de memória

para blocos usados frequentemente Cache de página – armazena dados de arquivos

utilizando técnicas de memória virtual free-behind and read-ahead – técnicas para otimizar

acesso sequencial

Page 23: Gerência de Armazenamento: Implementação do Sistema de Arquivos

Cache de páginas

Uma cache páginas armazena páginas ao invés de blocos de disco utilizando técnicas de memória virtual

Entrada/saída mapeadas em memória utiliza uma cache de páginas

Entrada/saída padrão pelo sistema de arquivos usa o cache de buffer de disco

Page 24: Gerência de Armazenamento: Implementação do Sistema de Arquivos

E/S sem cache unificada

Page 25: Gerência de Armazenamento: Implementação do Sistema de Arquivos

E/S com cache unificada

Page 26: Gerência de Armazenamento: Implementação do Sistema de Arquivos

Recuperação

Verificação de consistência – compara os dados na estrutura de diretórios com os dados nos blocos de disco e tenta corrigir inconsistências

Utilizar programas de sistema para fazer backup do disco em um outro dispositivo de armazenamento

Recuperar um arquivo pedido restaurando-o do backup

Page 27: Gerência de Armazenamento: Implementação do Sistema de Arquivos

Sistema de arquivos estruturado em log Sistema de arquivos estruturado em log

consideram todas as atualizações de arquivos como transações

Todas as transações são gravadas em um log O commit de uma transação ocorre quando ela é gravada

no log No entanto, após o commit o arquivo pode ainda não ter

sido atualizado As transações no log são executadas de forma

assíncrona no sistema de arquivos Quando o arquivo é modificado a transação é removida do

log Se o sistema de arquivos trava, todas as transações

no log deverão ser executadas após a recuperação