40
Sistemas Distribuídos Parte 1 Sistemas de Arquivos Professor Eduardo Xavier

Sd01 (si) sistemas de arquivos

Embed Size (px)

Citation preview

Page 1: Sd01 (si)   sistemas de arquivos

Sistemas DistribuídosSistemas Distribuídos

Parte 1Sistemas de Arquivos

Professor Eduardo Xavier

Page 2: Sd01 (si)   sistemas de arquivos

IntroduçaoIntroduçao

• Os primeiros computadores executavam seus programas contando exclusivamente com a informação carregada na memória primária.

• Que problemas essa abordagem causava?– O espaço de endereçamento de cada processo que estava

executando era muito limitado em seu tamanho. Por vezes, aplicações muito grandes não cabiam inteiramente na memória.

– Quando o processo terminava, toda a informação que ele manipulava era eliminada da memória junto com o mesmo.

Professor Eduardo Xavier

Page 3: Sd01 (si)   sistemas de arquivos

IntroduçaoIntroduçao

• Outros problemas:– Falhas no funcionamento do hardware comprometiam a

informação manipulada.– Múltiplos processos precisavam acessar uma determinada

informação (ou apenas parte dela) ao mesmo tempo e isso não era possível, pois cada processo tinha seu próprio espaço de endereçamento protegido do acesso dos demais.

• A solução para todos estes problemas era uma só: tornar a informação independente dos processos que a manipulavam– Assim nasceu o conceito de ARQUIVO

Professor Eduardo Xavier

Page 4: Sd01 (si)   sistemas de arquivos

ArquivosArquivos

• Para resolver os problemas já citados, os arquivos devem atender a alguns requisitos essenciais:

– Conseguir suportar grandes capacidades de armazenamento

– Garantir a “persistência” da informação, ou seja, providenciar que a informação sobreviva ao término do processo

– Suportar acesso compartilhado da informação por múltiplos processos simultaneamente

Professor Eduardo Xavier

Page 5: Sd01 (si)   sistemas de arquivos

ArquivosArquivos• Os arquivos são gerenciados pelo sistema

operacional no que diz respeito a:– Estrutura de armazenamento– Identificação (nomeação e outras características)– Proteção (garantia de integridade)– Uso (como pode ser manipulado)– Acesso (controle de quem e como pode ter acesso)– Implementação (como manipular a estrutura de

armazenamento)

• A parte do SO que cuida disso chama-se “Sistema de Arquivo”

Professor Eduardo Xavier

Page 6: Sd01 (si)   sistemas de arquivos

Sistemas de ArquivosSistemas de Arquivos

Professor Eduardo Xavier

Page 7: Sd01 (si)   sistemas de arquivos

Nomeação de ArquivosNomeação de Arquivos

• Cada sistema operacional tem regras próprias para definir o que é válido e o que não é aceito na definição de um nome válido para seus arquivos.– A ideia básica é possibilitar que diversos

processos possam acessar um certo conjunto de dados usando apenas a identificação deste conjunto (um nome)

– Assim, os processos deixam de preocupar com a forma de armazenamento destes dados ou com o funcionamento do hardware onde estão hospedados

Professor Eduardo Xavier

Page 8: Sd01 (si)   sistemas de arquivos

Nomeação de ArquivosNomeação de Arquivos

• Extensões de arquivos

– Parte do nome do arquivo que indica alguma característica específica daquele tipo de arquivo

– Não é algo obrigatório na maioria dos sistemas operacionais modernos e seu objetivo é apenas facilitar o uso do arquivo

Professor Eduardo Xavier

Page 9: Sd01 (si)   sistemas de arquivos

Nomeação de ArquivosNomeação de Arquivos

• Alguns Exemplos:

Professor Eduardo Xavier

Page 10: Sd01 (si)   sistemas de arquivos

Estruturas de ArquivosEstruturas de Arquivos

• O sistema operacional normalmente não sabe (e nem precisa saber) qual o conteúdo de cada arquivo.

– O que o SO “vê” é apenas um conjunto de bytes.

– Dessa forma, a manipulação do arquivo ganha flexibilidade

Professor Eduardo Xavier

Page 11: Sd01 (si)   sistemas de arquivos

