Você está na página 1de 22

Introduo

Sistemas Operacionais

O sistema de arquivos a parte mais vsivel do sistema operacional


Cria um recurso lgico a partir de recursos fsicos atravs de uma
interface coerente e simples, fcil de usar
Mecanismo para armazenamento e acesso a dados e a programas
Duas partes bsicas:

Captulo 8

Reviso: Fev/2003

Oliveira, Carissimi, Toscani

2a edio

Instituto de Informtica - UFRGS

Sistema de arquivos

Arquivos
! Armazenamento de dados e de programas
Diretrios
! Organizao e informaes sobre arquivos

Sistemas Operacionais

Objetivos do sistema de arquivos

Requisitos mnimos: ponto de vista do usurio


Cada usurio deve ser capaz de:

Fornecer mecanismos para usurios manipular arquivos e diretrios


Garantir a validade e coerncia de dados

Criar, apagar, ler e alterar arquivos


Controlar as permisses de acesso a seus arquivos
Nomear arquivos de forma simblica
Estruturar os arquivos de forma a adequ-los a suas necessidades especficas
! Criao de diretrios e subdiretrios
Realizar back-ups e recuperar arquivos em caso de problemas

Uso compartilhado (proteo e acesso concorrente)

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Otimizar o acesso
Fornecer suporte a outros sistemas de arquivos
Suporte a vrios usurios (multiprogramao)
Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Minimizar ou eliminar o risco de perda/alterao de dados

Sistemas Operacionais

Sistemas Operacionais

Requisitos mnimos: ponto de vista do sistema

Conceitos bsicos
Arquivos

Descrever a localizao de todos os arquivos e de seus atributos


! Via diretrio
Gerenciar espao fsico do disco
! Alocar blocos livres a arquivos em criao/expanso
! Liberar blocos de arquivos removidos
! Mecanismos para localizar eficientemente blocos (setores) que compem
arquivos

Recipientes que contm dados

Diretrios
Conjuntos de referncias a arquivos

Sistemas Operacionais

Abstrao que permite a partir do disco fsico criar discos lgicos

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Partio

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

O sistema operacional deve ser capaz:

Sistemas Operacionais

Conceito de arquivo

Nomes de arquivos

Informao pode ser armazenada em diferentes tipos de mdia

O sistema de arquivos define um espao de nomes


Conjunto de regras e convenes para identificar simbolicamente um arquivo

Variam de sistema para sistema

Nome
Atributos
Estrutura interna
Tipo
Mtodo de acesso
Operaes

Sistemas Operacionais

Distino entre letras maisculas e minsculas


Obrigatoriedade ou no de uma extenso
! As vezes extenses so apenas convenes
Tamanho mximo de nome e da extenso (se houver)
Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Arquivos so mapeados para dispositivos fsicos


Arquivos possuem:

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

O sistema operacional deve oferecer uma viso uniforme da informao


independente do dispositivo fsico de armazenamento
! Viso lgica o arquivo

Sistemas Operacionais

Atributos de um arquivo

Estruturas de arquivos

Instituto de Informtica - UFRGS

Nome: informao simblica empregada para referenciar o arquivo


Tipo: binrio, texto, executvel, caracter, bloco
Localizao: posio do arquivo em um determinado dispositivo E/S
Tamanho: nmero de bytes que compem o arquivo
Proteo: controla acesso de leitura, escrita e execuo ao arquivo
Hora e data de criao, identificao do usurio: informaes destinadas a
proteo, segurana e monitorao

Varia de sistema operacional a sistema operacional


Atributos so mantidos em uma estrutura a parte
Diretrio

Sistemas Operacionais

Arquivo interpretado como uma


seqncia de registros, isto
Tamanho fixo
Estrutura interna
Operaes lem/escrevem registros
Emprego raro

byte

Instituto de Informtica - UFRGS

Instituto de Informtica - UFRGS

Seqncia de registros

Oliveira, Carissimi, Toscani

Sistemas Operacionais

10

Sistemas Operacionais

Seqncia de bytes
Sistema operacional no interpreta
o contedo do arquivo
Enxerga apenas bytes
Interpretao a nvel do programa
de usurio
Vantagem:
Flexibilidade

Oliveira, Carissimi, Toscani

Seqncia de bytes
Seqncia de registros
rvore

11

registro

Oliveira, Carissimi, Toscani

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Informaes sobre arquivos

Sistemas Operacionais

12

rvore

Tipos de arquivo

Conjunto de registros no necessariamente de mesmo tamanho

Sistema operacional suporta vrios tipos de arquivos


