1 / 55

Capítulo 11: Implementação do sistema de arquivos

Capítulo 11: Implementação do sistema de arquivos. Capítulo 11: Implementação do sistema de arquivos. Estrutura do sistema de arquivos Implementação do sistema de arquivos Implementação de diretório Métodos de alocação Gerenciamento do espaço livre Eficiência e desempenho Recuperação

acacia
Download Presentation

Capítulo 11: Implementação do sistema de arquivos

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Capítulo 11: Implementação do sistema de arquivos

  2. Capítulo 11: Implementação do sistema de arquivos • Estrutura do sistema de arquivos • Implementação do sistema de arquivos • Implementação de diretório • Métodos de alocação • Gerenciamento do espaço livre • Eficiência e desempenho • Recuperação • Sistemas de arquivo estruturados em log • NFS • Exemplo: Sistema de arquivos WAFL

  3. Objetivos • Descrever os detalhes da implementação de sistemas de arquivos e estruturas de diretório locais • Descrever a implementação de sistemas de arquivo remotos • Discutir algoritmos e opções de a alocação em bloco e bloco livre

  4. Estrutura do sistema de arquivos • Estrutura de arquivo • Unidade de armazenamento lógico • Coleta de informações relacionadas • Sistema de arquivos reside no armazenamento secundário (discos) • Sistema de arquivos organizado em camadas • Bloco de controle de arquivo – estrutura de armazenamento consistindo em informações sobre um arquivo

  5. Sistema de arquivos em camadas

  6. Um bloco de controle de arquivo típico

  7. Estruturas de sistema de arquivos na memória • A figura a seguir ilustra as estruturas necessárias do sistema de arquivos fornecidas pelos sistemas operacionais. • Figura 12.3(a) refere-se à abertura de um arquivo. • Figura 12.3(b) refere-se à leitura de um arquivo.

  8. Estruturas de sistema de arquivos na memória

  9. Sistemas de arquivo virtuais • Virtual File Systems (VFS) oferecem um modo orientado a objeto para implementar sistemas de arquivos. • VFS permite que a mesma interface de chamada do sistema (a API) seja usada para diferentes tipos de sistemas de arquivos. • A API é para a interface VFS, e não qualquer tipo específico de sistema de arquivos.

  10. Visão esquemática do Virtual File System

  11. Implementação do diretório • Lista linear dos nomes com ponteiro para os blocos de dados. • simples de programar • demorado para executar • Tabela de hash –lista linear com estrutura de dados em hash. • diminui tempo de busca de diretório • colisões – situações onde dois nomes de arquivos referem-se ao mesmo local • tamanho fixo

  12. Métodos de alocação • Um método de alocação refere-se a como os blocos de disco são alocados para arquivos: • Alocação contígua • Alocação vinculada • Alocação indexada

  13. Alocação contígua • Cada arquivo ocupa um conjunto de blocos contíguos no disco • Simples – requer somente local inicial (# bloco) e tamanho (número de blocos) • Acesso aleatório • Desperdício de espaço (problema de alocação dinâmica de armazenamento ) • Arquivos não podem crescer

  14. Alocação contígua • Mapeamento de lógico para físico Q LA/512 R • Bloco a ser acessado = ! + endereço inicial • Deslocamento no bloco = R

  15. Alocação contígua de espaço em disco

  16. Sistemas baseados em extensão • Muitos sistemas de arquivos mais novos (p.e., Veritas File System) usam um esquema de alocação contígua modificado • Sistemas de arquivos baseados em extensão alocam blocos de disco em extensões • Uma extensão é um bloco contíguo de discos • Extensões são alocadas para alocação de arquivo • Um arquivo consiste em uma ou mais extensões.

  17. ponteiro bloco = Alocação vinculada • Cada arquivo é uma lista vinculada de blocos de disco: blocos podem estar espalhados por todo o disco

  18. Alocação vinculada (cont.) • Simples – só precisa do endereço inicial • Sistema de gerenciamento do espaço livre– sem desperdício de espaço • Sem acesso aleatório • Mapeamento Q LA/511 R Bloco a ser acessado é o Q° bloco na cadeia vinculada de blocos representando o arquivo. Deslocamento no bloco = R + 1 Tabela de alocação de arquivos (FAT) – alocação de espaço em disco usada pelo MS-DOS e OS/2.

  19. Alocação vinculada

  20. Tabela de alocação de arquivos

  21. Alocação indexada • Reúne todos os ponteiros no bloco de índice. • Visão lógica. Tabela de índice

  22. Exemplo de alocação indexada

  23. Alocação indexada (cont.) • Precisa tabela de índice • Acesso aleatório • Acesso dinâmico sem fragmentação externa, mas tem overhead de bloco de índice. • Mapeamento de lógico para físico em um arquivo de tamanho máximo de 256K words e tamanho de bloco de 512 words. Só precisamos de 1 bloco para tabela de índice. Q LA/512 R Q = deslocamento na tabela de índice R = deslocamento no bloco

  24. Alocação indexada – mapeamento (cont.) • Mapeamento de lógico a físico em um arquivo de tamanho não limitado (tamanho de bloco de 512 words). • Esquema vinculado – Vincula blocos da tabela de índice (sem limite no tamanho). Q1 LA / (512 x 511) R1 Q1= bloco da tabela de índice R1é usado da seguinte forma: Q2 R1 / 512 R2 Q2 = deslocamento para bloco da tabela de índice R2 = deslocamento para bloco do arquivo

  25. Alocação indexada – mapeamento (cont.) • Índice de dois níveis (tamanho de arquivo máximo é 5123) Q1 LA / (512 x 512) R1 Q1 = deslocamento para índice externo R1 é usado da seguinte forma: Q2 R1 / 512 R2 Q2 = deslocamento para bloco da tabela de índice R2 = deslocamento para bloco do arquivo

  26. Alocação indexada – mapeamento (cont.)  índiceexterno arquivo tabela de índice

  27. Esquema combinado: UNIX (4K bytes por bloco)

  28. Gerenciamento de espaço livre • Vetor de bits (n blocos) 0 1 2 n-1 … 0  bloco[i] livre 1  bloco[i] ocupado bit[i] =  Cálculo do número de bloco (número de bits por word) * (número de words de valor 0) + deslocamento do primeiro bit 1

  29. Gerenciamento de espaço livre (cont.) • Mapa de bits requer espaço extra • Exemplo: tamanho do bloco = 212 bytes tamanho do disco = 230 bytes (1 gigabyte) n = 230/212 = 218 bits (ou 32K bytes) • Fácil de obter arquivos contíguos • Lista vinculada (lista livre) • Não pode obter espaço contíguo facilmente • Sem desperdício de espaço • Agrupamento • Contagem

  30. Gerenciamento de espaço livre (cont.) • Precisa proteger: • Ponteiro para lista livre • Mapa de bits • Deve ser mantido em disco • Cópias na memória e disco podem diferir • Não pode permitir que bloco[i] tenha situação onde bit[i] = 1 na memória e bit[i] = 0 em disco • Solução: • Defina bit[i] = 1 no disco • Aloque bloco[i] • Defina bit[i] = 1 na memória

  31. Implementação de diretório • Lista linear dos nomes de arquivo com ponteiro para blocos de dados • simples de programar • demorado para executar • Tabela de hash – lista linear com estrutura de dados da tabela de hash • diminui tempo de busca de diretório • colisões – situações onde dois nomes de arquivo têm hash para o mesmo local • tamanho fixo

  32. Lista vinculada de espaço livre em disco

  33. Eficiência e desempenho • Eficiência dependente de: • alocação de disco e algoritmos de diretório • tipos de dados mantidos na entrada de diretório do arquivo • Desempenho • cache de disco – seção separada da memória principal para blocos usados freqüentemente • free-behind e read-ahead – técnicas para otimizar acesso seqüencial • melhora desempenho do PC dedicando seção da memória como disco virtual, ou disco de RAM

  34. Cache de página • Um cache de página guarda páginas ao invés de blocos de disco, usando técnicas de memória virtual • E/S mapeada na memória usa um cache de página • E/S de rotina pelo sistema de arquivos usa o cache de buffer • Isso leva à figura a seguir

  35. E/S sem um cache de buffer unificado

  36. Cache de buffer unificado • Um cache de buffer unificado usa o mesmo cache de página para guardar páginas mapeadas na memória e E/S normal do sistema de arquivos

  37. E/S usando um cache de buffer unificado

  38. Recuperação • Verificação de consistência – compara dados na estrutura de diretórios com blocos de dados no disco, e tenta consertar inconsistências • Usa programas do sistema para o backup de dados do disco para outro dispositivo de armazenamento (disquete, fita magnética, outro meio magnético ou óptico) • Recupera arquivo ou disco perdido, restaurando dados do backup

  39. Sistemas de arquivos estruturados em log • Sistemas de arquivos estruturados em log (ou journaling) registram cada atualização no sistema de arquivos como uma transação • Todas as transações são gravadas em um log • Uma transação é considerada confirmada depois de gravada no log • Porém, o sistema de arquivos pode ainda não estar atualizado • As transações no log são gravada assincronamente no sistema de arquivos • Quando o sistema de arquivos é modificado, a transação é removida do log • Se o sistema de arquivos falhar, todas as transações restantes no log ainda precisam ser realizadas

  40. O Network File System (NFS) da Sun • Uma implementação e uma especificação de um sistema de softeware para acessar arquivos remotos pelas LANs (ou WANs) • A implementação faz parte dos sistemas operacionais Solaris e SunOS rodando em estações de trabalho Sun usando um protocolo de datagrama não confiável (protocolo UDP/IP e Ethernet)

  41. NFS (cont.) • Estações de trabalho interconectadas vistas como um conjunto de máquinas independentes com sistemas de arquivos independentes, permitindo o compartilhando entre esses sistemas de arquivos de modo transparente • Um diretório remoto é montado sobre um diretório do sistema de arquivos local • O diretório montado se parece com uma sub-árvore integral do sistema de arquivos local, substituindo a sub-árvore descendo do diretório local • Especificação do diretório remoto para a operação mount não é transparente; o nome de host do diretório remoto precisa ser fornecido • Arquivos no diretório remoto podem então ser acessados de modo transparente • Sujeito a verificação de direitos de acesso, potencialmente qualquer sistema de arquivos (ou diretório dentro de um sistema de arquivos) pode ser montado remotamente em cima de qualquer diretório local

  42. NFS (cont.) • NFS foi criado para operar em ambiente heterogêneo de diferentes máquinas, sistemas operacionais e arquiteturas de rede; especificações NFS independentes desses meios • Essa independência é alcançada por meio dos primitivos RPC em cima de um protocolo External Data Representation (XDR) usado entre duas interfaces independentes de implementação • A especificação NFS distingue entre os serviços fornecidos por um mecanismo de montagem e os serviços reais de acesso a arquivo remoto

  43. Três sistemas de arquivo independentes

  44. Montagem no NFS Montagens em cascata Montagens

  45. Protocolo de montagem do NFS • Estabelece conexão lógica inicial entre servidor e cliente • Operação mount inclui nome do diretório remoto a ser montado e nome da máquina servidora que o armazena • Requisição de mount é mapeada na RPC correspondente e encaminhada para servidor de mount executando na máquina servidora • Lista de exportação – especifica sistemas de arquivos locais que o servidor exporta para montagem, junto com os nomes das máquinas que têm permissão para montá-los • Seguindo uma requisição de mount de acordo com sua lista de exportação, o servidor retorna um handle de arquivo – uma chave para outros acessos • Handle de arquivo – um identificador do sistema de arquivos e um número de inode para identificar o diretório montado dentro do sistema de arquivo exportado • A operação mount muda apenas a visão do usuário e não afeta o lado do servidor

  46. Protocolo NFS • Oferece um conjunto de chamadas de procedimento remoto para operações de arquivo remoto. Os procedimentos admitem as seguintes operações: • procurar um arquivo dentro de um diretório • ler um conjunto de entradas de diretório • manipular links e diretórios • acessar atributos do arquivo • ler e gravar arquivos • Servidores NFS são sem estado; cada requisição precisa fornecer um conjunto completo de argumentos(NFS V4 está aparecendo agora – muito diferente, com estado) • Dados modificados precisam ser confirmados no disco do servidor antes que resultados sejam retornados ao cliente (perde vantagens do caching) • O protocolo NFS não oferece mecanismos de controle de concorrência

  47. Três principais camadas da arquitetura NFS • Interface de sistema de arquivos do UNIX (baseada nas chamadas open, read, write e close, e descritores de arquivo) • Camada do Virtual File System (VFS) – distingue arquivos locais dos remotos, e arquivos locais são diferenciados também de acordo com seus tipos do sistema de arquivos • O VFS ativa operações específicas ao sistema de arquivos para lidar com requisições locais, de acordo com seus tipos • Chama as procedures do protocolo NFS para requisições remotas • Camada de serviço do NFS – camada inferior da arquitetura • Implementa o protocolo NFS

  48. Visão esquemática da arquitetura do NFS

  49. Tradução de nome de caminho do NFS • Realizada dividindo-se o caminho em nomes componentes e realizando-se uma chamada de pesquisa do NFS separada para cada par de nome de componente e vnode de diretório • Para tornar a pesquisa mais rápida, um cache de pesquisa do nome de diretório no cliente mantém os vnodes para nomes de diretório remotos

  50. Operações remotas do NFS • Correspondência quase um-para-um entre chamadas de sistema regulares do UNIX e as RPCs do protocolo NFS (exceto abrir e fechar arquivos) • NFS adere ao paradigma de serviço remoto, mas emprega técnicas de buffering e caching por questão de desempenho • Cache de blocos de arquivo – quando um arquivo é aberto, o kernel verifica com o servidor remoto se deve apanhar ou revalidar os atributos em cache • Blocos de arquivo em cache são usados apenas se os atributos em cache correspondentes estiverem atualizados • Cache de atributo de arquivo – o cache de atributo é atualizado sempre que novos atributos chegam do servidor • Clientes não liberam blocos de escrita adiada até que o servidor confirme que os dados forma gravados em disco

More Related