Você está na página 1de 55

Sistemas

de
Arquivos

Renata Mesquita da Silva Santos


(renata.mesquita@gsuite.iff.edu.br)
2
Agenda

1. Introdução
2. Arquivos
3. Diretórios
4. Gerência de Espaço Livre em Disco
5. Gerência de Alocação de Espaço em Disco
6. Proteção de Acesso
7. Implementação de Caches
3 2
Introduçã o

• O armazenamento e a recuperação de informações são


atividades essenciais para qualquer tipo de aplicação.

• Um processo deve ser capaz de ler e gravar de forma


permanente grande volume de dados em dispositivos
como fitas e discos, além de poder compartilhá-los com
outros processos.

• A maneira pela qual o sistema operacional estrutura e


organiza estas informações é por intermédio da
implementação de arquivos.
4 2
Introduçã o

• Os arquivos são gerenciados pelo sistema operacional de


maneira a facilitar o acesso dos usuários ao seu conteúdo.

• A parte do sistema responsável por essa gerência é


denominada sistema de arquivos.

• A gerência do sistema de arquivos é a parte mais visível do


sistema operacional para o usuário pois ele está sempre
manipulando arquivos, seja para criar ou editar seus
documentos ou seja executando programas, que são
arquivos, no computador.
5 2
Introduçã o

• A parte do sistema operacional que gerencia os arquivos e


as operações de arquivos é a gerência do sistema de
arquivos.

• A gerência do sistema de arquivos também cuida da


segurança no acesso aos arquivos, garantindo que um
usuário não tenha acesso não autorizado a um arquivo que
pertence a outro usuário.

• A gerência de arquivos também cuida do


compartilhamento dos arquivos, através de uma rede, por
vários processos e usuários do sistema operacional.
6 2
Arquivos

• Conceitualmente um arquivo é um conjunto de


informações logicamente relacionadas.

• Este conjunto de informações podem ser um conjunto de


dados ou um conjunto de instruções.

• Um arquivo executável possui instruções em linguagem de


máquina que são executadas pelo sistema operacional.
7 2
Arquivos

• Um arquivo também pode ser um arquivo de dados, com


dados estruturados, contendo um determinado número de
campos, com tamanhos definidos, posição inicial e posição
final, etc.

• Um arquivo pode conter conteúdo multimídia, imagem,


áudio, som, vídeo, etc.

• Do ponto de vista dos usuários temos diferentes tipos de


arquivos porém para o sistema operacional um arquivo é
tão somente um conjunto de registros definido pelo
sistema de arquivos.
8 2
Arquivos
Informaçõ es dos Arquivos
• Um arquivo precisa ser identificado pelo sistema
operacional através de um nome.

• Em todos os sistemas operacionais existem regras


particulares para a definição de nomes de arquivos tais
como tamanho do nome, caracteres usados para o nome
do arquivo, distinção entre caracteres maiúsculos e
minúsculos, etc.
9 2
Arquivos
Informaçõ es dos Arquivos
• Alguns sistemas operacionais incluem uma extensão como
sendo parte do nome do arquivo.

• A extensão serve para identificar o tipo do conteúdo do


arquivo.

• Em todos os sistemas operacionais é válida a regra de não


ser permitido dois arquivos com o mesmo nome no
mesmo diretório.
10 2
Arquivos
Organizaçã o de Arquivos
• A organização de arquivos consiste em como os seus
dados estão internamente armazenados.

• A estrutura dos dados pode variar em função do tipo de


informação contida no arquivo.

• Arquivos-textos possuem propósitos completamente


distintos de arquivos executáveis, consequentemente
estruturas diferentes podem adequar-se melhor a um tipo
do que a outro.
11 2
Arquivos
Organizaçã o de Arquivos
• No momento da criação de um arquivo, seu criador pode
definir qual a organização adotada.

• Esta organização pode ser uma estrutura suportada pelo


sistema operacional ou definida pela própria aplicação.

• A forma mais simples de organização de arquivos é através


de uma sequência não estruturada de bytes (Fig. 11.1a).
12 2
Arquivos
Organizaçã o de Arquivos
• Neste tipo de organização, o sistema de
arquivos não impõe nenhuma estrutura
lógica para os dados.
• A aplicação deve definir toda a
organização, estando livre para estabelecer
seus próprios critérios.
• A grande vantagem deste modelo é a
flexibilidade para criar diferentes
estruturas de dados, porém todo o
controle de acesso ao arquivo é de inteira
responsabilidade da aplicação.
13 2
Arquivos
Organizaçã o de Arquivos
• Alguns sistemas operacionais possuem diferentes
organizações de arquivos.

