6 sistema de arquivos - ti: sistemas de informação ...azambuja/genesis_old/... · figura 6.1...

43
6 Sistema de Arquivos 6.1 Conceitos Básicos •Necessidades: –Armazenar uma grande quantidade de informações; –Informação deve ser persistente; –Informação pode ser acessada por vários processos. •Arquivos –Abstração para armazenamento de informações no disco; •Estrutura de Arquivos –Seqüência de bytes (sem estrutura) •máxima Flexibilidade. É possível estruturar os arquivos conforme necessidade da aplicação. Ex.: DOS e UNIX. –Registros •arquivos são uma seqüência de registros. Ex.: computadores antigos. –Árvores •informações são organizadas em estrutura de dados do tipo árvore. Ex.: Mainframe.

Upload: vophuc

Post on 17-Nov-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

6 Sistema de Arquivos

6.1 Conceitos Básicos •Necessidades:

–Armazenar uma grande quantidade de informações;

–Informação deve ser persistente;

–Informação pode ser acessada por vários processos.

•Arquivos

–Abstração para armazenamento de informações no disco;

•Estrutura de Arquivos

–Seqüência de bytes (sem estrutura)

•máxima Flexibili dade. É possível estruturar os

arquivos conforme necessidade da aplicação. Ex.:

DOS e UNIX.

–Registros

•arquivos são uma seqüência de registros. Ex.:

computadores antigos.

–Árvores

•informações são organizadas em estrutura de

dados do tipo árvore. Ex.: Mainframe.

176 Sistemas Operacionais •Tipos de Arquivos

–Regulares

•arquivos com informações do usuário;

•existem arquivos texto e binário;

•cada SO tem um padrão para arquivos. Ex.:

arquivos texto no DOS e UNIX são diferentes;

–Diretórios

•são arquivos especiais do SO para manter

estrutura do sistema de arquivos.

–Arquivos especiais de caracteres e arquivos especiais de

bloco

•tipos de arquivos especiais para mapear

dispositivos de E/S. Ex.: impressora e cdrom.

•Acesso a Arquivos

–Arquivos Seqüenciais

•utili zando primitivas para leitura e escrita de

dados.

–Arquivos Randômicos ou Aleatórios

•utili zando também uma primitiva que permitem

Sistema de Arquivos 177

posicionar o ponteiro de arquivo em qualquer

parte.

•Atributos de Arquivos

–Arquivos possuem atributos que determinam suas

características. Ex.: tamanho, data de criação, data de

último acesso, etc.

•Operações sobre Arquivos

–create, delete, open, close, read, write, append, seek, get/

set attributes, rename.

•Arquivos Mapeados na Memória

–Alguns SO permitem mapear arquivos no espaço de

endereçamento de processos;

–Utili za primitivas map e unmap;

–Usa arquivos como se fosse memória física;

–É mais fácil de implementar com segmentos;

–Dificuldades:

•saber tamanho de arquivos de saída;

•versões inconsistentes (dois ou mais processos

que mapeiam o mesmo arquivo);

178 Sistemas Operacionais

•arquivos muito grandes (maior que um segmento).

•Diretório

–É um tipo de arquivo;

–É uma coleção de nodos contendo informações sobre

arquivos;

–Contém ou não os atributos de arquivos. Caso não

contenha, estes são armazenados em blocos separados.

•Hierarquia de Diretórios

–Diretório contém um número de entradas com nomes,

atributos e posição do arquivo no disco;

/

. . .

hdacdrom

ls

a.out core

arqu ivos

dev etc h o m e usrt m pb in

ana lu cac b in X 1 1

progsmisc

games

diretór ios

Figura 6.1 Exemplo de Hierarquia de Arquivos

–Como diretórios podem conter diretórios, é obtida uma

Sistema de Arquivos 179

árvore.

•Caminhos (path)

–Determinam a posição de um arquivo na árvore de

diretórios. Tipos de diretório:

•diretório raiz: diretório primário de determinado

sistema de arquivos. Normalmente representado

por / ou \;

•diretório de trabalho (ou corrente): é aquele em

que o processo está executando. Pode ser alterado

pelo processo;

•diretório absoluto: é aquele representado em

relação ao diretório raiz;

•diretório relativo: é aquele representado em

relação ao diretório de trabalho.

•Operações sobre Diretórios

–create, delete, opendir, closedir, readdir, rename, link e

unlink;

6.2 Implementação de Arquivos •Como implementar arquivos?

