Você está na página 1de 51

Introdução Arquivo Estrutura Implementação

Sistema de Arquivos

Prof. M.Sc. Rodrigo Costa


rodccosta@gmail.com

Instituto Federal de Educação, Ciência e Tecnologia do Ceará


TELM.067 - Sistemas Operacionais

Fortaleza-CE, Brasil

TELM.067 - Sistemas Operacionais 1/47


Introdução Arquivo Estrutura Implementação

Agenda

1 Introdução

2 Arquivo

3 Estrutura

4 Implementação

TELM.067 - Sistemas Operacionais 2/47


Introdução Arquivo Estrutura Implementação

Introdução

Necessidade permanente dos Processos


ler e gravar em vários dispositivos e,
além disso, necessitam compartilhar informações com outros
processos.

Mecanismo que provê armazenamento e acesso a dados e


programas
A implementação do conceito de arquivo possibilita que o Sistema
Operacional (SO) estruture e organize as informações necessárias aos
processos.

TELM.067 - Sistemas Operacionais 3/47


Introdução Arquivo Estrutura Implementação

Introdução

Para os usuários
o Sistema de Arquivos é o aspecto mais visı́vel do Sistema
Operacional (SO)

O sistema de arquivos consiste em


conjunto de arquivos: armazenamento de dados
estruturas de diretórios: organização e informações sobre os
arquivos do sistema.
partições

Um arquivo
formado por informações (instruções ou dados) logicamente
relacionadas.

TELM.067 - Sistemas Operacionais 4/47


Introdução Arquivo Estrutura Implementação

Necessidade de Armazenamento

Importância
Grandes quantidades de informação têm de ser armazenadas
Informação armazenada tem de sobreviver ao fim do processo
que a utiliza
Múltiplos processos devem poder acessar a informação de um
modo concorrente

Necessidade fundamental
Independência entre os arquivos a serem manipulados pelo sistema e o
meio de armazenamento destes arquivos.

TELM.067 - Sistemas Operacionais 5/47


Introdução Arquivo Estrutura Implementação

Atividades suportadas

Primitivas para manipulação (chamadas de sistema para


manipulação de arquivos)
criar, deletar
abrir, fechar
ler, escrever
posicionar

Mapeamento para memória secundária


Interface homogênea e transparente para a manipulação de dados em
memória secundária.

TELM.067 - Sistemas Operacionais 6/47


Introdução Arquivo Estrutura Implementação

Sistema de Arquivo

Formado por duas partes distintas:


Coleção de Arquivos: Armazenagem de dados;
Estrutura de Diretórios: Responsável pela organização e
informações sobre os arquivos do sistema;

arquivo é um conjunto nomeado de informações gravadas em


memória
Programas: código-fonte ou objeto
Dados: numéricos, alfabéticos, alfanuméricos ou binários

TELM.067 - Sistemas Operacionais 7/47


Introdução Arquivo Estrutura Implementação

Arquivos

Armazenamento ocorre em diferentes tipos de dispositivos


fitas magnéticas, discos magnéticos, discos ópticos ou memórias flash

SO abstrai as propriedades fı́sicas


define uma unidade de armazenamento lógico (O ARQUIVO)

em outras palavras
Um arquivo é um conjunto de registros que torna abstrato e
generalizado

Significado é definido pelo criador


Coleção de informações logicamente relacionadas (bits, bytes, linhas e
registros), que representam programas ou dados;

TELM.067 - Sistemas Operacionais 8/47


Introdução Arquivo Estrutura Implementação

Atributos
possuem uma série de informações de controle associadas a cada
arquivo:
Nome
Distinção entre caracteres, extensão máxima, partes (nome e
extensão);

Tipo
necessário quando o SO diferencia tipos.

Localização
Formado pelo ponteiro para o dispositivo e o local onde se encontra o
arquivo neste dispositivo;

Tamanho
Tamanho atual do arquivo. Pode conter o tamanho máximo
permitido;
TELM.067 - Sistemas Operacionais 9/47
Introdução Arquivo Estrutura Implementação

