Captulo 10 Interface de Sistemas de Arquivos Operating

  • Slides: 44
Download presentation
Capítulo 10: Interface de Sistemas de Arquivos Operating System Concepts – 8 th Edition

Capítulo 10: Interface de Sistemas de Arquivos Operating System Concepts – 8 th Edition Silberschatz, Galvin and Gagne © 2009

Sobre a apresentação (About the slides) Os slides e figuras dessa apresentação foram criados

Sobre a apresentação (About the slides) Os slides e figuras dessa apresentação foram criados por Silberschatz, Galvin e Gagne em 2009. Esse apresentação foi modificada por Cristiano Costa (cac@unisinos. br). Basicamente, os slides originais foram traduzidos para o Português do Brasil. É possível acessar os slides originais em http: //www. os-book. com Essa versão pode ser obtida em http: //www. inf. unisinos. br/~cac The slides and figures in this presentation are copyright Silberschatz, Galvin and Gagne, 2009. This presentation has been modified by Cristiano Costa (cac@unisinos. br). Basically it was translated to Brazilian Portuguese. You can access the original slides at http: //www. os-book. com This version could be downloaded at http: //www. inf. unisinos. br/~cac Operating System Concepts – 8 th Edition 10. 2 Silberschatz, Galvin and Gagne © 2009

Capítulo 10: Interface de Sistemas de Arquivos n Conceito de Arquivo n Métodos de

Capítulo 10: Interface de Sistemas de Arquivos n Conceito de Arquivo n Métodos de Acesso n Estrutura de Diretórios n Montagem de Sistema de Arquivos n Compartilhamento de Arquivos n Proteção Operating System Concepts – 8 th Edition 10. 3 Silberschatz, Galvin and Gagne © 2009

Objetivos n Explicar a função de sistemas de arquivos n Descrever a interface para

Objetivos n Explicar a função de sistemas de arquivos n Descrever a interface para sistemas de arquivos n Discutir questões de projeto de sistemas de arquivos, incluindo métodos de acesso, compartilhamento de arquivos, travamento (lock) de arquivos e estruturas de diretórios n Explorar a proteção de sistemas de arquivos Operating System Concepts – 8 th Edition 10. 4 Silberschatz, Galvin and Gagne © 2009

Conceito de Arquivo n Espaço de endereçamento lógico contíguo n Tipos: l Dados 4

Conceito de Arquivo n Espaço de endereçamento lógico contíguo n Tipos: l Dados 4 numérico 4 caractere 4 binário l Programa Operating System Concepts – 8 th Edition 10. 5 Silberschatz, Galvin and Gagne © 2009

Estrutura de Arquivos n Nenhuma - seqüência de palavras, bytes n Estrutura de registro

Estrutura de Arquivos n Nenhuma - seqüência de palavras, bytes n Estrutura de registro simples Linhas l Tamanho fixo l Tamanho variável n Estruturas Complexas l Documentos formatados l Arquivo de carga relocável n Pode simular os dois últimos com o primeiro método inserindo caracteres especiais de controle. l n Quem decide: Sistema Operacional l Programa l Operating System Concepts – 8 th Edition 10. 6 Silberschatz, Galvin and Gagne © 2009

Atributos de Arquivos n Nome – única informação mantida em uma forma legível para

Atributos de Arquivos n Nome – única informação mantida em uma forma legível para o usuário. n Identificador – identificador único (número) do arquivo pelo sistema de arquivos n Tipo – necessária para sistemas que suportam diferentes tipos de arquivos. n Localização – ponteiro para a posição do arquivo no dispositivo. n Tamanho – tamanho atual do arquivo. n Proteção – controla quem pode ler, escrever e executar. n Hora, data, e identificação do usuário – dados para proteção, segurança e monitoração de uso. n Informações sobre os arquivos são mantidas nas estruturas de diretórios, as quais são armazenadas no disco. Operating System Concepts – 8 th Edition 10. 7 Silberschatz, Galvin and Gagne © 2009

Operações sobre Arquivos n Arquivo é um tipo de dados abstrato n Criar (create)