–Discos são logicamente divididos em blocos;

180 Sistemas Operacionais

–Um bloco é constituído de um ou mais setores;

–O tamanho do bloco é definido pelo SO no momento da

formatação;

–A implementação de arquivos consiste em associar

blocos de disco com os arquivos;

–Alguns blocos do disco armazenaram os diretórios e

informações gerais do disco. Outros terão os dados dos

arquivos;

–Existem várias técnicas para implementar arquivos. As

principais são: Alocação Contígua, Lista Encadeada, Lista

Encadeada Usando Índice e Indexada.

•Alocação Contígua

–Nessa técnica os arquivos são armazenados em um bloco

contíguo de dados;

� simples de implementar

•é possível armazenar nas entradas do diretório

somente o número do endereço do primeiro bloco.

� desempenho excelente

•única Operação lê o arquivo inteiro;

•é o mais rápido de todos.

Sistema de Arquivos 181 �

Tamanho do Arquivo deve ser conhecido no momento

da gravação �

Fragmentação (externa) de disco

0 1 2 3

4 5 6 7

8 9 10 11

12 13 14 15

18 19

20 21 22 23

16 17

26 27

28 29 30 31

24 25

arquivo início tamanho=====================prova.tex 20 4a.out 4 6core 10 3prog.asm 14 5prova.ps 25 7.bashrc 2 1

Figura 6.2 Alocação Contígua

•Alocação com Lista Encadeada

–Consiste em manter arquivos como listas encadeadas de

blocos;

� cada bloco do disco pode ser utili zado

182 Sistemas Operacionais �

nenhum espaço é perdido na fragmentação �

simples para o SO implementar diretórios (é necessário

armazenar somente endereço do primeiro bloco)

� apesar da leitura seqüencial ser rápida a aleatória é

lenta (têm de ser seqüencializada)

� dados armazenados em blocos não são potências de

dois (devido ao ponteiro da lista encadeada)

0 1 2 3

4 5 6 7

8 9 10 11

12 13 14 15

18 19

20 21 22 23

16 17

26 27

28 29 30 31

24 25

arquivo início fim=====================prova.ps 18 6

Figura 6.3 Alocação com Lista Encadeada

Sistema de Arquivos 183 •Alocação com Lista Encadeada Usando Índice

–Elimina desvantagens anteriores;

–Utili za ponteiro para cada bloco armazenado em uma

tabela ou índice na memória;

–MS-DOS / Windows 95 usam esse método. É

denominado Tabela de Alocação de Arquivos TAA (ou

File Alocation Table – FAT);

arquivo bloco inicial==================prova.ps 5

9

17

27

22

-1

5

9

17

22

27

Figura 6.4 Alocação com Lista Encadeada Usando Índice �

todos blocos são utili zados �

facili ta acesso aleatório (apesar de ter de percorrer uma

lista, ela está na memória) �

SO armazena no diretório somente o endereço inicial

184 Sistemas Operacionais

do arquivo

� tabela ou índice deve estar na memória todo o tempo

•Alocação Indexada ou Nó Índice (Inode)

–Associar a cada arquivo uma tabela nó índice (index-

node);

–Tabela contém o atributo e os endereços dos blocos de

arquivo;

0 1 2 3

4 5 6 7

8 9 10 11

12 13 14 15

18 19

20 21 22 23

16 17

26 27

28 29 30 31

24 25

...59

172722-1

arquivo bloco índice==================prova.ps 3

Figura 6.5 Alocação Indexada

Sistema de Arquivos 185

–Arquivos pequenos usa somente o nó índice para

armazenar os endereços dos blocos de dados do arquivo;

–Arquivos maiores usam blocos especiais que apontam

para extensões do nó índice que contêm endereços de

blocos de dados no disco:

•bloco indireto simples, duplo e triplo.

–Usado no UNIX (incluindo Linux, BSD e outros).

� bom desempenho (mantendo blocos em grupos por

arquivos e nós índice em uso na memória)

bloco indireto tr iplo

bloco indireto duplo

bloco indireto s imples

bloco direto n

...

bloco direto 2

bloco direto 1

contador de links

tamanho

horas/ datas

donos

modo dados

dados

dadosbloco direto n

...

bloco direto 1

bloco direto n

...

bloco direto 1

dados

dados

bloco direto n

...

bloco direto 1

bloco direto n

...

bloco direto 1

dados

dados

dados

dados

Figura 6.6 Estrutura de um Nó índice no UNIX