Estruturas de ArquivosEstruturas de Arquivos

• As estruturas de arquivos mais comuns são:– Sequência de bytes

• É a estrutura mais flexível

– Sequência de registros • Cada registro é um bloco de tamanho fixo de bytes

– Árvore de registros • Cada “folha” (registro) pode ter um tamanho diferente• Cada registro possui em uma posição fixa um campo-

chave pelo qual a árvore se liga e é ordenada

Professor Eduardo Xavier

Page 12: Sd01 (si)   sistemas de arquivos

Estruturas de ArquivosEstruturas de Arquivos

Professor Eduardo Xavier

Seqüência de Bytes Seqüência de Registros

Árvore de Registros

Page 13: Sd01 (si)   sistemas de arquivos

Tipos de ArquivosTipos de Arquivos• Os sistemas operacionais costumam suportar diversos tipos

de arquivos, mas geralmente eles se dividem em dois grupos:– Arquivos regulares

• São arquivos que contém informações dos usuários• Podem ser:

– Arquivos de texto» Linhas de texto em código ASCII

– Arquivos binários» Conjunto de códigos binários cuja estrutura interna é

conhecida apenas pelos programas projetados para manipular estes arquivos

» O que chamamos de arquivos EXECUTÁVEIS são arquivos binários codificados em um formato reconhecido pelo SO sem ajuda de nenhum outro programa

– Diretórios• Arquivos de controle que contém parte da estrutura suportada pelo

sistema de arquivos

Professor Eduardo Xavier

Page 14: Sd01 (si)   sistemas de arquivos

Acesso a ArquivosAcesso a Arquivos• Os primeiros computadores e seus sistemas operacionais

só suportavam acessos a seus arquivos de forma sequencial– Exemplos: fitas magnéticas, cartões perfurados,

impressoras,...• Com o surgimento dos discos magnéticos, o acesso

aleatório passou a ser mais frequente, em virtude das novas aplicações que surgiram com a nova tecnologia (ex: bancos de dados)– Nos primeiros modelos, o tipo de acesso ao arquivo era

definido quando o mesmo era criado, ou seja, ao criar um novo arquivo seu dono definia se este seria acessado de forma sequencial ou aleatória

– Hoje em dia, todos os arquivos são criados permitindo-se o acesso aleatório (porém o acesso sequencial também é suportado em alguns casos)

Professor Eduardo Xavier

Page 15: Sd01 (si)   sistemas de arquivos

AtributosAtributos

• Atributos são itens informativos sobre determinado arquivo, mas que não fazem parte dos dados.

• Alteração da informação contida nos atributos– Alguns atributos são informações fixas, como a data de

criação do arquivo. – Outros podem ser modificados pelo SO, a exemplo da

data da última alteração no arquivo– Existem ainda atributos que podem ser alterados pelo

próprio usuário, de acordo com sua conveniência. Exemplo: permissões de acesso ao arquivo

• Dependendo do sistema de arquivos, os atributos podem variar, embora alguns deles sejam praticamente “padrões de mercado”, como identificação do dono, tamanho do arquivo, data de criação e informações de proteção.

Professor Eduardo Xavier

Page 16: Sd01 (si)   sistemas de arquivos

Exemplos de AtributosExemplos de Atributos

Professor Eduardo Xavier

Page 17: Sd01 (si)   sistemas de arquivos

Operações com ArquivosOperações com Arquivos• O sistema de arquivos é responsável por prover uma série de

system calls ou primitivas que permitam a manipulação dos arquivos gerenciados

• As system calls mais comuns são:– Create: Cria o arquivo e estabelece os primeiros atributos básicos– Open: Carrega o arquivo na memória e lê certos atributos para definir

como o mesmo será manipulado– Seek: Procura determinado ponto no arquivo– Read: Lê o arquivo (geralmente de forma sequencial) a partir de

determinado ponto– Write: Escreve dados no arquivo (existe uma variação chamada

“append” que indica que o dado será adicionado ao final do arquivo)– Get/Set atributes: Recupera/Altera o valor de certos atributos– Close: Remove qualquer controle ou informação que indique que o

