sistemas operacionais #1 pontifícia universidade católica puc - minas poços de caldas sistemas...

61
Sistemas Operacionais #1 Pontifícia Universidade Católica PUC - Minas Poços de Caldas Sistemas Operacionais SISTEMA DE ARQUIVOS Prof. D.Sc. Eduardo Barrére DCC026

Upload: internet

Post on 17-Apr-2015

110 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: Sistemas Operacionais #1 Pontifícia Universidade Católica PUC - Minas Poços de Caldas Sistemas Operacionais SISTEMA DE ARQUIVOS Prof. D.Sc. Eduardo Barrére

Sistemas Operacionais #1

Pontifícia Universidade Católica PUC - Minas Poços de Caldas

Sistemas Operacionais

SISTEMA DE ARQUIVOSProf. D.Sc. Eduardo Barrére

DCC026

Page 2: Sistemas Operacionais #1 Pontifícia Universidade Católica PUC - Minas Poços de Caldas Sistemas Operacionais SISTEMA DE ARQUIVOS Prof. D.Sc. Eduardo Barrére

Sistemas Operacionais #2

Definição: “O sistema de arquivos de um SO é o módulo (ou conjunto de rotinas) do SO que associado à um protocolo de execução organiza, manipula e protege os arquivos”Boca

Existem 3 requisitos básicos para resolver o problema de armazenamento de informações a longo prazo:

Possibilidade de armazenar grande quantidade de informação;

A informação deve sobreviver ao término do processo;

Vários processos podem manipular, concorrentemente, a mesma informação.

Sistema de Arquivos

Page 3: Sistemas Operacionais #1 Pontifícia Universidade Católica PUC - Minas Poços de Caldas Sistemas Operacionais SISTEMA DE ARQUIVOS Prof. D.Sc. Eduardo Barrére

Sistemas Operacionais #3

Sistemas de ArquivosDiversidade de sistema de arquivos O Linux (por exemplo) suporta diversos tipos de sistemas de arquivos. Dentre esses pode-se destacar: Minix O mais antigo e presumivelmente o mais confiável, mas bastante limitado em características (algumas datas não aparecem , máximo de 30 caracteres para nome de arquivos, etc...) e restrito em armazenamento (no máximo 64 Mb por sistema de arquivos).

xia Uma versão modificada do sistema de arquivos minix, o qual aumenta os limites de nomes de arquivos e de sistemas de arquivos, mas não introduz novas facilidades. Não é muito popular, mas comenta-se seu bom funcionamento.

ext2 O mais poderoso e popular sistema de arquivos nativo do Linux. Desenhado para ser facilmente compatível com os avanços das novas versões, sem a necessidade de criar novamente os sistemas de arquivos já existentes.

ext Uma versão antiga do ext2 que não é mais compatível com versões atuais. É raro vê-la instalada em sistemas novos e mesmo os mais antigos têm sido convertidos para ext2.

ext3 Apresentada no final do tópico.

Page 4: Sistemas Operacionais #1 Pontifícia Universidade Católica PUC - Minas Poços de Caldas Sistemas Operacionais SISTEMA DE ARQUIVOS Prof. D.Sc. Eduardo Barrére

Sistemas Operacionais #4

Sistemas de Arquivos

Diversidade de sistema de arquivos

msdos Compatibilidade com MS-DOS (OS/2 e Windows NT) através de sistemas de arquivos FAT/FAT32.

umsdos Sistemas de arquivos MS-DOS estendidos para suportar nomes longos, donos, permissões, links e arquivos de dispositivos do Linux. Isso permite que um sistema de arquivos msdos possa ser usado como se fosse um sistema Linux, removendo a necessidade de uma partição distinta para o Linux.

iso9660 O sistema de arquivos padrão do CD-ROM. A extensão Rock Ridge que permite nomes longos também é suportada automaticamente.

nfs Sistemas de arquivos em redes que permitem o compartilhamento e o fácil acesso aos arquivos entre diversos computadores da rede.

hpfs O sistema de arquivos do OS/2.

sysv Sistema de arquivos do System V/386, Coherent e Xenix.

Page 5: Sistemas Operacionais #1 Pontifícia Universidade Católica PUC - Minas Poços de Caldas Sistemas Operacionais SISTEMA DE ARQUIVOS Prof. D.Sc. Eduardo Barrére

Sistemas Operacionais #5

Sistemas de Arquivos

Diversidade de sistema de arquivos

fat12 Usado em disquetes no DOS

fat16 Usado no DOS e oferece suporte até discos de 2GB

fat32 Também usado no DOS e oferece suporte a discos de até 2 Terabytes

Vfat Extensão para FAT para suportar nomes longos (além dos 8.3)

A opção do sistema de arquivos a ser usado depende da situação

A opção do sistema de arquivos a ser usado depende da situação

Qual sistema de arquivos deve ser usado?

Faz pouco sentido utilizar muitos sistemas de arquivos diferentes. Atualmente o ext2fs é o mais popular. Dependendo da necessidade de recursos adicionais na manutenção das estruturas, velocidade, segurança, estabilidade, compatibilidade e diversas outras razões, pode ser desejável utilizar outro tipo de sistema de arquivos. Isto deve ser decidido caso a caso.

Qual sistema de arquivos deve ser usado?

Faz pouco sentido utilizar muitos sistemas de arquivos diferentes. Atualmente o ext2fs é o mais popular. Dependendo da necessidade de recursos adicionais na manutenção das estruturas, velocidade, segurança, estabilidade, compatibilidade e diversas outras razões, pode ser desejável utilizar outro tipo de sistema de arquivos. Isto deve ser decidido caso a caso.

Page 8: Sistemas Operacionais #1 Pontifícia Universidade Católica PUC - Minas Poços de Caldas Sistemas Operacionais SISTEMA DE ARQUIVOS Prof. D.Sc. Eduardo Barrére

Sistemas Operacionais #8

Sistemas de Arquivos

Partições São divisões existentes no disco rígido que marcam onde começa onde termina um sistema de arquivos. Por causa destas divisões, nós podemos usar mais de um sistema operacional no mesmo computador (como o GNU/Linux, Windows e DOS), ou dividir o disco rígido em uma ou mais partes para ser usado por um único sistema operacional.

Uma partição de disco não interfere em outras partições existentes, por este motivo é possível

usar o Windows, GNU/Linux e qualquer outro sistema operacional no mesmo disco