• Neste caso, cada arquivo criado deve seguir um modelo


suportado pelo sistema de arquivos.

• As organizações mais conhecidas e implementadas são a


sequencial, a relativa e a indexada.
15 2
Arquivos
Métodos de Acesso
• Em função de como o arquivo está organizado, o sistema de
arquivos pode recuperar registros de diferentes maneiras.

• Inicialmente, os primeiros sistemas operacionais só


armazenavam arquivos em fitas magnéticas.

• Com isso, o acesso era restrito à leitura dos registros na ordem


em que eram gravados, e a gravação de novos registros só era
possível no final do arquivo.

• Este tipo de acesso, chamado de acesso sequencial, era


próprio da fita magnética, que, como meio de armazenamento,
possuía esta limitação.
16 2
Arquivos
Métodos de Acesso
• Com o advento dos discos magnéticos, foi possível a introdução
de métodos de acesso mais eficientes.

• O primeiro a surgir foi o acesso direto, que permite a


leitura/gravação de um registro diretamente na sua posição.

• Este método é realizado através do número do registro, que é a


sua posição relativa ao início do arquivo.

• No acesso direto não existe restrição à ordem em que os


registros são lidos ou gravados, sendo sempre necessária a
especificação do número do registro.
17 2
Arquivos
Métodos de Acesso
• É importante notar que o acesso direto somente é possível
quando o arquivo é definido com registros de tamanho fixo.

• O acesso direto pode ser combinado com o acesso sequencial.


Com isso é possível acessar diretamente um registro qualquer
de um arquivo e, a partir deste, acessar sequencialmente os
demais.
18 2
Arquivos
Métodos de Acesso
• Um método de acesso mais sofisticado, que tem como base o
acesso direto, é o chamado acesso indexado ou acesso por
chave.

• Para este acesso, o arquivo deve possuir uma área de índice


onde existam ponteiros para os diversos registros.

• Sempre que a aplicação desejar acessar um registro, deverá ser


especificada uma chave através da qual o sistema pesquisará
na área de índice o ponteiro correspondente.

• A partir desta informação é realizado um acesso direto ao


registro desejado.
19 2
Arquivos
Operaçõ es de Entrada/Saída
• O sistema de arquivos disponibiliza um conjunto de rotinas
que permite às aplicações realizarem operações de E/S, como
tradução de nomes em endereços, leitura e gravação de dados
e criação/eliminação de arquivos.

• Na realidade, as rotinas de E/S têm como função


disponibilizar uma interface simples e uniforme entre a
aplicação e os diversos dispositivos.

• A Fig. 11.3 ilustra a comunicação entre aplicação e dispositivos


de maneira simplificada.
20 2
Arquivos
Operaçõ es de Entrada/Saída
21 2
Arquivos
Operaçõ es de Entrada/Saída
• A tabela abaixo apresenta algumas rotina encontradas na
maioria das implementações de sistemas de arquivos.
22 2
Arquivos
Atributos
• Cada arquivo possui informações de controle denominadas
atributos.

• Os atributos variam dependendo do sistema de arquivos,


porém alguns, como tamanho do arquivo, proteção,
identificação do criador e data de criação, estão presentes em
quase todos os sistemas.

• Alguns atributos especificados na criação do arquivo não


podem ser modificados em função de sua própria natureza,
como organização e data/hora de criação.
23 2
Arquivos
Atributos
• Outros são alterados pelo próprio sistema operacional, como
tamanho e data/hora do último backup realizado.

• Existem ainda atributos que podem ser modificados pelo


próprio usuário, como proteção do arquivo, tamanho máximo e
senha de acesso.

• Na Tabela 11.3 são apresentados os principais atributos


presentes nos sistemas de arquivos
24 2
Arquivos
Atributos
25 2
Diretó rios

• A estrutura de diretórios é como o sistema organiza


logicamente os diversos arquivos contidos em um disco.

• O diretório é uma estrutura de dados que contém entradas


associadas aos arquivos em que cada entrada armazena
informações como localização física, nome, organização e
demais atributos do arquivo.
26 2
Diretó rios