Operações sobre Arquivos n Arquivo é um tipo de dados abstrato n Criar (create) n Escrever (write) n Ler (read) n Reposicionamento de um arquivo (seek) n Excluir (delete) n Truncamento (truncate) n Abrir[Fi] (open[Fi]) – procura na estrutura de diretório do disco pela entrada Fi, e move o conteúdo da entrada para a memória. n Fechar[Fi] (close[Fi]) – move o conteúdo da entrada Fi na memória para a estrutura de diretório no disco. Operating System Concepts – 8 th Edition 10. 8 Silberschatz, Galvin and Gagne © 2009

Arquivos Abertos n Alguns dados são necessários para gerenciar arquivos abertos: l Ponteiro de

Arquivos Abertos n Alguns dados são necessários para gerenciar arquivos abertos: l Ponteiro de Arquivo: ponteiro para a última localização de leitura/escrita, por processo que tem um arquivo aberto l Contador de arquivos abertos: contador do número de vezes que um arquivo é aberto - para permitir a remoção dos da tabela de arquivos abertos quando o último processo fechar o arquivo l Localização no disco do arquivo: cache dos dados acessados l Direitos de acesso: informações de modo de acesso por processo Operating System Concepts – 8 th Edition 10. 9 Silberschatz, Galvin and Gagne © 2009

Travamento (Lock) de Arquivos Abertos n Fornecido por alguns sistemas operacionais e sistemas de

Travamento (Lock) de Arquivos Abertos n Fornecido por alguns sistemas operacionais e sistemas de arquivos n Media o acesso a um arquivo n Mandatário ou consultivo: l Mandatário – acesso é negado dependendo das travas mantidas e requeridas l Consultivo – processos podem buscar por status das travas e decidir o que fazer Operating System Concepts – 8 th Edition 10. 10 Silberschatz, Galvin and Gagne © 2009

Exemplo de Travamento de Arquivo – Java API import java. io. *; import java.