Uma partição de disco não interfere em outras partições existentes, por este motivo é possível

usar o Windows, GNU/Linux e qualquer outro sistema operacional no mesmo disco

Page 9: Sistemas Operacionais #1 Pontifícia Universidade Católica PUC - Minas Poços de Caldas Sistemas Operacionais SISTEMA DE ARQUIVOS Prof. D.Sc. Eduardo Barrére

Sistemas Operacionais #9

MBRO arranque de um sistema PC segue os seguintes passos: 1) POST (Power On Self Test).2) Aquisição dos dados do BIOS e reprogramação do suporte I/O.3) Leitura do primeiro setor do disco (MBR) de boot. Exemplo: IDE 0/Master).

O MBR contém 512 bytes de informação da estrutura organizacional do disco (partições, código de carga do SO, e assinatura desse código):

Estrutura do Master Boot Record

Código de arranque do SO Master Partition Table (MPT) Assinatura

446 bytes 16 bytes 16 bytes 16 bytes 16 bytes 2 bytes

A MPT contém códigos identificativos do tipo da partição e alguns dados sobre a mesma (se é a partição ativa (carga do SO) posição no disco, tamanho, etc.).

Problema: só podem existir 4 partições primárias!

Solução: Partições estendidas (criação de partições lógicas).

Page 10: Sistemas Operacionais #1 Pontifícia Universidade Católica PUC - Minas Poços de Caldas Sistemas Operacionais SISTEMA DE ARQUIVOS Prof. D.Sc. Eduardo Barrére

Sistemas Operacionais #10

Um arquivo é identificado por um nome e uma extensão.

Ex: teste.txt (mera convenção p/ usuário)

As Formas de Estrutura do Arquivo:

byte

Arquivos

Fornece flexibilidade, o usuário armazena qualquer tipo de dado nos arquivos. SO não ajuda, nem atrapalha

Page 11: Sistemas Operacionais #1 Pontifícia Universidade Católica PUC - Minas Poços de Caldas Sistemas Operacionais SISTEMA DE ARQUIVOS Prof. D.Sc. Eduardo Barrére

Sistemas Operacionais #11

registro

Arquivos

Seqüência de registros de tamanho fixo para poder fazer operações de leitura e gravação de uma só vez;

Pré-história dos cartões: cada registro era constituído por 80 caracteres.

Último SO que utilizou essa forma: CP/M-86, pai do MS- DOS ( eu utilizei )

Page 12: Sistemas Operacionais #1 Pontifícia Universidade Católica PUC - Minas Poços de Caldas Sistemas Operacionais SISTEMA DE ARQUIVOS Prof. D.Sc. Eduardo Barrére

Sistemas Operacionais #12

Arquivos

Um Arquivo pode ser constituído por uma árvore de registros

A árvore é ordenada por uma chave para permitir buscas rápidas

Objetivo não era determinar o próximo registro mas um entre vários.

Alguns mainframes ainda utilizam.

Ana Cláudia Teresa

Beatriz Camila Daniele Patrícia Tina Vanessa

Isabela Maria

Registro

Page 13: Sistemas Operacionais #1 Pontifícia Universidade Católica PUC - Minas Poços de Caldas Sistemas Operacionais SISTEMA DE ARQUIVOS Prof. D.Sc. Eduardo Barrére

Sistemas Operacionais #13

Entre os tipos de arquivo suportados pelo SO temos:

Arquivos de Diretório: manutenção do sistema de arquivo (contém a hierarquia); Apontam para arquivos;

Arquivos Especiais de Caracteres: permite a modelagem de dispositivos de I/O (tabela de conversões); No Linux residem em /dev;

Arquivos Regulares: Informações do usuário. ASCII ou binários, executáveis.

Tipos de Arquivo

Page 14: Sistemas Operacionais #1 Pontifícia Universidade Católica PUC - Minas Poços de Caldas Sistemas Operacionais SISTEMA DE ARQUIVOS Prof. D.Sc. Eduardo Barrére

Sistemas Operacionais #14

Arquivos de Dispositivo

Nome Tipo Maior Menor Descrição

/dev/fd0 Bloco 2 0 Unidade de disquete 0 (driver A)

/dev/hda Bloco 3 0 Disco IDE primário

/dev/hda1 Bloco 3 1 Primeira partição do disco IDE primário

/dev/hda2 Bloco 3 2 Segunda partição do disco IDE primário

/dev/tty0 Caractere 3 0 Terminal

/dev/lp1 Caractere 4 1 Impressora paralela

/dev/console Caractere 1 1 Teclado

 

Page 15: Sistemas Operacionais #1 Pontifícia Universidade Católica PUC - Minas Poços de Caldas Sistemas Operacionais SISTEMA DE ARQUIVOS Prof. D.Sc. Eduardo Barrére

Sistemas Operacionais #15

Os arquivos podem ser acessados de dois modos:

Seqüencial: um processo não pode ler um byte ou registro sem antes ter lido todos os outros anteriores a ele;

Aleatório ou Randômico: permite o acesso a um byte independente da sua posição dentro do arquivo (operação SEEK). É o modo padrão do SO.

Acesso a Arquivos

Page 16: Sistemas Operacionais #1 Pontifícia Universidade Católica PUC - Minas Poços de Caldas Sistemas Operacionais SISTEMA DE ARQUIVOS Prof. D.Sc. Eduardo Barrére

Sistemas Operacionais #16

Além do nome e de um conjunto de informações, o arquivo também deve conter vários atributos que são importantes para o seu gerenciamento.

Exemplos:Proteção (diz quem tem acesso), Proprietário (identifica o proprietário), Leitura (readonly), Ocultação (não aparece em dir.), Sistema (identifica se é do SO), Backup (identifica se foi feito backup), ASCII/Binário, Data, Hora, Tamanho do Arquivo, etc.

Atributos dos Arquivos

Page 17: Sistemas Operacionais #1 Pontifícia Universidade Católica PUC - Minas Poços de Caldas Sistemas Operacionais SISTEMA DE ARQUIVOS Prof. D.Sc. Eduardo Barrére

Sistemas Operacionais #17

Atributos dos Arquivosd rwx rwx rwx

Tipo de Arquivo Proprietário Grupo Sistema

'd‘=diretório'l‘ = link'c' e 'b' = dispositivos (/dev).