• Quando um arquivo é aberto o sistema de arquivos busca sua


entrada na estrutura de diretórios e armazena a localização e
nome do arquivo em uma tabela mantida na memória
principal.

• Esta tabela mantém todos os arquivos abertos e é mantida em


memória por questões de desempenho das operações de
arquivos.

• É importante que ao término de uso do arquivo o mesmo seja


fechado para que os dados da tabela sejam liberados.
27 2
Diretó rios

• A implementação mais simples de uma estrutura de diretórios


é chamada de nível único.

• Neste caso não existem subdiretórios, apenas um único


diretório contendo todos os arquivos do disco.

• Este modelo é muito limitado e não é bom para segurança dos


arquivos.

• Na maioria dos sistemas operacionais o diretório é tratado com


um arquivo tendo identificação ( um nome ) e atributos.
28 2
Diretó rios

• Como o sistema de nível único é bastante limitado, uma


evolução do modelo foi a implementação de uma estrutura em
que para cada usuário existiria um diretório particular
denominado User File Directory (UFD).

• Com esta implementação, cada usuário passa a poder criar


arquivos com qualquer nome, sem a preocupação de conhecer
os demais arquivos do disco.

• Sob o ponto de vista do usuário, a organização dos seus


arquivos em um único diretório não permite uma organização
adequada.
29 2
Diretó rios

• A extensão do modelo de dois níveis para um de múltiplos


níveis permitiu que os arquivos fossem logicamente mais bem
organizados.

• Este novo modelo, chamado estrutura de diretórios em árvore


(tree-structured directory), é adotado pela maioria dos
sistemas.

• Na estrutura em árvore, cada usuário pode criar diversos níveis


de diretórios, também chamados subdiretórios.

• Cada diretório pode conter arquivos ou outros diretórios.


30 2
Gerência de Espaço Livre em
Disco
• A criação de arquivos exige que seja feito um gerenciamento
do espaço livre, quais blocos e setores estão livres para criação
de arquivos.

• Este controle é feito através de uma estrutura de dados em


memória que possui uma lista ou tabela onde podemos
identificar blocos livres que pode ser alocados a um arquivo.

• Neste caso o espaço é removido da lista para que não seja


alocado a outro arquivo.

• Da mesma forma, quando um arquivo é removido, os blocos


são liberados e colocados de volta na lista de blocos livres.
31 2
Gerência de Espaço Livre em
Disco
• Existem diferentes formais de gerenciar a
alocação do espaço livre em disco:


Uma forma mais simples é usar uma tabela
de bits ou mapa de bits.

Cada entrada na tabela é associada a um
bloco do disco representado por um bit,
podendo assumir valor igual a 0 ( bloco
livre ) ou 1 ( bloco alocado a algum arquivo ).
32 2
Gerência de Espaço Livre em
Disco
• Existem diferentes formais de gerenciar a alocação do espaço
livre em disco:


Uma outra forma é usar uma estrutura de dados de lista
encadeada de todos os blocos livres do disco.

Nesta forma de alocação de espaço livre, cada bloco
possui o endereço do próximo bloco no disco.

A partir do primeiro bloco livre encontrado é possível
encontrar outros blocos livres para alocação ao arquivo
através do acesso de forma encadeada.
33 2
Gerência de Espaço Livre em
Disco
34 2
Gerência de Espaço Livre em
Disco
• Existem diferentes formais de gerenciar a alocação do espaço
livre em disco:


uma outra forma é considerar que blocos contínuos são
geralmente alocados ou liberados simultaneamente.

Com isso podemos enxergar disco como um conjunto de
segmentos de blocos livres.

Desta forma, mantêm-se uma tabela com o endereço do
primeiro bloco de cada segmento e o número de blocos
livres que se seguem.

Esta técnica é conhecida com técnica de blocos livres.
35 2
Gerência de Espaço Livre em
Disco
36 2
Gerência de Alocaçã o de Espaço
em Disco
• Da mesma forma que o sistema operacional gerencia os
espaços livres no disco, a gerência dos espaços alocados aos
arquivos é de fundamental importância em um sistema de
arquivos.

• A seguir, as principais técnicas de alocação serão apresentadas.