Tipos comuns:

Possuem um campo de acesso (chave)

Comum em mainframes

Regular
! Arquivos de dados em ASCII e binrio
Diretrio
! Arquivos que mantm a estrutura (organizao) do sistema de arquivos
Arquivos especiais de caracter/bloco
! Vinculados a dispositivos de entrada e sada

R W

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Mtodo ISAM (Indexed Sequential Access Method)

13

Sistemas Operacionais

Sistemas Operacionais

Exemplos de arquivos UNIX


executvel
(formato a.out)

14

Mtodos de acesso
Forma pela qual o contedo de um arquivo acessado
Mtodos elementares de acesso:

biblioteca

Sistemas Operacionais

15

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Acesso seqncial
Acesso relativo

Sistemas Operacionais

16

Acesso seqncial

Acesso relativo

e.g.: acesso e atualizao a cadastros de funcionrios

Sistemas Operacionais

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Prov uma chamada de sistema especfica para indicar o ponto em


que um arquivo deve ser lido/escrito
Implementado atravs da abstrao de posio corrente no
arquivo

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Acesso a um arquivo feito atravs de primitivas (chamadas de


sistema) do tipo read e write
Cada chamada de sistema read retorna ao processo os dados
seguintes queles que foram lidos na chamada anterior
Mtodo no adequado a todas aplicaes

17

Sistemas Operacionais

Outros tipos de acesso

Operaes bsicas sobre arquivos

Os mtodos seqncias e relativos no resolvem todos os tipos de


acesso

Arquivo um tipo abstrato de dados sobre o qual se pode efetuar


uma srie de operaes

e.g.: localizar um registro a partir do contudo

19

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Normalmente implementados por programas especficos


Baseados nos mtodos de acesso seqncial e relativo
Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Necessidades de mtodos de acesso mais sofisticados, tais como


seqencial indexado, indexado, direto, hash, etc

Sistemas Operacionais

18

Criao (create)
Escrita (write) e leitura (read)
Reposicionamento em um ponto qualquer do arquivo (file seek)
Remoo (delete)
Abertura (open) e encerramento (close)
Adicionalmente: truncagem (truncate); renomeao (rename); appending, etc

Geralmente correspondem a chamadas de sistema


Operaes mais complexas podem ser criadas utilizando-se das operaes
bsicas

Sistemas Operacionais

20

Controle de acesso

Listas de acesso
Consiste em associar a cada arquivo e/ou diretrio uma lista de
acesso que determina que tipos de acessos so permitidos para
cada usurio
Maior inconveniente o tamanho da lista
Uma soluo consiste em:

Soluo tpica:
Lista de acesso e grupo

21

Sistemas Operacionais

Sistemas Operacionais

Exemplo: UNIX

Associar uma senha a cada arquivo


A grande desvantagem o nmero de senhas

Declarao de compartilhamento de arquivo e/ou subdiretrio


Esquema utilizado pelo Macintosh e pelo Windows

May 30 22:19

windbind.pdf

23

Oliveira, Carissimi, Toscani

214056

Instituto de Informtica - UFRGS

1 mary staff

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Quando um usurio pertence a vrios grupos ele identificado por um grupo


primrio e o arquivo (/etc/groups) mantm todos os grupos a que ele pertence

Sistemas Operacionais

22

Outra abordagem: senhas

Cada objeto oferece 3 bits (rwx) para trs domnios diferentes:


proprietrio, grupo, e outros
Problema de flexibilidade

r w x r- - r - -

Criar classes de usurios


! e.g.: proprietrio, grupo, universo
Tipos de acessos
! e.g: read, write, modify, execute

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Sistema de autenticao padro (login name + senha)


Usurios possuem direitos de acessos

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Importante controlar o acesso aos arquivos devido a questes de


segurana e de confidencialidade
Objetivo evitar acessos indevidos a arquivos
Baseado na identificao dos usurios

Sistemas Operacionais

24

Implementao de arquivos

Tabelas de descritores de arquivos

Na realidade no mesmo disco lgico (partio)

Problema de desempenho

Nome do arquivo
Tamanho em bytes
Data e hora da criao, do ltimo acesso, da ltima modificao
Identificao do usurio que criou o arquivo
Listas de controle de acesso
Local do disco fsico onde o contudo do arquivo foi colocado
etc

Sistemas Operacionais

Acesso ao disco para ler o descritor de arquivos lento


Soluo manter descritor em memria enquanto o arquivo estiver em uso
! Indicao se arquivo est em uso normalmente feito pelo prprio
usurio (aplicao) atravs de chamadas do tipo open e close
Oliveira, Carissimi, Toscani