Atributos

possuem uma série de informações de controle associadas a cada


arquivo:
Informações para proteção de acesso
privilégios de acesso dos usuários;

Data e hora:
da criação do arquivo, da última modificação feita no arquivo e do
último acesso feito ao arquivo;

Identificação do usuário
que criou o arquivo.

TELM.067 - Sistemas Operacionais 9/47


Introdução Arquivo Estrutura Implementação

Identificação do Arquivo

Identificação
Id = nome + extensão

Extensão
pode ser responsável em tipo de arquivo.

Mac
contém um atributo com o nome do processo criador

UNIX
permite o uso de extensões, mas não são utilizados pelo SO

TELM.067 - Sistemas Operacionais 10/47


Introdução Arquivo Estrutura Implementação

Exemplos
Tipo Extensão Função
Executável EXE, COM, BIN Programa Executável
Objeto obj, o Programa compilado, mas não ligado
Arquivo de C, cpp, pas, p, Código Fonte em diversas linguagens
asm, m
comandos
Texto TXT, LOG Dados Textuais
Processador doc, tex, docx, utilizados por editores de texto
odt
de Texto
Biblioteca lib, a Bibliotecas de rotinas
Impressão Ps, dvi, pdf Arquivos para impressão ou exibição
na tela
Imagens JPG, PNG, GIF, Arquivos relacionados com imagens
BMP
Arquivamento Arc, zip, tar Arquivos agrupados para
armazenamento

TELM.067 - Sistemas Operacionais 11/47


Introdução Arquivo Estrutura Implementação

Significado
Ex.: imagens
Padronizar os tipos de compressão facilita intercâmbio de imagens
comprimidas entre aplicações (diferentes computadores, etc).

Existem formatos ideais para cada caracterı́stica


GIF: gráficos e ilustrações
Codifica até 256 cores, incluindo um nı́vel de cor para uma cor
“transparente”

JPEG: Fotografia
Ele é otimizado para fotografia, figuras e imagens naturais. Mas em
imagens com poucas cores, não possui boa eficiência

PNG: Uso em rede


Evolução do GIF possibilitando a codificação em 48 bits
TELM.067 - Sistemas Operacionais 12/47
Introdução Arquivo Estrutura Implementação

Métodos de Acesso
Estrutura
Forma como a informação é acessada no arquivo;

Definida pela aplicação ou suportada pelo Sistema Operacional


(SO)
o modo como os dados estão internamente armazenados pode variar
em função do tipo de informação contida no arquivo

Dependendo de como o arquivo está organizado o sistema pode


recuperá-lo de diferentes maneiras;
Tipos de acesso:
Acesso seqüencial;
Acesso direto;
Acesso indexado;

TELM.067 - Sistemas Operacionais 13/47


Introdução Arquivo Estrutura Implementação

Exemplos

TELM.067 - Sistemas Operacionais 14/47


Introdução Arquivo Estrutura Implementação

Estruturas:

Sequência não estruturada de bytes

Vantagem
Mais simples e grande Flexibilidade

Desvantagem
mı́nimo suporte do SO, cada aplicação deve incluir o código para
interpretar o arquivo

Ex.
DOS e UNIX

TELM.067 - Sistemas Operacionais 15/47


Introdução Arquivo Estrutura Implementação

Estruturas

Sequência de Registros
muitos SOs implementavam arquivos com registros de 80 caracteres
devido aos cartões perfurados de 80 colunas.

Árvore
Os registros são organizados em uma árvore de registros (tamanho
fixo ou variável)

TELM.067 - Sistemas Operacionais 16/47


Introdução Arquivo Estrutura Implementação

Formas de Acesso: Sequencial

Método de acesso mais comum.


editores e compiladores fazem acesso desta forma.

Baseado em fitas magnéticas


Informações no arquivo são processadas na ordem que foram
gravadas;

TELM.067 - Sistemas Operacionais 17/47


Introdução Arquivo Estrutura Implementação

Formas de Acesso: Acesso direto