arquivo está sendo usado (isso foi estabelecido no “open”)– Delete :Apaga o arquivo

Professor Eduardo Xavier

Page 18: Sd01 (si)   sistemas de arquivos

DiretóriosDiretórios

• Diretórios são uma forma de organizar os diversos arquivos contidos em um armazenamento secundário

• São estruturas de dados que contém entradas associadas a cada arquivo

• A estrutura dos diretórios foi evoluindo desde os primeiros computadores até hoje. Podemos destacar 3 grandes passos:– Sistemas de Diretório em Nível Único– Sistemas de Diretório em Dois Níveis– Sistemas de Diretório em Hierárquicos

Professor Eduardo Xavier

Page 19: Sd01 (si)   sistemas de arquivos

Sist. de Diretórios em Nível ÚnicoSist. de Diretórios em Nível Único

• Cada entrada possui os atributos de um determinado arquivo

• É a solução mais antiga – muito usada nos primeiros computadores

• Embora mais simples de implementar, é uma alternativa muito limitada

• Seu maiores problemas são:– Não permitir dois arquivos com o mesmo nome– Cada usuário conhece os arquivos dos demais

Professor Eduardo Xavier

Page 20: Sd01 (si)   sistemas de arquivos

Sist. de Diretórios em Nível ÚnicoSist. de Diretórios em Nível Único

Professor Eduardo Xavier

Diretório

Arquivos

Arquivo 1 Arquivo 2 Arquivo 3 ... Arquivo N

Page 21: Sd01 (si)   sistemas de arquivos

Sist. de Diretórios em Dois NíveisSist. de Diretórios em Dois Níveis

• Para cada usuário do sistema existe um diretório particular que gerencia seus arquivos, chamdo UFD (User File Directory)

• Em um nível acima dos UFDs, existe outro diretório que os controla, chamado MFD (Master File Directory) que é indexado por usuário

• Para localizar um arquivo, é preciso saber qual o caminho (PATH) necessário para chegar até ele

• Para evitar que arquivos de uso comum sejam duplicados desnecessariamente:– Cria-se um UFD especial onde todos os usuários têm

acesso (OBS: podem haver vários)– O sistema procura qualquer arquivo primeiramente no

diretório corrente e, caso não ache, procura nesse diretório especial

Page 22: Sd01 (si)   sistemas de arquivos

Sist. de Diretórios em Dois NíveisSist. de Diretórios em Dois Níveis

Professor Eduardo Xavier

UFDs

Arquivos

Arquivo 1 Arquivo 2 Arquivo 3 Arquivo 1 Arquivo 2 Arquivo 1 Arquivo 2

Usuário 1 Usuário 2 ... Usuário NMFD

Page 23: Sd01 (si)   sistemas de arquivos

Sist. de Diretórios HierárquicoSist. de Diretórios Hierárquico• É uma organização em árvore, criada a partir de uma

extensão da idéia dos sistemas de diretórios em dois níveis, que permitiu mais organização e flexibilidade

• Neste sistema, é possível criar quantos diretórios se queira e cada um pode conter arquivos e outros diretórios

• Cada arquivo possui um PATH único que descreve como chegar até ele a partir do MDF

• O MDF não agrupa mais entradas por usuário e sim por diretórios

• A grande maioria dos sistemas operacionais modernos adota este sistema de diretórios

Professor Eduardo Xavier

Page 24: Sd01 (si)   sistemas de arquivos

Sist. de Diretórios HierárquicoSist. de Diretórios Hierárquico

Professor Eduardo Xavier

UFDs

... Arquivo ...MFD Diretório DiretórioArquivo

Diretório Arquivo

DiretórioDiretório

Arquivo Arquivo

Arquivo Arquivo Arquivo

Page 25: Sd01 (si)   sistemas de arquivos

Operações com DiretóriosOperações com Diretórios• As system calls para gerenciamento de diretórios variam mais

de sistema para sistema que as chamadas para gerenciamento de arquivos