Descritores de arquivos so armazenados no prprio disco

Instituto de Informtica - UFRGS

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Arquivos so implementados atravs da criao, para cada arquivo


no sistema, de uma estrutura de dados
Descritor de arquivo um registro que mantm informaes sobre o
arquivo
Informaes tpicas (atributos):

25

Sistema de arquivos mantm os descritores de arquivos em


memria em uma estrutura de dados do sistema operacional
Tabela de descritores do arquivo abertos (TDAA)

Tabelas de arquivos abertos por processo

Emprego conjunto das tabelas TAAP e TDAA

Informaes relacionadas com arquivos so de dois tipos:


FileHandle PosCor=12
Leitura
FileHandle PosCor=55
Leitura & esc

e.g.: posio corrente no arquivo, tipo de acesso e apontador para a entrada


correspondente na TDAA

Entrada na TAAP serve para referenciar o arquivo


File handle

27

Arquivo B

Tabela de arquivos
abertos processo 0

Arquivo A

Descritor Arquivo A

Descritor Arquivo B
Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Informaes dependentes do processo so armazenadas em uma


tabela a parte mantida pelo processo (TAAP)
Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

No variam conforme o processo que est acessando o arquivo


! e.g.: tamanho do arquivo
Dependem do processo que est acessando o arquivo
! e.g.: posio corrente

Sistemas Operacionais

26

Sistemas Operacionais

FileHandle PosCor=10
Leitura

Tabela de arquivos
abertos por processo 1

Sistemas Operacionais

Tabela de
Arquivos Abertos

28

Leituras complementares

Gerenciamento do dispositivo de armazenamento

R. Oliveira, A. Carissimi, S. Toscani; Sistemas Operacionais. Editora


Sagra-Luzzato, 2001.

Problema: arquivos devem ser armazenados no disco!!


Unidade de manipulao dos dados no dispositivo fisico (bloco)

Captulo 8, sees 8.1, 8.2, e 8.3

Pontos a serem tratados:


Relao nmero de setores do disco que compem um bloco
! No necessita ser 1:1
Alocao de blocos no disco
Recuperao de blocos liberados
Localizao de dados no disco
Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Captulo 10, sees 10.1, 10.2,10.4, e 10.5

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

A. Silberchatz, P. Galvin; Operating System Concepts. AddisonWesley, (4th edition).

29

Sistemas Operacionais

Sistemas Operacionais

Alocao do espao em disco

Arquivo uma seqncia de blocos lgicos contigos alocados no


momento da criao
Endereos no disco so lineares

Alocar blocos livres suficientes para armazenar o arquivo


Blocos lgicos do disco so numerados sequencialmente

bloco lgico i e i+1 so armazenados fisicamente em seqncia


Reduz a necessidade de seek j que blocos esto na mesma trilha
! No pior caso necessita apenas a troca de cilindro

Duas formas bsicas:

01

02

03

04

05

06

....

53

54

55

....

72

73

74

...

96

97

98

....

31

Arquivo descrito atravs de uma entrada na forma:


Oliveira, Carissimi, Toscani

00

Instituto de Informtica - UFRGS

Contigua (alocao contigua)


No-contigua (alocao encadeada e alocao indexada)
Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

30

Alocao contgua

Como alocar espao em disco de forma que os arquivos sejam


armazenados de forma eficiente e que permita acesso rpido

Sistemas Operacionais

Existe uma relao entre a poltica de alocao com a poltica de


gerncia de espao livre

Bloco fsico inicial


Tamanho do arquivo em blocos

Sistemas Operacionais

32

Esquema alocao contgua

Problemas com alocao contgua


Problema 1: encontrar espao para um novo arquivo

Sistemas Operacionais

Problema 2: determinar o espao necessrio a um arquivo

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Tcnicas de gerncia de memria


! e.g.; first-fit, best-fit, worst-fit
Gera fragmentao externa
! Necessidade de compactao

33

Arquivos tendem a crescer, e se no h espao contgo disponvel?


! Aborta execuo do programa com erro
! Recopia o programa para uma zona maior
Pr-alocar um espao mximo para o arquivo
! Fragmentao interna

Sistemas Operacionais

Alocao encadeada

34

Esquema de alocao encadeada

Soluciona os problemas da alocao contgua


Relao a dimensionamento do tamanho e crescimento de arquivos

Alocao baseada em uma unidade de tamanho fixo (bloco lgico)


Anlogo a paginao

Arquivo descrito em uma entrada na forma:


