You are on page 1of 83

Sistema Operacionais

Sistemas Operacionais

Sistemas de Arquivos

Sistema de Arquivos
No possvel gravar dados disco (HD, memory card, pen drive, CD) sem um sistema de arquivos, que , basicamente, uma estrutura que indica como os arquivos devem ser gravados e guardados em mdias.

Sistemas Operacionais

Sistema de Arquivos
Atravs do sistema de arquivos, que se determina o espao utilizado no disco, alm de ser o mtodo que permite gerenciar como partes de um arquivo podem ficar "espalhadas" no dispositivo de armazenamento.

Sistemas Operacionais

Sistema de Arquivos
Um outro detalhe importante: o sistema de arquivos que determina como arquivos podem ser gravados, copiados, alterados, nomeados e at apagados.

Sistemas Operacionais

Sistema de Arquivos
Ou seja, resumindo, toda e qualquer manipulao de dados numa mdia necessita de um sistema de arquivos para que essas aes sejam possveis. Se no houver estrutura de armazenamento e manipulao impossvel gravar dados.

Sistemas Operacionais

Introduo
O sistema de arquivos a parte mais visvel 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

Sistemas Operacionais

Duas partes bsicas:


Arquivos - armazenamento de dados e de programas Diretrios - organizao e informaes sobre arquivos
Sistemas Operacionais

Partio
permite - a partir do disco fsico - criar discos lgicos

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
Sistemas Operacionais

Otimizar o acesso

Objetivos do sistema de arquivos


Fornecer suporte a operaes de E/S a diferentes dispositivos
Interface nica para interface usurio de funes de E/S
Sistemas Operacionais

Suporte a vrios usurios (multiprogramao)


Uso compartilhado (proteo e acesso concorrente)

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
Sistemas Operacionais

Estruturar o sistema de arquivos de forma a adequ-lo a suas necessidades especficas

Requisitos mnimos: Ponto de Vista do Usurio


Cada usurio deve ser capaz de: Transferir dados entre arquivos Realizar backups e recuperar arquivos em caso de problemas Nomear os arquivos de forma simblica

Sistemas Operacionais

Requisitos mnimos: Ponto de Vista do Sistema


Identificar e localizar um determinado arquivo
Empregar diretrio para descrever a localizao de todos os arquivos e de seus atributos

Gerenciar espao fsico do disco


Sistemas Operacionais

Alocar blocos livres a arquivos em criao/expanso Liberar blocos de arquivos removidos


Mecanismos para localizar eficientemente blocos (setores) que compem arquivos

Conceito de arquivo
Menor unidade do sistema de arquivos Espao lgico de endereamento contguo
Seqncia de bytes, de linhas, ou de registros

Sistemas Operacionais

Possui uma estrutura interna cuja interpretao depende do sistema operacional e do programa que o manipula
Arquivos de dados - numrico, caractere, binrio Programa - fonte, objeto, executvel

Atributos de um arquivo
Informaes sobre arquivos
Nome: informao simblica empregada pelo usurio 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

Sistemas Operacionais

Proteo: controla acesso de leitura, escrita e execuo ao arquivo Hora e data de criao e identificao do usurio: informaes destinadas a proteo, segurana e monitorao
Sistemas Operacionais

Atributos so mantidos em uma estrutura a parte


Diretrio

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) Reposicionamento em um ponto qualquer do arquivo (file seek) Remoo (delete) Abertura (open) e encerramento (close) Adicionalmente: renomeao (rename); appending, etc

Sistemas Operacionais

Geralmente correspondem a chamadas de sistema

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

Sistemas Operacionais

Soluo tpica:
Lista de acesso e grupo

Sistemas Operacionais

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

Sistemas Operacionais

Exemplo: SISTEMAS UNIX


Cada objeto oferece 3 bits (rwx) para trs domnios diferentes: owner, group e others 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

Sistemas Operacionais

