Sistema de Arquivos - Adriana Vettorazzo

Download Report

Transcript Sistema de Arquivos - Adriana Vettorazzo

Sistema de Arquivos
Sistemas Operacionais
Adriana Vettorazzo
Funções de um SO
•
•
•
•
Gerência de Processos
Gerência de Memória
Gerência de Arquivos
Gerência de I/O
Introdução
• Os arquivos são gerenciados pelo sistema operacional
e é mediante a implementação de arquivos que o
sistema operacional estrutura e organiza as
informações.
• A parte do sistema responsável pela gerência é
denominada sistema de arquivo que é a parte mais
visível do sistema operacional pois é uma atividade
freqüentemente realizada pelos usuários.
• Deve ocorrer de maneira uniforme independente dos
diferentes dispositivos de armazenamento.
Introdução
• O Sistema de Arquivos é a parte do SO mais
visível para os usuários;
• Arquivos são normalmente implementados a partir
de discos magnéticos;
• Como um acesso a disco demora cerca de 10000
vezes mais que um acesso à memória, são
necessárias estruturas de dados e algoritmos que
otimizem os acessos ao disco.
Introdução
• Sistemas de Arquivos implementam um recurso
em software que não existe em hardware.
• O Hardware oferece apenas espaço em disco na
forma de setores para serem acessados
individualmente de forma aleatória.
Introdução
• Fazendo analogias, o sistema de arquivos assemelhase à organização de uma biblioteca;
• O bibliotecário (sistema operacional) organiza os
livros (arquivos) por assuntos (diretórios);
• A organização deve ser de tal forma que a busca
(métodos de busca) seja eficiente ;
• O armazenamento é feito de forma que se tenha uma
economia de espaço na prateleira (dispositivos de
armazenamento secundário);
Tipos de Arquivos
• Diferentes tipos de informações podem ser
armazenados em um arquivo: programas fonte,
texto, dados numéricos, som, imagem, vídeo, etc;
• Cada arquivo possui uma estrutura interna,
conforme sua aplicação;
• O SO limita-se a conhecer as informações
contidas no Registro Descritor do Arquivo;
• No início.... Sistemas baseados em Fitas
Sistemas baseados em Fita
• No início cada arquivo era mapeado para uma
única fita; (desperdício de espaço);
• Para resolver o desperdício, foi desenvolvido o
sistema de arquivamento Multi-volume; (vários
arquivos em uma única fita);
Sistemas baseados em Fita
• Para acessar precisava do nome do arquivo e sua
posição na fita.
• Para
um
programa
poder
trabalhar
simultaneamente com dois arquivos, eles tinham
que estar em fitas diferentes.
Sistemas baseados em Disco
Sistemas baseados em Disco
•
•
•
•
Um disco é dividido em Trilhas;
Uma trilha é dividido em Setores;
Possuem discos sobrepostos;
SO trata o disco como um grande vetor
unidimensional de blocos numerados de 0 até N-1;
Sistemas baseados em Disco
• Para acessar um um setor:
– informar face, trilha e setor desejado
– as cabeças de leitura e gravação são deslocadas
até a trilha correta (tempo de seek),
– o cabeçote da face correta é selecionado
eletronicamente;
– esperar até o setor desejado passar por baixo do
cabeçote (tempo de latência);
Sistemas baseados em Disco
http://www.youtube.com/watch?feature=e
ndscreen&v=kdmLvl1n82U&NR=1
http://www.youtube.com/watch?v=JAVIdo
N5Yac
Hierarquia de Dados
Hierarquia de Dados
Informações são armazenadas em computadores segundo
uma hierarquia de dados:
• Campo: é um grupo de caracteres (nome, endereço, nr
de telefone);
• Registro: é um conjunto de Campos;
• Arquivo: é um grupo de registros relacionados;
• O nível mais alto é o Sistema de Arquivo que são
coleções de arquivos ou dados.
• Volume: Representa uma unidade de armazenamento
de dados.
Hierarquia de Dados
Hierarquia de Dados
• Pastas ou diretórios
Além da estrutura externa, ainda é necessário
adaptarmos internamente o espaço, visando melhor
organização e otimização do local.
Hierarquia de Dados
• Pastas ou diretórios
Pegando como exemplo o edifício mencionado
anteriormente, ainda seria necessário que os andares
(comparados a partições de um meio físico) fossem
divididos em apartamentos.
Hierarquia de Dados
• Pastas ou diretórios
Esses seriam considerados pastas, numa visão
computacional.
A divisão interna dos apartamentos (cozinha, quarto,
sala) as subpastas.
Hierarquia de Dados
• Arquivos – Dados que geram funcionalidades
Os drives e as pastas servem apenas para organizar uma
estrutura.
O que tornará o sistema de arquivos funcional serão os
arquivos, os quais estarão abrigados dentro de locais
específicos.
Hierarquia de Dados
• Arquivos – Dados que geram funcionalidades
Alguns deverão estar sempre no mesmo local (arquivos
que são organizados pelo próprio sistema operacional);
Outros consistem em dados que seguem o livre arbítrio do
usuário (arquivos de texto, planilhas, imagens, instalações
personalizadas de programas, etc.).
Hierarquia de Dados
• Arquivos – Dados que geram funcionalidades
Os arquivos poderiam ser comparados a determinadas
mobílias e objetos, muitos exigem um local específico
dentro da estrutura outros não. (ex.: um chuveiro),
Isso também ocorre no computador, em que determinados
arquivos devem constar em pastas específicas
(configurações do sistema operacional seria um bom
exemplo), e outros podem ser submetidos às decisões do
utilizador (arquivos pessoais, programas, entre outros).
Hierarquia de Dados
Arquivo
•
•
•
•
São recipientes que contém dados
Coleção de dados relacionados entre si
Referenciados através de nomes
Possuem atributos mantidos pelo SO como:
–
–
–
–
tipo
momento da criação
tamanho
nome do criador
Identificação de Arquivo
É identificado por meio de um nome, formado por
uma seqüência de caracteres.
A identificação de um arquivo é composta por duas
partes separadas por um ponto, a parte após o ponto
é chamada extensão do arquivo e serve para
identificar o conteúdo.
Nomearq.ext
Tipos de Arquivos
• Cada arquivo possui uma estrutura interna,
conforme sua aplicação:
– Um arquivo texto (.doc) é composto por uma sequência
de caracteres organizados em linhas e parágrafos
– um programa executável é uma sequência de bytes
representando instruções em código de máquina
– um programa fonte é uma sequência de caracteres que
representam comandos de uma linguagem de
programação
• E como vimos...o SO limita-se a conhecer somente
as informações contidas no Registro Descritor.
Tipos de Arquivos
Extensão
arquivo.doc
arquivo.cob
arquivo.exe
arquivo.obj
arquivo.pas
arquivo.txt
arquivo.mp3
arquivo.dll
arquivo.cdr
Descrição
Arquivo de texto
Arquivo fonte em Cobol
Arquivo executável
Arquivo objeto
Arquivo fonte em Pascal
Arquivo texto
Arquivo de música
Arquivo de biblioteca dinâmica
Arquivo Corel Draw - vetorial
Sistemas de Arquivos
• Um SA organiza arquivos e gerencia o acesso aos
dados. Eles são responsáveis por:
–
–
–
–
Gerenciamento de arquivos;
Gerenciamento de armazenamento;
Mecanismos de integridade do arquivo;
Métodos de acesso
Sistemas de Arquivos
• Gerenciamento de arquivos
– Fornecer mecanismos para que os arquivos sejam
armazenados, compartilhados e fiquem em segurança.
Sistemas de Arquivos
• Gerenciamento de armazenamento
– Alocar espaço para arquivos em dispositivos de
armazenamento secundário
Sistemas de Arquivos
• Mecanismos de integridade do arquivo
– Garantir que as informações armazenadas em um
arquivo não sejam corrompidas.
Sistemas de Arquivos
• Métodos de acesso
– Como os dados armazenados podem ser acessados.
Suporte a Arquivos
Suporte a Arquivos
• O SO permite realizar um conjunto de operações
sobre arquivos;
• Essas operações são solicitadas através de
chamadas de sistema.
Suporte a Arquivos
• O que o SO deve fazer para realizar as diversas operações
sobre arquivos:
–
–
–
–
–
criar um arquivo
escrever no arquivo
ler o arquivo
remover o arquivo
Alterar lista de usuários que podem acessar os arquivos
Operações em Arquivos
• Criar um arquivo:
– necessita de dois passos:
• encontrar e alocar espaço suficiente no disco;
• adicionar uma entrada no diretório para conter as
informações referentes ao arquivo (nome, tamanho,
localização, ...)
Operações em Arquivos
• Escrever no Arquivo:
– para escrever em um arquivo o usuário executa uma
chamada de sistema fornecendo o nome do arquivo;
– O sistema procura através do nome, a localização do
arquivo no disco e a posição do ponteiro que indica o
final do arquivo.
Operações em Arquivos
• Ler o Arquivo:
– o usuário executa uma chamada de sistema fornecendo
o nome do arquivo e a posição da memória principal
para onde as informações serão copiadas
Operações em Arquivos
• Remover o Arquivo:
– Diretório é pesquisado;
– O espaço alocado é liberado e a entrada correspondente
é removida do diretório;
– Libera o espaço em disco ocupado pelo arquivo.
Operações em Arquivos
• Todas as operações sobre um arquivo envolvem
uma pesquisa no diretório em busca da entrada
correspondente ao arquivo desejado.
• Cada entrada do diretório, corresponde a um
Descritor de Arquivo
• O descritor contém todas as informações
necessárias para a manipulação do arquivo (nome,
extensão, tamanho, datas, usuários, etc)
Tabela de Descritores de Arquivos Abertos
(TDAA)
• O acesso a um arquivo é feito através do seu descritor
• Para evitar a pesquisa freqüente ao disco, o SO
mantém na memória uma Tabela de Descritores de
Arquivos Abertos;
• Assim, sempre que uma operação é solicitada, apenas
a TDAA é pesquisada.
Tabela de Descritores de Arquivos Abertos
(TDAA)
• O arquivo é aberto quando ele começa a ser utilizado
(desse modo, todas as informações sobre os arquivos
em uso são mantidas na memória principal)
• Para cada arquivo há apenas uma entrada na TDAA;
• Assim que o processo termina o DA é atualizado em
disco e a entrada da TDAA é liberada.
TDAA e TAAP
• Um mesmo arquivo pode ser
simultaneamente por vários processos
utilizado
• Por isso, cada entrada da TDAA contém uma
indicação de quantos processos estão utilizando o
arquivo correntemente
TDAA e TAAP
• O mesmo arquivo pode estar sendo acessado por
diferentes processos em pontos diferentes e com
direitos de acesso diferentes
• Por isso, cada processo contém uma tabela extra
com informações apenas sobre os arquivos abertos
por esse processo.
Essa tabela é denominada Tabela de Arquivos
Abertos por Processo (TAAP)
Tabela de Arquivos Abertos por Processo
(TAAP)
• No mínimo, a TAAP contém em cada entrada as
seguintes informações:
– Posição corrente no arquivo;
– Tipo de acesso (apenas leitura ou leitura e
escrita);
– Apontador para a entrada correspondente na
TDAA.
TDAA e TAAP
TAAP do processo 0
0
0
1
TDAA
Pos. Cor. 12
Leitura
0
Ar q u i v o A
Pos. Cor. 55
Leit. & Escr.
2
1
2
Ar q u i v o B
TAAP do processo 1
3
0
Pos. Cor. 10
Leitura
2
4
Controle de Acesso
• Em Sistemas Multiusuários é importante controlar
o acesso aos arquivos;
• O controle de acesso inicia com a identificação
dos usuários. Isso é feito através de usuário e
senha;
• O SO valida os dados e a partir daí o usuário passa
a ter os direitos de acesso associados ao seu perfil.
Controle de Acesso
• Exemplo:
– Usuário
Professor
Secretária
Aluno
Direito
Leitura e escrita
Leitura
Leitura
• As permissões podem ser feitas por usuário ou criase grupos de usuários.
As permissões serão dadas ao grupo.
Métodos de Acesso
• Método de acesso diz respeito à forma como o conteúdo de
um arquivo é acessado.
Métodos de Acesso
• Acesso seqüencial
• Acesso direto
• Acesso indexado
Acesso Sequencial
• A leitura sempre acessa o próximo registro e
avança um ponteiro sobre o arquivo.
Este
ponteiro indica qual a próxima posição a ser lida.
• Método muito usado
– Compiladores, impressão de arquivos
• Copiar o conteúdo de um arquivo para outro
correspondente, há uma leitura seqüencial do
arquivo origem e escrita seqüencial no arquivo
destino.
Acesso Seqüencial
A rquivo
A
B
C
D
E
F
...
L e r Ar q u i v o
A
L e r Ar q u i v o
B
L e r Ar q u i v o
C
Acesso Direto
• Uma sequência numerada de registros;
• Qualquer registro pode ser diretamente lido ou
escrito;
• Programa inclui na chamada de sistema qual a
posição a ser lida;
Acesso Direto
A rquivo
A
B
C
D
E
F
...
L e r Ar q u i v o , p o s i ç ã o
C
L e r Ar q u i v o , p o s i ç ã o
E
L e r Ar q u i v o , p o s i ç ã o
A
Acesso indexado
• Envolve a construção de índices nos descritores de
arquivos;
• Usa como base o serviço de acesso direto
Métodos de Alocação
Métodos de Alocação
• Na maioria das vezes muitos arquivos estarão
armazenados no mesmo disco;
• O espaço para alocar estes arquivos necessita de
organização para utilização mais eficiente do disco;
•Os arquivos precisam ser acessados rapidamente.
Métodos de Alocação
Métodos principais de alocação de espaço em disco:
•Contígua
•Encadeada
•Indexada
Gerência do Espaço Livre
• Espaço em disco é limitado, por isto é necessário
reaproveitar todo o espaço disponível;
• Lista de setores livres: mantida pelo SO para
controlar os espaços livres no disco;
• Para criar um arquivo o espaço necessário é obtido
da lista;
• Mapa de Bit
Métodos de Alocação
Métodos principais de alocação de espaço em disco:
•Contígua
•Exige que cada arquivo ocupe um
conjunto de setores contíguos;
•Podem ser acessados de forma sequencial
e direto;
•Desvantagem?
•Os algoritmos que podem ser utilizados
(First-fit, best-fit e worst-fit)
Desfragmentação
• Mover arquivos para reagrupar os fragmentos em
espaços maiores;
• Visa permitir alocar arquivos maiores;
• Deve ser feita periodicamente;
Estratégias de desfragmentação
Situação inicial
Moveu 6 blocos
Moveu 4 blocos
Moveu 2 blocos
63/68
Desfragmentação
64/68
Métodos de Alocação
Métodos principais de alocação de espaço em disco:
•Encadeada
•Corresponde a uma lista encadeada de
blocos;
•Qualquer setor do disco, independente da
posição pode ser aproveitado;
•Cada setor contém o endereço do setor
seguinte;
Métodos de Alocação
Métodos principais de alocação de espaço em disco:
•Encadeada
•Acesso apenas Sequencial;
•Qualquer setor do disco poderá ser
utilizado;
•Problemas de Confiabilidade;
Endereço do Bloco Inicial Quantidade de Blocos
Em cada bloco há o endereço do bloco seguinte
Métodos de Alocação
Métodos principais de alocação de espaço em disco:
•Indexada
•Cada arquivo possui uma tabela de
índices;
• Cada entrada dessa tabela contém o
endereço de um dos blocos físicos que
formam o arquivo;
Disco
Bloco
0
Físico
1
Descritor
BL 3
2
Sequência
indexada do
Arquivo.
3
BL 0
4
5
BL 2
6
7
BL 4
8
BL 1
9
12
13
Indices: 0
3
1
8
2
5
3
1
4
7
5
11
6
7
10
11
Tamanho: 6
8
BL 5
9
Nr.do bloco físico
Aponta para o Nr.
Lógico.
Sistema de Diretórios
Sistema de Diretórios
Sistemas de Diretórios diz respeito às possíveis
formas de organizar os diretórios.
Sistema de Diretórios
• Diretório de nível único
• Diretório de dois níveis
• Diretórios em forma de árvore
Diretório de Nível Único
• Todos os arquivos fazem parte do mesmo
diretório;
• Problemas de organização no caso de muitos
arquivos.
• É necessário nome único para cada arquivo
Diretório de Dois Níveis
• Criam-se diretórios separados para cada usuário;
• No diretório principal mantém-se apenas os
endereços dos diretórios dos usuários;
• Nos diretórios de usuários mantém-se informações
sobre os arquivos;
Diretório de Dois Níveis
• Quando o usuário faz referência a um arquivo
apenas seu diretório é pesquisado;
• Não há mais problemas com nomes de arquivos;
• Proteção contra acessos indevidos;
• Criação de um diretório especial com programas e
utilitários do sistema;
Diretórios Estruturados em Árvore
• Os usuários podem criar seus próprios subdiretórios para organizar seus arquivos;
• A árvore possui um diretório raiz;
• Cada arquivo possui um pathname (nome do
arquivo composto pelos nomes de diretórios que
formam o caminho da raiz até ele)
Diretórios Estruturados em Árvore
• Pathname podem ser completos ou relativos;
• Completo, inicia na raiz e vai até o arquivo a ser
identificado;
• Relativo, começa no diretório corrente;
Proteção dos Arquivos
Proteção dos Arquivos
Quando a informação é mantida em um computador,
ela deve ser protegida contra dano físico
(confiabilidade) e acesso indevido (proteção).
Proteção dos Arquivos
• Confiabilidade:
– obtêm-se criando cópias dos arquivos
– Back up
• Proteção:
– obtêm-se impossibilitando o acesso por outros
usuários
– tipos de acesso: leitura, gravação, execução,
criação e remoção;
Proteção dos Arquivos
• Operações de leitura, gravação e execução
envolvem acesso a arquivos;
• Operações de criação e remoção envolvem acesso
a diretórios;
• O método de proteção bastante utilizado é vincular
o acesso à identificação do usuário ou de grupos
de usuários.
Questões de Implementação
Questões de Implementação
• Um sistema de arquivos envolve dois problemas
diferentes:
– Como o SA deve aparecer para o usuário;
– Quais algoritmos e estruturas de dados serão usados
para mapear o SA lógicos visto pelo usuário;
Questões de Implementação
• Conceitualmente, um sistema de arquivos é
dividido em três níveis de serviço:
– serviço de disco
– serviço de arquivo básico
– serviço de diretório
Níveis de Serviço
• Serviço de disco: responsável pela leitura e escrita
de setores diretamente no disco, sem se preocupar
com a organização dos arquivos;
• Serviço de arquivo básico: lida com a abstração
de arquivos, compostos por um conjunto de
registros (blocos). Operações básicas do tipo
leitura e escrita a partir de uma determinada
posição do arquivo;
Níveis de Serviço
• Serviço de diretório: preocupa-se com a
identificação e proteção de arquivos descritos a
partir de diretórios, de forma que eles sejam
acessados de forma segura e conveniente.
• Os diretórios mapeiam nomes simbólicos em
identificadores numéricos utilizados pelo serviço
de arquivos (camada de baixo)
Níveis de Serviço
Usuários
Serviço de Diretório
Serviço de Arquivo
Básico
Serviço de Disco