Bloco inicial do arquivo
Bloco final do arquivo ou tamanho do arquivo em blocos

Sistemas Operacionais

35

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Cada bloco contm um ponteiro para o prximo bloco

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Arquivo uma lista encadeada de blocos

Sistemas Operacionais

36

Prs e contras da alocao encadeada

Exemplo: File Allocation Table (FAT)

Elimina a fragmentao externa


Arquivos podem crescer indefinidamente

Variao de alocao encadeada


FAT uma tabela de encadeamento de blocos lgicos
Uma entrada na FAT para cada bloco lgico do disco (sistema de arquivos)
Composta por um ponteiro (endereo do bloco lgico)
Arquivo descrito por uma seqncia de entradas na FAT, cada entrada
apontando para a prxima entrada

No h necessidade de compactar o disco

Confiabilidade
Erro provoca a leitura/escrita em bloco pertencente a outro arquivo

37

Sistemas Operacionais

38

Sistemas Operacionais

Sistema de arquivos FAT (MS-DOS)


Organizao lgica do disco:

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Afeta o desempenho
Adequado para acesso seqncial a arquivos

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

O acesso a um bloco i implica em percorrer a lista encadeada

Esquema de funcionamento da FAT


Desvantagem principal o tempo de seek

Setor 0 rea reservada


FAT
Diretrio raiz

FAT

Arquivos

Cada entrada possui 32 bytes

Tamanho da File Allocation Table (FAT) proporcional a capacidade


do disco
Alocao baseada em clusters (bloco lgico)
2n setores (depende da capacidade do disco)
Sistemas Operacionais

39

jeep

217

Primeiro setor do
arquivo
(start block)

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Diretrio

Diretrio raiz possui tamanho fixo em funo da capacidade do disco


Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Setor n

618

!
400
EOF

399

Sistemas Operacionais

217

399
400
618

40

Instituto de Informtica - UFRGS

Busca resolver o problema de ponteiros esparramados pelo disco


que a alocao encadeada provoca
Mantm, por arquivo, um ndice de blocos que o compe
O ndice mantido em um bloco
Diretrio possui um ponteiro para o bloco onde est o ndice
associado a um determinado arquivo

Sistemas Operacionais

Oliveira, Carissimi, Toscani

Esquema de alocao indexada

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Alocao indexada

41

Sistemas Operacionais

Prs e contras da alocao indexada

Variaes em alocao indexada

Permite o acesso randmico a blocos independentes de sua


posio relativa no arquivo
Tamanho mximo do arquivo limitado pela quantidade de
entradas suportadas pelo bloco

Buscam resolver o problema do tamanho do bloco de indices


Trs mtodos bsicos:

Muito pequeno (limita tamanho do arquivo)


Muito grande (desperdia espao em disco)

Soluo utilizar dois tamanhos de blocos, um para ndice e outro


para dados
e.g.: i-nodes e bloco de dados em sistemas UNIX

Sistemas Operacionais

43

Oliveira, Carissimi, Toscani

Encadeado
Multinvel
Combinado
Instituto de Informtica - UFRGS

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

42

Sistemas Operacionais

44

Mtodo encadeado

Mtodo multinvel

O ndice mantm ponteiros para os blocos que compem o arquivo


com exceo da ltima entrada

Mantm um ndice de ndices


No resolve completamente o problema de limite

k
k+1
n-1
n

Instituto de Informtica - UFRGS

Bloco de dados
(500)

0
Bloco de ndices
(300)

618

400
300

k
k+1
n-1
n

Sistemas Operacionais

500

NULL
NULL

Bloco de ndices
(310)
0

Bloco de ndice
de ndices (0)
0

310

!
Oliveira, Carissimi, Toscani

Bloco de dados
(618)

Bloco de ndices
(0)

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Mantm um ponteiro para outro bloco onde ndice continua

45

n-1
n

Bloco de dados
(10)

!
n-1
n

10
Bloco de ndices
(700)
0
442

530
700

!
n-1
n
46

Sistemas Operacionais

Mtodo combinado

Bloco de dados
(442)

Exemplo: estrutura de i-nodes (UNIX)

Mtodos encadeado e multinvel em uma nica estrutura de dados


O que justifica essa combinao?

Ponteiros p/
bloco de dados

Ponteiros p/
bloco de ndices

n-1
n

Sistemas Operacionais

Bloco de ndices
(700)
0
442

310

!
530
700

Bloco de dados
(442)

!
n-1
n
47

128
bytes

10

Oliveira, Carissimi, Toscani

Bloco combinado
(0)

Instituto de Informtica - UFRGS