Exemplo:
r w x r- - r - - 1 paulo professor 214056 Mai 30 22:19 windbind.pdf

Estrutura interna dos arquivos


Forma como os dados so dispostos em um arquivo Cada tipo de arquivo possui uma estrutura interna apropriada a sua finalidade Em geral a estrutura interna transparente ao sistema operacional. Executveis so organizados em segmentos de cdigo e dados

Sistemas Operacionais

Arquivos de imagens so organizados em termos de pixels Alguns sistemas operacionais suportam nomes de arquivos onde o tipo indicado
Sistemas Operacionais

e.g.: Windows (arquivos .doc, .pdf, .xls, .ppt, etc)

Mtodos de acesso
Forma pela qual o contedo de um arquivo acessado Estrutura lgica de um arquivo em funo da forma de acesso
Sistemas Operacionais

Conceito de registro: coleo de campos que mantm uma relao entre si

Mtodos elementares de acesso:


Acesso seqencial Acesso relativo

Acesso seqencial
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

Sistemas Operacionais

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

Sistemas Operacionais

Outros tipos de acesso


Os mtodos seqnciais e relativos no resolvem todos os tipos de acesso
e.g.: localizar um registro a partir do contudo

Sistemas Operacionais

Necessidades de mtodos de acesso mais sofisticados, tais como seqencial indexado, indexado, direto, hash, etc
Normalmente implementados por programas especficos Baseados nos mtodos de acesso seqncial e relativo

Implementao de arquivos
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
Sistemas Operacionais

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 contudo do arquivo foi colocado

Sistemas Operacionais

Alocao espao em disco


Como alocar espao em disco de forma que os arquivos sejam armazenados de forma eficiente e que permita acesso rpido Trs mtodos:
Sistemas Operacionais

Contigo Encadeado Indexado

Sistemas Operacionais

Alocao contgua
Arquivo uma seqncia de blocos contguos alocados no momento da criao Endereos no disco so lineares
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

Sistemas Operacionais

Arquivo descrito atravs de uma entrada na forma:


Bloco fsico inicial Tamanho do arquivo em bloco

Sistemas Operacionais

Alocao contgua

Problemas com alocao contgua


Problema 1: encontrar espao para um novo arquivo
Gera fragmentao externa Necessidade de compactao
Sistemas Operacionais

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

Sistemas Operacionais

Alocao encadeada
Soluciona problemas da alocao contgua Alocao baseada em uma unidade de tamanho fixo (bloco) Arquivo uma lista encadeada de blocos
Cada bloco contm um ponteiro para o prximo bloco
Sistemas Operacionais

Arquivo descrito em uma entrada na forma:


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

Sistemas Operacionais

Alocao encadeada

Prs e contras da alocao encadeada


Elimina a fragmentao externa porm gera fragmentao interna Arquivos podem crescer indefinidamente j que no h uma relao fsica entre blocos fsicos e lgicos O acesso a um bloco i implica em percorrer a lista encadeada - afeta o desempenho Adequado para acesso seqencial a arquivos Espao necessrio no bloco para armazenamento de ponteiros
e.g.: Para acessar 4 Gbytes necessita 232 ponteiros (4 bytes), ou seja, 0.78% de um setor de 512 bytes

Sistemas Operacionais

FAT: variao de alocao encadeada


File Alocation Table (FAT) - esquema adotado pelo DOS Unidade de alocao o cluster (conjunto de setores)
Arquivo formado por um conjunto de cluster

FAT uma tabela de encadeamento de clusters


Sistemas Operacionais

Uma entrada na FAT para cada cluster do disco (sistema de arquivos) Composta por um ponteiro (end. de um cluster) Arquivo descrito por uma seqncia de entradas na FAT, cada entrada apontando para a prxima entrada

Alocao indexada
Busca resolver o problema de ponteiros espalhados 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

Sistemas Operacionais

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

Sistemas Operacionais

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 - melhora o desempenho do sistema de arquivos Normalmente a cache de disco mantida em uma rea da memria principal e controlada pelo sistema operacional