‘r‘ = leitura‘w‘ = escrita‘x' = execução

Exemplos:drwxr-xr-x   bin -rw-rw-r--   teste.txt crw-rw----   audio     14,   4 Dec  2  1999 audiobrw-rw----   cdrom     22,  64 May  5  1998 hddlrwxrwxrwx 1 ze users 29 Aug 18 12:33 efr -> /www/ns-home/docs/

Page 18: Sistemas Operacionais #1 Pontifícia Universidade Católica PUC - Minas Poços de Caldas Sistemas Operacionais SISTEMA DE ARQUIVOS Prof. D.Sc. Eduardo Barrére

Sistemas Operacionais #18

Número Significado

0 Nenhuma permissão

1 Permissão para executar

2 Permissão para gravar

3 Permissão para gravar e executar

4 Permissão para ler

5 Permissão para ler e executar

6 Permissão para ler e gravar

7 Permissão para ler, gravar e executar

$ chmod 664 arquivo.txt

Atributos dos Arquivos

Page 19: Sistemas Operacionais #1 Pontifícia Universidade Católica PUC - Minas Poços de Caldas Sistemas Operacionais SISTEMA DE ARQUIVOS Prof. D.Sc. Eduardo Barrére

Sistemas Operacionais #19

Os executáveis (ou binários) também recebem a denominação de PE (“Portable Executable”). É um padrão estabelecido pela Microsoft nos primórdios do Windows, onde decidiram criar um formato de binário capaz de rodar em qualquer outra versão do Windows. Um executável no formato PE possui uma estrutura um tanto quanto complexa, mas ao mesmo tempo muito organizada e versátil.

Cabeçalho de um Arquivo exe

Uma característica interessante sobre os arquivos PE é que eles são armazenados na memória da mesma forma que eles ficam em disco, mantendo a estrutura no arquivo praticamente idêntica nos dois casos. Quando o usuário requisita a execução de um aplicativo, o Windows Loader analisa o cabeçalho do PE. Feito isso, ele possui as informações necessárias para poder copiar o executável do disco rígido para a RAM. No entanto, ele não é carregado para a RAM exatamente da mesma forma que ele se encontra no Windows. O Loader precisa fazer alguns ajustes.Esses ajustes são necessários devido à forma com que o S.O. da Microsoft gerencia a memória, utilizando uma memória virtual paginada. Quando as seções são carregadas para a memória, o Windows alinha cada uma delas para caber em páginas de 4KB.

Page 20: Sistemas Operacionais #1 Pontifícia Universidade Católica PUC - Minas Poços de Caldas Sistemas Operacionais SISTEMA DE ARQUIVOS Prof. D.Sc. Eduardo Barrére

Sistemas Operacionais #20

Cabeçalho de um Arquivo exeO arquivo é organizado basicamente desta maneira:• Cabeçalho DOS: DOS não tem utilidade prática dentro do sistema Windows, ele serve apenas para apresentar uma mensagem avisando o usuário que o aplicativo em questão não pode ser utilizado em modo texto • Cabeçalho Windows: estão todas as informações básicas necessárias para que o aplicativo funcione, como o número de seções, tamanho de cada seção e início das mesmas, onde iniciar a execução do código, dentro dezenas de outras configurações.• Tabela de Seções: i nformações referentes a cada uma das seções:

• Seção de código - Code Section ( .text ou .code )• Seção de recursos – Resource Section ( .rsrc )• Seção de dados – Data Section ( .data )• Seção de exportação – Export data section ( .edata )• Seção de importação - Import data section ( .idata )• Informações de debug - Debug information ( .debug )

• Seção 1 a N;

Page 21: Sistemas Operacionais #1 Pontifícia Universidade Católica PUC - Minas Poços de Caldas Sistemas Operacionais SISTEMA DE ARQUIVOS Prof. D.Sc. Eduardo Barrére

Sistemas Operacionais #21

Cabeçalho de um Arquivo exe

Page 22: Sistemas Operacionais #1 Pontifícia Universidade Católica PUC - Minas Poços de Caldas Sistemas Operacionais SISTEMA DE ARQUIVOS Prof. D.Sc. Eduardo Barrére

Sistemas Operacionais #22

O SO fornece um conjunto de operações

básicas:

Create;

Delete;

Open;

Close;

Read;

Write;

Append;

Seek;

Get Attributes;

Set Attributes;

Rename;

Operações sobre Arquivos

Page 23: Sistemas Operacionais #1 Pontifícia Universidade Católica PUC - Minas Poços de Caldas Sistemas Operacionais SISTEMA DE ARQUIVOS Prof. D.Sc. Eduardo Barrére

Sistemas Operacionais #23

O SO utiliza um sistema hierárquico para manipular os arquivos,

chamado diretório.

Um diretório contém um

conjunto de entradas,

uma para cada arquivo

ou diretório

filho (subdiretório).

Diretório

U su á r io1

U su á r io2

U su á r io3

U su á r ion

D iretó rio Ra iz

D iretó rio1

D iretó rio2

A rq u ivo1

A rq u ivo1

D iretó rio1

A rq u ivo1

A rq u ivo2

A rq u ivo1

A rq u ivo2

A rq u ivo1

A rq u ivo1

A rq u ivo2

Page 24: Sistemas Operacionais #1 Pontifícia Universidade Católica PUC - Minas Poços de Caldas Sistemas Operacionais SISTEMA DE ARQUIVOS Prof. D.Sc. Eduardo Barrére

Sistemas Operacionais #24

Nomes de Arquivo

Regras para formar o nome de um arquivo: Nome de caminho absoluto;

Nome de arquivo relativo.

tmpusrlibect

ectlibusrtmp

eduze

edu ze

Page 25: Sistemas Operacionais #1 Pontifícia Universidade Católica PUC - Minas Poços de Caldas Sistemas Operacionais SISTEMA DE ARQUIVOS Prof. D.Sc. Eduardo Barrére

Sistemas Operacionais #25

Diretório LinuxA estrutura de diretórios de um linux típico é mostrada nesta tabela:

binArquivos executáveis(binários) de comandos essenciais pertencentes ao sistema e que são usados com freqüencia.

boot Arquivos estáticos de boot de inicialização(boot-loader)

dev Arquivos de dispositivos de entrada/saída

etcConfiguração do sistema da máquina local com arquivos diversos para a administração de sistema.

home Diretórios local(home) dos usuários

