Você está na página 1de 62

Sistemas Operacionais Sistemas Operacionais

Ezequiel R. Ezequiel R. Zorzal Zorzal


ezorzal@unifesp.br ezorzal@unifesp.br
www.realidadeaumentada.com.br www.realidadeaumentada.com.br
Aula 14: Sistema de Arquivos
Introduo Introduo
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:
Arquivos
Armazenamento de dados e de programas
Diretrios
Organizao e informaes sobre arquivos
Objetivos do sistema de arquivos Objetivos do sistema de arquivos
Fornecer mecanismos para usurios manipular arquivos e diretrios
Garantir a validade e coerncia de dados
Minimizar ou eliminar o risco de perda/alterao de dados
Otimizar o acesso
Fornecer suporte a outros sistemas de arquivos
Suporte a vrios usurios (multiprogramao)
Uso compartilhado (proteo e acesso concorrente)
Requisitos mnimos: ponto de vista do usurio Requisitos mnimos: ponto de vista do usurio
Cada usurio deve ser capaz de:
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
Requisitos mnimos: ponto de vista do sistema Requisitos mnimos: ponto de vista do sistema
O sistema operacional deve ser capaz:
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
Sistema de Arquivos Sistema de Arquivos
O que ?
Um conjunto de arquivos, diretrios, descritores e estruturas de dados
auxiliares gerenciados pelo sub sistema de gerncia de arquivos
Permitem estruturar o armazenamento e a recuperao de dados
persistentes em um ou mais dispositivos de memria secundria (discos ou
bandas magnticas)
Conceitos bsicos
Arquivos
Recipientes que contm dados
Diretrios
Conjuntos de referncias a arquivos
Partio
Abstrao que permite a partir do disco fsico criar discos lgicos
Conceito de arquivo Conceito de arquivo
Umconjunto de dados persistentes, geralmente
relacionados, identificado por um nome
composto por:
Nome: identifica o arquivo perante o utilizador
Descritor de arquivo: estrutura de dados em memria
secundria cominformao sobre o arquivo (dimenso, datas
de criao, modificao e acesso, dono, autorizaes de
acesso)
Informao: dados guardados em memria secundria
Arquivos so mapeados para dispositivos fsicos
Nomes de arquivos Nomes de arquivos
O sistema de arquivos define um espao de nomes
Conjunto de regras e convenes para identificar simbolicamente um
arquivo
Variam de sistema para sistema
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)
Atributos de um arquivo Atributos de um arquivo
Informaes sobre arquivos
Nome: informaosimblica empregada para referenciar o arquivo
Tipo: binrio, texto, executvel, caracter, bloco
Localizao: posio do arquivo emum determinadodispositivo E/S
Tamanho: nmero de bytes que compemo arquivo
Proteo: controla acesso de leitura, escrita e execuo ao arquivo
Hora e data de criao, identificao do usurio: informaes
destinadas proteo, segurana e monitorao
Varia de sistema operacional a sistema operacional
Atributos so mantidos emuma estrutura a parte
Diretrio
Estrutura Interna de Arquivos Estrutura Interna de Arquivos
Seqncia no-
estruturada de bytes
Seqncia de
Registros
rvore de Registros
Estrutura Interna de Arquivos Estrutura Interna de Arquivos
Seqncia no-estruturada de bytes
Forma mais simples de organizao de arquivos
Sistema de arquivos no impe nenhuma estrutura lgica para
os dados, a aplicao deve definir toda a organizao
Vantagem: flexibilidade para criar estruturas de dados, porm
todo o controle de dados de responsabilidade da aplicao
Estratgia adotada tanto pelo UNIX quanto pelo Windows
Estrutura Interna de Arquivos Estrutura Interna de Arquivos
Seqncia de Registros
Em geral, registros de tamanho fixo
Operao de leitura retorna um registro
Operao de escrita sobrepe/anexa um registro
rvore de Registros
Cada registro associado a uma chave
rvore ordenada pela chave
Computadores de grande porte / aplicaes que fazem muita
leitura aleatria
Tipos de arquivo Tipos de arquivo
Sistema operacional suporta vrios tipos de arquivos
Tipos comuns:
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
Mtodos de acesso Mtodos de acesso
Forma pela qual o contedo de um arquivo acessado
Mtodos elementares de acesso:
Acesso sequencial
Acesso relativo
Acesso sequencial Acesso sequencial
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
e.g.: acesso e atualizao a cadastros de funcionrios
Acesso seqencial
l prximo
grava prximo
reinicia
nenhuma leitura aps ltima gravao
(regrava)
n =nmero de bloco relativo
Acesso relativo Acesso relativo
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
Acesso relativo
l n
grava n
posiciona para n
l prximo
grava prximo
regrava n
n =nmero de bloco relativo
Mtodos de Acesso Mtodos de Acesso
Acesso relativo pode ser combinado com acesso
seqencial
Acesso direto a um registro e, a partir deste, acesso seqencial
aos demais
Mtodo mais sofisticado: acesso indexado
Arquivo possui um ndice de ponteiros para acesso direto aos
diversos registros
Registro
0
Registro
1
Registro
2
Registro
n
Deslocamento de
dois registros
Operaes bsicas sobre arquivos Operaes bsicas sobre arquivos
Arquivo um tipo abstrato de dados sobre o qual se pode efetuar uma
srie de operaes
Criao (create)
Escrita (write) e leitura (read)
Reposicionamentoemum ponto qualquer do arquivo (file seek)
Remoo (delete)
Abertura (open) e encerramento (close)
Adicionalmente: truncagem(truncate); renomeao(rename);
appending, etc.
Geralmente correspondema chamadas de sistema
Operaes mais complexas podemser criadas utilizando-se das
operaes bsicas
Controle de acesso Controle de acesso
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
Sistema de autenticao padro (login name + senha)
Usurios possuem direitos de acessos
Soluo tpica:
Lista de acesso e grupo
Listas 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:
Criar classes de usurios
e.g.: proprietrio, grupo, universo
Tipos de acessos
e.g: read, write, modify, execute
Exemplo: UNIX Exemplo: UNIX
Cada objeto oferece 3 bits (rwx) para trs domnios diferentes: proprietrio,
grupo e outros
Problema de flexibilidade
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
r w x r- - r - - 1 mary staff 214056 May 30 22:19 windbind.pdf
Outra abordagem: senhas Outra abordagem: senhas
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
Implementao de arquivos Implementao de arquivos
Arquivos so implementados atravs da criao de uma estrutura de
dados para cada arquivo no sistema
Descritor de arquivo um registro que mantm informaes sobre o
arquivo
Informaes tpicas (atributos):
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 contedo do arquivo foi colocado
Etc.
Alocao do espao em disco Alocao do espao em disco
Como alocar espao em disco de forma que os arquivos sejam
armazenados de forma eficiente e que permita acesso rpido
Alocar blocos livres suficientes para armazenar o arquivo
Blocos lgicos do disco so numerados sequencialmente
Duas formas bsicas:
Contgua (alocao contigua)
No contgua (alocao encadeada e alocao indexada)
00 01 02 03 04
05 06 .... 53 54
55 .... 72 73 74
... 96 97 98 ....
Alocao contgua Alocao contgua
Arquivo uma sequncia de blocos lgicos contguos alocados no
momentoda criao
Endereos no disco so lineares
bloco lgico i e i+1 so armazenados fisicamenteemsequncia
Reduz a necessidadede seek j que blocos esto na mesma trilha
No pior caso necessitaapenas a troca de cilindro
Arquivo descrito atravs de uma entrada na forma:
Bloco fsico inicial
Tamanho do arquivo emblocos
Esquema alocao contgua Esquema alocao contgua
Esquema alocao contgua Esquema alocao contgua
r eadme. t xt 010 003
pr ova. doc 002 008
Aul a. pdf 017 005
ar qui vo i ni ci o #bl ocos
Esquema alocao contgua Esquema alocao contgua
t
aloca aloca
aloca aloca
Agora, como alocar um arquivo com 4 blocos ?
remove remove
remove
Fragmentao Externa !
Problemas com alocao contgua Problemas com alocao contgua
Problema 1: encontrar espao para um novo arquivo
Tcnicas de gerncia de memria
e.g.; first-fit, best-fit, worst-fit
Gera fragmentao externa
Necessidade de compactao
Problema 2: determinar o espao necessrio a um arquivo
Arquivos tendem a crescer, e se no h espao contguo disponvel?
Aborta execuo do programa com erro
Recopia o programa para uma zona maior
Pr-alocar um espao mximo para o arquivo
Fragmentao interna
Alocao encadeada 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 paginao
Arquivo uma lista encadeada de blocos
Cada bloco contm um ponteiro para o prximo bloco
Arquivo descrito em uma entrada na forma:
Bloco inicial do arquivo
Bloco final do arquivo ou tamanho do arquivo em blocos
Esquema de alocao encadeada Esquema de alocao encadeada
Prs e contras da alocao encadeada Prs e contras da alocao encadeada
Elimina a fragmentao externa
Arquivos podem crescer indefinidamente
No h necessidade de compactar o disco
O acesso a um bloco i implica em percorrer a lista encadeada
Afeta o desempenho
Adequado para acesso sequncial a arquivos
Confiabilidade
Erro provoca a leitura/escrita em bloco pertencente a outro arquivo
Alocao Encadeada usando Tabela na Alocao Encadeada usando Tabela na
Memria Memria
Mantm os ponteiros de todos os blocos de arquivos
em uma nica estrutura denominada Tabela de
Alocao de Arquivos
FAT (File Allocation Table)
Vantagens:
Permitir o acesso direto aos blocos
No mantm informaes de controle dentro dos blocos de
dados
FAT : Esquema usado pelo MS-DOS (FAT-16), Win95,Win98,
Windows Millennium Edition(FAT-32)
jeep 217
Diretrio
Primeiro setor do
arquivo
(start block)
618
399
400
217
0
618
399
EOF
400
FAT