Sistemas Operacionais

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
Sistemas Operacionais

A modificao de valores feito em blocos na cache Problema da perda de informaes e da consistncia do sistema de arquivos em caso de pane do sistema (falta de energia)

Gerncia de espao livre


Necessidade de alocar espao livre do disco a arquivos Muitos sistemas operacionais vm o disco como uma seqncia de blocos e no de setores A unidade de gerncia do espao fsico passa a ser o bloco

Sistemas Operacionais

Mapa de bits
Forma simples de gerenciar o espao em disco A cada bloco do disco est associado um bit indicando se o bloco est livre ou ocupado
Sistemas Operacionais

Lista de blocos livres


Os blocos livres so organizados em uma lista A 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

Sistemas Operacionais

O conceito de diretrio
Estrutura de dados que contm informaes sobre arquivos
Atributos Localizao Propriedades

Diretrio um arquivo do sistema operacional


Sistemas Operacionais

Fornece um mapeamento entre o nome de um arquivo e o arquivo propriamente dito

Existem duas formas bsicas para se organizar um diretrio Linear Em rvore

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

Sistemas Operacionais

Diretrio linear a dois nveis


Existncia de um diretrio principal que contm uma entrada para cada usurio cadastrado no sistema Entrada corresponde a um subdiretrio
Sistemas Operacionais

Diretrio em rvore
Generealizao do conceito de subdiretrios permitindo aos usurios criar livremente os seus prprios subdiretrios

Sistemas Operacionais

Sistema de Arquivos FAT16


FAT a sigla para File Allocation Table (ou tabela de alocao de arquivos). Quando um arquivo salvo num HD por exemplo, o FAT divide a rea do disco em pequenos blocos. Assim, um arquivo pode (e ocupa) vrios blocos, mas eles no precisam estar numa seqncia. Os blocos de determinados arquivos podem estar em vrias posies diferentes. Da a necessidade de uma tabela para indicar cada bloco.

Sistemas Operacionais

Sistema de Arquivos FAT16


Ao trabalharmos com HDs (e outros discos) necessrio prepar-los, fazendo uma formatao fsica. Este processo, divide os discos em trilhas (uma espcie de caminho circular) e setores (subdivises de cada trilha, com geralmente 512 bytes). Um conjunto de trilhas recebe o nome de cilindro.

Sistemas Operacionais

Sistemas Operacionais

A formatao fsica j vem de fbrica e pode ser alterada se o usurio quiser dividir o disco em parties. Depois devese fazer uma formatao lgica, que nada mais do que "instalar" o sistema de arquivos no dispositivo de armazenamento.

Sistemas Operacionais

O sistema de arquivos FAT no trabalha diretamente com cada setor, mas sim com um grupo de setores. Esse grupo chamado de cluster (ou unidade de alocao). Se por exemplo, um disco com setor de 512 bytes, tiver 5 KB de tamanho, ele ter 10 setores e 5 clusters, se cada cluster ocupar dois setores.

Sistemas Operacionais

Sendo assim, quando o FAT precisar acessar um determinado setor, primeiro ele descobre em qual cluster ele se encontra. vlido citar que tanto o FAT quanto o FAT32 trabalham de acordo com este princpio.

Sistemas Operacionais

O sistema FAT exige que cada cluster do disco seja usado somente para um nico arquivo, ou seja, num mesmo cluster, no pode haver informaes sobre mais de um arquivo. Isso pode at parecer bvio, mas gera um problema: desperdcio.

Sistema de Arquivos FAT32


FAT32 - A verso OSR-2 do Windows 95 (conhecido tambm como Windows "B") trouxe um novo sistema de arquivos chamado de FAT32. Uma evoluo natural da antiga FAT16, ela permite 32 bits de endereamento de dados, permitindo clusters de apenas 4 kbytes, mesmo em parties maiores que 2 GB. O tamanho mximo de uma partio com FAT32 de 2048 Gbytes, ou 2 Terabytes.