Exemplo de Travamento de Arquivo – Java API import java. io. *; import java. nio. channels. *; public class Locking. Example { public static final boolean EXCLUSIVE = false; public static final boolean SHARED = true; public static void main(String arsg[]) throws IOException { File. Lock shared. Lock = null; File. Lock exclusive. Lock = null; try { Random. Access. File raf = new Random. Access. File("file. txt", "rw"); // get the channel for the file File. Channel ch = raf. get. Channel(); // this locks the first half of the file - exclusive. Lock = ch. lock(0, raf. length()/2, EXCLUSIVE); /** Now modify the data. . . */ // release the lock exclusive. Lock. release(); Operating System Concepts – 8 th Edition 10. 11 Silberschatz, Galvin and Gagne © 2009

Exemplo de Travamento de Arquivo – Java API // this locks the second half

Exemplo de Travamento de Arquivo – Java API // this locks the second half of the file - shared. Lock = ch. lock(raf. length()/2+1, raf. length(), SHARED); /** Now read the data. . . */ // release the lock exclusive. Lock. release(); } catch (java. io. IOException ioe) { System. err. println(ioe); }finally { if (exclusive. Lock != null) exclusive. Lock. release(); if (shared. Lock != null) shared. Lock. release(); } } } Operating System Concepts – 8 th Edition 10. 12 Silberschatz, Galvin and Gagne © 2009

Tipos de Arquivos – Nome, Extensão Operating System Concepts – 8 th Edition 10.

Tipos de Arquivos – Nome, Extensão Operating System Concepts – 8 th Edition 10. 13 Silberschatz, Galvin and Gagne © 2009

Métodos de Acesso n Acesso Sequencial read next write next reset no read after

Métodos de Acesso n Acesso Sequencial read next write next reset no read after last write (rewrite) n Acesso Direto read n write n position to n read next write next rewrite n n = número do bloco relativo Operating System Concepts – 8 th Edition 10. 14 Silberschatz, Galvin and Gagne © 2009

Acesso Sequencial a Arquivos Operating System Concepts – 8 th Edition 10. 15 Silberschatz,

Acesso Sequencial a Arquivos Operating System Concepts – 8 th Edition 10. 15 Silberschatz, Galvin and Gagne © 2009

Simulação de Acesso Sequencial em Acesso Direto Operating System Concepts – 8 th Edition

Simulação de Acesso Sequencial em Acesso Direto Operating System Concepts – 8 th Edition 10. 16 Silberschatz, Galvin and Gagne © 2009

Exemplo de Índice e Arquivos Relativos Operating System Concepts – 8 th Edition 10.

Exemplo de Índice e Arquivos Relativos Operating System Concepts – 8 th Edition 10. 17 Silberschatz, Galvin and Gagne © 2009

Estrutura de Diretório n Uma coleção de nodos contendo informações sobre todos arquivos. Diretório

Estrutura de Diretório n Uma coleção de nodos contendo informações sobre todos arquivos. Diretório Arquivos F 1 F 2 F 3 F 4 Fn Tanto a estrutura de diretórios quando de arquivos residem no disco Cópias de segurança dessas duas estruturas são mantidas em fitas Operating System Concepts – 8 th Edition 10. 18 Silberschatz, Galvin and Gagne © 2009

Estrutura de Disco n Disco pode ser dividido em partitições n Discos ou partições

Estrutura de Disco n Disco pode ser dividido em partitições n Discos ou partições podem ser protegidas por RAID contra falhas n Disco ou partição pode ser usada raw – sem um sistemas de arquivo, ou formatada com um sistema de arquivo n Partições são conhecidas também como minidiscos ou slices n Entidade que contém um sistema de arquivos é conhecido como volume n Cada volume contendo um sistema de arquivos também mantém as informações deste em diretório do dispositivo ou índice do volume n Assim como sistemas de arquivos de propósito geral existem muitos sistemas de arquivos de propósito específico, frequentemente todos dentro do mesmo sistema operacional ou computador Operating System Concepts – 8 th Edition 10. 19 Silberschatz, Galvin and Gagne © 2009

Uma Organização típica de Sistemas de Arquivos Operating System Concepts – 8 th Edition

Uma Organização típica de Sistemas de Arquivos Operating System Concepts – 8 th Edition 10. 20 Silberschatz, Galvin and Gagne © 2009

Operações Realizadas em um Diretório n Procurar por um arquivo n Criar um Arquivo

Operações Realizadas em um Diretório n Procurar por um arquivo n Criar um Arquivo n Excluir um Arquivo n Listar um diretório n Alterar o nome de um arquivo n Percorrer o Sistema de Arquivos Operating System Concepts – 8 th Edition 10. 21 Silberschatz, Galvin and Gagne © 2009

Organizar o Diretório (Logicamente) para obter n Eficiência – localizar um arquivo rapidamente. n

Organizar o Diretório (Logicamente) para obter n Eficiência – localizar um arquivo rapidamente. n Nomeação – conveniência para usuários. l Dois usuários podem ter o mesmo nome para arquivos diferentes. l O mesmo arquivo pode ter vários nomes diferentes. n Agrupamento – agrupamento lógico de arquivos por propriedades (ex. : todos programas em Java, todos jogos, …) Operating System Concepts – 8 th Edition 10. 22 Silberschatz, Galvin and Gagne © 2009

Diretório de um Nível n Um único diretório para todos usuários Problema de nomeação

Diretório de um Nível n Um único diretório para todos usuários Problema de nomeação Problema de agrupamento Operating System Concepts – 8 th Edition 10. 23 Silberschatz, Galvin and Gagne © 2009

Diretório de dois Níveis n Diretórios separados para cada usuário • Caminho (Path name)

Diretório de dois Níveis n Diretórios separados para cada usuário • Caminho (Path name) • Pode ter o mesmo nome de arquivo para diferentes usuários • Procura eficiente • Sem capacidade de agrupamento Operating System Concepts – 8 th Edition 10. 24 Silberschatz, Galvin and Gagne © 2009

Diretório com Estrutura de Árvore Operating System Concepts – 8 th Edition 10. 25

Diretório com Estrutura de Árvore Operating System Concepts – 8 th Edition 10. 25 Silberschatz, Galvin and Gagne © 2009

Diretório com Estrutura de Árvore (Cont) n Procura eficiente n Capacidade de Agrupamento n

Diretório com Estrutura de Árvore (Cont) n Procura eficiente n Capacidade de Agrupamento n Diretório Corrente (diretório de trabalho) l cd /spell/mail/prog l type list Operating System Concepts – 8 th Edition 10. 26 Silberschatz, Galvin and Gagne © 2009

Diretório com Estrutura de Árvore (Cont) n Caminho absoluto ou relativo n Criação de

Diretório com Estrutura de Árvore (Cont) n Caminho absoluto ou relativo n Criação de arquivos novos é feita no diretório corrente. n Apagar um arquivo rm <file-name> n Criação de novos subdiretórios é feita no diretório corrente. mkdir <dir-name> Exemplo: se o diretório corrente é /spell/mail mkdir count mail prog copy prt exp count Apagar “mail” apaga toda a subárvore com a raiz “mail” Operating System Concepts – 8 th Edition 10. 27 Silberschatz, Galvin and Gagne © 2009

Diretórios com Estrutura de Grafo Acíclico n Possui subdiretórios e arquivos compartilhados Operating System

Diretórios com Estrutura de Grafo Acíclico n Possui subdiretórios e arquivos compartilhados Operating System Concepts – 8 th Edition 10. 28 Silberschatz, Galvin and Gagne © 2009

Diretórios com Grafo Acíclico (Cont. ) n Dois nomes diferentes (aliasing) n Se dict

Diretórios com Grafo Acíclico (Cont. ) n Dois nomes diferentes (aliasing) n Se dict apaga list ponteiro perigoso. Soluções: l Lista de referências a arquivos, então só podemos apagar todas as referências. Tamanho variável dos registros é um problema. l Lista de referências a arquivos, usando uma organização encadeada. l Contador do número de referências (Entry-hold-count). n Tipo de entrada de novo diretório l Link – outro nome (ponteiro) para um arquivo existente l Resolver o link – seguir o ponteiro para localizar o arquivo Operating System Concepts – 8 th Edition 10. 29 Silberschatz, Galvin and Gagne © 2009

Diretórios com Estrutura de Grafo Geral Operating System Concepts – 8 th Edition 10.

Diretórios com Estrutura de Grafo Geral Operating System Concepts – 8 th Edition 10. 30 Silberschatz, Galvin and Gagne © 2009

Diretórios com Grafo Geral (Cont. ) n Como garantir a não ocorrência de ciclos?

Diretórios com Grafo Geral (Cont. ) n Como garantir a não ocorrência de ciclos? l Permitir ligações para arquivos e não para subdiretórios. l Coletor de Lixo (Garbage collection). l Toda vez que uma nova ligação é adicionada usar um algoritmo de detecção de ciclo para determinar se é possível a ligação. Operating System Concepts – 8 th Edition 10. 31 Silberschatz, Galvin and Gagne © 2009

Montagem de Sistemas de Arquivos n Um sistema de arquivos deve ser montado (mount)

Montagem de Sistemas de Arquivos n Um sistema de arquivos deve ser montado (mount) antes de ser acessado n Um sistema de arquivos não montado (ex. Fig. 11 - 11(b)) é montado em um ponto de montagem (mount point) Operating System Concepts – 8 th Edition 10. 32 Silberschatz, Galvin and Gagne © 2009

(a) Existente (b) Partição não montada Operating System Concepts – 8 th Edition 10.

(a) Existente (b) Partição não montada Operating System Concepts – 8 th Edition 10. 33 Silberschatz, Galvin and Gagne © 2009

Ponto de Montagem Operating System Concepts – 8 th Edition 10. 34 Silberschatz, Galvin

Ponto de Montagem Operating System Concepts – 8 th Edition 10. 34 Silberschatz, Galvin and Gagne © 2009

Compartilhamento de Arquivos n Compartilhamento de arquivos em sistemas multi-usuários é desejável n Compartilhamento

Compartilhamento de Arquivos n Compartilhamento de arquivos em sistemas multi-usuários é desejável n Compartilhamento pode ser feita por um mecanismo de proteção n Em sistemas distribuídos, arquivos podem ser compartilhados pela rede n Network File System (NFS) é um método comum de compartilhamento de arquivos distribuídos Operating System Concepts – 8 th Edition 10. 35 Silberschatz, Galvin and Gagne © 2009

Compartilhamento de Arquivos – Vários Usuários n User IDs identificam os usuários, possibilitando permissões

Compartilhamento de Arquivos – Vários Usuários n User IDs identificam os usuários, possibilitando permissões e proteções por usuário n Group IDs permitem usuários estarem em grupos, possibilitando diretos de acessos por grupo Operating System Concepts – 8 th Edition 10. 36 Silberschatz, Galvin and Gagne © 2009

Compartilhamento de Arquivos – Sistemas de Arquivos Remotos (Remote File Systems) n Usa a

Compartilhamento de Arquivos – Sistemas de Arquivos Remotos (Remote File Systems) n Usa a rede para permitir acesso a arquivos entre sistemas Manualmente via programas como FTP l Automaticamente, usando sistemas de arquivos distribuídos l Semi-automaticamente via web n modelo Cliente-servidor permite clientes montar sistemas de arquivos remotos de servidores l Servidor pode atender múltiplos clientes l Identificação do Cliente e usuário no cliente é insegura ou complicada l NFS é o protocolo padrão cliente-servidor no UNIX para compartilhamento de arquivos l CIFS é o protocolo padrão no Windows l Chamadas ao sistemas de arquivo convencionais são traduzidas em chamadas remotas n Sistemas distribuídos de Informações (distributed naming services) como LDAP, DNS, NIS, Active Directory implementam acesso unificado a informações necessárias para uso remoto l Operating System Concepts – 8 th Edition 10. 37 Silberschatz, Galvin and Gagne © 2009

Compartilhamento de Arquivos Modos de Falhas n Sistemas de arquivos remotos adicionam novos modos

Compartilhamento de Arquivos Modos de Falhas n Sistemas de arquivos remotos adicionam novos modos de falhas, devido a falhas de rede e de servidor n Recuperação de falhas pode envolver informações de estados sobre o status de cada requisição remota n Protocolos sem estados (stateless) como o NFS incluem todas as informações em cada requisição, permitindo recuperação fácil ao custo de menor segurança Operating System Concepts – 8 th Edition 10. 38 Silberschatz, Galvin and Gagne © 2009

Compartilhamento de Arquivos Semântica de Consistência n Semântica de consistência especifica como múltiplos usuários

Compartilhamento de Arquivos Semântica de Consistência n Semântica de consistência especifica como múltiplos usuários estão acessando um arquivo compartilhado simultaneamente l Similar aos algortimos de sincronização de processos do Cap. 7 4 Tendem a ser menos complexos devido ao E/S de disco e a latência de rede (para sistemas de arquivos remotos) l Andrew File System (AFS) implementa semântica de compartilhamento complexa para arquivos remotos l Unix file system (UFS) implementa: 4 Escritas para um arquivo aberto são visíveis imediatamente para outros usuários do mesmo arquivo 4 Ponteiro para arquivo compartilhado permite múltiplos usuários ler e escrever concorrentemente l AFS tem semântica de sessão 4 Escritas só são visíveis em sessões que começam após o arquivo ter sido fechado Operating System Concepts – 8 th Edition 10. 39 Silberschatz, Galvin and Gagne © 2009

Proteção n Dono/Criador do arquivo deve estar apto a controlar: l O que pode

Proteção n Dono/Criador do arquivo deve estar apto a controlar: l O que pode ser feito l Por quem n Tipos de Acesso l Leitura l Escrita l Execução l Adição (Append) l Exclusão l Listagem Operating System Concepts – 8 th Edition 10. 40 Silberschatz, Galvin and Gagne © 2009

Listas de Acesso e Grupos n Modos de acesso: leitura (read), escrita(write), execução (execute)

Listas de Acesso e Grupos n Modos de acesso: leitura (read), escrita(write), execução (execute) n Três classes de usuários RWX a) acesso de dono (owner) 7 111 RWX b) acesso de grupo (group) 6 110 RWX c) acesso público (public) 1 001 n Peça para o administrador criar um grupo (nome único), digamos G, e adicionar alguns usuários ao grupo. n Para um arquivo ou subdiretório particular (digamos game), defina um acesso apropriado. owner chmod group 761 Associe um grupo a um arquivo chgrp G Operating System Concepts – 8 th Edition public game 10. 41 Silberschatz, Galvin and Gagne © 2009

Gerencimaneto da Lista de Controle de Acesso no Windows XP Operating System Concepts –

Gerencimaneto da Lista de Controle de Acesso no Windows XP Operating System Concepts – 8 th Edition 10. 42 Silberschatz, Galvin and Gagne © 2009

Um exemplo de Listagem de Diretório no Unix Operating System Concepts – 8 th

Um exemplo de Listagem de Diretório no Unix Operating System Concepts – 8 th Edition 10. 43 Silberschatz, Galvin and Gagne © 2009

Fim do Capítulo 10 Operating System Concepts – 8 th Edition Silberschatz, Galvin and

Fim do Capítulo 10 Operating System Concepts – 8 th Edition Silberschatz, Galvin and Gagne © 2009