186 Sistemas Operacionais 6.3 Implementação de Diretórios •Armazenar informações necessárias para encontrar blocos no

disco:

–endereço do arquivo;

–número do primeiro bloco ou do nó índice.

•Mapeia o nome do arquivo na informação necessária para

localizar os dados;

•Atributos podem ser armazenados nos diretórios (MS-DOS) ou

em estruturas separadas (UNIX).

Nome do Arquivo

1-8

Extensão

9-11

Códigousuár io

0

Continua

12

16-31

Reservado

13-14

Contadorblocos

15

Números dos B locos no Disco

Figura 6.7 Implementação de Diretório no CP/M

Nome do Arquivonó índice

Figura 6.8 Implementação de Diretório no UNIX

Sistema de Arquivos 187 6.4 Gerenciamento do Espaço em Disco •Armazenamento de dados pode ser contíguo ou não:

–Mesma diferença que segmentação pura e paginação;

–Movimentação custosa no disco;

–Normalmente arquivos são compostos por blocos de

tamanhos fixos não adjacentes.

•Tamanho do Bloco

–Arquivos no UNIX têm tamanho médio de 1k

(MULLER e TANENBAUM, 1984)

–Caso o bloco seja muito grande ocorre um desperdício de

espaço em disco;

–Caso blocos sejam muito pequenos é lento para acessar

os arquivos, se estes estiverem fragmentados;

–Usualmente blocos são de 512, 1k, 2k ou 4k bytes;

–Blocos devem ter no mínimo o tamanho de um setor;

–Blocos maiores que um setor, trabalham sempre com

dois ou mais em operações indivisíveis.

•Controle de espaço livre:

188 Sistemas Operacionais

1111111100001111111111001100000011111111000011111111110011000000111111001100000011111111

Mapa deBi ts

L is taencadeada

2001842819150322450...215

963104029160100560861...

Figura 6.9 Controle de espaço livre em disco

–Lista encadeada de blocos

•cada bloco armazena tantos números de blocos

livres quanto cabe;

•utili za blocos não ocupados para armazenar a lista

encadeada;

•Ex.: Blocos de 1K, endereços de bloco de 16 bits:

– cada bloco armazena 511 blocos livres;

–Disco de 20M necessita de 40 blocos no

máximo.

•Ex.: MS-DOS, BSD e UNIX System 7.

–Mapa de bits

•Blocos livres representados por 1 e alocados por

0;

Sistema de Arquivos 189

•Requer menos espaço na média (somente com o

disco quase cheio lista encadeada ocupa menos);

•Ex.: Disco de 20M necessita 20k para o mapa de

bits, isto é, 3 blocos;

•Ex.: MacOS, LINUX, 4.3 BSD e Windows NT.

� simples e eficiente (se mapa estiver na

memória)

� melhor (no geral) e mais usado

•Cotas no disco

–O administrador associa a cada usuário um espaço

máximo do disco que este pode utili zar. Esse espaço

recebe o nome de cota do usuário.

–Mecanismo Típico

•existe uma tabela que contém as cotadas dos

usuários com arquivos abertos;

•quando todos os arquivos de determinado usuário

são fechados, as cotas são armazenadas em disco;

•arquivos abertos ao serem alterados no tamanho

fazem com que o sistema operacional altere a cota

do seu dono.

190 Sistemas Operacionais

–Limite lógico (soft) e físico (hard)

•o limite lógico pode ser excedido eventualmente,

mas o limite físico não;

•SO determina um limite de tempo/ uso para

usuário ficar acima da cota (ultrapassar o limite

lógico)

6.5 Arquivos Compartilhados •Motivação

–Muitos usuários de um mesmo projeto precisam

compartilhar arquivos;

–É conveniente um mesmo arquivo aparecer

simultaneamente em diferentes diretórios.

/

. . .

a.out

h o m e usrt m p

ana lu cac

. . .

Figura 6.10 Exemplo de Arquivo Compartilhado

•Com o compartilhamento o sistema de arquivos é visto como um

Sistema de Arquivos 191 Grafo Dirigido Acíclico e não mais como uma árvore.

•Problema de Implementação

–É difícil o compartilhamento em sistemas de arquivos

nos quais os diretórios contenham endereços de disco (ex:

CP/M).

•Alternativas para compartilhamento de arquivos

• Ligações Físicas (Hard Links)

–Endereços de disco não listados em diretórios mas em

estruturas separadas. Arquivos compartilhados são

ponteiros para estas estruturas;