Sistemas Operacionais

Comparao FAT16 x FAT32

Sistemas Operacionais

Sistema de Arquivos VFAT


VFAT a sigla para Virtual File Allocation Table. Trata-se de um sistema introduzido no Windows 95. Ele possui as mesmas caractersticas do sistema FAT, mas pode suportar nome de arquivos longos. O sistema de arquivos FAT s trabalha com nomes no estilo 8.3 (8 caracteres para o nome e 3 para a extenso, como "palavras.txt").Com o VFAT, possvel ter nomes de arquivos com at 256 caracteres mais 3 para a extenso. O sistema FAT32 herdou todas as caractersticas do VFAT.

Sistemas Operacionais

Sistemas de arquivos NTFS


NTFS a sigla para New Technology File System. Desde a poca do DOS, a Microsoft vinha utilizando o sistema de arquivos FAT FAT apresenta algumas limitaes, principalmente no quesito segurana. Microsoft lanou o sistema de arquivos NTFS, usado inicialmente em verses do Windows para servidores.

Sistemas Operacionais

Sistemas Operacionais

Este sistema de arquivos usado pelo Windows NT. Nele, os clusters so de apenas 512 bytes, sendo o espao em disco desperdiado quase nenhum. Somente os Windows NT / 2000 / 2003 / 2008/ XP / Vista / 7, so capazes de entender este formato de arquivos, e a opo de formatar o HD em NTFS dada durante a instalao

New Technology File System, conhecido pela sigla NTFS sistema de arquivos HPFS (High Performance File System)
Sistemas Operacionais

Sistemas Operacionais

Confiana (fazendo-o ser tolerante a falhas) Segurana Arrays RAID Rede

Sistema de Arquivos HPFS


O HPFS o sistema de arquivos utilizado pelo OS/2, com recursos que se aproximam muito dos permitidos pelo NTFS como nome de arquivos com at 254 caracteres incluindo espaos, parties de at 512GB unidades de alocao de 512 bytes.

Sistemas Operacionais

Sistemas Operacionais

O OS/2 foi o sistema operacional concorrente do Windows 95 lanado pela IBM. pouco conhecido, porm tecnicamente muito superior ao Windows 95. Embora muito eficiente este sistema de arquivos caiu em desuso juntamente com o OS/2, sendo suportado atualmente somente pelo Linux.

Sistemas de Arquivos no Linux


Todo sistema operacional precisa de um sistema de arquivos e o Linux no exceo regra, pois afinal de contas um sistema de arquivos serve para fornecer ao sistema operacional toda a uma estrutura para ler, gravar e executar arquivos. Dependendo do tipo de sistema de arquivos pode se ter determinados recursos.

Sistemas Operacionais

Hoje em dia, o Linux tem uma gama muito grande de opes de sistema de arquivos: Desde o velho EXT2 at os atuais com suporte a Journaling, como o EXT3, ReiserFS e XFS.
Sistemas Operacionais

Histria
Os sistemas de arquivos utilizados atualmente no Linux so avanados e tem vrios recursos, mas no foi sempre assim. Nas primeiras verses do kernel, o sistema de arquivos utilizado era o EXT. Extremamente frgil e com muitas limitaes, como por exemplo, permisso para criao de parties de somente at 2GB e fcil desfragmentao. A partir do EXT2 a limitao de 2GB para parties caiu por terra, j que ele permite criao de parties de at 4Terabytes!

Sistemas Operacionais

Sistema de Arquivos EXT2


Sem dvida alguma o EXT2 foi uma evoluo e tanto em relao ao EXT (suporte a regras de permisses bem definidas) Estrutura do EXT2:
Sistemas Operacionais

Boot Block Inodes Diretrios Links

Sistemas Operacionais

