O documento discute a interface do sistema de arquivos, incluindo operações com arquivos, abertura e bloqueio de arquivos, métodos de acesso, estruturas de diretórios, compartilhamento de arquivos e proteção.
Gerência de Armazenamento: Interface do Sistema de Arquivos
1. Sistemas Operacionais I
Gerência de Armazenamento: Interface 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
2. Objetivos
Explicar a função do sistema de arquivos
Descrever a interface dos sistemas de
arquivos
Discutir decisões de projeto de sistemas de
arquivos, incluindo métodos de acesso,
compartilhamento, bloqueio e estruturas de
diretórios
Explorar o conceito de proteção em sistemas
de arquivos
3. O conceito de arquivo
Espaço de endereçamento lógico contínuo
Tipos:
Dados
número
caracteres
binário
Programas
4. Estrutura de um arquivo
Sem estrutura: - sequência de palavras, bytes
Estrutura de registro simples
Linhas
Tamanho fixo
Tamanho variável
Estruturas complexas
Quem decide:
Sistemas operacional
Programa
5. Atributos de um arquivo
Nome – única informação mantida em formato legível
Identificador – chave numérica única que identifica
um arquivo em todo o sistema de arquivos
Tipo – necessário para sistemas que suportam
diferentes tipos de arquivos
Localização – ponteiro para a localização do arquivo
no dispositivo de armazenamento
Tamanho – tamanho do arquivo em bytes
Proteção – controla quem pode ler, escrever ou
executar um arquivo
Hora, data e identificação do usuário – dados
para proteção, segurança e monitoramento do uso
6. Operações com arquivos
Criação
Escrita
Leitura
Reposicionamento
Remoção
Truncagem
Open(Fi) – procura o arquivo Fi na estrutura de
diretórios e move o conteúdo da entrada para a
memória
Close (Fi) – move o conteúdo da entrada de Fi da
memória para a estrutura de diretórios no disco
7. Abrindo arquivos
Varias informações são necessárias para lidar
com arquivos abertos
Ponteiro de arquivo: aponta para a última posição
lida/escrita pelo processo que abriu o arquivo
Contador de aberturas: conta quantas vezes um
arquivo foi aberto – permite a remoção de dados da
tabela de arquivos abertos quando o último processo
fechar o arquivo
Localização do arquivo no disco: cache das
informações para acesso ao arquivo
Permissões de acesso: permissões de acesso ao
arquivo pelo processo
8. Bloqueio de arquivos abertos
Fornecido pelo sistema de arquivos de alguns
sistemas operacionais
Modera o acesso aos arquivos
Obrigatório ou Recomendado:
Obrigatório – o acesso é negado dependendo
do bloqueio
Recomendado – os processos podem consultar
o estado de um bloqueio e decidir o que fazer
9. Métodos de acesso
Acesso sequêncial
read next
write next
reset
Acesso direto
read n
write n
position to n
read next
write next
13. Estrutura de disco
Discos podem ser subdivididos em partições
Discos ou partições podem ser protegidos de falhas por um
RAID
Discos e partições podem ser utilizadas tanto em modo raw –
sem um sistema de arquivos, quanto formatados com um
sistema de arquivos
A entidade que contem um sistema de arquivos é conhecida
como volume
Cada volume mantem informações sobre o sistema de
arquivos em um diretório de dispositivos ou tabela de
conteúdo de volumes
Assim como existem sistemas de arquivo de propósito geral,
existem vários sistemas de arquivos de propósito específico,
frequentemente convivendo em um mesmo sistema
operacional ou computador
15. Operações em diretórios
Localizar um arquivo
Criar um arquivo
Remover um arquivo
Listar o conteúdo de um diretório
Renomear um arquivo
Percorrer o sistema de arquivos
22. Montagem de sistemas de
arquivos
Um sistema de arquivos precisa ser montado
antes de ser acessado
23. Compartilhamento de arquivos
É desejável poder compartilhar arquivos em
sistemas com múltiplos usuários
Esse compartilhamento pode ser obtido por
meio de um esquema de proteção
Em sistema distribuídos os arquivos podem
ser compartilhados através de uma rede
24. Compartilhamento de arquivos:
múltiplos usuários
Os usuários possuem identificadores,
permitindo que sejam definidas permissões de
acesso por usuário
Identificadores de grupo permitem que sejam
definidas permissões de acesso para grupos
de usuários
25. Compartilhamento de arquivos:
sistemas de arquivos remotos
Permite acesso ao sistema de arquivos através
da rede
Manualmente, através de programas como o FTP
Automaticamente e de forma transparente utilizando
sistemas de arquivos distribuídos
O modelo cliente-servidor permite que clientes
montem sistemas de arquivos remotos
disponibilizados por servidores
Um servidor pode server múltiplos clientes
NFS é o protocolo cliente-servidor padrão do UNIX
CIFS é o protocolo padrão no Windows
Operações padrão do sistema de arquivos são
mapeadas em chamadas remotas
26. Compartilhamento de arquivos:
modelo de falhas
O uso de sistemas de arquivos remotos
implica em um novo modelo de falhas devido
a falhas na rede e nos servidores
A recuperação de uma falha pode envolver a
obtenção de informações de estado sobre
todas as requisições remotas
Protocolos stateless como o NFS incluem em
cada requisição toda a informação de estado,
facilitando a recuperação
27. Compartilhamento de arquivos:
semântica de consistência
A semântica de consistência especifica como
múltiplos usuários podem acessar
simultaneamente um arquivo compartilhado
Bastante semelhante aos algoritmos de sincronização
de processos
Geralmente menos complexo devido as latências de disco
e de rede
O sistema de arquivo do Unix implementa a seguinte
semântica:
Escreve imediatamente em um arquivo aberto visível por
outros usuários
Ponteiro de arquivo compartilhado para permitir que
múltiplos usuários possa ler e escrever de forma
concorrente
28. Proteção
O dono/criador do arquivo deve ser capaz de
controlar:
o que pode ser feito
por quem
Tipos de acesso
Leitura
Escrita
Execução
Acréscimo
Remoção
Listagem
29. Listas de acesso e de grupo
Modo de acesso: leitura, escrita e execução
Três classes de usuário
RWX
a) acesso de dono 7 ⇒ 1 1 1
RWX
b) acesso de grupo 6 ⇒ 1 1 0
RWX
c) acesso público 1 ⇒ 0 0 1
O gerente pode criar um grupo (nome único), digamos G, e adicionar usuários ao
grupo.
Para um artigo ou diretório em particular (digamos game), definir uma forma de
acesso apropriada.
owner group public
chmod 761 game
Adicionar um artigo ao grupo
chgrp G game