• Alguns exemplos de system calls do sistema UNIX:– Create: Cria um diretório vazio, exceto pelo “.” e pelo “..”– Delete :Apaga o diretório (só funciona para diretórios vazios)– OpenDir: “Abre” o diretório deixando o mesmo pronto para manipulação– CloseDir: “Fecha” o diretório– ReadDir: Lê a próxima entrada de um diretório previamente aberto– Rename: Altera o nome de um diretório– Link: Efetua uma “ligação” que permite que um arquivo seja visualizado

em mais de um diretório– Unlink: Remove uma entrada do diretório. Se o arquivo “desligado”

estiver presente apenas em um diretório o mesmo será apagado. Se estiver em visível em mais de um diretório apenas a ligação será desfeita

Professor Eduardo Xavier

Page 26: Sd01 (si)   sistemas de arquivos

Sistemas Baseados em DiscoSistemas Baseados em Disco• Cada unidade de disco magnético contém os seguintes componentes

básicos:– Diversos discos com faces magnetizáveis paralelamente posicionados– Um dispositivo de tração que mantém o disco em rotação à velocidade

constante– Um pente de cabeças de leitura/gravação

• Uma cabeça para cada face magnetizável do disco (existem dispositivos com mais de uma cabeça por face, visando reduzir o tempo de acesso à informação)

• Organização do disco– O disco armazena as informações em trilhas concêntricas– Um grupo de trilha sobrepostas no disco compõe um cilindro– Cada trila possui várias divisões radiais (como em uma pizza cortada)

chamadas setores.

Professor Eduardo Xavier

Page 27: Sd01 (si)   sistemas de arquivos

Sistemas Baseados em DiscoSistemas Baseados em Disco

Professor Eduardo Xavier

Page 28: Sd01 (si)   sistemas de arquivos

Sistemas Baseados em DiscoSistemas Baseados em Disco

• A visão do controlador de discos– Cada setor tem, geralmente, 512 bytes e é a

unidade mínima de armazenamento manipulada pelo controlador de disco

– Para acessar a informação no disco, o controlador precisa saber:• Qual a face do disco• Qual a trilha ou o cilindro• Qual o setor dentro da trilha

Professor Eduardo Xavier

Page 29: Sd01 (si)   sistemas de arquivos

Sistemas Baseados em DiscoSistemas Baseados em Disco

• A visão do SO– O SO enxerga os setores de forma continuada,

ignorando trilhas, cilindros e faces• Estes setores são chamados de blocos contínuos ou

registros físicos– As vezes, é mais interessante para o SO trabalhar com

unidades diferentes de 1 setor (exemplo: para obter mais velocidade em discos de alta capacidade)

• Neste caso, o SO passa a trabalhar com registros lógicos ou blocos, que são agrupamentos de registros físicos (mais comum hoje em dia)

• Isso aumenta a velocidade de acesso, mas aumenta também o espaço perdido pro registro

Professor Eduardo Xavier

Page 30: Sd01 (si)   sistemas de arquivos

Sistemas Baseados em DiscoSistemas Baseados em Disco

• Gerenciamento de espaço livre no disco– O espaço de um arquivo que foi apagado pode

ser reutilizado

– Por este motivo, é preciso ter estratégias para gerenciar este espaço

– Estratégias : • Lista Encadeada• Lista de Blocos Contíguos

Professor Eduardo Xavier

Page 31: Sd01 (si)   sistemas de arquivos

Sistemas Baseados em DiscoSistemas Baseados em Disco

• Gerenciamento de espaço LIVRE no disco– Estratégia : Lista Encadeada

• Ligação de todos os blocos livres do disco, formando uma “corrente”

• Cada bloco possui uma área reservada para armazenar o endereço do próximo bloco livre

• Problema: a pesquisa nos blocos é sempre sequencial

– Estratégia : Lista de Blocos Contíguos• Guarda o endereço do primeiro bloco livre de uma série de

blocos adjacentes em uma tabela de controle• Para cada endereço guardado, também se armazena a

quantidade de blocos contíguos

Professor Eduardo Xavier

Page 32: Sd01 (si)   sistemas de arquivos

Sistemas Baseados em DiscoSistemas Baseados em Disco

Professor Eduardo Xavier

DISCOLista Encadeada

1 2 3 4 5 6 7 8 9 10

11 12 13 14 15 16 17 18 19 20

Bloco Ocupado

Bloco Livre

