Upload
dinhquynh
View
220
Download
0
Embed Size (px)
Citation preview
2
Roteiro: • Introdução • Sistema de Arquivos: visão do usuário
• Arquivos, diretórios, mount, • descritores de arquivos
• Implementação do sistema de arquivos • O caso UNIX
• Consistência • Backups • Segurança
3
Objetivos Gerais 1. Deve ser possível armazenar uma quantidade muito
grande de dados 2. Os dados devem persistir ao término do processo
que a usa 3. Processos devem ser capazes de compartilhar dados
e meta-dados 4. Deve ser possível organizar os dados de forma a
localiza-los facilmente.
Principais Conceitos: • Arquivo= abstração para dados persistentes em disco • Diretório = abstração para agrupamento de arquivos
Sistema de Arquivos • Determina como os dados são armazenados e
acessados. • gerencia o acesso tanto ao conteúdo de arquivos e
como dos meta-dados sobre esses arquivos. • torna transparente o meio físico de armazenamento • garante confiabilidade e eficiência no acesso, • otimiza o armazenamento e gerencia o espaço livre no
meio físico (discos).
Um Sistema de arquivos é controlado por chamadas de sistema e por utilitários de sistema: Por exemplo, para configurar, modificar parâmetros, alocar e desalocar espaço físico, verificar a integridade do SA, compactação, etc.
4
Sistemas de Arquivo baseados em disco
Um sistema de arquivos UNIX é uma colecão de arquivos e diretórios com: • Um diretório raiz (/) • Cada arquivo e diretório possui identificação
única: – seu nome e diretório no que está inserido, e – um identificador único (p.ex. inode)
• O sistema de arquivos é auto-contido: não há dependências entre um SA e outro
6
Sistema de Arquivos Um sist. de arquivos pode estar contido em: • em uma partição de um disco local, ou • em uma “disk image” (um grande arquivo de um Sist.
Arquivos hospedeiro), ou • em uma partição no disco de outro computador e
acessível pela rede (NFS/samba).
7
disk image
SA hospedeiro
Computador Computador A Computador B SA em uma partição
9
Camadas do sistema de arquivos
disco
Controle de E/S
Acesso básico a blocos
Gerenciamento de espaço livre
Sistema lógico de arquivos e diretórios
Um Sistema de Arquivos (SA) é implementado como camadas de software sobrepostas.
10
Nome, Tipo e Extensão
• Nome: com um comprimento máximo (Unix: 256 e case-sentitive) • Extensão: apenas uma convenção vs determinado pelo Sist. Arquivos • Muitas ferramentas (make, compiladores) se baseiam nessa convenção. • Quando é obrigatório, pode limitar a flexibilidade.
11
Estrutura de Arquivos
Tipos de arquivos: a) seqüência de bytes b) seqüência de registros c) Registros organizados em arvore (AVL, árvores B, …) d) outros
14
Acesso aos Arquivos
• Acesso sequencial – lê todos os bytes/registros a partir do início – não pode saltar ou ler fora de seqüência – Necessário quando o meio de armazenamento era a fita
magnética • Acesso direto (aleatório)
– bytes/registros lidos em qualquer ordem – Quando o arquivo tem registros de mesmo tamanho
• Acesso Indexado (por chave) – Arquivo deve possuir uma área de indice onde estão os
ponteiros para os diversos registros – Registros podem ter tamanhos diferentes
15
Atributos de Arquivos (meta-dados)
Atributos são metadados contendo informações para acesso e gerência dos arquivos (tamanho de arquivo, criador, data de criação, proteção)
16
Operações com Arquivos
1. Create 2. Delete 3. Open 4. Close 5. Read 6. Write
7. Append 8. Seek 9. Get attributes 10. Set Attributes 11. Rename
21
Diretórios
“games” attributes “inbox” attributes “news” attributes “work” attributes
“games” “inbox” “news” “work”
attributes
attributes
attributes
attributes
Estrutura de dados com atributos
• Ao abrir um arquivo, procura-se o nome no diretório, atributos e endereço são copiados para uma Tabela de Arquivos Abertos (Open file table).
• Em futuros acessos, não é necessário acessar novamente o diretório.
Diretório = abstração de agrupamento de arquivos
Atributos de Arquivos
22
Independente do seu conteúdo cada arquivo (convencional e especial) contém atributos associados a ele, que são armazenados nos diretórios.
25
Sistemas de Diretórios Hierárquicos
• Em diretórios hierárquicos, não há limite para o nr. de níveis de aninhamento, e arquivo é referenciado através de um caminho (path), e.g. /usr/ast/mailbox
• Cada processo, possui um diretório corrente (process work directory - pwd) • Arquivos podem ser referenciados usando caminhos absolutos (/usr/src/
servers), ou relativos ao diretório corrente (src/servers) • Define-se um nome especial para diretório corrente e diretório imediatamente
acima. Em Unix “.” (dot) e “..” (dotdot)
UNIX: Montando Sistemas de Arquivos
• O sistema de arquivos raiz (FS root), / , é montado pelo núcleo após o boot
• Qualquer sistema de arquivos pode ser montado em qualquer diretório do FS root, exceto o próprio /.
• Um mount point é um diretório onde o novo SA é acoplado.
• Após a montagem, os arquivos presentes no diretório mount point ficam escondidos até que seja feito unmount.
26
UNIX: Mount Table • Sempre que um SA é montado, cria-se nova
entrada na mount table, um arquivo /etc/mtab (ou /etc/mnttab)
• Essa tabela registra os SA montados, os discos em que residem, os mount points e a lista de opções passadas no comando mount
• Cada entrada é um struct mnttab!• Em Linux a struct é mntent!
28
34
Operações com Diretórios
1. Create 2. Delete 3. Opendir 4. Closedir
5. Readdir 6. Rename 7. Link 8. Unlink
• Antes de ler ou alterar um diretório, ele precisa ser aberto. Ao final, deve ser fechado. • operacão link é a forma de criar atalhos (referências adicionais ) para arquivos. • chamda unlink remove um arquivo de um diretório. • Se o arquivo só tem referência de um único diretório, então um unlink remove o Arquivo. • Obs: Cópia de arquivos é feita por programa utilitário (cp do UNIX)
36
Camadas do sistema de arquivos
disco
Controle de E/S
Acesso básico a blocos
Gerenciamento de espaço livre
Sistema lógico de arquivos e diretórios
Bloco de disco: unidade de alocação de espaço (em disco)
• Um arquivo é composto de uma sequência de blocos de mesmo tamanho (# bytes)
• O disco é um vetor de blocos, cada um com um endereço único (endereço lógico do bloco)
• O endereço lógico é traduzido para (cilindro, trilha, setor)
37
44
Questões de Implementação
Principais Questões: • Como são armazenados arquivos/informações de
diretório nos blocos do disco? • Como é feito o mapeamento de arquivos para blocos de
disco? Como saber em qual bloco de disco está determinado dado/registro do arquivo?
• Como o espaço livre no disco é gerenciado?
Existem diversas maneiras de alocar blocos (do disco) a um arquivo ou diretório.
46
Implementação de Arquivos (de tamanho variável)
1. Lista encadeada de blocos físicos em disco Primeiros bytes de cada bloco contém um ponteiro (endereço de disco) para o próximo bloco da lista (+) Arquivos de tamanho arbitrátrio podem ser alocados (-) Adequado para acesso sequencial, mas pouco eficiente para acesso aleatório
Diretório
Name1 name2
48
Implementação de Arquivos: FAT 2. Lista encadeada usando uma tabela de alocação de
arquivos em memória RAM (a File Allocation Table – de MS-DOS)
Idéia principal: colocar os ponteiros em uma tabela de índices (+) (a) O bloco físico só contém dados ; (b) acesso randômico não requer
vários acessos ao disco (-) tamanho da tabela depende do número total de blocos (pode ser um
problema manter toda a tabela em memória) Se estiver em disco requer vários acessos
Indice corresponde ao endereço do bloco no disco
Exemplo de Arquivo que usa blocos (4, 7, 2, 10, 12)
49
Implementação de Arquivos: Alocação Indexada
index table
3. Todos os endereços de blocos são mantidos em um bloco de índice (index block).
50
Implementação de Arquivos: Indexação Multi-nível
• Quando o número de blocos do arquivo ultrapassa o número de endereços que cabem um index block
• Entrada do diretório aponta para o bloco do índice de 1º. nivel • O endereço físico do registro (ou byte) no bloco precisa ser
calculado
block1
block2
block3
Bloco de Indice 1º. Nivel
(indice externo) Blocos de indice de 2o. Nivel
(Tabela de Indice) Blocos do Arquivo
Entrada de diretório
Implementação de Arquivos: Indexação Multi-nível
Principal desvantagem: o overhead para acesso a um registro é igualmente alto tanto para arquivos pequenos, como para arquivos grandes.
Seria bom ter uma forma de alocação que agilizasse o
acesso a arquivos pequenos e permitisse a alocação de blocos para arquivos muito grandes.
Ideia: os primeiros blocos de um arquivo podem ter
uma indexação direta (um ponteiro de nível 1)
52
54
O i-node de UNIX i-node = estrutura de dados com atributos do arquivo, 12 endereços
diretos de blocos e 3 endereços de blocos de índice (single, double, triple indirect)
56
Indexação Multi-nível usando i-node
Assumindo que cada bloco de índice consegue armazenar 32 endereços • Endereçamento direto: para arquivos perquenos (até 12 blocos) • Single indirect: para arquivos de até 12+32 blocos • Double indirect: para arquivos de até 12+32+ 32*32 blocos • Triple indirect: para arquivos de até 12+32+ 32*32 + 32*32*32 blocos
61
Implementação de Diretórios Em UNIX (no FS ext2): • O i-node é o objeto que representa tanto um arquivo
como um (sub)diretório. • Cada entrada do diretório contém um nome (string ASCII
de tamanho variável), e um número (endereço) de i-node;
• Este número é um índice para uma entrada do vetor de i-nodes (na seção da partição correspondente),
• Atributos são armazenados no i-node (juntamente com os endereços de blocos de disco)
Posix inode inode do Posix contém seguintes atributos: • File size • Device ID (que contém o arquivo) • User ID do dono • Group ID • Permissões • 3 timestamps (inode change time, última modificação do arquivo,
último acesso do arquivo) • Contador de hard links • Endreços de blocos
63
65
Resolução de Nomes com i-nodes Abrir arquivo X de diretório Y: 1. obter o i-node do blocoY que
contém informação de Y; 2. acessar o blocoY (*) 3. procurar lá pelo nome X, e 4. obter o i-node de X (*) (*) será cacheado Seek(d)+Read no arquivo X: Pegar o i-node do cache; Calcular o bloco correspondente ao deslocamento (d) Copiar o bloco para memória Outro processo abre arquivo Z no diretório Y: Acessar blocoY no cache: 1. procurar lá pelo nome X, e 2. obter o inode de X
blocoY
66
Resolução de Nomes usando i-nodes Dado um caminho (path name), precisa-se acessar o i-node para
esse nome • Como “.” e“..” também possuem entradas no diretório, a resolução
de nomes absolutos e relativos funciona exatamente da mesma forma. Para nomes relativos, simplesmente, inicia-se se a partir do diretório corrente
Exemplo: resolução de /usr/ast/src
UNIX: área user do processo Para cada processo, existe uma struct proc (mantida no núcleo) e uma área user, mantida com a imagem do processo. Na área user estão todas as informacões relativas ao uso de arquivos pelo processo. Exemplo: • u_cdir – o número do inode do diretório corrente do
processo • u_ofile – array contendo os file descriptors, cada um
apontando para uma struct file!• u_base – endereço de um buffer na área de memória do
processo usada para E/S com read() e write() • u-count – o número de bytes a serem lidos ou escritos
durante a operacão de E/S 67
Estruturas de Dados Mantidos em Memória
Objetivos: • Acelerar ao máximo o acesso a i-nodes e
blocos de arquivos em uso • Permitir o compartilhamento dessas
informacões sempre que for necessário • Garantir a não interferência de informações
por processo (por exemplo, a posição no arquivo compartilhado de cada processo)
68
UNIX: struct file A file table é composta de entradas struct file. !Cada entrada contém as informacões relativas ao arquivo aberto pelo processo. Exemplo: • f_flag – modo de abertura (FREAD ou FWRITE) • f_count – contador sobre número de processos que abriram
o arquivo • f_inode – aponta para o inode do arquivo (no cache de
inodes). • f-offset– o offset dentro do arquivo sendo acessado pelo
processo 69
UNIX: inode cache
• inode são mantidos na memória (inode cache) enquanto o arquivo estiver aberto por algum processo;
• Serão escritos de volta para disco quando: – tiver havido alguma modificacão (p.exemplo arquivo
foi aumentado em um bloco) ou – todos os processos executaram close()
• Obs: Escrever o inode em disco a cada close() e carrega-lo para o inode cache a cada open() seria muito custoso, especialmente para diretórios muito acessados (/, /usr, /usr/bin)
71
UNIX: o Buffer Cache como Buffer Pool
73
• Hash(block-number) aponta para ums sub-lista na lista completa do buffer pool. Assim, consegue-se localizar mais rapidamente o buffer relativo a um bloco no disco.
• A free buffer list também é uma lista encadeada dos buffers.
74
UNIX: estruturas mantidas em memória Objetivos: reduzir o tempo de acesso ao disco, e permitir
compartilhamento de arquivos por processos • Tabela de partições montadas • Cache de diretórios: diretórios acessados recentemente • Cache de inodes: dos arquivos e diretórios acessados • Directory Cache: o conteúdo dos diretórios recentemente
acessados • FileTable: para todos os arquivos abertos, cada entrada tem
um pointeiro para um v-node/inode e um offset (posição corrente no arquivo)
• vetor de descritores de arquivo (u_ofile) (por processo): com ponteiros para a SystemFileTable
• Buffer cache: contendo os dados sendo escritos/lidos do device
76
Arquivos Compartilhados (1)
Fig. Sistema de arquivo contendo arquivo compartilhado (por symbolic link)
77
Links Simbólicos
Fig.: (a ) Situação antes da ligação; (b) Depois de a ligação ser criada e (c) Depois de o proprietário original remover o arquivo
• o mesmo arquivo pode conter vários nomes (em diferentes diretórios) • Cada i-node precisa ter pelo menos um link; senão, será removido assim que todos os
processos que o usavam tiverem terminado).
O i-node também mantém a informação de quantos links simbólicos estão apontando para o arquivo ou diretório.
Remoção só é efetuada quando o valor desse contador chega a 0.
Gerenciamento de Espaço em Disco
• Bloco grande è menor utilização do espaço em disco (maior desperdício de espaço)
• Bloco pequeno è maioria dos arquivos consistirá de muitos blocos (aumenta tempo de acesso)
• Disco é organizado por setor, trilha e cilindro • Cada setor contém certo numero de blocos • Tempo de acesso a um bloco é dominado pelo tempo de busca
e do atraso rotacional (≅ 101 ms). O tempo de transferência dos dados (disco <-> memória) é desprezível
• Exemplos de tamanhos de bloco em diversos Sistemas: – UNIX : 1KB – MS-DOS: de 512 bytes a 32 KB (dependendo do tamanho da partição, mas
existe a restrição de # máximo de blocos por partição ser 216)
79
80
Gerenciamento do Espaço em Disco
• A curva contínua (escala no lado esquerdo) mostra a taxa transferência de dados de um disco
• A linha tracejada (escala no lado direito) mostra a eficiência de ocupação do disco
Fig: Testes para arquivos de tamanho 2KB
81
Gerenciamento do Espaço Livre em Disco
Implementações mais comuns: Lista ligada (a) ou bit map (b) Lista ligada: blocos livres são usados como blocos de índices com endereços de
vários outros blocos livres (e.g. se tam-bloco=1KB e endereços de 32 bits, então 1 bloco pode conter 255 endereços + endereço do próximo bloco de índice)
Bit maps : devem estar em memória, mas podem também estar contidos em blocos bit-map (1 bloco pode manter 8 K de bits)
Integridade do Sistema de Arquivos
• Com o tempo, sistema de arquivos podem desenvolver alguns problemas como: – capacidade de disco esgotada, pode:
• causar problemas • fazer com que o sistema todo falhe
– sistema de arquivo corrompido, causado por uma súbita queda de energia
– novos objetos não podem ser mais criados
• Monitorar e checar o sistema de arquivo de pode ajudar a evitar tais problemas
84
Integridade do Sistema de Arquivo -‐ o uDlitário df
df [opt] directories • Descrição
– Mostra a informação de uDlização do disco para sistemas de arquivo montados e diretórios.
• Opções Frequentemente Usadas – -‐h mostra o resultado em formato mais legível com sufixos como M (megabyte) e G (gigabyte). (human-‐readble)
– -‐i mostra informação de inode ao invés de uso de memoria
85
Integridade do Sistema de Arquivo fsck [opDons] [-‐t type] [fs-‐opDons] filesystems
• Descrição – Verifica se filesystems contém erros e opcionalmente corrige os mesmos.
• Opções usadas – -‐t type especifica o Dpo de sistema de arquivo. – -‐A executa todos os sistemas de arquivos especificado em /etc/fstab. A intenção é u>lizar este comando em tempo de boot, antes dos filesystems serem montados.
– c checa por blocos ruins, com defeito. – -‐f força a checagem, mesmo o sistema de arquivo parecendo limpo.
– -‐p automa>camente repara o sistema de arquivo sem o promp>ng.
– -‐y sempre responde sim para o prompt intera>vo. 87
Confiabilidade do Sistema de Arquivos Backups
• Dados são um bem muito valioso na Era da Informação! • Meios de armazenamento sujeitos a defeitos de fabricação e a problemas de
desgaste • Controladora de disco consegue detectar um bloco defeituoso e usar espaço
sobressalente no setor • Backups são demorados e requerem muito espaço (em fita, ou outro meio) • Nem todo disco precisa/deve ser copiado. Exemplo:
– Programas executáveis – Arquivos especiais (dispositivos de E/S) – Blocos defeituosos (marcados pela controladora)
• Backups incrementais (economia de espaço vs maior tempo de recuperação) – Para recuperar, precisa-se voltar ao mais recente backup completo e ‘re-executar’ as
modificações dos backups incrementais • Backups durante a operação do sistema?
– Cópia de estruturas de dados críticas e marca que futuras atualizações em arquivos e diretórios sejam espelhadas na unidade de backup (fita).
88
Backup físico vs lógico Duas estratégias para copiar o disco para fita: backup físico e backup lógico • Backup físico
– Copia todos os blocos utilizados do disco – Simples e rápido, mas não permite cópia incremental e nem
exclusão de alguns diretórios (p.ex. /dev)
– Blocos defeituosos: – se a controladora de disco suprimir (do ger. de blocos ) os
blocos defeituosos, backup funcionará bem, – senão programa de backup deverá ler lista/tabela de blocos
defeituosos, para evitar tentar copiar um bloco defeituoso e travar
– Não há necessidade de copiar blocos livres (precisa-se ter acesso a lista de blocos livres)
Backup físico vs lógico
• Backup lógico
– Percorre recursivamente a árvore do Sistema de arquivos, fazendo a cópia de tudo que mudou desde último backup
– Primeiro, todas as informações necessárias para recriar a arvore de diretórios são gravadas na fita (i-nodes, diretórios e atributos)
– No final, são gravados os blocos dos arquivos modificados (backup incremental)
– Inf. de diretórios (mesmo não modificados) que ficam no caminho entre a raiz e cada arquivo modificado.
– è permitem recriar todos os arquivos modificados exatamente no lugar em que estavam e com seus atributos originais
– Como a lista de blocos livres não é copiada, precisa ser recriada quando o sistema de arquivos é recriado a partir do backup
91
Confiabilidade do Sistema de Arquivos Backups
Exemplo: Um sistema de arquivos a ser copiado Legenda:
– quadrados = diretórios; círculos = arquivos – Os itens sombreados foram modificados desde último backup
92
Mapas de bits usados na cópia lógica (ou dump lógico) para poder recuperar todo o sistema de arquivos (com atributos e permissões originais, etc.):
(a) Copia tudo, só não copia arquivos não modificados
(b) Copia o conteúdo todo de qq diretório sub-raiz em que alguma coisa foi modificada
(c) Copia apenas os sub-diretórios em que houve alguma modificação
(d) Só copia os elementos (arquivos/diretórios) que sofreram alguma modificação (informação de atributos não é preservada)
Backups lógicos incrementais
93
Possíveis estados do sistema de arquivos a) consistente b) bloco ausente (desperdício de disco) c) bloco duplicado na lista de livres (solução: reconstruir
lista de blocos livres) d) bloco de dados duplicados (solução: duplicar o bloco)
Verificação da consitência de blocos fsck ou scandisk fazem também a verificação da
consitência dos blocos em disco (percorrendo todos os i-nodes)
Lidando com a latência de acesso ao disco
• Acesso a memória: 10 ns/Byte • Leitura ao disco: 10 MB/s => ≈ 400 ns/Byte + 10 ms para
buscar a trilha
• Por isso, guarda-se em cache (em memória RAM), os i-nodes e blocos recentemente (ou mais) acessados
• Para garantir a consitência do SA em disco, precisa-se gravar prioritariamente (blocos críticos), que são: – i-nodes modificados – Blocos com infomação de diretório modificada – Blocos de índice modificados – Bit map (ou lista ) de blocos livres
95
Cache de blocos e i-nodes
Cache de blocos em Memória
96
i-node
Bloco (inf. diretorio, indice, ou de dados)
Partição de disco
Compromisso entre eficiência de acesso versus coerencia da infomação no disco
vetor de i-nodes
97
Cache de blocos
Como há milhares de blocos no cache, uma tabela hash é necessária para localizar rapidamente um bloco (para acesso ao seu conteúdo):
• Aplica-se uma função de hash sobre o par (nome-partição,#bloco) • Tabela hash tem lista de todos blocos no cache com mesmo valor de hash. • Como acesso ao disco é mais demorado, pode-se manter a lista ordenada
por tempo de último acesso (LeastRU) ou acesso mais frequente (MostRU), facilitando assim uma politica de substrituição de blocos (escolha do bloco a ser escrito de volta para disco).
• Mas, se os blocos críticos forem posicionados final da fila, deve demorar muito para que sejam escritos em disco. Isso é um problema!
Least recently used (mais antigo) Most recently used (mais recente)
98
Cache de blocos
Ou seja, precisa-se tratar blocos críticos de forma diferenciada, levando a um algoritmo LRU diferenciado que leva em conta:
• se bloco será utilizado em breve (e.g. improvável para i-nodes) • se o bloco é critico? Abordagem: • Blocos são divididos em categorias: i-node, blocos de indice, blocos de
diretórios, blocos cheios com dados, e blocos incompletos com dados
• Blocos que provavelmente não serão acessados em breve, ficam no início da fila LRU (em vez do final)
• Blocos com alta chance de serem usados em breve (blocos parcialmente completos) são colocados no final da fila
Least recent (mais antigo) Most recent (mais recente)
Cache de blocos
Mas também blocos de dados não devem permanecer muito tempo no cache • Abordagem UNIX:
– Chamada de sistema synch: todos os blocos modificados (no cache) são escritos em disco
– Programa utilitário, update, a cada 30 segundos chama synch!– Desvantagem: há um período de tempo em que o sistema de arquivos
está vulnerável a falhas do sistema (e discos não podem ser removidos antes de executar synch)
• Abordagem Windows: – Bloco é gravado em disco assim que é modificado (cache de escrita
direta: write-through) – Vantagem: Disco está sempre sincronizado – Desvantagem: Se o substistema de E/S não utilizasse buffers (p/
acumular todos os caracteres de uma linha antes da escrita), cada escrita de caracter causaria um acesso ao disco!
99
Cache de blocos – cópia antecipada
Outra técnica para melhorar o desempenho do acesso a disco é a cópia antecipada de blocos para a cache: • Sempre que um bloco k de um arquivo é acessado, verifica-se se o k
+1 já está em cache, e se não está, copia-se esse também.
Só vale a pena para arquivos que estejam sendo acessados sequencialmente. Para acesso aleatório, a copia antecipada geralmente não compensa.
Sist. de Arquivo deve ficar monitorando o padrão de acesso aos arquivos e tentar identificar aqueles que sempre são acessados sequencialmente.
Portanto,a cópia antecipada é uma estratégia opcional para determinado
tipo de arquivos.
100
101
Acesso ao arquivo: acesso ao i-node + cópia do bloco. Se i-node e bloco estiverem longe um do outro, isso aumenta a latência de movimentação do braço de disco
Localização especial dos i-nodes. • Em vez de tê-los no início do disco, melhor no meio
do disco • Disco dividido em grupos de cilindros
– cada qual com seus próprios blocos e i-nodes, e lista de blocos livres
Melhorando o Desempenho do acesso ao disco
Controle de Acesso • Há diferenças entre o controle de acesso a
diretórios e arquivos. • O controle da criação/eliminação de arquivos nos
diretórios, visualização do seu conteúdo e eliminação do próprio diretório são operações que também devem ser protegidas.
• Existem diferentes mecanismos e níveis de proteção e para cada tipo de sistema um modelo é mais adequado do que o outro.
Tipos de Acesso
Leitura Qualquer tipo de operação em que o arquivo possa ser visualizado, como a exibição de seu conteúdo, edição ou cópia de um novo arquivo
Gravação Alteração no conteúdo do arquivo, como inclusão ou alteração de registros.
Execução Associado a arquivos executáveis ou arquivos de comandos, indicando o direito de execução do arquivo.
Eliminação Permissão para se eliminar um arquivo.
Senha de Acesso • Usuário precisa ter conhecimento da senha • Cada arquivo possui apenas uma senha, o acesso é
liberado ou não na sua totalidade.
• Não é possível especificar quais tipos de operações podem ou não ser concedidas
• Outra desvantagem é a dificuldade de compartilhamento já que todos os demais usuários deveriam ter conhecimento da senha.
Grupos de Usuários • Os usuários são organizados em grupo com objetivo
de compartilhar arquivos entre si. • Implementa três tipos de proteção:
– owner (dono), – group (grupo) a – all (todos)
• e na criação do arquivo é especificado quem e o tipo de acesso aos três níveis de proteção.
• Em geral, somente o dono ou usuários privilegiados é que podem modificar a proteção dos arquivos.
Lista de Controle de Acesso • Access Control List – ACL consiste em uma lista
associada a cada arquivo onde são especificados quais os usuários e os tipos de acesso permitidos.
• O tamanho desta estrutura pode ser bastante extenso se um arquivo tiver seu acesso compartilhado por diversos usuários.
• Existe um overhead adicional devido a pesquisa seqüencial que o sistema deverá realizar na lista sempre que solicitado.
• É possível encontrar tanto a proteção por grupos de usuários quanto pela lista de acesso oferecendo uma maior flexibilidade ao mecanismo de proteção.
Lista de Controle de Acesso vs Grupos de Usuário
Arq A Usuário: Laureano Acesso: leitura + escrita + execução Usuário: Maziero Acesso: eliminação
Usuário: Pedro Acesso: leitura + escrita Usuário: Joaquim Acesso: leitura
Nível de proteção Tipo de Acesso
Owner Leitura Escrita Execução Eliminação
Group Leitura
All --
Arq B