–Estruturas mantêm um contador de ligações.

1024 1024

Nó Indice dea.out

1024

ana lu cac

a.outa.out

Figura 6.11 Exemplo de Ligação Física a um arquivo �

criação de ligação não altera posse e pode causar

problema com uso de cotas

192 Sistemas Operacionais �

velocidade de acesso idêntica seja através da referência

original ou por qualquer ligação

• Ligações Simbólicas (Symbolic Links)

– Sistema cria um novo arquivo do tipo link que contém o

caminho do arquivo ligado.;

–Somente o verdadeiro dono mantém um ponteiro para a

estrutura do arquivo e pode apagá-lo;

–Remover um link não afeta o arquivo.

� sobrecarga extra necessária para acessar o arquivo

� muitas vezes pode necessitar de uma estrutura extra

para o link �

podem ser utili zados para ligar arquivos em máquinas

diferentes

1024 a.out245

Nó Indice dea.out

1024

ana lu cac

Nó Indice dearquivo do

tipo link

/home/analu/a.out

a.out

245

Figura 6.12 Exemplo de Ligação Simbólica a um arquivo

Sistema de Arquivos 193 •Com Links, arquivos podem ter vários caminhos distintos:

–pode ocorrer problema com criação de cópias de

segurança.

6.6 Confiabilidade •A destruição de arquivos em uma empresa é mais custosa que a

perda de componentes de hardware

•Restauração de erros no disco:

–É difícil;

–Consome tempo;

–Em alguns casos, impossível.

•Gerenciamento de Blocos Defeituosos – BB (Bad Blocks)

–Discos normalmente têm blocos defeituosos;

–Solução por Hardware:

•dedica um setor do disco para lista de blocos

defeituosos;

•na inicialização da controladora mapeia blocos

reserva em blocos defeituosos.

–Solução por Software:

•construir um arquivo contendo todos os blocos

194 Sistemas Operacionais

defeituosos;

•arquivo nunca deve ser acessado.

•Cópias de Segurança (backups)

–São usados dispositivos como fitas, discos óticos,

magnéticos, etc.;

–Técnica usual é a replicação de dados

� necessita do dobro da capacidade de disco

–A cópia pode ser incremental;

–Ex.: Bit Archive do MS-DOS:

•no backup os bits são zerados;

•quando os arquivos são modificados, o sistema

operacional coloca um nos bits archive

automaticamente.

•Consistência

–Travamentos do sistema e faltas de luz causam

inconsistências;

–Utili tários para verificação de consistência (ex.: NDD e

Scandisk no Windows 9x);

–Podem ser executados na inicialização do S.O(ex.:

Sistema de Arquivos 195

UNIX, Windows 98);

–Pode ser realizada a consistência de bloco e de arquivos.

•Verificação de Consistência (Utili zando o UNIX como exemplo)

–De bloco:

•construir uma tabela com dois contadores por

bloco, ambos inicializados em zero;

•primeiro contador mantém o número de vezes que

os blocos estão presentes em arquivos, o segundo

contado o número de vezes que os blocos

aparecem na lista livre;

•todos os blocos são examinados e o sistema é

considerado consistente se um contador é um e

outro é zero para cada bloco do disco;

•inconsistências possíveis:

–bloco faltando (missing block ou lost

cluster). É indicada por zero em ambos os

contadores. Para resolver basta adicionar o

bloco à lista de blocos livres;

–bloco aparece mais de uma vez na lista

livre. Solução é reconstruir a lista livre;

196 Sistemas Operacionais

–bloco presente em um ou mais arquivos.

Para resolver esse problema é feita uma

cópia do bloco e associado um bloco para

cada arquivo;

–bloco aparece como presente em ambos os

contadores. Portanto, deve ser feita a

remoção do bloco da lista livre.

–De Diretórios:

•tabela de contadores por arquivos;

•percorre a hierarquia, incrementado o contador

para cada arquivo encontrado;

•compara o número do contador com o contador de

links. Caso ambos estejam iguais o sistema está

consistente;

•inconsistências:

–contador de links > entradas nos diretório.

Removendo todos, o contador não será zero

e o arquivo não será removido. Para

consertar basta alterar o contador de links;

–contador de links < entradas nos

diretórios. Caso o contador chegasse a zero

Sistema de Arquivos 197

o arquivo seria apagado. A solução é alterar

o contador de links.

–Consistência de bloco e diretórios normalmente é

integrada por questões de eficiência.

•Apagar arquivos (lógica/física)

