Sd01 (si) sistemas de arquivos

608 visualizações

Publicada em

  • Seja o primeiro a comentar

Sd01 (si) sistemas de arquivos

  1. 1. Sistemas DistribuídosParte 1Sistemas de ArquivosProfessor Eduardo Xavier
  2. 2. Introduçao• Os primeiros computadores executavam seus programascontando exclusivamente com a informação carregada namemória primária.• Que problemas essa abordagem causava?– O espaço de endereçamento de cada processo que estavaexecutando era muito limitado em seu tamanho. Porvezes, aplicações muito grandes não cabiam inteiramentena memória.– Quando o processo terminava, toda a informação que elemanipulava era eliminada da memória junto com omesmo.Professor Eduardo Xavier
  3. 3. Introduçao• Outros problemas:– Falhas no funcionamento do hardware comprometiam ainformação manipulada.– Múltiplos processos precisavam acessar uma determinadainformação (ou apenas parte dela) ao mesmo tempo e issonão era possível, pois cada processo tinha seu próprioespaço de endereçamento protegido do acesso dosdemais.• A solução para todos estes problemas era uma só: tornar ainformação independente dos processos que a manipulavam– Assim nasceu o conceito de ARQUIVOProfessor Eduardo Xavier
  4. 4. Arquivos• Para resolver os problemas já citados, os arquivosdevem atender a alguns requisitos essenciais:– Conseguir suportar grandes capacidades dearmazenamento– Garantir a “persistência” da informação, ou seja,providenciar que a informação sobreviva ao término doprocesso– Suportar acesso compartilhado da informação pormúltiplos processos simultaneamenteProfessor Eduardo Xavier
  5. 5. Arquivos• Os arquivos são gerenciados pelo sistemaoperacional 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 dearmazenamento)• A parte do SO que cuida disso chama-se “Sistemade Arquivo”Professor Eduardo Xavier
  6. 6. Sistemas de ArquivosProfessor Eduardo Xavier
  7. 7. Nomeação de Arquivos• Cada sistema operacional tem regras próprias paradefinir o que é válido e o que não é aceito nadefinição de um nome válido para seus arquivos.– A ideia básica é possibilitar que diversosprocessos possam acessar um certo conjunto dedados usando apenas a identificação desteconjunto (um nome)– Assim, os processos deixam de preocupar com aforma de armazenamento destes dados ou como funcionamento do hardware onde estãohospedadosProfessor Eduardo Xavier
  8. 8. Nomeação de Arquivos• Extensões de arquivos– Parte do nome do arquivo que indica algumacaracterística específica daquele tipo de arquivo– Não é algo obrigatório na maioria dos sistemasoperacionais modernos e seu objetivo é apenasfacilitar o uso do arquivoProfessor Eduardo Xavier
  9. 9. Nomeação de Arquivos• Alguns Exemplos:Professor Eduardo Xavier
  10. 10. Estruturas de Arquivos• O sistema operacional normalmente não sabe (enem 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 ganhaflexibilidadeProfessor Eduardo Xavier
  11. 11. Estruturas 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 é ordenadaProfessor Eduardo Xavier
  12. 12. Estruturas de ArquivosProfessor Eduardo XavierSeqüência de Bytes Seqüência deRegistrosÁrvore de Registros
  13. 13. Tipos de Arquivos• Os sistemas operacionais costumam suportar diversos tiposde arquivos, mas geralmente eles se dividem em doisgrupos:– 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 paramanipular estes arquivos» O que chamamos de arquivos EXECUTÁVEIS são arquivosbinários codificados em um formato reconhecido pelo SOsem ajuda de nenhum outro programa– Diretórios• Arquivos de controle que contém parte da estrutura suportada pelosistema de arquivosProfessor Eduardo Xavier
  14. 14. Acesso a Arquivos• Os primeiros computadores e seus sistemas operacionaissó suportavam acessos a seus arquivos de forma sequencial– Exemplos: fitas magnéticas, cartões perfurados,impressoras,...• Com o surgimento dos discos magnéticos, o acessoaleatório passou a ser mais frequente, em virtude dasnovas aplicações que surgiram com a nova tecnologia (ex:bancos de dados)– Nos primeiros modelos, o tipo de acesso ao arquivo eradefinido quando o mesmo era criado, ou seja, ao criarum novo arquivo seu dono definia se este seriaacessado 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 sequencialtambém é suportado em alguns casos)Professor Eduardo Xavier
  15. 15. Atributos• Atributos são itens informativos sobre determinadoarquivo, 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 decriação do arquivo.– Outros podem ser modificados pelo SO, a exemplo dadata da última alteração no arquivo– Existem ainda atributos que podem ser alterados pelopróprio usuário, de acordo com sua conveniência.Exemplo: permissões de acesso ao arquivo• Dependendo do sistema de arquivos, os atributos podemvariar, embora alguns deles sejam praticamente “padrõesde mercado”, como identificação do dono, tamanho doarquivo, data de criação e informações de proteção.Professor Eduardo Xavier
  16. 16. Exemplos de AtributosProfessor Eduardo Xavier
  17. 17. Operações com Arquivos• O sistema de arquivos é responsável por prover uma série desystem calls ou primitivas que permitam a manipulação dosarquivos 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 definircomo o mesmo será manipulado– Seek: Procura determinado ponto no arquivo– Read: Lê o arquivo (geralmente de forma sequencial) a partir dedeterminado 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 oarquivo está sendo usado (isso foi estabelecido no “open”)– Delete :Apaga o arquivoProfessor Eduardo Xavier
  18. 18. Diretórios• Diretórios são uma forma de organizar os diversos arquivoscontidos em um armazenamento secundário• São estruturas de dados que contém entradas associadas acada arquivo• A estrutura dos diretórios foi evoluindo desde os primeiroscomputadores 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árquicosProfessor Eduardo Xavier
  19. 19. Sist. de Diretórios em Nível Único• Cada entrada possui os atributos de umdeterminado arquivo• É a solução mais antiga – muito usada nosprimeiros computadores• Embora mais simples de implementar, é umaalternativa muito limitada• Seu maiores problemas são:– Não permitir dois arquivos com o mesmo nome– Cada usuário conhece os arquivos dos demaisProfessor Eduardo Xavier
  20. 20. Sist. de Diretórios em Nível ÚnicoProfessor Eduardo XavierDiretórioArquivosArquivo 1 Arquivo 2 Arquivo 3 ... Arquivo N
  21. 21. Sist. de Diretórios em Dois Níveis• Para cada usuário do sistema existe um diretório particularque gerencia seus arquivos, chamdo UFD (User FileDirectory)• Em um nível acima dos UFDs, existe outro diretório que oscontrola, 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 duplicadosdesnecessariamente:– Cria-se um UFD especial onde todos os usuários têmacesso (OBS: podem haver vários)– O sistema procura qualquer arquivo primeiramente nodiretório corrente e, caso não ache, procura nessediretório especial
  22. 22. Sist. de Diretórios em Dois NíveisProfessor Eduardo XavierUFDsArquivosArquivo 1 Arquivo 2 Arquivo 3 Arquivo 1 Arquivo 2 Arquivo 1 Arquivo 2Usuário 1 Usuário 2 ... Usuário NMFD
  23. 23. Sist. de Diretórios Hierárquico• É uma organização em árvore, criada a partir de umaextensã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 queirae cada um pode conter arquivos e outros diretórios• Cada arquivo possui um PATH único que descreve comochegar até ele a partir do MDF• O MDF não agrupa mais entradas por usuário e sim pordiretórios• A grande maioria dos sistemas operacionais modernosadota este sistema de diretóriosProfessor Eduardo Xavier
  24. 24. Sist. de Diretórios HierárquicoProfessor Eduardo XavierUFDs... Arquivo ...MFD Diretório DiretórioArquivoDiretório ArquivoDiretórioDiretórioArquivo ArquivoArquivo Arquivo Arquivo
  25. 25. Operações com Diretórios• As system calls para gerenciamento de diretórios variam maisde sistema para sistema que as chamadas paragerenciamento 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 paramanipulaçã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 sejavisualizado 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. Seestiver em visível em mais de um diretório apenas a ligação serádesfeita Professor Eduardo Xavier
  26. 26. Sistemas Baseados em Disco• Cada unidade de disco magnético contém os seguintes componentesbásicos:– Diversos discos com faces magnetizáveis paralelamente posicionados– Um dispositivo de tração que mantém o disco em rotação à velocidadeconstante– Um pente de cabeças de leitura/gravação• Uma cabeça para cada face magnetizável do disco (existem dispositivos com maisde 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
  27. 27. Sistemas Baseados em DiscoProfessor Eduardo Xavier
  28. 28. Sistemas Baseados em Disco• A visão do controlador de discos– Cada setor tem, geralmente, 512 bytes e é aunidade mínima de armazenamentomanipulada pelo controlador de disco– Para acessar a informação no disco, ocontrolador precisa saber:• Qual a face do disco• Qual a trilha ou o cilindro• Qual o setor dentro da trilhaProfessor Eduardo Xavier
  29. 29. Sistemas 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 ouregistros físicos– As vezes, é mais interessante para o SO trabalhar comunidades diferentes de 1 setor (exemplo: para obtermais velocidade em discos de alta capacidade)• Neste caso, o SO passa a trabalhar com registroslógicos ou blocos, que são agrupamentos deregistros físicos (mais comum hoje em dia)• Isso aumenta a velocidade de acesso, mas aumentatambém o espaço perdido pro registroProfessor Eduardo Xavier
  30. 30. Sistemas Baseados em Disco• Gerenciamento de espaço livre no disco– O espaço de um arquivo que foi apagado podeser reutilizado– Por este motivo, é preciso ter estratégias paragerenciar este espaço– Estratégias :• Lista Encadeada• Lista de Blocos ContíguosProfessor Eduardo Xavier
  31. 31. Sistemas 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 oendereç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 deblocos adjacentes em uma tabela de controle• Para cada endereço guardado, também se armazena aquantidade de blocos contíguosProfessor Eduardo Xavier
  32. 32. Sistemas Baseados em DiscoProfessor Eduardo XavierDISCOLista Encadeada1 2 3 4 5 6 7 8 9 1011 12 13 14 15 16 17 18 19 20Bloco OcupadoBloco Livre
  33. 33. Sistemas Baseados em DiscoProfessor Eduardo XavierDISCOLista de Blocos Contíguos1 2 3 4 5 6 7 8 9 1011 12 13 14 15 16 17 18 19 20Bloco OcupadoBloco LivrePrimeiro Bloco Livre Número de Blocos Contíguos1 25 17 110 214 117 4
  34. 34. Sistemas Baseados em Disco• Alocação de espaço OCUPADO no disco– Estratégia : Alocação Contígua• Consiste em armazenar um arquivo em blocossequencialmente dispostos no disco• O sistema passa a localizar o arquivo pelo endereçodo primeiro bloco e a quantidade de blocoscontíguos do mesmo• Embora possuindo um gerenciamento simples, estemétodo apresenta alto índice de fragmentação dodisco, o que obriga a execução freqüente de rotinasde desfragmentação, causando impacto nodesempenhoProfessor Eduardo Xavier
  35. 35. Sistemas Baseados em DiscoProfessor Eduardo XavierDISCOAlocação Contígua1 2 3 4 5 6 7 8 9 1011 12 13 14 15 16 17 18 19 20Tabela de Blocos ContíguosArquivo Bloco ExtensãoArq01.txt 3 4Arq02.txt 8 2Arq03.txt 11 3Arq04.txt 15 2Bloco OcupadoBloco Livre
  36. 36. Sistemas 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 apontandopara o bloco seguinte do arquivo• Este método lida melhor com a fragmentação do discodo que a alocação contígua, porém:– Não elimina o problema de desempenho causadopor excesso de fragmentação– Continua necessitando de eventuaisdesfragmentações– Outro problema neste método é a impossibilidadede acesso direto aos blocos dos arquivos
  37. 37. Sistemas Baseados em DiscoProfessor Eduardo XavierDISCOAlocação Encadeada1 2 3 4 5 6 7 8 9 1011 12 13 14 15 16 17 18 19 20Início do arquivoFim do arquivoBloco OcupadoBloco Livre
  38. 38. Sistemas 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 chamadabloco de índice• Para arquivos grandes, pode-se encadear váriosblocos de índices, onde o último valor de um blocoaponta para o próximo bloco• Este método resolve o problema de acesso diretomencionado na alocação encadeadaProfessor Eduardo Xavier
  39. 39. Sistemas Baseados em DiscoProfessor Eduardo XavierDISCOAlocação Indexada1 2 3 4 5 6 7 8 9 1011 12 13 14 15 16 17 18 19 20Bloco OcupadoBloco LivreDiretórioArquivo Bloco deÍndiceArq01.txt 33 9 – 6 – 5 – 8 – 11 – 13 – 15 – 16
  40. 40. Tó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 discoProfessor Eduardo Xavier

×