Bloco de dados
(310)

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Acesso otimizado a blocos de dados: mtodo indexado


Limite de arquivos: multinvel

Sistemas Operacionais

48

Problema com os mtodos de alocao no-contigua

Resumo dos tipos de alocao

Necessidade de acessar reas especficas do disco para ler as


informaes de encadeamento

Alocao contgua
S armazena endereo do primeiro bloco
Acesso randmico possvel (bloco inicial + deslocamento)
Gera fragmentao externa no disco

Quantidade de seeks depende do tipo da estrutura (FAT ou descritores)

Soluo manter em memria

Alocao encadeada

Sistemas Operacionais

Armazena endereo do primeiro bloco


Problema de desempenho (seek)
No recomendado para acesso randmico
Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Tradicionais problemas de rea de memria ocupada e de confiabilidade

49

50

Suporte a mltiplos sistemas de arquivos

Depende do tipo de acesso que o sistema faz a seus arquivos

Fazer com que o sistema operacional suporte diversos sistemas de


arquivos diferentes simultneamente
Soluo inspirada na gerncia de perifricos

Seqncial versus randmico

Fator adicional:

Instituto de Informtica - UFRGS

Necessidade de fazer conviver diferentes sistemas de arquivos em


um mesmo computador
Oliveira, Carissimi, Toscani

Suporte a mltiplos sistemas de arquivos

51

Parte independente do dispositivo


! Servios idnticos independente do tipo de sistema de arquivos
Parte dependente do dispositivo
! Interface padro
Oliveira, Carissimi, Toscani

Evoluo tecnolgica (novos hardwares) e de desempenho foram a coexistncia de diferentes sistemas de arquivos
Instituto de Informtica - UFRGS

Visa solucionar problemas dos tipos anteriores


Anlise de desempenho (tamanho + tempo de acesso ) complexa
! Depende da estrutura de ndice e do tamanho de arquivo
Sistemas Operacionais

Concluso: qual o melhor mtodo de alocao?

Sistemas Operacionais

Alocao indexada

Virtual File System (VFS)


CD-ROM

Sistemas Operacionais

Partio raw

Disquete

52

Implementao de mltiplos sistemas de arquivos

Mltiplos sistemas de arquivos: estrutura de dados


Tabela com descritores virtuais
dos arquivos abertos

Cada partio possui um nico sistema de arquivos


Tabela com descritores virtuais de arquivos abertos

tipo
contador de uso
dados dependentes
...

Informaes comuns a todo sistema de arquivo (proteo, nro de acessos, ...)


Apontador para uma estrutura Tipo do sistema de arquivos
Apontador para o descritor do sistema de arquivos real
! Lista de ponteiros para rotinas que implementam o cdigo necessrio a
execuo de uma dada chamada de sistema (read, write, close,...)
! Informaes sobre a gerncia desse sistema de arquivos (blocos livres,
ocupados, estrutura de diretrios, ...)

tipo
contador de uso
dados dependentes

tamanho
localizao
direitos
etc

...
tab. descritores
dados

...
...
Descritor do S.A. 2

Tab. descritores
Sist. Arq. 2
tamanho
localizao
direitos
etc

write
...
tab. descritores
dados

...
...

Sistemas Operacionais

54

Funcionamento da cache de disco

Objetivo manter na memria principal uma certa quantidade de


blocos do disco
No adiciona nem elimina funcionalidades ao sistema de arquivos

Em uma requisio de E/S verifica se o bloco est na cache


Sim: realiza o acesso a partir dessa cpia em memria
No: realiza o acesso a partir do disco e carrega o bloco para a cache

A modificao de valores feito em blocos na cache

Funo melhorar o desempenho do sistema de arquivos

Problema de quando atualizar o disco aps um bloco ter sido alterado

Pode ser global ou exclusiva (uma por sistema de arquivo suportado)

55

Problema da perda de informaes e da consistncia do sistema de


arquivos em caso de pane do sistema (falta de energia)
Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

No confundir com a cache do processador


Normalmente a cache de disco mantida em uma rea da memria
principal e controlada pelo sistema operacional
Oliveira, Carissimi, Toscani

Tab. descritores
Sist. Arq. 1

open
read

53

Organizao da cache de disco

Instituto de Informtica - UFRGS

read
write

...

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Descritor virtual

Sistemas Operacionais

open

...

Parte independente do sistema de arquivos


Uma entrada ocupada para cada arquivo aberto (descritor virtual)

Sistemas Operacionais

Descritor do S.A. 1

Sistemas Operacionais

56

Polticas de atualizao da cache