–Quando arquivos são eliminados pelo usuário é possível

a utili zação, de forma automática pelo SO, de um diretório

para mante-los temporariamente. Quando isso ocorre

dizemos que o SO trabalha com eliminação lógica de

arquivos (Ex.: MacOS e Windows 95). Para que o arquivo

seja definitivamente apagado, o usuário faz a solicitação

através de um comando do SO.

6.7 Desempenho •Disco é mais lento que memória;

•É comum a utili zação de uma memória cache, para acelerar o

acesso

–Cache: coleção de blocos pertencentes logicamente a um

arquivo mas mantidos na memória;

–Na leitura verifica se o bloco está no cache. Caso

contrário lê do disco e coloca no cache;

198 Sistemas Operacionais

–Para substituição de bloco são utili zados os mesmos

algoritmos de substituição de página:

•referências a cache são relativamente infreqüentes

(é aceitável manter os blocos na ordem LRU);

•é indesejável usar o LRU puro por causa de

inconsistências devido a falhas;

•usa-se um LRU modificado levando em conta a

utili zação freqüente e a importância do bloco para

consistência.

•Mesmo preservando a integridade dos arquivos é indesejável

deixar um arquivo muito tempo no cache.

–Exemplos de duas abordagens: UNIX e MS-DOS

•UNIX: chamada de sistemas sync

–força a gravação de blocos modificados;

–um daemon força a chamada de sync

periodicamente (30 segundos).

•MS-DOS: normalmente grava todos os blocos

modificados no disco

–técnica denominada de cache write-

through

Sistema de Arquivos 199

–Abordagem no UNIX é mais eficiente.

•Além do cache, outras medidas para aumentar o desempenho:

–Defragmentação do disco periódica.

0 1 2 3

4 5 6 7

8 9 1 0 1 1

1 2 1 3 1 4 1 5

1 8 1 9

2 0 2 1 2 2 2 3

1 6 1 7

2 6 2 7

2 8 2 9 3 0 3 1

2 4 2 5

0 1 2 3

4 5 6 7

8 9 1 0 1 1

1 2 1 3 1 4 1 5

1 8 1 9

2 0 2 1 2 2 2 3

1 6 1 7

2 6 2 7

2 8 2 9 3 0 3 1

2 4 2 5

Figura 6.13 Defragmentação do disco

–Manter os blocos de mesmos arquivos contíguos (no

mesmo cili ndro);

–Manter os nós índices no centro do disco;

–Dividir o disco em grupos de cili ndros (Ex.: BSD 4.3 e

LINUX);

200 Sistemas Operacionais

–Manter diretórios como árvore B+ (Ex.: Windows NT);

6.8 Estudo de Caso

6.8.1 MS-DOS e Windows 95/98 (FAT 16 e 32) •DOS 1 usava entradas na FAT de 12 bits (Ainda usada hoje em

disquetes);

•DOS 2 introduziu a FAT de 16 bits para suportar discos rígidos;

•Em 1987 foi detectado um problema na operação de baixo nível

para retornar um setor do disco que passava um valor de 16 bits.

Veja: 65526 valores na FAT de 16 bits multiplicados por 512

bytes (tamanho do setor) = 32 MB;

•DOS 4 corrigiu o problema detectado em 1987 alterando a

operação de baixo nível para manipular setores, que passou a

usar parâmetros de 32bits;

Nome do Arquivo

0-7

Extensão

8-10

Atr ibutos

11

Reservado para uso futuro

12-21

hora

22-23

data

24-25

clusterinicial

26-27

tamanho

28-31

Figura 6.14 Entrada em diretório da FAT 16

Sistema de Arquivos 201 •O Windows 95 ainda utili za FAT 16 e possui um limite de

discos até 2GB. Esse limite ocorre devido a programas

existentes, pois um disco de 2GB teria clusters de 64k que não

cabem em um registro de 16bits (utili zados por muitos

programas). Mesmo assim, existe o limite do sistema operacional

de discos maiores que 4GB, pois este armazena o número de

setores por cluster em um único byte;

•A única modificação do Windows 95 foi chamar a FAT 16 de

VFAT, permitindo a utili zação de nomes longos, utili zando

entradas de diretório adicionais para armazena-los.

•Uma versão modificada do Windows 95 introduziu FAT 32.

Entradas da FAT e numeração de setores são 32 bits. Com isso é

possível utili zar 4.294.967.296 valores distintos de 32bits, que

