Sistemas Operacionais - Virtual File System

14
Virtual File System Alain André e Leo Ribeiro Make the common case fast!

description

Sistemas Operacionais - Virtual File System

Transcript of Sistemas Operacionais - Virtual File System

Page 1: Sistemas Operacionais - Virtual File System

Virtual File System

Alain André e Leo Ribeiro

Make the common case fast!

Page 2: Sistemas Operacionais - Virtual File System

O Que é VFS?

O VFS é uma camada de abstração entre a aplicação e as implementações do sistema de arquivos;

Desenvolvimento motivado pela Sun Microsystems (1986);

Para dar suporte a sistemas de arquivos remotos utilizando o NFS.

Page 3: Sistemas Operacionais - Virtual File System

Virtual File System

É uma camada de abstração em cima de um sistema de arquivos mais concreto.

Abstrai a parte comum aos diferentes sistemas de arquivos;

Qualquer sistema Unix-like moderno utiliza.

Page 4: Sistemas Operacionais - Virtual File System

VFS - Aplicações

O propósito de um VFS é permitir que as aplicações clientes tenham acesso a diversos tipos de sistemas de arquivos concretos de uma maneira uniforme.

Camada de software do núcleo que trata de todas as chamadas de sistema relacionadas a um sistema de arquivos Unix

Page 5: Sistemas Operacionais - Virtual File System

Vantagem

Prover uma interface genérica para diversos tipos de sistemas de arquivos;

VFS permite que chamadas de sistemas genéricas, tais como open( ) e read( ),possam ser executadas independentemente do sistema de arquivos usado ou do meio físico;

Para o VFS e para o resto do Núcleo os Sistemas de Arquivos parecem iguais.

Page 6: Sistemas Operacionais - Virtual File System

$ cp /floppy/TEST /tmp/test

/floppy é o mount point de um diskette MS-DOS e /tmp é um diretório Ext2 comum;

O programa cp não precisa saber os tipos de arquivo do /floppy/TEST e do /tmp/test

O cp interage com o VFS usando chamadas de sistema comuns conhecidas por qualquer um que já programou em Unix.

Page 7: Sistemas Operacionais - Virtual File System

Interface inferior

Consiste de algumas chamadas de funções que podem ser realizadas pelo VFS;

Para criar um system file que trabalhe com VFS, deve-se certificar que ele ofereça chamadas requeridas pelo VFS.

Page 8: Sistemas Operacionais - Virtual File System

Como funciona?

Page 9: Sistemas Operacionais - Virtual File System

Objeto Superbloco

Utilizado para armazenar informações sobre um sistema de arquivos específico;

Por exemplo, se um Objeto Superbloco se refere a um sistema de arquivos do tipo Ext2, o campo aponta para uma estrutura ext2_sb_info, a qual inclui a máscara de alocação no disco e outros dados irrelevantes para o modelo de arquivo comum do VFS.

Page 10: Sistemas Operacionais - Virtual File System

Objeto Inode

Um Objeto Inode possui toda informação necessária para que o Sistema de Arquivos possa manipular os arquivos e/ou diretórios.

Cada arquivo é representado por um inode no Sistema de Arquivos.

Page 11: Sistemas Operacionais - Virtual File System

Objeto Dentry

O VFS trata diretórios como arquivos;

Exemplo: /bin/vi, bin e vi são arquivos, ambos representados pelo objeto inode.

Para facilitar a realização de operações específicas sobre diretórios, o VFS usa o conceito de "entrada de diretório" (dentry).

No exemplo, /, bin e vi são objetos dentry;

O VFS instancia estes objetos "on the fly”.

Page 12: Sistemas Operacionais - Virtual File System

Objeto File

A representação dos arquivos abertos pelos processos é feita pelo File Object;

Um File Object descreve como um processo interage com o arquivo que foi aberto;

A informação mais relevante guardada em um file object é file pointer, que indica a posição no arquivo em que a próxima operação se iniciará.

Page 13: Sistemas Operacionais - Virtual File System

Como funciona?

Page 14: Sistemas Operacionais - Virtual File System

FIM