Registros
Arquivo é dividido em blocos que podem ser acessados em qualquer
ordem;

Baseado em discos magnéticos


Leitura/gravação de um registro diretamente na sua posição relativa
ao inı́cio do arquivo

Ideal para grande quantidade de informação, como as bases de dados;

Registros de tamanho fixo


permite ler e gravar registros aleatoreamente

Possı́vel combinar o acesso direto com o acesso seqüencial.

TELM.067 - Sistemas Operacionais 18/47


Introdução Arquivo Estrutura Implementação

Formas de Acesso: Acesso Direto

Também conhecido como acesso relativo

TELM.067 - Sistemas Operacionais 19/47


Introdução Arquivo Estrutura Implementação

Formas de Acesso: Acesso Indexado

Sofisticação do acesso direto


Chamado de acesso indexado ou por chave

Área de ı́ndice com ponteiros para os diversos registros.


Usa um ı́ndice que identifica o ponteiro para o registro desejado

Forma de busca
Primeiro ocorre uma pesquisa pela chave especificada na area de
ı́ndice para determinar o ponteiro correspondente. Depois, realiza-se
um acesso direto ao registro desejado.

Vantagem
necessário manter apenas a tabela de ı́ndices na memória.

TELM.067 - Sistemas Operacionais 20/47


Introdução Arquivo Estrutura Implementação

Operações

O SO fornece uma série de System Call (SC) para manipulação


de arquivos Operações Básicas
Criar Arquivo
1 encontrar espaço em disco
2 criar uma entrada para o novo arquivo ou diretório

Escrever
1 a partir do nome
2 localizar o arquivo
3 escrever o conteúdo desejado na posição atual de gravação
4 atualizar o ponteiro

TELM.067 - Sistemas Operacionais 21/47


Introdução Arquivo Estrutura Implementação

Operações

Outras operações
Ler
reposicionar o ponteiro de um
arquivo
remover o arquivo
truncamento de arquivo
adicionar dados
renomeação
cópia
TELM.067 - Sistemas Operacionais 22/47
Introdução Arquivo Estrutura Implementação

System calls UNIX

fd = creat(nome, modo)
fd = open(arq, modo)
s = close(fd)
n = read(fd, buffer, nbytes)
n = write(fd, buffer, nbytes)
pos = lseek(fd, offset, inicio/atual/fim)
s = stat(nome, &buf)
s = chmod(nome, modo)

TELM.067 - Sistemas Operacionais 23/47


Introdução Arquivo Estrutura Implementação

Diretórios

O sistema de arquivo pode ser muito grande


é necessário organizá-lo para tornar possı́vel o gerenciamento do
sistema de arquivo

A manipulação é feita em partes


1 O sistema é dividido em Partições
2 Cada partição contém as informações sobre os arquivos que ela
armazena através dos Diretórios

TELM.067 - Sistemas Operacionais 24/47


Introdução Arquivo Estrutura Implementação

Partições

cada disco contém pelo menos uma partição


podem existir até quatro partições primárias (fı́sicas)
e necessitando mais partições, utiliza-se as partições extendidas

usadas para fornecer áreas separadas em disco


cada uma é tratada como um dispositivo de armazenamento diferente

Partição extendida
uma partição que ao invés de conter sistemas de arquivos, ela agrupa
vários discos em uma estrutura lógica

TELM.067 - Sistemas Operacionais 25/47


Introdução Arquivo Estrutura Implementação

Diretórios

Um diretório
é uma estrutura de dados que contém entradas associadas aos arquivos
contidos em um disco, nas quais são armazenadas informações.

Um diretório
registra informações como nome, localização, tamanho, tipo, etc.

primária extendida
TELM.067 - Sistemas Operacionais 26/47
Introdução Arquivo Estrutura Implementação

Arquivos Abertos

Quando um arquivo é aberto, todas as informações deste é


colocada na memória principal
Tabela de Arquivos Abertos possui a estrutura de diretório mantida
na memória principal

Vantagem
A tabela de arquivos abertos e fundamental para aumentar o
desempenho das operacoes com arquivos.