multiplicados por 512 bytes permitem discos de 2 terabytes;

Nome do Arquivo

0-7

Extensão

8-10

Atr ibutos

11

capitali-zação

12

hora últ.modif.

22-23

data últ.modif.

24-25

clusterinicial-L

26-27

tamanho

28-31

mseg .dacriação

13

horacriação

14-15

horaacesso

16-17

dataacesso

18-19

clusterinicial-H

20-21

Figura 6.15 Entrada em diretório da FAT 32

202 Sistemas Operacionais •O Windows 98 continua utili zando a mesma FAT 32.

•Comparação do Tamanho do cluster com FAT 16 e 32:

–A Tabela 6.1 e a Tabela 6.2 apresentam os tamanhos dos

cluster usados por FAT 16 e 32 respectivamente.

Tabela 6.1 Tamanho do Cluster com FAT 16

Tamanho do Disco Setores por Cluster Tamanho do Cluster Menos que 128MB 4 2k Menos que 256MB 8 4k Menos que 512MB 16 8k

Menos que 1GB 32 16k Menos que 2GB 64 32k Menos que 4GB 128 64k (Problema com

programas existentes)

4GB ou mais 256 (Problema com S.O.)

Tabela 6.2 Tamanho do Cluster com FAT 32

Tamanho do Disco Tamanho do Cluster Menos que 8GB 4k Menos que 16GB 8k Menos que 32GB 16k

32GB ou mais 32k •Vantagens da FAT 32:

–Suporta drives de até 2 TeraBytes;

–Usa clusters menores (4k para drives de até 8

Sistema de Arquivos 203

GigaBytes), resultando em uso mais eficiente do disco

(entre 10 e 15% menos em relação à FAT 16);

–Habili dade de relocar o diretório raiz usar a cópia de

backup da FAT ao invés da cópia padrão;

–Registro de boot foi expandido para incluir cópias de

segurança das estruturas críticas;

–O diretório raiz é uma cadeia de clusters convencional. O

limite de entradas no diretório raiz não existe mais.

•Desvantagens da FAT 32:

–Problema de desempenho/ fragmentação;

–Sem proteção de acesso.

6.8.2 Windows NT (NTFS) •NTFS divide o disco em volumes (partições lógicas);

•Volumes são divididos em clusters (potências de dois) como

FAT 32;

•Os endereços de disco são os LCN (Logical Cluster Numbers):

–Numeração seqüencial do início ao fim do disco.

•Arquivos são objetos que contém atributos como nome, data de

criação, dados, etc.

–Existem atributos residentes (pequenos, ex: nome, data)

204 Sistemas Operacionais

e não residentes (grandes, ex: dados);

–Cada arquivo é identificado por uma referência

(endereço de 64 bits) que indica sua posição na tabela

mestra de arquivos – MFT (Master File Table);

•Diretórios são arquivos com o atributo índice:

–Árvore B+ com o nome, referência, tamanho e data da

última modificação dos arquivos no diretório;

–Elimina custo de reorganização da árvore e a distância de

qualquer caminho desde a raiz até uma folha da árvore é

idêntico.

•Metadados do volume:

–Tabela Mestra de Arquivos:

•descreve todos os arquivos do sistema, atributos

residentes, blocos de extensão (para atributos não

residentes);

•arquivos pequenos são todos armazenados nessa

tabela.

–Arquivo de Log:

•armazena alterações nos metadados;

•NTFS utili za transações para facili tar

Sistema de Arquivos 205

recuperação.

–Arquivo do Volume:

•Nome, versão do NTFS, bit de consistência.

–Tabela de definição de atributos:

•Define os atributos e as operações do volume.

–Diretório Raiz;

–Arquivo com Mapa de bits:

•Apresenta a ocupação dos clusters.

–Arquivo de boot:

•Código de inicialização do NT.

–Arquivo de clusters defeituosos.

6.8.3 Linux (ext2 - Extend File System 2) •Utili za alocação indexada ou nós índice;

•Diretórios são arquivos normais:

–Cada bloco é uma lista encadeada de entradas com seu

tamanho, nome do arquivo e nó índice;

•Ext2 divide o disco em blocos pequenos (1k - default, 2k

ou 4k).

206 Sistemas Operacionais

Nome do Arquivobloco índicetamanho da

entradatamanho do

nome

0-3 4-5 6-7

Figura 6.16 Entrada de Diretório no Linux

•Divide o disco em múltiplos grupos de blocos.

