operating system concepts with java – 7 th edition, nov 15, 2006 silberschatz, galvin and gagne...

55
ating System Concepts with Java – 7 th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne ©2007 Capítulo 11: Implementação do sistema de arquivos

Upload: internet

Post on 18-Apr-2015

113 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne ©2007 Capítulo 11: Implementação do sistema de arquivos

Operating System Concepts with Java – 7th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne ©2007

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

Page 2: Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne ©2007 Capítulo 11: Implementação do sistema de arquivos

11.2 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

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

Page 3: Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne ©2007 Capítulo 11: Implementação do sistema de arquivos

11.3 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

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

Page 4: Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne ©2007 Capítulo 11: Implementação do sistema de arquivos

11.4 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

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

Page 5: Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne ©2007 Capítulo 11: Implementação do sistema de arquivos

11.5 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

Sistema de arquivos em camadas

Page 6: Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne ©2007 Capítulo 11: Implementação do sistema de arquivos

11.6 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

Um bloco de controle de arquivo típico

Page 7: Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne ©2007 Capítulo 11: Implementação do sistema de arquivos

11.7 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

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.

Page 8: Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne ©2007 Capítulo 11: Implementação do sistema de arquivos

11.8 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

Estruturas de sistema de arquivos na memória

Page 9: Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne ©2007 Capítulo 11: Implementação do sistema de arquivos

11.9 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

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.

Page 10: Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne ©2007 Capítulo 11: Implementação do sistema de arquivos

11.10 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

Visão esquemática do Virtual File System

Page 11: Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne ©2007 Capítulo 11: Implementação do sistema de arquivos

11.11 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

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

Page 12: Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne ©2007 Capítulo 11: Implementação do sistema de arquivos

11.12 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

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

Page 13: Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne ©2007 Capítulo 11: Implementação do sistema de arquivos

11.13 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

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

Page 14: Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne ©2007 Capítulo 11: Implementação do sistema de arquivos

11.14 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

Alocação contígua

Mapeamento de lógico para físico

LA/512

Q

R

Bloco a ser acessado = ! + endereço inicialDeslocamento no bloco = R

Page 15: Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne ©2007 Capítulo 11: Implementação do sistema de arquivos

11.15 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

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

Page 16: Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne ©2007 Capítulo 11: Implementação do sistema de arquivos

11.16 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

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.

Page 17: Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne ©2007 Capítulo 11: Implementação do sistema de arquivos

11.17 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

Alocação vinculada

Cada arquivo é uma lista vinculada de blocos de disco: blocos podem estar espalhados por todo o disco

ponteirobloco =

Page 18: Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne ©2007 Capítulo 11: Implementação do sistema de arquivos

11.18 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

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

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.

LA/511

Q

R

Page 19: Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne ©2007 Capítulo 11: Implementação do sistema de arquivos

11.19 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

Alocação vinculada

Page 20: Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne ©2007 Capítulo 11: Implementação do sistema de arquivos

11.20 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

Tabela de alocação de arquivos

Page 21: Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne ©2007 Capítulo 11: Implementação do sistema de arquivos

11.21 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

Alocação indexada

Reúne todos os ponteiros no bloco de índice. Visão lógica.

Tabela de índice

Page 22: Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne ©2007 Capítulo 11: Implementação do sistema de arquivos

11.22 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

Exemplo de alocação indexada

Page 23: Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne ©2007 Capítulo 11: Implementação do sistema de arquivos

11.23 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

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.

LA/512Q

R

Q = deslocamento na tabela de índiceR = deslocamento no bloco

Page 24: Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne ©2007 Capítulo 11: Implementação do sistema de arquivos

11.24 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

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

LA / (512 x 511)Q1

R1

Q1 = bloco da tabela de índiceR1 é usado da seguinte forma:

R1 / 512Q2

R2

Q2 = deslocamento para bloco da tabela de índiceR2 = deslocamento para bloco do arquivo

Page 25: Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne ©2007 Capítulo 11: Implementação do sistema de arquivos

11.25 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

Alocação indexada – mapeamento (cont.)

Índice de dois níveis (tamanho de arquivo máximo é 5123)

LA / (512 x 512)Q1

R1

Q1 = deslocamento para índice externoR1 é usado da seguinte forma:

R1 / 512Q2

R2

Q2 = deslocamento para bloco da tabela de índiceR2 = deslocamento para bloco do arquivo