Quando o arquivo é fechado


o sistema operacional libera o espaço na tabela de arquivos abertos.

TELM.067 - Sistemas Operacionais 27/47


Introdução Arquivo Estrutura Implementação

Diretórios

Operações sobre diretórios mais comuns são:


Procurar, apagar, renomear e copiar arquivos;
Mostrar uma lista com o conteúdo do diretório;

Estruturas mais comuns são:


Nı́vel Único (Single-Level Directory);
Dois Nı́veis (Two-Level Directory);
Árvore;

TELM.067 - Sistemas Operacionais 28/47


Introdução Arquivo Estrutura Implementação

Nı́vel Único

Estrutura mais simples


Um único diretório contém todos os arquivos

Problema
um arquivo deve ter um nome único

TELM.067 - Sistemas Operacionais 29/47


Introdução Arquivo Estrutura Implementação

Nı́vel Único
Estrutura mais simples
Um único diretório contém todos os arquivos

Problema
um arquivo deve ter um nome único

Problema 2:
E se forem usuários diferentes?

TELM.067 - Sistemas Operacionais 29/47


Introdução Arquivo Estrutura Implementação

Nı́vel Duplo

Define-se um Diretório para cada usuário


Vantagem: usuários podem ter arquivos com o mesmo nome.

Caminho (path)
caso o usuário necessite usar arquvios de outro, utiliza-se o caminho
para indicar qual a localização do arquivo.

TELM.067 - Sistemas Operacionais 30/47


Introdução Arquivo Estrutura Implementação

Em árvore
Evolução do diretório de dois nı́veis
inserido o conceito de subdiretórios, assim, o usuário organiza seus
próprios arquivos

Subdiretórios
Um diretório é um arquivo tratado de forma especial

Conceitos Importantes
’.’ diretório atual
’..’ diretório pai

Caminho pode ser :


absoluto
ou relativo ao diretório atual
TELM.067 - Sistemas Operacionais 31/47
Introdução Arquivo Estrutura Implementação

Árvore

TELM.067 - Sistemas Operacionais 32/47


Introdução Arquivo Estrutura Implementação

Gerenciamento do sistema de arquivo

Gerência de Espaço Livre


Para permitir criação de arquivo, o SO precisa ter controle sobre as
áreas livres do disco.
Formas de Implementação
Mapa de bits (bit map)
Lista encadeada de Blocos Livres
Tabela de Blocos Livres

TELM.067 - Sistemas Operacionais 33/47


Introdução Arquivo Estrutura Implementação

Gerencia de Espaço Livre

TELM.067 - Sistemas Operacionais 34/47


Introdução Arquivo Estrutura Implementação

Mapa de bits(bitmap)

Cada entrada da tabela aponta para um bloco


rotulando cada bloco do disco com os rótulos 0 = ocupado 1=livre

Ex
de 8 partições, as partições 0 1 5 7 estão ocupadas
bitmap = {1 0 1 1 1 0 1 0}

Vantagem Desvantagem
simplicidade consome muita memória

TELM.067 - Sistemas Operacionais 35/47


Introdução Arquivo Estrutura Implementação

Lista encadeada

Funcionamento
cada bloco livre aponta para o próximo livre

Acesso sequêncial
ineficiente pois há uma grande quantidade de ligações e necessita-se
de uma série de acessos

TELM.067 - Sistemas Operacionais 36/47


Introdução Arquivo Estrutura Implementação

Tabela de Blocos Livres

fato
geralmente os blocos contı́guos são alocados ou desalocados
simultaneamente

Encontrar blocos contı́nuos é rápido


Então bastaria fazer a contágem de quantos blocos livres foram
desalocados e atualizar a tabela

tamanho da tabela
a tabela é pequena e rapidamente é encontrado um conjunto de blocos
livres

TELM.067 - Sistemas Operacionais 37/47


Introdução Arquivo Estrutura Implementação

Alocação de Blocos

A questão principal para o projeto de um sistema de arquivo é


Como alocar espaço dos arquivos de modo que o uso do espaço do
disco seja eficaz e o acesso de dados seja rápido