–Política de alocação tenta colocar blocos relacionados de

um arquivo próximos fisicamente;

–Blocos de dados são colocados no mesmo grupo do seu

nó índice, sempre que possível;

–Blocos de nós índice são alocados no mesmo bloco de

seu diretório anterior;

–É utili zada pré-alocação de blocos para arquivos abertos;

–O problema da fragmentação é minimizado pois blocos

relacionados estão próximos (no mesmo cili ndro);

–Mantém informações relacionadas no mesmo bloco mas

também espalha a carga pelos blocos do disco;

–Grupos de blocos têm o mapa de bits da ocupação.

6.9 Segurança •Definição de Segurança e Proteção

–Segurança: problema geral, garantir que arquivos não são

acessados por pessoas não autorizadas;

Sistema de Arquivos 207

–Proteção: mecanismo utili zado pelo Sistema Operacional

para garantir a segurança (guardar a informação).

•Causas comuns de perdas de dados

–Atos de Deus;

–Erros de software ou hardware;

–Erros Humanos.

•Uso de cópias de segurança resolve problemas de perdas de

dados

•Ataques de Intrusos:

–Existem intrusos passivos, que somente desejam

consultar informações, e ativos (querem destruir ou

modificar as informações);

–Vários tipos de intrusos, com objetivos distintos;

–Segurança necessária depende do tipo de intruso.

•Privacidade

–Proteger o mau uso de informações sobre usuários;

–Existem questões legais e morais.

•Princípios Gerais para criar um Sistema Operacional Seguro

(Saltzer e Schroeder,1975):

208 Sistemas Operacionais

–Projeto público;

–Não permitir o acesso por default;

–Verificar a autoridade corrente;

–Dar o menor privilégio possível;

–Mecanismo simples de proteção;

–Aceitável Psicologicamente.

•Autenticação de Usuários

–Método mais comum é o uso de senhas.

•funcionamento no UNIX:

–o usuário entra com um login e uma

senha.

–existe um algoritmo de encriptação

conhecido, que somente consegue

codificar. É provado matematicamente que

a decodificação é impossível;

–o algoritmo é aplicado na senha entrada

pelo usuário e a string resultante é

comparada com a senha encriptada já

armazenada no sistema;

–caso as strings sejam iguais, o acesso é

Sistema de Arquivos 209

permitido;

–nem o administrador do sistema tem

acesso a senha real do usuário.

•a escolha de senhas é importante. Deve-se

combinar letras e números, letras maiúsculas e

minúsculas, não usar palavras do dia-a-dia, etc.

•quebra de senhas

–senha com 7 letras, escolha aleatória

dentre 95 caracteres. Com 1000

encriptações por segundo pode levar 2000

anos;

•a troca periódica de senhas garante uma maior

segurança;

•Outras alternativas para usar senhas são: One-time

password (livro com senhas que são utili zadas uma

única vez), questões e respostas encriptadas e

challenge-response (algoritmo do usuário com

perguntas desafiantes).

–Outros métodos de autenticação necessitam de

identificação física:

•Cartão Magnético

210 Sistemas Operacionais

•Medir características físicas:

–Impressão Digital;

–Identificação de Voz;

–Identificação de Retina;

–Análise de Assinatura;

–Medir Comprimento dos Dedos.

•Contramedidas:

–Registrar logins;

–Manter armadilhas;

–Monitorar os acessos discados.

6.9.1 Mecanismos de Proteção •Domínios de Proteção:

–Sistemas contêm objetos que devem ser protegidos

(hardware / software);

–Proibir processos de acessar objetos não autorizados;

–Domínio é um conjunto de pares (objeto, direitos);

–Direito é a permissão para realizar determinada operação

(ex.: RWX);

Sistema de Arquivos 211

–Um objeto pode pertencer a vários domínios com direitos

diferentes;

–Cada processo executa em um domínio.

•Domínio no UNIX:

–Definido pelo uid e gid;

–Dois processos com o mesmo uid e gid têm os mesmos

direitos. Definem os objetos acessados;

–Chamada de sistemas causa uma mudança de domínio;

–Bits SETUID e SETGID também permitem mudanças de

domínio;

pvm [R] src [RW] bin [RWX] cdrom [RX]

work [RW]private [RWX]

games [RX]printer [W]

cac, g3pd analu, users

Figura 6.17 Proteção no UNIX

•Domínio no MULTICS

–São usados anéis de proteção (domínio=anel);

–Existem 64 domínios distintos;