lib Arquivos da biblilotecas compartilhadas usados com freqüencia

mnt Ponto de montagem de partição temporários

root Diretório local do superusuário (root)

sbin Arquivos essenciais do SO

tmp Arquivos temporários gerados por alguns utilitários

usr Todos os arquivos de usuários devem estar aqui (segunda maior hierárquia)

var Informação variável

Page 26: Sistemas Operacionais #1 Pontifícia Universidade Católica PUC - Minas Poços de Caldas Sistemas Operacionais SISTEMA DE ARQUIVOS Prof. D.Sc. Eduardo Barrére

Sistemas Operacionais #26

Um ponto importante no desempenho do SO é a maneira como é implementado o Sistema de Arquivos, ou

seja, como os arquivos são associados aos blocos do disco. As implementações mais usuais são:

• Alocação Contígua;

• Alocação Encadeada;

• Alocação com Índices;

• I - nodes;

Sist. de Arquivo: Implementação

Page 27: Sistemas Operacionais #1 Pontifícia Universidade Católica PUC - Minas Poços de Caldas Sistemas Operacionais SISTEMA DE ARQUIVOS Prof. D.Sc. Eduardo Barrére

Sistemas Operacionais #27

Problema: É necessário sabermos o tamanho do arquivo no momento da sua criação;

É o esquema mais simples de alocação.

Arq1 Arq2 Arq3 Bloco

12K 10K 5K 3K

Alocação Contígua

Page 28: Sistemas Operacionais #1 Pontifícia Universidade Católica PUC - Minas Poços de Caldas Sistemas Operacionais SISTEMA DE ARQUIVOS Prof. D.Sc. Eduardo Barrére

Sistemas Operacionais #28

Alocação Contígua

0 1 2

3 4 5

6 7 8

9 10 11

12 13 14

Arquivo Bloco

A. TXT 4

B. TXT 10

C. TXT 13

3

1

2

Extensão

• Não exige o índice do próximo.

Page 29: Sistemas Operacionais #1 Pontifícia Universidade Católica PUC - Minas Poços de Caldas Sistemas Operacionais SISTEMA DE ARQUIVOS Prof. D.Sc. Eduardo Barrére

Sistemas Operacionais #29

Bloco 5 8 12 10 4 7 9

Bloco 0 do

Arq1

Bloco 1 do

Arq1

Bloco 2 do

Arq1

0Bloco 3

do Arq1

Bloco 0 do

Arq2

Bloco 1 do

Arq2

0Bloco 2

do Arq2

Problemas: O acesso randômico ao disco é extremamente lento e mais difícil de ser implementado do que o seqüencial;O tamanho do bloco não é totalmente utilizado para o armazenamento dos dados (2 bytes para o ponteiro).

Alocação EncadeadaConsiste em manter o espaço alocado ao arquivo através de uma

lista ligada de blocos, atenuando o problema da fragmentação.

Page 30: Sistemas Operacionais #1 Pontifícia Universidade Católica PUC - Minas Poços de Caldas Sistemas Operacionais SISTEMA DE ARQUIVOS Prof. D.Sc. Eduardo Barrére

Sistemas Operacionais #30

Alocação Encadeada

Início

0 1 2

3 4 5

6 7 8

9 10 11

12 13 14

Arquivo Bloco

A.TXT 6

. . . . . .

. . . . . .

. . . . . .

. . . . . .

• Cada bloco, em disco, deve armazenar o índice do próximo.

• A tabela só mantém o primeiro bloco do arquivo.

Page 31: Sistemas Operacionais #1 Pontifícia Universidade Católica PUC - Minas Poços de Caldas Sistemas Operacionais SISTEMA DE ARQUIVOS Prof. D.Sc. Eduardo Barrére

Sistemas Operacionais #31

Problema:

A tabela deve estar na

memória principal

durante todo o tempo (é

utilizado pelo MS-DOS,

chama-se FAT).

Este método resolve os problemas da Lista Ligada,

mantendo os ponteiros em uma tabela.

Alocação: Lista usando Índice

Page 32: Sistemas Operacionais #1 Pontifícia Universidade Católica PUC - Minas Poços de Caldas Sistemas Operacionais SISTEMA DE ARQUIVOS Prof. D.Sc. Eduardo Barrére

Sistemas Operacionais #32

Alocação: Lista usando Índice

0 1 2

3 4 5

6 7 8

9 10 11

12 13 14

Bloco deÍndices (FAT)

310117

Vai para a memória RAM

•A tabela mantém todos os blocos do arquivo.

Page 33: Sistemas Operacionais #1 Pontifícia Universidade Católica PUC - Minas Poços de Caldas Sistemas Operacionais SISTEMA DE ARQUIVOS Prof. D.Sc. Eduardo Barrére

Sistemas Operacionais #33

Nós-i (nós - índice, i-node)

• Não existe fragmentação: Todo arquivo é mantido a partir de um “ramo” da árvore. Qualquer acesso ao arquivo ficará limitado a este ramo.

• A combinação dos blocos, originalmente composto por 512K, pode ser alocado em conjunto a outros blocos formando espaços de endereçamento com diferentes tamanhos.

• Na exclusão de arquivos desliga-se apenas os ponteiros para o bloco inicial.

Page 34: Sistemas Operacionais #1 Pontifícia Universidade Católica PUC - Minas Poços de Caldas Sistemas Operacionais SISTEMA DE ARQUIVOS Prof. D.Sc. Eduardo Barrére

Sistemas Operacionais #34

Nós-i (nós - índice, i-node)Utiliza uma estrutura hierárquica maleável para endereçar os blocos do

arquivo (é utilizado pelos like - UNIX).

Atributos

Endereço bloco 0

Endereço bloco 1

Endereço bloco 2

Endereço bloco 3

Endereço bloco 4

Endereços adicionais

Endereços adicionais

Endereços adicionais

I-nodeRe

dire

cion

amen

to ú

nico

Redire

cionam

ento duplo

Redirecionamento triplo

Bloco de dados

Page 35: Sistemas Operacionais #1 Pontifícia Universidade Católica PUC - Minas Poços de Caldas Sistemas Operacionais SISTEMA DE ARQUIVOS Prof. D.Sc. Eduardo Barrére

Sistemas Operacionais #35

Arquivos CompartilhadosAlguns arquivos devem compartilhados por vários usuários como: arquivos de