Ao contrrio do Windows, que trata dispositivos de hardware como tal, o Linux trata tudo como arquivo. Os dispositivos de hardware ficam todos no diretrio /dev Outra caracterstica o recurso de montagem acessar parties de diversos tipos, como FAT, FAT32, iso9660 e outras

Sistemas Operacionais

Um grande problema do EXT2 a sua baixa tolerncia a falhas em caso de quedas de energia ou desligamento inadequado, sendo talvez at mais frgil do que a FAT32 do Windows FSCK Journaling

Journaling
limitaes do EXT2 capacidade de acompanhar as mudanas que sero feitas nos arquivos antes de serem efetivadas Estes registros so gravados numa rea separada do sistema de arquivos, chamada Journal ou registros de LOG FSCK

Sistemas Operacionais

Nesta categoria de sistemas de arquivos existem algumas opes como EXT3, ReiserFS e JFS, sendo que os mais utilizados so o EXT3 e o ReiserFS
Sistemas Operacionais

Sistemas de Arquivos ReiserFS



Sistemas Operacionais

ReiserFS > seu desempenho blocos dinmicos modo como ele armazena os registros metadata (estrutura de controle de um arquivo, ou seja, onde especificado seu tamanho, permisses, data de criao, modificao, etc..) recuperar o arquivo, mas os dados contidos nele podem ficar truncados ou mesmo perdidos

Sistema de Arquivos EXT3


EXT3 o sucessor natural do EXT2 sistema de arquivos para Linux mais utilizado atualmente suporte para tecnologia Journaling diferencia-se do modo de trabalho em Journaling do ReiserFS uma perda de dados do arquivo reduzida

Sistemas Operacionais

registro de LOG ser completo >> Journal acessado com muito mais freqncia desempenho em relao ao ReiserFS Journal se corromper
Sistemas Operacionais

Sistema de Arquivos EXT4


EXT4 o sucessor natural do EXT4 Sistema de arquivos lanado em 2006 Suporta sitemas de arquivos de 1 exabyte
Sistemas Operacionais

1024 giga = 1 tera 1024 tera = 1 peta 1024 peta = 1 exa

Comea a ser o sistema de arquivos padro de muitas distros

Sistema de Arquivos EXT4


Checagem no Journaling, garantindo uma restaurao mais rpida e a prova de falhas. Desfragmentao On-Line Checagem rpida do file-system Atrasar a Alocao dos Blocos Pr-alocao de Nvel de Arquivo

Sistemas Operacionais

Sistema de Arquivos EXT

Sistemas Operacionais

EXT EXT2 EXT3 EXT4

1992 1993 2001 2006

Linux e NTFS
sistemas de arquivos para Linux >> versatilidade, segurana e compatibilidade com outros sistemas de arquivos NTFS: Proprietrio, fechado distribuies que vem com o kernel 2.6.x e superiores
leitura e gravao (com restries) Existem projetos como o Linux-NTFS / Captive / NTFS-3G

Sistemas Operacionais

Sistemas Operacionais

/ Diretrio raiz do sistema de arquivos. abaixo dele que se situam todos os outros. /bin Arquivos executveis de comandos essenciais. /boot Arquivos estticos necessrios a inicializao do sistema. /etc Arquivos de configurao do sistema. /home Lugar onde ficam os diretrios locais dos usurios.

Sistemas Operacionais

/lib Arquivos de bibliotecas essenciais ao sistema, utilizadas pelos programas em /bin. /mnt Usualmente o ponto de montagem de dispositivos na mquina. /proc Informaes do kernel e dos processos. /root Diretrio local do superusurio.

Sistemas Operacionais

/sbin Arquivos essenciais ao sistema. Normalmente s o superusurio tem acesso a estes arquivos. /tmp Diretrio de arquivos temporrios. /usr Arquivos pertencentes aos usurios. ( a segunda maior hierarquia de diretrios presente no Linux, s perdendo para o diretrio raiz). /var Diretrio onde so guardadas informaes variveis sobre o sistema