Esquema de funcionamento da FAT Esquema de funcionamento da FAT


Desvantagem principal o tempo de seek
Alocao indexada Alocao indexada
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
Esquema de alocao indexada Esquema de alocao indexada
Prs e contras da alocao indexada Prs e contras da 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
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
Problema com os mtodos de alocao no contgua Problema com os mtodos de alocao no contgua
Necessidade de acessar reas especficas do disco para ler as informaes de
encadeamento
Quantidade de seeks depende do tipo da estrutura (FAT ou descritores)
Soluo manter em memria
Tradicionais problemas de rea de memria ocupada e de confiabilidade
Resumo dos tipos de alocao Resumo dos tipos de alocao
Alocao contgua
S armazena endereo do primeiro bloco
Acesso randmico possvel (bloco inicial +deslocamento)
Gera fragmentao externa no disco
Alocao encadeada
Armazena endereo do primeiro bloco
Problema de desempenho (seek)
No recomendado para acesso randmico
Alocao indexada
Visa solucionar problemas dos tipos anteriores
Anlise de desempenho (tamanho +tempo de acesso ) complexa
Depende da estrutura de ndice e do tamanho de arquivo
Concluso: qual o melhor mtodo de alocao? Concluso: qual o melhor mtodo de alocao?
Depende do tipo de acesso que o sistema faz a seus arquivos
Sequncial versus randmico
Fator adicional:
Evoluo tecnolgica (novos hardwares) e de desempenho foram a
coexistncia de diferentes sistemas de arquivos
Necessidade de fazer conviver diferentes sistemas de arquivos em um
mesmo computador
Suporte a mltiplos sistemas de arquivos
Organizao da cache de disco Organizao 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
Funo melhorar o desempenho do sistema de arquivos
No confundir com a cache do processador
Normalmente a cache de disco mantida em uma rea da memria principal e
controlada pelo sistema operacional
Pode ser global ou exclusiva (uma por sistema de arquivo suportado)
Funcionamento da cache de disco Funcionamento da cache de disco
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
Problema de quando atualizar o disco aps um bloco ter sido alterado
Problema da perda de informaes e da consistncia do sistema de
arquivos em caso de pane do sistema (falta de energia)
Polticas de atualizao da cache 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
Poltica de substituio Poltica de substituio
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 gerncia de memria virtual (substituio de
pginas)
Tipicamente a poltica Least-Recently-Used (LRU) empregada
Implementao da poltica LRU Implementao da poltica LRU
Facilmente implementada atravs de uma lista duplamente encadeada
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
Existe o problema de localizar rapidamente um bloco na lista
Emprego de funo hash
Implementao da cache do sistema de arquivos Implementao da cache do sistema de arquivos
HASH( partio, nmero do bloco )
contedo do bloco
informaes adicionais
LRU - incio LRU - fim
Gerenciamento do espao livre Gerenciamento do espao livre
Necessrio manter a informao de blocos livres e ocupados
Mtodos bsicos:
Mapa de bits (bit map)
Lista de blocos livres
Ambos mtodos consideram que os blocos no disco so numerados
sequencialmente
00 01 02 03 ....
25 26 .... 53 54
55 .... 72 73 74
... 96 97 98 ....
Mapa de Mapa de bits bits ((bit map bit map))
Forma simples de gerenciar o espao em disco
Cada bloco do disco possui um bit indicando se o bloco est livre ou ocupado
) ( _ 8
) ( _
_ _
bytes bloco tamanho
bytes disco Capacidade
map bit tamanho

Disco
Bloco
Fsico
0
1
2
3
4
5
6
7
8
9
10
12
11
13
Mapa de Bits.
14
15
0 0 1 0 1 0 1 0
0 0 1 1 0 0 0 0
Lista de blocos livres Lista de blocos livres
Os blocos livres so organizados em uma lista
Lista mantida no prprio disco
Problema o tamanho da lista
Paliativo: a medida que o espao em disco ocupado a lista diminui
de tamanho liberando espao do disco
Soluo alternativa manter uma lista de reas livres ao invs de uma
lista de blocos livres
Endereo do bloco inicial da rea livre e o seu tamanho
Gerncia de espao livre atravs de blocos livres Gerncia de espao livre atravs de blocos livres
Disco Bloco
Fsico
0
1
2
3
4
5
6
7
8
9
10
12
11
13
14
15
2
4
6
7
8
9
10
11
14
15
lgico
Diretrio Diretrio
Problema:
Quantidade (grande) de arquivos implica na necessidade de organiz-los
Sistema de arquivos oferece duas formas de organizao
Partio
Diretrio
Partio divide um disco em discos lgicos (virtuais), mas no resolve a
organizao de arquivos dentro desse disco lgico
No mnimo uma em um sistema
Onde residem os arquivos e os diretrios
O conceito de diretrio O conceito de diretrio
Estrutura de dados que contm informaes sobre arquivos
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,...
Diretrio um arquivo pertencente ao sistema operacional
Acesso feito via servios do sistema operacional
Tipos de operaes em um diretrio
Pesquisar
Criar e remover arquivos
Listar diretrio
Atualizar diretrio
Organizao de diretrio Organizao de diretrio
Cada entrada do diretrio um arquivo
Existem duas formas bsicas para se organizar um diretrio
Linear
Em rvore
Diretrio linear Diretrio linear
Mais simples
O diretrio corresponde a uma lista de todos os arquivos do disco
Desvantagem:
Problema de nomeao e agrupamento
2 ou mais usurios no podem ter arquivos com o mesmo nome
(coliso)
Silberchatz, Galvin, Gagne. Applied Operating System Concepts (1st Ed.) John Wiley & Sons, 2000.
Diretrio linear a dois nveis Diretrio linear a dois nveis
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.
Diretrio em arvre Diretrio em arvre
Generalizao do diretrio linear a dois nveis
Permite aos usurios criar subdiretrios e organizar seus arquivos
Possui um diretrio raiz (master)
Silberchatz, Galvin, Gagne. Applied Operating System Concepts (1st Ed.) John Wiley & Sons, 2000.
Conceitos associados a um diretrio em rvore Conceitos associados a um diretrio em rvore
Qualquer arquivo (ou subdiretrio) pode ser identificado de forma no
ambgua atravs de seu caminho (pathname)
Conceito de diretrio corrente, caminho absoluto e caminho relativo
Diretrio corrente (diretrio de trabalho):
Qualquer n da rvore
Caminho absoluto
Quando se referencia um arquivo a partir da raiz da arvre
e.g.: /spell/mail/prt/first
Caminho relativo
Quando se referencia um arquivo a partir do diretrio corrente
e.g.: prt/first
Prs e contras da estrutura em rvore Prs e contras da estrutura em rvore
Vantagem:
Procura eficiente por arquivos
Possibilidade de agrupamento de arquivos
Desvantagem:
Compartilhamento de arquivos
Questo : copiar ou no arquivos a compartilhar?
Conceito de search path
Lista de diretrios (caminhos absolutos) a pesquisar um arquivo
Diretrio estruturado em grafos acclicos Diretrio estruturado em grafos acclicos
Generalizao da estrutura em rvore
Prov compartilhamento atravs de caminhos alternativos para um
arquivo
Silberchatz, Galvin, Gagne. Applied Operating System Concepts (1st Ed.) John Wiley & Sons, 2000.
Prs e contras de diretrios estruturados em grafos Prs e contras de diretrios estruturados em grafos
Vantagem:
Compartilhamento de arquivos
Desvantagem:
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)
Organizao interna de uma partio Organizao interna de uma partio
Uma partio um disco lgico
Cada partio autocontida, isto , todas as informaes para acesso aos
arquivos da partio esto contidas na prpria partio
Diretrios e subdiretrios
Descritores de arquivos da partio
Blocos de dados
Lista de blocos livres da partio
Formatao lgica corresponde 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
Parties primrias em um disco IDE Parties primrias em um disco IDE
MBR
Master Boot Record
Partio primria
/dev/hda1
Tabela de parties
Setor de boot
Pr-boot
Setor de boot
Setor de boot
Setor de boot
Partio primria
/dev/hda2
Partio primria
/dev/hda3
Partio primria
/dev/hda4

Você também pode gostar