Sistemas Operacionais - Virtual File System

Preview:

DESCRIPTION

Sistemas Operacionais - Virtual File System

Citation preview

Virtual File System

Alain André e Leo Ribeiro

Make the common case fast!

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.

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.

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

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.

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

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.

Como funciona?

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.

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.

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

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

Como funciona?

FIM

Recommended