configuração, bases de dados e arquivos de projetos, entre outros.

A B C

A B C

B

B ?

C

C

C

Diretório

Arquivo

Dois diretórios (B e C) mantém entradas iguais.

Page 36: Sistemas Operacionais #1 Pontifícia Universidade Católica PUC - Minas Poços de Caldas Sistemas Operacionais SISTEMA DE ARQUIVOS Prof. D.Sc. Eduardo Barrére

Sistemas Operacionais #36

Controle de Blocos LivresExistem três modos para controlar os blocos livres de um disco:

lista de blocos, mapa de bits e tabela de blocos livres

Lista de Blocos

Cada bloco livre aponta para

outro bloco livre.

O primeiro da lista será o

próximo a ser utilizado.

Início

Lista encadeada

Page 37: Sistemas Operacionais #1 Pontifícia Universidade Católica PUC - Minas Poços de Caldas Sistemas Operacionais SISTEMA DE ARQUIVOS Prof. D.Sc. Eduardo Barrére

Sistemas Operacionais #37

Controle de Blocos Livres

Mapa de bits

Cada bloco do disco tem um

bit correspondente, sendo

que zero indica bloco livre e

um indica bloco ocupado.

Independente da quantidade

de blocos livres temos o

mesmo espaço ocupado pelo

mapa de bits.

11001101

11100000

.

.

.

01110100

10000111

(a) Mapa de bits

Page 38: Sistemas Operacionais #1 Pontifícia Universidade Católica PUC - Minas Poços de Caldas Sistemas Operacionais SISTEMA DE ARQUIVOS Prof. D.Sc. Eduardo Barrére

Sistemas Operacionais #38

Controle de Blocos Livres

Tabela de Blocos Livres

O sistema operacional mantém

em disco uma tabela

(constantemente atualizada)

que identifica o endereço dos

blocos livres

Bloco Endereço

4 2

10 1

25 20

13 7

50 5

Tabela de blocos livres

Page 39: Sistemas Operacionais #1 Pontifícia Universidade Católica PUC - Minas Poços de Caldas Sistemas Operacionais SISTEMA DE ARQUIVOS Prof. D.Sc. Eduardo Barrére

Sistemas Operacionais #39

FAT (File Alocation Table)

Sistema de Arquivos FAT

Disco Rígido P1 P2 P3 ...

A B C ....

A. Setor de Boot Primário: contém informação para boot inicial, é lida pela ROM, altamente dependente de máquina, contém tamanho dos setores, tamanho do diretório raiz,qual partição está ativa, etc.

B. C. Partições do disco: cada uma delas pode conter um sistema operacional diferente e independente.

Page 40: Sistemas Operacionais #1 Pontifícia Universidade Católica PUC - Minas Poços de Caldas Sistemas Operacionais SISTEMA DE ARQUIVOS Prof. D.Sc. Eduardo Barrére

Sistemas Operacionais #40

FAT (File Alocation Table)

Sistema de Arquivos FAT

Disco Rígido P1 P2 P3 ...

A B C ....

FAT1 FAT2 RootP1 DadosBS

BS. Boot Secundário: contém endereços e info. sobre o SO que será carregado (end. do dir. raiz)

FAT: alguns casos ela é duplicada, contém entradas para cada bloco de dados.

Root: diretório raiz. Dados: dados do usuário.

Page 41: Sistemas Operacionais #1 Pontifícia Universidade Católica PUC - Minas Poços de Caldas Sistemas Operacionais SISTEMA DE ARQUIVOS Prof. D.Sc. Eduardo Barrére

Sistemas Operacionais #41

Sistema de Arquivos FAT

XX

eof13298

free

4

12

3free

eof

eof

eof

eof

01234567

8

9

1011

12

13

14

15...

FAT } Informações a respeito do tamanho do disco

Arquivo A: 6 8 4 2

Arquivo B: 5 9 12

Arquivo C: 10 3 13

A entrada de cada diretório contém apenas o bloco inicial

para cada arquivo. A FAT cuida do resto!

Page 42: Sistemas Operacionais #1 Pontifícia Universidade Católica PUC - Minas Poços de Caldas Sistemas Operacionais SISTEMA DE ARQUIVOS Prof. D.Sc. Eduardo Barrére

Sistemas Operacionais #42

Sistema de Arquivos NFS

NFS (Network File System): Primeiro passo para se ter um sistema distribuído.Filosofia que engloba os sistemas de arquivos para SO´s

like-Unix, i. e., não representa um sistema de arquivos propriamente dito.

NFS pode ser dividido em:

1. Arquitetura

2. Protocolos

3. Implementação

Page 43: Sistemas Operacionais #1 Pontifícia Universidade Católica PUC - Minas Poços de Caldas Sistemas Operacionais SISTEMA DE ARQUIVOS Prof. D.Sc. Eduardo Barrére

Sistemas Operacionais #43

Sistema de Arquivos NFS

Arquitetura NFS

Idéia básica: compartilhar os arquivos comuns

Cada servidor exporta (automaticamente, no Boot) seus arquivos que estão no diretório /etc/exports

Muitas estações SUN são diskless, neste caso cada cliente monta (mount) seu próprio diretório no servidor

Page 44: Sistemas Operacionais #1 Pontifícia Universidade Católica PUC - Minas Poços de Caldas Sistemas Operacionais SISTEMA DE ARQUIVOS Prof. D.Sc. Eduardo Barrére

Sistemas Operacionais #44

Sistema de Arquivos NFS

Protocolos NFSÉ a “conversa” que existe entre servidor e clientes para negociar o compartilhamento e acesso aos arquivos (tamanho dos nomes, atributos de segurança, propriedade, etc.)

Cada requisição pode exigir uma resposta

Não é necessário que o servidor conheça algo sobre seus clientes (idem ao contrário)

Consulte o Tanembaum. Lá são descritas as possibilidades de ocorrência de erro na comunicação entre servidor/cliente e

quais os procedimentos possíveis.

Consulte o Tanembaum. Lá são descritas as possibilidades de ocorrência de erro na comunicação entre servidor/cliente e

quais os procedimentos possíveis.

Page 45: Sistemas Operacionais #1 Pontifícia Universidade Católica PUC - Minas Poços de Caldas Sistemas Operacionais SISTEMA DE ARQUIVOS Prof. D.Sc. Eduardo Barrére