Posterga ao mximo
Atualiza a cada intervalo de tempo
Atualiza imediatamente no disco
Atualiza imediatamente apenas informaes sensveis a
consistncia do sistema do arquivo

A cache de disco um recurso limitado


O que fazer quando um novo bloco deve ser inserido na cache e
no h espao livre ?
Problema similar a gerncia de memria virtual (substituio de pginas)

Sistemas Operacionais

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Tipicamente a poltica Least-Recently-Used (LRU) empregada

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Poltica de substituio

57

Implementao da poltica LRU

Implementao da cache do sistema de arquivos

Instituto de Informtica - UFRGS

Existe o problema de localizar rapidamente um bloco na lista


Emprego de funo hash

59

Oliveira, Carissimi, Toscani

HASH( p a rti o , n m e ro d o b lo c o )

Quando o bloco acessado ele removido de sua posio na lista e


colocado no incio da lista
Todo bloco novo (acessado pela primeira vez) tambm inserido no incio da
lista
O bloco menos recentemente acessado o ltimo da lista

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Facilmente implementada atravs de uma lista duplamente


encadeada

Sistemas Operacionais

58

Sistemas Operacionais

LRU - in c io

Sistemas Operacionais

LRU - fim

contedo do bloco
informaes adicionais

60

Gerenciamento do espao livre

Mapa de bits (bit map)

Necessrio manter a informao de blocos livres e ocupados


Mtodos bsicos:

Forma simples de gerenciar o espao em disco


Cada bloco do disco possui um bit indicando se o bloco est livre ou
ocupado

01

02

03

....

25

26

....

53

54

55

....

72

73

74

...

96

97

98

Instituto de Informtica - UFRGS

00

....

Sistemas Operacionais

Oliveira, Carissimi, Toscani

Disco

Ambos mtodos consideram que os blocos no disco so numerados


sequencialmente

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Mapa de bits (bitmap)


Lista de blocos livres

61

Bloco 0
Fsico 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

tamanho _ bit _ map =

Capacidade _ disco(bytes)
8 tamanho _ bloco(bytes)

62

Gerncia de espao livre atravs de blocos livres

Os blocos livres so organizados em uma lista


Lista mantida no prprio disco

lgico

Instituto de Informtica - UFRGS

Soluo alternativa manter uma lista de reas livres ao invs de


uma lista de blocos livres
Oliveira, Carissimi, Toscani

Endereo do bloco inicial da rea livre e o seu tamanho

63

Oliveira, Carissimi, Toscani

Problema o tamanho da lista


Paliativo: a medida que o espao em disco ocupado a lista diminui de
tamanho liberando espao do disco
Instituto de Informtica - UFRGS

0 0 1 1 0 0 0 0

Sistemas Operacionais

Lista de blocos livres

Sistemas Operacionais

Mapa de Bits.
0 0 1 0 1 0 1 0

Sistemas Operacionais

Bloco
Fsico
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

Disco
2
4
6
7
8
9
10
11

14
15

64

Leituras complementares

Diretrio

R. Oliveira, A. Carissimi, S. Toscani; Sistemas Operacionais. Editora


Sagra-Luzzato, 2001.

Problema:
Quantidade (grande) de arquivos implica na necessidade de organiz-los

Captulo 8, sees 8.5 e 8.6

Sistema de arquivos oferece duas formas de organizao


Partio
Diretrio

Sistemas Operacionais

Partio divide um disco em discos lgicos (virtuais), mas no


resolve a organizao de arquivos dentro desse disco lgico
Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Captulo 11 seo 11.3

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

A. Silberchatz, P. Galvin; Operating System Concepts. AddisonWesley, 4th edition.

65

Sistemas Operacionais

O conceito de diretrio

Atributos bsicos: nome, tipo, ...


Localizao: dispositivo fsico, end. Incio, tamanho,...
Controle de acesso: proprietrio, informaes de acesso, aes permitidas,...
Utilizao: data criao/modificao, nro de processos que o usam, locking,...
Instituto de Informtica - UFRGS

Tipos de operaes em um diretrio


Pesquisar
Criar e remover arquivos
Listar diretrio
Atualizar diretrio

Sistemas Operacionais

67

Oliveira, Carissimi, Toscani

Linear
Em rvore

Acesso feito via servios do sistema operacional


Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Cada entrada do diretrio um arquivo


Existem duas formas bsicas para se organizar um diretrio

Diretrio um arquivo pertencente ao sistema operacional

66

Organizao de diretrio

Estrutura de dados que contm informaes sobre arquivos

No mnimo uma em um sistema