37 2
Gerência de Alocaçã o de Espaço em
Disco - Alocaçã o Contígua
• A alocação contígua consiste em armazenar um arquivo em
blocos sequencialmente dispostos no disco.

• Neste tipo de alocação, o sistema localiza um arquivo através


do endereço do primeiro bloco e da sua extensão em blocos
( tamanho do arquivo ).

• O principal problema para esta técnica de alocação de espaço é


que caso um arquivo seja criado é necessário que haja blocos
livres contíguos suficiente no disco para permitir a alocação.
Nem sempre isso é possível pois com o tempo ocorre a
fragmentação do disco.
38 2
Gerência de Alocaçã o de Espaço em
Disco - Alocaçã o Contígua
39 2
Gerência de Alocaçã o de Espaço em
Disco - Alocaçã o Contígua
• Como os arquivos são criados e eliminados frequentemente, os
segmentos livres vão se fragmentando em pequenos pedaços
por todo o disco.

• O problema pode tornar-se crítico quando um disco possui


blocos livres disponíveis, porém não existe um segmento
contíguo em que o arquivo possa ser alocado.

• O problema da fragmentação pode ser contornado através de


rotinas que reorganizem todos os arquivos no disco de maneira
que só exista um único segmento de blocos livres.

• Este procedimento, denominado desfragmentação.


40 2
Gerência de Alocaçã o de Espaço em
Disco - Alocaçã o Contígua
41 2
Gerência de Alocaçã o de Espaço em
Disco - Alocaçã o Encadeada
• Na alocação encadeada um arquivo pode ser organizado com
um conjunto de blocos ligados logicamente no disco,
independente de sua localização física ou seja, não é
necessário que os blocos sejam fisicamente contíguos no disco.

• Neste caso cada bloco possui um ponteiro para o bloco


seguinte do arquivo e assim sucessivamente.

• É a mesma implementação da lista encadeada que


aprendemos na disciplina de Estrutura de Dados.
42 2
Gerência de Alocaçã o de Espaço em
Disco - Alocaçã o Encadeada
43 2
Gerência de Alocaçã o de Espaço em
Disco - Alocaçã o Indexada
• A alocação indexada soluciona uma das principais limitações
da alocação encadeada, que é a impossibilidade do acesso
direto aos blocos dos arquivos.

• O princípio desta técnica é manter os ponteiros de todos os


blocos do arquivo em uma única estrutura denominada bloco
de índice.

• A alocação indexada, além de permitir o acesso direto aos


blocos do arquivo, não utiliza informações de controle nos
blocos de dados (ponteiros), como existente na alocação
encadeada.
44 2
Gerência de Alocaçã o de Espaço em
Disco - Alocaçã o Indexada
45 2
Proteçã o de Acesso

• Todo sistema de arquivo deve permitir o compartilhamento de


arquivos por diversos usuários e processos mas daí surge o
problema de proteção de acesso aos arquivos compartilhados
por processos e usuários não autorizados.

• O sistema de arquivos deve garantir que somente usuários


autorizados tenham acesso aos arquivos compartilhados.

• A proteção de acesso é implementada através de controle de


concessão de operações de leitura, gravação, execução e em
alguns casos remoção aos usuários do sistema operacional.
46 2
Proteçã o de Acesso

• Em sistemas operacionais UNIX/LINUX é possível ampliar as


concessões dessas operações aos usuários que pertençam ao
mesmo grupo do usuário dono do arquivo ou ainda a outros
usuários que não pertençam ao grupo do usuário dono do
arquivo.

• A proteção de acesso aos diretórios é implementada para as


operações de visualizar os arquivos de um diretório,
criar/remover arquivos em um diretório e remover um
diretório.
47 2
Proteçã o de Acesso

• Basicamente, existem 3 mecanismos de proteção de acesso


que estão disponíveis na maioria dos sistemas operacionais:


Senha de Acesso

O uso de senha de acesso ao arquivo é o mais simples.

O usuário tem ou não acesso ao arquivo mediante o
conhecimento da senha de acesso do arquivo.

Caso o arquivo seja compartilhado, este mecanismo não
poderá ser usado pois todos os usuários teriam que saber
a senha de acesso ao arquivo.
48 2
Proteçã o de Acesso

• Basicamente, existem 3 mecanismos de proteção de acesso


que estão disponíveis na maioria dos sistemas operacionais:


Grupos de Usuário