Sistemas Operacionais #45

Sistema de Arquivos NFS

Implementação do NFSA implementação dos códigos dos clientes e dos servidores são independentes.

Cliente

Chamada de sistema

Sistema de arquivos virtual

SO Local Cliente NFS

C:\local

MSG para servidor

Read, close, etc

Identifica se o arquivo é local

Contém R-node

Servidor

Sistema de arquivos virtual

SO LocalServidor NFS

H:\MSG do cliente

Page 46: Sistemas Operacionais #1 Pontifícia Universidade Católica PUC - Minas Poços de Caldas Sistemas Operacionais SISTEMA DE ARQUIVOS Prof. D.Sc. Eduardo Barrére

Sistemas Operacionais #46

Sistema de Arquivos NTFS

Projeto

Esses dois sistemas de arquivos tinham várias limitações, levando a Microsoft a desenvolver um novo sistema de arquivos denominado NTFS (Windows NT File System).

NTFS oferece a recuperação do sistema com base em um modelo de processamento de transação. Processamento de transação é um modelo usado por bancos de dados para manter a integridade dos dados caso haja uma falha na alteração dos dados. O princípio básico desta técnica é que as transações (escrita ou leitura dos dados no disco) são executadas atomicamente

NTFS oferece a recuperação do sistema com base em um modelo de processamento de transação. Processamento de transação é um modelo usado por bancos de dados para manter a integridade dos dados caso haja uma falha na alteração dos dados. O princípio básico desta técnica é que as transações (escrita ou leitura dos dados no disco) são executadas atomicamente

No inicio: FAT para MS-DOS e Windows / e o HPFS para OS/2. Hoje: Protect Mode FAT File System (FAT16 e FAT32) – Windows 95/98/meNTFS: Windows 2000/NT/XP

2000/XP

Page 47: Sistemas Operacionais #1 Pontifícia Universidade Católica PUC - Minas Poços de Caldas Sistemas Operacionais SISTEMA DE ARQUIVOS Prof. D.Sc. Eduardo Barrére

Sistemas Operacionais #47

Sistema de Arquivos NTFS

Segurança

Os arquivos são implementados como objetos de arquivo, estes objetos possuem um descritor de segurança que fica armazenado no disco.

Quando um processo requisita determinado arquivo o sistema de segurança verifica se este processo possui autorização para tal operação (execução, leitura ou escrita). O sistema compara o descritor de segurança do arquivo com as características do usuário e as permissões dadas a esse usuário, se o usuário tiver permissão para tal operação o sistema libera o processo para realizá-la, caso contrario o sistema informa ao usuário que a operação falhou por que o usuário não possui permissão para a operação

Page 48: Sistemas Operacionais #1 Pontifícia Universidade Católica PUC - Minas Poços de Caldas Sistemas Operacionais SISTEMA DE ARQUIVOS Prof. D.Sc. Eduardo Barrére

Sistemas Operacionais #48

Sistema de Arquivos NTFS

Capacidade de armazenamento:

NTFS aloca clusters e usa 64 bits para endereçá-los, cada um com até 64Kb. Cada arquivo pode ter até 18446744073709551616 bytes de extensão. (“hexa” qualquer coisa bytes, segundo Cláudio: Porabytes ).O tamanho do cluster é ajustável, com um tamanho mínimo de 512 bytes para discos menores e máximo de 64Kb para discos grandes. Embora o NTFS use 64bits (8 bytes) para representar cada alocação de disco, ele codifica os endereços de modo que ocupem apenas de 3 a 5 bytes (meu Deus...)

Page 49: Sistemas Operacionais #1 Pontifícia Universidade Católica PUC - Minas Poços de Caldas Sistemas Operacionais SISTEMA DE ARQUIVOS Prof. D.Sc. Eduardo Barrére

Sistemas Operacionais #49

Sistema de Arquivos NTFS

Unicode

O NTFS armazena os nomes de arquivos, diretórios e volumes usando Unicode. Foi usado o Unicode para tornar o sistema utilizável sem mudanças para qualquer tipo de idioma, tornando o sistema o mais universal possível.

O que é Unicode?Unicode fornece um número único para cada caractere,

não importa a plataforma,não importa o programa,

não importa a língua.

O que é Unicode?Unicode fornece um número único para cada caractere,

não importa a plataforma,não importa o programa,

não importa a língua.

Antes de o Unicode ser inventado, havia centenas de sistemas diferentes de codificação . Nenhum destes sistemas de codificação, no entanto, poderia conter

caracteres suficientes: por exemplo, a União Européia por si só requer vários sistemas de codificação diferentes para cobrir todas a línguas. Mesmo para uma

única língua como o inglês não havia sistema de codificação adequado para todas as letras, pontuação e símbolos técnicos em uso corrente.

Antes de o Unicode ser inventado, havia centenas de sistemas diferentes de codificação . Nenhum destes sistemas de codificação, no entanto, poderia conter

caracteres suficientes: por exemplo, a União Européia por si só requer vários sistemas de codificação diferentes para cobrir todas a línguas. Mesmo para uma

única língua como o inglês não havia sistema de codificação adequado para todas as letras, pontuação e símbolos técnicos em uso corrente.

Qual o ascii desta letra grega ?! Җ

Page 50: Sistemas Operacionais #1 Pontifícia Universidade Católica PUC - Minas Poços de Caldas Sistemas Operacionais SISTEMA DE ARQUIVOS Prof. D.Sc. Eduardo Barrére

Sistemas Operacionais #50

Sistema de Arquivos NTFS

POSIX

O sistema NTFS suporta POSIX (Portable Operating System Interface) totalmente. O padrão POSIX exige: nomes de diretórios e arquivos se diferenciem pela caixa alta e caixa baixa, uma marca de "hora de mudança do arquivo" e atalhos (links)

Posix define características como proteção entre

processos (crash protection), carregamento por

demanda, redes TCP/IP, alem de nomes de arquivos

com até 255 caracteres, suporte a UNICODE, shared

libraries, memória virtual, etc.

Posix define características como proteção entre

processos (crash protection), carregamento por

demanda, redes TCP/IP, alem de nomes de arquivos

com até 255 caracteres, suporte a UNICODE, shared

libraries, memória virtual, etc.

Page 51: Sistemas Operacionais #1 Pontifícia Universidade Católica PUC - Minas Poços de Caldas Sistemas Operacionais SISTEMA DE ARQUIVOS Prof. D.Sc. Eduardo Barrére