Depende da forma de organização dos arquivos


Alocação Contigua
Alocação Encadeada
Alocação Indexada

TELM.067 - Sistemas Operacionais 38/47


Introdução Arquivo Estrutura Implementação

Alocação Contı́gua

Contı́gua
cada arquivo deve ocupar um conjunto de blocos contı́guos do disco.

Vantagens
Simplicidade de implementar: guarda apenas o endereço do 1o
bloco
Acesso sequencial e direto são simplificados
Excelente Performance: leitura é feita utilizando apenas uma
operação.

Desvantagens:
alocação de espaço livre para novos arquivos.

TELM.067 - Sistemas Operacionais 39/47


Introdução Arquivo Estrutura Implementação

Alocação contı́gua

TELM.067 - Sistemas Operacionais 40/47


Introdução Arquivo Estrutura Implementação

Alocação contı́gua

E como escolher a partição livre? Lembram de algo?

TELM.067 - Sistemas Operacionais 40/47


Introdução Arquivo Estrutura Implementação

Alocação Contı́gua
Se existirem dois ou mais blocos livres disponı́veis com o
tamanho exigido, qual bloco deve ser escolhido para alocação?
solução: fazer igual ao gerenciamento de memória
First-fit: primeiro bloco.
Best-fit: menor bloco.
Worst-fit: maior bloco.

Problema Solucionável:fragmentação
desfragmentação mas é muito custosa

.
Problema mais grave: determinação do espaço em disco
necessário ao arquivo.
se utilizarmos uma alocação pequena, é necessário posteriormente
copiar o dado para outra posição de memória e se for grande, vai ficar
espaço livre sem utilização TELM.067 - Sistemas Operacionais 41/47
Introdução Arquivo Estrutura Implementação

Alocação Encadeada

Um arquivo pode ser organizado como um conjunto de blocos


ligados logicamente no disco
é independente de sua localização fı́sica. Cada bloco deve possuir um
ponteiro para o bloco seguinte do arquivo.

Uma parte do bloco é usada para apontar

TELM.067 - Sistemas Operacionais 42/47


Introdução Arquivo Estrutura Implementação

Alocação Encadeada

TELM.067 - Sistemas Operacionais 43/47


Introdução Arquivo Estrutura Implementação

Alocação Encadeada

Vantagem:
não há fragmentação dos espaços livres.

Problemas:
1 fragmentação do arquivo (alto tempo de busca).
2 permitir apenas acesso seqüencial aos blocos.
3 desperdı́cio de espaço nos blocos como armazenamento de
ponteiros.

TELM.067 - Sistemas Operacionais 44/47


Introdução Arquivo Estrutura Implementação

Alocação Indexada

Soluciona uma limitação da alocação encadeada


a impossibilidade de acesso direto aos blocos dos arquivos.

Bloco de ı́ndice.
A idéia básica desta técnica é manter os ponteiros de todos os blocos
do arquivo em uma única estrutura denominada

Fragmentação do disco não é problema


blocos não precisam estar contı́guos

TELM.067 - Sistemas Operacionais 45/47


Introdução Arquivo Estrutura Implementação

Alocação Indexada

TELM.067 - Sistemas Operacionais 46/47


Introdução Arquivo Estrutura Implementação

manter os blocos do disco na memória principal


diminuir o tempo de acesso do disco nas operações de entrada e saı́da

Buffer Cache: ao ocorrer uma Entrada/Saı́da (E/S)


Quando a informação está na memória principal, evita-se o acesso ao
disco, contudo, se não estiver, atualiza o cache. Utiliza-se as
substituições FIFO ou LRU.

TELM.067 - Sistemas Operacionais 47/47


Introdução Arquivo Estrutura Implementação

Abreviaturas I

GIF Graphics Interchange Format


E/S Entrada/Saı́da
JPEG Joint Photographic Experts Group
PNG Portable Network Graphics
SO Sistema Operacional
SC System Call

TELM.067 - Sistemas Operacionais 48/47