sistema de arquivos sistemas operacionais adriana vettorazzo
TRANSCRIPT
Sistema de Arquivos
Sistemas OperacionaisAdriana 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 assemelha-se à 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?v=JAVIdoN5Yac
http://www.youtube.com/watch?feature=endscreen&v=kdmLvl1n82U&NR=1
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
É 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
Identificação de Arquivo
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
arquivo.doc
arquivo.cob
arquivo.exe
arquivo.obj
arquivo.pas
arquivo.txt
arquivo.mp3
arquivo.dll
arquivo.cdr
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
Extensão Descrição
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 utilizado simultaneamente por vários processos
• 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
TDAAPos. Cor. 12Leitura
TAAP do processo 0
Pos. Cor. 10Leitura
TAAP do processo 1
Pos. Cor. 55Leit. & Escr.
Arquivo A
Arquivo B
0
1
2
3
0
2
2 4
0
1
0
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 Direito
Professor Leitura e escrita
Secretária Leitura
Aluno Leitura
• As permissões podem ser feitas por usuário ou cria-se 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
Arquivo
A
B
C
D
E
F
Ler Arquivo
...
A
Ler Arquivo
B
Ler Arquivo
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
Arquivo
A
B
C
D
E
F
Ler Arquivo, posição 2
...
C
Ler Arquivo, posição 4
E
Ler Arquivo, posição 0
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;
63/68
Estratégias de desfragmentação
Situação inicial
Moveu 6 blocos
Moveu 4 blocos
Moveu 2 blocos
64/68
Desfragmentação
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
BlocoFísico
0
1
2
3
4
5
6
7
8
9
10
12
11
13
BL 0
BL 1
BL 2
BL 3
BL 4
BL 5
Descritor
Indices:
Tamanho: 6
8
5
1
7
11
30
1
2
3
4
5
6
7
8
9
Nr.do bloco físico Aponta para o Nr. Lógico.
Sequência indexada doArquivo.
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 sub-diretó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
Serviço de Disco
Serviço de Arquivo Básico
Serviço de Diretório
Usuários