Page 33: Sd01 (si)   sistemas de arquivos

Sistemas Baseados em DiscoSistemas Baseados em Disco

Professor Eduardo Xavier

DISCOLista de Blocos Contíguos

1 2 3 4 5 6 7 8 9 10

11 12 13 14 15 16 17 18 19 20

Bloco Ocupado

Bloco Livre

Primeiro Bloco Livre Número de Blocos Contíguos1 2

5 1

7 1

10 2

14 1

17 4

Page 34: Sd01 (si)   sistemas de arquivos

Sistemas Baseados em DiscoSistemas Baseados em Disco• Alocação de espaço OCUPADO no disco

– Estratégia : Alocação Contígua• Consiste em armazenar um arquivo em blocos

sequencialmente dispostos no disco• O sistema passa a localizar o arquivo pelo endereço

do primeiro bloco e a quantidade de blocos contíguos do mesmo

• Embora possuindo um gerenciamento simples, este método apresenta alto índice de fragmentação do disco, o que obriga a execução freqüente de rotinas de desfragmentação, causando impacto no desempenho

Professor Eduardo Xavier

Page 35: Sd01 (si)   sistemas de arquivos

Sistemas Baseados em DiscoSistemas Baseados em Disco

Professor Eduardo Xavier

DISCOAlocação Contígua

1 2 3 4 5 6 7 8 9 10

11 12 13 14 15 16 17 18 19 20

Tabela de Blocos Contíguos

Arquivo Bloco ExtensãoArq01.txt 3 4

Arq02.txt 8 2

Arq03.txt 11 3

Arq04.txt 15 2

Bloco Ocupado

Bloco Livre

Page 36: Sd01 (si)   sistemas de arquivos

Sistemas Baseados em DiscoSistemas Baseados em Disco• Alocação de espaço OCUPADO no disco

– Estratégia : Alocação Encadeada• Conjunto de blocos ligados logicamente no disco,

independente de localização física• Cada bloco do arquivo possui um ponteiro apontando para o

bloco seguinte do arquivo• Este método lida melhor com a fragmentação do disco do

que a alocação contígua, porém:– Não elimina o problema de desempenho causado por

excesso de fragmentação– Continua necessitando de eventuais desfragmentações – Outro problema neste método é a impossibilidade de

acesso direto aos blocos dos arquivos

Page 37: Sd01 (si)   sistemas de arquivos

Sistemas Baseados em DiscoSistemas Baseados em Disco

Professor Eduardo Xavier

DISCOAlocação Encadeada

1 2 3 4 5 6 7 8 9 10

11 12 13 14 15 16 17 18 19 20

Início do arquivo

Fim do arquivo

Bloco Ocupado

Bloco Livre

Page 38: Sd01 (si)   sistemas de arquivos

Sistemas Baseados em DiscoSistemas Baseados em Disco• Alocação de espaço OCUPADO no disco

– Estratégia : Alocação Indexada• Mantém o endereço de todos os blocos (ponteiros)

de um arquivo em uma estrutura separada chamada bloco de índice

• Para arquivos grandes, pode-se encadear vários blocos de índices, onde o último valor de um bloco aponta para o próximo bloco

• Este método resolve o problema de acesso direto mencionado na alocação encadeada

Professor Eduardo Xavier

Page 39: Sd01 (si)   sistemas de arquivos

Sistemas Baseados em DiscoSistemas Baseados em Disco

Professor Eduardo Xavier

DISCOAlocação Indexada

1 2 3 4 5 6 7 8 9 10

11 12 13 14 15 16 17 18 19 20

Bloco Ocupado

Bloco Livre

Diretório

Arquivo Bloco de

Índice

Arq01.txt 3

3 9 – 6 – 5 – 8 – 11 – 13 – 15 – 16

Page 40: Sd01 (si)   sistemas de arquivos

Tópicos para DiscussãoTópicos para Discussão

• Confiabilidade do sistema de arquivos– Cópias de segurança

• Procedimentos, Desastres e reprocessamentos

– Consistência• Detecção e verificação

• Desempenho– Cache de blocos (ou cache de buffer)– Leitura antecipada– Redução do movimento no braço do disco

Professor Eduardo Xavier