–Chamadas de um anel para outro geram traps que

212 Sistemas Operacionais

permitem mudança de domínio.

0 1 2 3

sistemaoperacional

utilitários críticos

professores

alunos

Figura 6.18 Proteção no MULT ICS

•Como o SO controla que processos pertencem a que domínios?

Conceitualmente:

–Grande matriz;

–Linhas domínios e colunas objetos;

–Domínios podem ser incluídos nas colunas para permitir

a troca de contexto;

R WRR W X WR

R WR WR W X

RR RWR

Arq1 Arq2 Arq3 Arq4 Arq5 Cdrom Pr inter Scanner

Objetos

Domín ios

1

2

3

...

...

...

...

... ... ... ... ... ... ... ... ...

Figura 6.19 Matriz de Proteção

Sistema de Arquivos 213

–Na prática impossível de implementar, pois matriz é

grande e esparsa.

•Listas de Controle de Acesso – ACL (Access Control List)

–Armazenar a matriz de proteção por colunas, mantendo

os elementos não vazios;

–Consiste em associar a cada objeto uma lista ordenada

contendo os domínios que podem acessar os objetos e de

que forma;

–É possível proibir usuários e grupos específicos de

acessar objetos, enquanto permite todos os outros de

mesma classe acessarem;

–UNIX usa uma ACL com 9 bits (RWX para dono, grupo

e outros);

–Donos de objetos podem alterar sua ACL;

–Alteração não afeta usuários que estão atualmente

usando.

•Capacidades

–Armazenar a matriz de proteção por linhas, mantendo os

elementos não vazios;

–Associar com cada processo uma lista de objetos que

214 Sistemas Operacionais

podem ser acessados, bem como as operações permitidas;

–Esta lista recebe o nome de lista de capacidade e cada

item individual (domínio) é chamado de capacidade;

–Campos da Lista de Capacidade:

•Tipo de Objeto;

•Permissões;

•Ponteiro para o Objeto.

–Deve-se proteger a Lista de Capacidade;

–É possível definir direitos genéricos aplicáveis a todos

objetos (ex.:copiar, remover, destruir).

6.10 Exercícios 1) O que são sistemas de arquivos?

2) O que são arquivos?

3) O que são diretórios?

4) Por que utili zar arquivos?

5) Fale sobre a extensão de arquivos. Cite 4 exemplos.

6) Descreva as três estruturas de arquivos estudadas. Qual a

melhor?

7) Quais os tipos de arquivos estudados? Descreva cada um

Sistema de Arquivos 215

deles.

8) Diferencie acesso seqüencial de acesso aleatório.

9) Descreva 5 atributos de arquivos.

10) Fale sobre 5 operações sobre arquivos.

11) O que são arquivos mapeados na memória? Por que utili zar?

12) Diferencie caminho relativo de absoluto.

13) Fale 5 operações sobre diretórios.

14) Como funciona a implementação de arquivos por alocação

contígua?

15) Disserte sobre a implementação de arquivos utili zando listas

encadeadas. Apresente vantagens e desvantagens.

16) Descreva a implementação de arquivos empregando a

alocação com listas encadeadas usando índice. Qual S.O

emprega esta abordagem?

17) O que são nós índice? Como funcionam? Qual a vantagem da

sua utili zação sobre a abordagem do MS-DOS?

18) Quais as informações que podem ser armazenadas em uma

entrada de diretório?

19) Como são os diretórios no CP/M?

216 Sistemas Operacionais 20) Descreva os diretórios no MS-DOS.

21) Como o UNIX implementa diretórios?

22) O que são e para que servem arquivos compartilhados?

23) Fale sobre links simbólicos. Compare com a outra alternativa

estudada.

24) Apresente e descreva as duas formas de gerenciar o espaço

livre em disco.

25) O que são cotas de disco?

26) Fale sobre o gerenciamento de blocos defeituosos.

27) Descreva o modo de testar a consistência de arquivos através

de blocos. Quais as possíveis situações?

28) Fale sobre o modo de testar a consistência de diretórios.

29) Diferencie segurança de proteção.

30) Como funciona o sistema de senhas no UNIX?

31) O que é um domínio de proteção?

32) Fale sobre listas de controle de acesso.

33) O que é lista de capacidades?

34) Fale sobre os modelos de proteção.

35) Diferencie FAT 16 de FAT 32. Apresente vantagens /

Sistema de Arquivos 217

desvantagens.

36) Explique como o Windows NT e LINUX implementam

arquivos.