Sistemas Operacionais #51

Sistema de Arquivos NTFS

Estrutura no disco

VolumesO volume corresponde a uma partição lógica no disco, estes volumes podem ou não ser tolerantes a falhas. Um disco pode conter vários volumes que são independentes uns dos outros.

Clusters O cluster é a unidade fundamental de alocação do NTFS, o tamanho do cluster é estabelecido quando o usuário formata o disco. O tamanho do cluster dependendo do tamanho da partição formatada.

O NTFS refere-se aos locais físicos no disco através de números de cluster lógicos (LCN - logical cluster numbers), que são simplesmente a numeração de todos os clusters do início até o final do disco. Os dados do arquivo são referenciados através de números de cluster virtuais (VCN - virtual cluster number), que são valores seqüenciais de 0 a m. Para poder acessar os dados no disco, o sistema NTFS transforma os endereços VCN em LCN assim localizando em que região do disco está o dado.

O arquivo teste.txt possui VCN 5 (como se fosse endereço FAT), o VCN 5 está relacionado ao LCN 1302 que por sua vez corresponde ao endereço

físico AF4415512. Coisas da Microsoft...

O arquivo teste.txt possui VCN 5 (como se fosse endereço FAT), o VCN 5 está relacionado ao LCN 1302 que por sua vez corresponde ao endereço

físico AF4415512. Coisas da Microsoft...

Page 52: Sistemas Operacionais #1 Pontifícia Universidade Católica PUC - Minas Poços de Caldas Sistemas Operacionais SISTEMA DE ARQUIVOS Prof. D.Sc. Eduardo Barrére

Sistemas Operacionais #52

Sistema de Arquivos NTFS

Estrutura no disco

Tabela de Arquivo Mestre (MFT – Master File Table)

Todos os dados, estruturas de busca, dados de inicialização, bootstrap do NTFS estão contidos em arquivos, não estando restritos a uma região especifica do disco. Manter esses dados em arquivos permite que o sistema localize e mantenha os dados com facilidade, além do mais caso alguma parte do disco se torne defeituosa é possível modificar a localização destes arquivos para que o sistema não se torne inacessível.

A MFT é a principal estrutura localizada no disco. A MFT é uma matriz de registro de arquivo de 1Kb cada, logicamente a MFT contém uma linha para cada arquivo no volume. Além da MFT cada volume contém uma série de arquivo de metadados (arquivo de log, arquivo de cluster defeituosos, além de outros usados pelo sistema), o restante dos arquivos são arquivos e diretórios de usuários.

Ou seja, pegaram a FAT e deram um trato nela. Fizeram escova, passaram um

batonzinho...

Ou seja, pegaram a FAT e deram um trato nela. Fizeram escova, passaram um

batonzinho...

Page 53: Sistemas Operacionais #1 Pontifícia Universidade Católica PUC - Minas Poços de Caldas Sistemas Operacionais SISTEMA DE ARQUIVOS Prof. D.Sc. Eduardo Barrére

Sistemas Operacionais #53

Sistema de Arquivos NTFS

Compactação de dadosO NTFS suporta a compactação dos dados do disco automaticamente, apenas é necessário especificar quais locais do volume serão compactados. Escolher esta opção de compactação dos dados denigre o desempenho do sistema para escrita e leitura dos dados, muitas vezes não sendo indicados para usuários que necessitem de desempenho, já que hoje em dia espaço em disco não é um custo tão alto

A compactação no NTFS pode ser realizada em arquivo, diretório ou volume, além disso apenas arquivos do usuário são compactados, não compactando os arquivos de metadados (bitmaps, bootstrap, MFT,etc).

A compactação no NTFS pode ser realizada em arquivo, diretório ou volume, além disso apenas arquivos do usuário são compactados, não compactando os arquivos de metadados (bitmaps, bootstrap, MFT,etc).

Page 54: Sistemas Operacionais #1 Pontifícia Universidade Católica PUC - Minas Poços de Caldas Sistemas Operacionais SISTEMA DE ARQUIVOS Prof. D.Sc. Eduardo Barrére

Sistemas Operacionais #54

Sistema de Arquivos NTFS

Tolerância a Falhas

Conjunto de espelhos: No conjunto de espelho, o conteúdo de uma partição em disco é duplicado em uma partição do mesmo tamanho em outro disco. Quando um programa grava em C:, FtDisk grava os mesmos dados no mesmo local na partição espelho. Além disso, o conjunto espelho pode ajudar na atividade de I/O, em sistemas muito sobrecarregados, equilibrando suas operações de leitura entre as duas partições. As operações de leitura podem ser feitas normalmente, mas quando um arquivo é modificado as duas partições devem ser gravadas, mas as gravações são feitas assincronamente, de modo que o desempenho geralmente não é afetado pela atualização extra do disco.

Page 55: Sistemas Operacionais #1 Pontifícia Universidade Católica PUC - Minas Poços de Caldas Sistemas Operacionais SISTEMA DE ARQUIVOS Prof. D.Sc. Eduardo Barrére

Sistemas Operacionais #55

Sistema de Arquivos NTFS

Tolerância a Falhas

Recuperação de cluster defeituoso do NTFS

Os erros de setor defeituoso são indesejáveis, mas quando ocorrem, a combinação do NTFS e do FtDisk oferece a melhor solução possível. Se o setor defeituoso estiver em um volume redundante, FtDisk recupera os dados e substitui o setor, se puder. Se ele não puder substituir o setor, retornará uma advertência para o NTFS, que substituirá o setor defeituoso.

Se o FtDisk descobrir um setor defeituoso durante a leitura ele substituirá o setor defeituoso e recuperará os dados de uma cópia redundante, se não possuir uma cópia redundante ele não poderá recuperar os dados mas enviará uma mensagem ao NTFS (do tipo: FOD...-SE). Se descobrir o setor defeituoso durante a gravação ele substituirá o setor e como o dado que se encontrava no setor defeituoso seria sobrescrito mesmo nenhum dado será perdido.

Page 56: Sistemas Operacionais #1 Pontifícia Universidade Católica PUC - Minas Poços de Caldas Sistemas Operacionais SISTEMA DE ARQUIVOS Prof. D.Sc. Eduardo Barrére

Sistemas Operacionais #56