Onde residem os arquivos e os diretrios

Sistemas Operacionais

68

Diretrio linear

Diretrio linear a dois nveis

Mais simples
O diretrio corresponde a uma lista de todos os arquivos do disco
Desvantagem:

Cada usurio possui o seu prprio diretrio


Informao mantida na raiz (master directory)
! Cada entrada corresponde a um subdiretrio (usurio)

Resolve parcialmente o problema de coliso de nomes e mas no


resolve o problema de organizao dos arquivos

Silberchatz, Galvin, Gagne. Applied Operating System Concepts (1st Ed.) John Wiley & Sons, 2000.

Sistemas Operacionais

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Problema de nomeao e agrupamento


2 ou mais usurios no podem ter arquivos com o mesmo nome (coliso)

69

Silberchatz, Galvin, Gagne. Applied Operating System Concepts (1st Ed.) John Wiley & Sons, 2000.
Sistemas Operacionais

Diretrio em arvre

70

Conceitos associados a um diretrio em rvore

Generalizao do diretrio linear a dois nveis

Qualquer arquivo (ou subdiretrio) pode ser identificado de forma


no ambgua atravs de seu caminho (pathname)

Permite os usurios criar subdiretrios e organizar seus arquivos

Conceito de diretrio corrente, caminho absoluto e caminho relativo

Possui um diretrio raiz (master)

Diretrio corrente (diretrio de trabalho):

Silberchatz, Galvin, Gagne. Applied Operating System Concepts (1st Ed.) John Wiley & Sons, 2000.
Sistemas Operacionais

71

Caminho absoluto
Quando se referencia um arquivo a partir da raiz da arvre
! e.g.: /spell/mail/prt/first
Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Qualquer n da rvore

Caminho relativo
Quando se referencia um arquivo a partir do diretrio corrente
! e.g.: prt/first

Sistemas Operacionais

72

Prs e contras da estrutura em rvore

Diretrio estruturado em grafos acclicos

Vantagem:

Generalizao da estrutura em rvore

Procura eficiente por arquivos


Possibilidade de agrupamento de arquivos

Prov compartilhamento atravs de caminhos alternativos para um arquivo

Desvantagem:

Conceito de search path


! Lista de diretrios (caminhos absolutos) a pesquisar um arquivo

Sistemas Operacionais

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Questo : copiar ou no arquivos a compartilhar?

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Compartilhamento de arquivos

73

Aliases

Soluo 1:
Acesso a um link simblico dangling detectado no momento do acesso ao
arquivo (no resolvido para nome vlido)

Ponteiro para outro arquivo ou subdiretrio

Soluo 2:

Link uma entrada na estrutura de diretrio

Remover um link implica em remover apenas a sua entrada na


estrutura de diretrio, no o arquivo que aponta

75

Preservar o arquivo enquanto houver referncias a ele


! Contador de links ativos
! Lista de links

Soluo 3:
Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Soft link (simblico): fornece o caminho do arquivo


Hard link: fornece a localizao (bloco) do arquivo no disco

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

74

Problema da remoo de arquivos

Compartilhamento pode ser obtido atravs de aliases


Link uma forma comum de alias

Sistemas Operacionais

Silberchatz, Galvin, Gagne. Applied Operating System Concepts (1st Ed.) John Wiley & Sons, 2000.
Sistemas Operacionais

No permitir compartilhamento

Sistemas Operacionais

76

Prs e contras de diretrios estruturados em grafos

Exemplos de aliases: UNIX


%ln index hlink
%ln -s index slinl
%ls -l
-rw- - - - - - -rw- - - - - - lrwx rwx rwx

Vantagem:
Compartilhamento de arquivos

77

Sistemas Operacionais

5228
5228
5

bloco arquivo index

index
hlink
slink

Sistemas Operacionais

5228
5228
5

Mar 12 11:36 index


Mar 12 11:36 hlink
Mar 12 11:36 slinkindex

bloco arquivo index

index
hlink
slink

bloco slink

78

Baseado em parties
Diretrio raiz do sistema de arquivos corresponde a uma partio
especial (root)
Conceito de ponto de montagem
Pontos importantes:

Mar 12 11:36 index


Mar 12 11:36 hlink
Mar 12 11:36 slinkindex
Instituto de Informtica - UFRGS

chem
chem
chem

Diretrio
Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

chavez
chavez
chavez

chem
chem
chem

Organizao de diretrios do UNIX

Contador de referncias
2
2
1

chavez
chavez
chavez

Sistemas Operacionais

Exemplos de aliases: UNIX