Cada usuário é associado a um grupo de usuários.

Os usuários do mesmo grupo compartilham arquivos sem
problemas.

Este mecanismo na realidade implementa as permissões
de leitura/ gravação e execução de arquivos que
pertençam a um usuário, a um grupo de usuários e a
outros usuários.

Este mecanismo é usado em sistemas UNIX/LINUX.
49 2
Proteçã o de Acesso

• Basicamente, existem 3 mecanismos de proteção de acesso


que estão disponíveis na maioria dos sistemas operacionais:


Lista de Controle de Acesso

Cada arquivo possui uma lista de controle de acesso
contendo quais usuários podem acessar o arquivo e quais
as permissões que cada usuário possui.

Esta lista pode ficar muito grande para arquivos
compartilhados para muitos usuários.

Existem também uma sobrecarga adicional pois a lista é
consultada toda a vez que o arquivo é acessado.

Este mecanismo é usado em sistemas Windows.
50 2
Implementaçã o de Caches

• O acesso a disco é bastante lento se comparado ao acesso à


memória principal, devido à arquitetura dos discos magnéticos.

• Este é o principal motivo das operações de E/S com discos


serem um problema para o desempenho do sistema.

• Com o objetivo de minimizar este problema, a maioria dos


sistemas de arquivos implementa uma técnica denominada
buffer cache.
51 2
Implementaçã o de Caches

• Neste esquema, o sistema operacional reserva uma área da


memória para que se tornem disponíveis caches utilizados em
operações de acesso ao disco.

• Quando uma operação é realizada, seja leitura ou gravação, o


sistema verifica se a informação desejada se encontra no buffer
cache.

• Em caso positivo, não é necessário o acesso ao disco.

• Caso o bloco requisitado não se encontre no cache, a operação


de E/S é realizada e o cache é atualizado.
52 2
Implementaçã o de Caches

• Como existe uma limitação no tamanho do cache, cada sistema


adota políticas para substituição de blocos.

• Apesar de esta implementação melhorar o desempenho do


sistema, aspectos de segurança devem ser levados em
consideração.

No caso de blocos de dados permanecerem por um longo
período de tempo na memória principal, a ocorrência de
problemas de energia pode ocasionar a perda de tarefas já
realizadas e consideradas já salvas em disco.
53 2
Implementaçã o de Caches

• Existem duas maneiras distintas de tratar este problema:


No primeiro caso, o sistema operacional possui uma
rotina que executa periodicamente em um intervalo de
tempo, atualizando em disco todos os blocos modificados
do cache.


Uma segunda alternativa é, toda vez que um bloco do
cache for modificado, que seja realizada imediatamente
uma atualização no disco (write-through caches).
54 2
Implementaçã o de Caches

• Pode-se concluir que a primeira implica menor quantidade de


operações de E/S, porém o risco de perda de dados é maior.

• Apesar de tal probabilidade ser pequena, pode ocorrer que


dados atualizados em um arquivo e ainda no cache sejam
perdidos no caso de falta de energia.

• Isto já não aconteceria nos caches do tipo write-through, em


função do seu próprio funcionamento, porém o aumento
considerável nas operações de E/S tornam este método menos
eficiente.
• Atualmente, a maioria dos sistemas utiliza a primeira técnica
de otimização.
55
Bibliografia

BIBLIOGRAFIA BÁSICA

SILBERSCHATZ, Abrahan; GALVIN, Peter. Fundamentos De Sistemas
Operacionais – Princípios Básicos. São Paulo. LTC, 2013.

MACHADO, Francis Berenger; MAIA, Luiz Paulo. Arquitetura De
Sistemas Operacionais. LTC, 2007.

OLIVEIRA, R. S., CARISSIMI, A. S., TOSCANI, S. S. Sistemas
Operacionais. Editora Sagra Luzzatto, 2004.

BIBLIOGRAFIA COMPLEMENTAR

ALBERT, S. Woodhull; TANENBAUM, Andrew S. Sistemas Operacionais
- Projeto eImplementação. ArtMed, 2008.

DEITEL, H. M., DEITEL, P.J., CHOFINES, D.R. Sistemas Operacionais.
Pearson Prenticce-Hall, 2005.
Sistemas
de
Arquivos

Renata Mesquita da Silva Santos


(renata.mesquita@gsuite.iff.edu.br)

Você também pode gostar