Sistema de Arquivos Sistemas Operacionais Adriana Vettorazzo.

Post on 17-Apr-2015

123 views 1 download

Transcript of Sistema de Arquivos Sistemas Operacionais Adriana Vettorazzo.

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