Page 26: Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne ©2007 Capítulo 11: Implementação do sistema de arquivos

11.26 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

Alocação indexada – mapeamento (cont.)

índiceexterno

tabela de índice arquivo

Page 27: Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne ©2007 Capítulo 11: Implementação do sistema de arquivos

11.27 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

Esquema combinado: UNIX (4K bytes por bloco)

Page 28: Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne ©2007 Capítulo 11: Implementação do sistema de arquivos

11.28 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

Gerenciamento de espaço livre

Vetor de bits (n blocos)

0 1 2 n-1

bit[i] = 0 bloco[i] livre

1 bloco[i] ocupado

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

Page 29: Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne ©2007 Capítulo 11: Implementação do sistema de arquivos

11.29 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

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

Page 30: Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne ©2007 Capítulo 11: Implementação do sistema de arquivos

11.30 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

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

Page 31: Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne ©2007 Capítulo 11: Implementação do sistema de arquivos

11.31 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

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

Page 32: Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne ©2007 Capítulo 11: Implementação do sistema de arquivos

11.32 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

Lista vinculada de espaço livre em disco

Page 33: Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne ©2007 Capítulo 11: Implementação do sistema de arquivos

11.33 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

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

Page 34: Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne ©2007 Capítulo 11: Implementação do sistema de arquivos

11.34 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

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

Page 35: Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne ©2007 Capítulo 11: Implementação do sistema de arquivos

11.35 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

E/S sem um cache de buffer unificado

Page 36: Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne ©2007 Capítulo 11: Implementação do sistema de arquivos

11.36 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

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

Page 37: Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne ©2007 Capítulo 11: Implementação do sistema de arquivos

11.37 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

E/S usando um cache de buffer unificado

Page 38: Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne ©2007 Capítulo 11: Implementação do sistema de arquivos

11.38 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

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

Page 39: Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne ©2007 Capítulo 11: Implementação do sistema de arquivos

11.39 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

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

Page 40: Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne ©2007 Capítulo 11: Implementação do sistema de arquivos

11.40 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

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)

Page 41: Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne ©2007 Capítulo 11: Implementação do sistema de arquivos

11.41 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

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

Page 42: Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne ©2007 Capítulo 11: Implementação do sistema de arquivos

11.42 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

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

Page 43: Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne ©2007 Capítulo 11: Implementação do sistema de arquivos

11.43 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

Três sistemas de arquivo independentes

Page 44: Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne ©2007 Capítulo 11: Implementação do sistema de arquivos

11.44 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

Montagem no NFS

Montagens Montagens em cascata

Page 45: Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne ©2007 Capítulo 11: Implementação do sistema de arquivos

11.45 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

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

Page 46: Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne ©2007 Capítulo 11: Implementação do sistema de arquivos

11.46 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

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

Page 47: Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne ©2007 Capítulo 11: Implementação do sistema de arquivos

11.47 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

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

Page 48: Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne ©2007 Capítulo 11: Implementação do sistema de arquivos

11.48 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

Visão esquemática da arquitetura do NFS

Page 49: Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne ©2007 Capítulo 11: Implementação do sistema de arquivos

11.49 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

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

Page 50: Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne ©2007 Capítulo 11: Implementação do sistema de arquivos

11.50 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

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

Page 51: Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne ©2007 Capítulo 11: Implementação do sistema de arquivos

11.51 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

Exemple: Sistema de arquivos WAFL

Usando em Network Appliance “Filers” – appliances do sistema de arquivos distribuído

“Layout de arquivo para escrita em qualquer lugar” Atende NFS, CIFS, http, ftp E/S aleatória otimizada, escrita otimizada

NVRAM para caching de escrita Semelhante ao Berkeley Fast File System, com várias

modificações

Page 52: Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne ©2007 Capítulo 11: Implementação do sistema de arquivos

11.52 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

O layout de arquivo WAFL

Page 53: Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne ©2007 Capítulo 11: Implementação do sistema de arquivos

11.53 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

Snapshots no WAFL

Page 54: Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne ©2007 Capítulo 11: Implementação do sistema de arquivos

11.54 Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

Um bloco de controle de arquivo típico

Page 55: Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne ©2007 Capítulo 11: Implementação do sistema de arquivos

Operating System Concepts with Java – 7th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne ©2007

Final do Capítulo 11