%ln index hlink
%ln -s index slinl
%ls -l
-rw- - - - - - -rw- - - - - - lrwx rwx rwx

2
2
1

Diretrio
Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Estrutura mais complexa de manter


Um arquivo pode possuir mais de um caminho de acesso
! e.g; Problemas para contabilizao de acessos, back-ups, etc...
Remoo de um arquivo compartilhado
! Problema de dangling pointer
Criao de laos atravs de aliases
! Necessita algoritmo para verificar se no cria um lao (desempenho)

bloco slink

79

Oliveira, Carissimi, Toscani

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Desvantagem:

Contador de referncias

Cada partio possui seu prprio sistema de arquivos


Capacidade de integrar diferentes sistemas de arquivos em uma mesma
hierarquia
Sistemas de arquivos podem ser diferentes
! e.g.: ext2, FAT12, FAT32, NTFS, etc...

Sistemas Operacionais

80

Partio 1

Montagem de
parties em um
subdiretrio

etc

usr

passwd

Partio 2

bin

joo

Partio 3
maria

ls

who

Implementao de diretrios

Mail

hosts
so

trab1

teste

teste

trab

Diretrios so arquivos especiais cujo contudo manipulado pelo


sistema operacional
Sendo um arquivo:

trab2

Pontos de
montagem

joao

so

trab1

teste

bin

maria

teste

ls

who

Mail

trab

trab2

Duas formas bsicas de implementao de diretrios:


Oliveira, Carissimi, Toscani

hosts

usr

Instituto de Informtica - UFRGS

passwd

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

etc

Utiliza os mesmos mecanismos de alocao, liberao e localizao de


blocos do disco que arquivos comuns
Possuem um descritor de arquivo

81

Sistemas Operacionais

Conjunto de arquivos de descritores de arquivos


Vetor de descritores

82

Sistemas Operacionais

Conjunto de arquivos de descritores de arquivos

Vetor de descritores

Estrutura de diretrio corresponde a um conjunto de arquivos do


tipo diretrio

Uma parte do disco reservada para o armazenamento de


descritores de arquivos (diretrios, regulares, etc...)
Forma um diretrio nico (o vetor)

Cada arquivo diretrio possui descritores de arquivos

passwd

usr
hosts

Sistemas Operacionais

bin
Descritores
de arquivo

Arquivo
diretrio etc

Arquivo passwd

passwd
hosts
Arquivo hosts

83

raiz
Oliveira, Carissimi, Toscani

etc

Arquivo
diretrio raiz
etc

Instituto de Informtica - UFRGS

Supem-se que o primeiro descritor descreve o diretrio raiz (/)

raiz

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Arquivos e diretrios so identificados por sua posio nesse vetor

etc
passwd

usr
hosts

etc
bin

usr
bin
passwd
hosts

Sistemas Operacionais

84

Implementao de diretrios como tabelas

Organizao interna de uma partio

Um diretrio nada mais que uma tabela


Trs implementaes mais utilizadas:

Uma partio um disco lgico


Cada partio autocontida, isto , todas as informaes para
acesso aos arquivos da partio esto contidas na prpria partio

Simplicidade versus desempenho

85

Sistemas Operacionais

Tabela de parties
Pr-boot

Captulo 8, sees 8.7, 8.8 e 8.9

A. Silberchatz, P. Galvin, G. Gagne; Applied Operating System


Concepts. Addison-Wesley, 2000, (1st edition).

Setor de boot

Setor de boot

87

Captulo 11

W. Stallings; Operating Systems. (4th edition). Prentice Hall, 2001.


Captulo 12
Oliveira, Carissimi, Toscani

Setor de boot

Partio primria
/dev/hda3

Instituto de Informtica - UFRGS

Partio primria
/dev/hda2
Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

86

R. Oliveira, A. Carissimi, S. Toscani; Sistemas Operacionais. Editora


Sagra-Luzzato, 2001.

Partio primria
/dev/hda1

Sistemas Operacionais

Formatao lgica corresponde a inicializao dessas estruturas de


dados
Normalmente um setor (bloco) especial do disco informa quais so
as parties e quais parcelas do disco a partio ocupa

Leituras complementares

Setor de boot

Partio primria
/dev/hda4

Diretrios e subdiretrios
Descritores de arquivos da partio
Blocos de dados
Lista de blocos livres da partio

Sistemas Operacionais

Parties primrias em um disco IDE


MBR
Master Boot Record

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Vantages e desvantagens dessas implementaes so as


tradicionais:
Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Lista no ordenada
Lista ordenada
Tabela de disperso (tabela hash)

Sistemas Operacionais

88