Adendo – ext3• No Linux -> Sistema de Arquivos são disponibilizados através do comando "mount“.• Lista de sistemas de arquivos disponíveis no arquivo /etc/fstab• Lista de sistemas de arquivos que estão efetivamente em uso, no arquivo /etc/mtab (tabela mount).

• Para cada sistema de arquivos montado no startup, um bit no cabeçalho do sistema de arquivos é zerado para indica que o sistema de arquivos está em uso a partir daquele momento e que as estruturas de dados usadas para o alocação e organização de arquivos/diretórios podem sofrer mudanças (atualizações).

• Quando o usuário decide desligar o computador e usa comandos para encerrar o Linux, os sistemas de arquivos são desmontados, fazendo com que o bit citado acima seja modificado para indicar que o sistema de arquivos está consistente, ou seja, não pode mais sofrer mudanças.

Page 57: Sistemas Operacionais #1 Pontifícia Universidade Católica PUC - Minas Poços de Caldas Sistemas Operacionais SISTEMA DE ARQUIVOS Prof. D.Sc. Eduardo Barrére

Sistemas Operacionais #57

Adendo – ext3

Erros e corrompimento do sistema de arquivos

Os sistemas de arquivos para Linux já sofreram muitos tipos de tratamentos e reescrita de código para eliminar o corrompimento causado por aplicações ou pelo próprio kernel. No entanto, eliminar o corrompimento de dados em arquivos causados, por exemplo, pela queda de energia ou pelo desligamento incorreto por parte do usuário, sempre foi uma tarefa praticamente impossível. Quando o sistema é desligado incorretamente o bit do cabeçalho do sistema de arquivos não é ajustado. A solução foi fazer com que, no próximo processo de carregamento do Linux, seja verificado se o cabeçalho está com o bit de cabeçalho setado para indicar que o sistema de arquivos está consistente e não manipulável. Caso não esteja, a ferrramenta "fsck" verifica o sistema na busca de erros.

Page 58: Sistemas Operacionais #1 Pontifícia Universidade Católica PUC - Minas Poços de Caldas Sistemas Operacionais SISTEMA DE ARQUIVOS Prof. D.Sc. Eduardo Barrére

Sistemas Operacionais #58

Adendo – ext3JournalingO fsck consegue prover resultados satisfatórios, mas a correção de erros pode levar muito tempo, algo inaceitável em aplicações críticas. Além disso, se o desligamento incorreto do computador ocorreu quando dados estavam sendo gravados no disco, o fsck não conseguirá completar esses processos, ocasionando a perda das informações que estavam sendo gravadas.Diante desses problemas, foi apresentada uma solução viável: a utilização de sistemas de arquivos com a tecnologia "Journaling", que possuem a capacidade de acompanhar as mudanças que serão feitas no sistema de arquivos (por exemplo, gravações/atualizações de dados) antes que realmente sejam feitas. Essas informações que o Journaling captura são então armazenadas em uma parte separada do sistema de arquivos, denominada "Journal" (mas também conhecida por "registros de log"). Quando as informações são armazenadas no Journal, o sistema de arquivos aplica as mudanças registradas nele e então, remove as informações do Journal.

Page 59: Sistemas Operacionais #1 Pontifícia Universidade Católica PUC - Minas Poços de Caldas Sistemas Operacionais SISTEMA DE ARQUIVOS Prof. D.Sc. Eduardo Barrére

Sistemas Operacionais #59

Adendo – ext3

Os registros de log são escritos antes que as mudanças efetivamente ocorram no sistema de arquivos e esses registros somente são eliminados quando as mudanças são feitas. Assim, se o computador é indevidamente desligado, o processo de montagem no próximo startup verificará se há mudanças gravadas no Journal "marcadas" como não feitas. Se houver, tais mudanças são então aplicadas ao sistema de arquivos. Isso faz com que os riscos de perda de dados sejam reduzidos drasticamente.

Page 60: Sistemas Operacionais #1 Pontifícia Universidade Católica PUC - Minas Poços de Caldas Sistemas Operacionais SISTEMA DE ARQUIVOS Prof. D.Sc. Eduardo Barrére

Sistemas Operacionais #60

Adendo – ext3

Existem vários sistemas de arquivos disponíveis com a tecnologia Journaling, como o XFS, desenvolvido originalmente pela Silicon Graphics e posteriormente disponibilizado com código aberto, o ReiserFS, desenvolvido especialmente para Linux, JFS, desenvolvido originalmente pela IBM mas também liberado com código aberto, e o mais conhecido deles: o ext3, desenvolvido pelo Dr. Stephen Tweedie juntamente com outros colaboradores, na Red Hat.O sistema de arquivos ext3 é basicamente o sistema de arquivos ext2 com recursos de Journaling. Talvez, essa seja a razão de seu uso amplo: ele é totalmente compatível com ext2 (que foi um sistema de arquivos muito usado), o que nenhum outro sistema de arquivos baseado em Journaling é.O ext3 passou a ser efetivamente suportado pelo kernel do Linux a partir da versão 2.4. Conseqüentemente, todas as distribuições Linux lançadas com esse kernel ou superior, tem suporte padrão para ext3.

Page 61: Sistemas Operacionais #1 Pontifícia Universidade Católica PUC - Minas Poços de Caldas Sistemas Operacionais SISTEMA DE ARQUIVOS Prof. D.Sc. Eduardo Barrére

Sistemas Operacionais #61

Adendo – ext3No ext3, o código de Journaling usa uma camada chamada "Journaling Block Device" (JBD). A JBD foi criada com o propósito de implementar Journal em qualquer tipo de dispositivo com base em blocos de dados. Por exemplo, o código ext3 informa e "pede autorização" à JDB para efetuar as mudanças, antes de modificar/adicionar qualquer dado no disco.

O ext3 suporta três diferentes modos de trabalho do Journaling. São eles:• Journal: grava todas as mudanças em sistema de arquivos. É o mais lento dos três modos, mas é o que possui maior capacidade de evitar perda de dados;• Ordered: grava somente mudanças em arquivos metadata, mas guarda as atualizações no arquivo de dados antes de fazer as mudanças associadas ao sistema de arquivos. É o padrão no ext3;•Writeback: também só grava mudanças para o sistema de arquivo em metadata, mas utiliza o processo de escrita do sistema de arquivos em uso para gravação. É o mais rápido Journaling ext3, mas o menos confiável.