Sistemas Distribuídos
Parte 1
Sistemas de Arquivos
Professor Eduardo Xavier
Introduç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
Introduç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
Arquivos
• 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
Arquivos
• 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
Sistemas de Arquivos
Professor Eduardo Xavier
Nomeaçã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
Nomeaçã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
Nomeação de Arquivos
• Alguns Exemplos:
Professor Eduardo Xavier
Estruturas 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
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 é ordenada
Professor Eduardo Xavier
Estruturas de Arquivos
Professor Eduardo Xavier
Seqüência de Bytes Seqüência de
Registros
Árvore de Registros
Tipos 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
Acesso 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
Atributos
• 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
Exemplos de Atributos
Professor Eduardo Xavier
Operaçõ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
Diretó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
Sist. 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
Sist. de Diretórios em Nível Único
Professor Eduardo Xavier
Diretório
Arquivos
Arquivo 1 Arquivo 2 Arquivo 3 ... Arquivo N
Sist. 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
Sist. 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
Sist. 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
Sist. 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
Operaçõ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
Sistemas 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
Sistemas Baseados em Disco
Professor Eduardo Xavier
Sistemas 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
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 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
Sistemas 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
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 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
Sistemas Baseados em Disco
Professor Eduardo Xavier
DISCO
Lista 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
Sistemas Baseados em Disco
Professor Eduardo Xavier
DISCO
Lista 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íguos
1 2
5 1
7 1
10 2
14 1
17 4
Sistemas 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
Sistemas Baseados em Disco
Professor Eduardo Xavier
DISCO
Alocaçã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ão
Arq01.txt 3 4
Arq02.txt 8 2
Arq03.txt 11 3
Arq04.txt 15 2
Bloco Ocupado
Bloco Livre
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 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
Sistemas Baseados em Disco
Professor Eduardo Xavier
DISCO
Alocaçã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
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 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
Sistemas Baseados em Disco
Professor Eduardo Xavier
DISCO
Alocaçã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
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 disco
Professor Eduardo Xavier

Sd01 (si) sistemas de arquivos

  • 1.
    Sistemas Distribuídos Parte 1 Sistemasde Arquivos Professor Eduardo Xavier
  • 2.
    Introduçao • Os primeiroscomputadores 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
  • 3.
    Introduç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
  • 4.
    Arquivos • Para resolveros 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
  • 5.
    Arquivos • Os arquivossã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
  • 6.
  • 7.
    Nomeaçã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
  • 8.
    Nomeaçã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
  • 9.
    Nomeação de Arquivos •Alguns Exemplos: Professor Eduardo Xavier
  • 10.
    Estruturas 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
  • 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 é ordenada Professor Eduardo Xavier
  • 12.
    Estruturas de Arquivos ProfessorEduardo Xavier Seqüência de Bytes Seqüência de Registros Árvore de Registros
  • 13.
    Tipos 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
  • 14.
    Acesso 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
  • 15.
    Atributos • Atributos sãoitens 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
  • 16.
  • 17.
    Operaçõ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
  • 18.
    Diretórios • Diretórios sãouma 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
  • 19.
    Sist. de Diretóriosem 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
  • 20.
    Sist. de Diretóriosem Nível Único Professor Eduardo Xavier Diretório Arquivos Arquivo 1 Arquivo 2 Arquivo 3 ... Arquivo N
  • 21.
    Sist. de Diretóriosem 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
  • 22.
    Sist. de Diretóriosem 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
  • 23.
    Sist. de DiretóriosHierá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
  • 24.
    Sist. de DiretóriosHierárquico Professor Eduardo Xavier UFDs ... Arquivo ...MFD Diretório DiretórioArquivo Diretório Arquivo DiretórioDiretório Arquivo Arquivo Arquivo Arquivo Arquivo
  • 25.
    Operaçõ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
  • 26.
    Sistemas Baseados emDisco • 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
  • 27.
    Sistemas Baseados emDisco Professor Eduardo Xavier
  • 28.
    Sistemas Baseados emDisco • 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
  • 29.
    Sistemas Baseados emDisco • 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
  • 30.
    Sistemas Baseados emDisco • 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
  • 31.
    Sistemas Baseados emDisco • 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
  • 32.
    Sistemas Baseados emDisco Professor Eduardo Xavier DISCO Lista 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
  • 33.
    Sistemas Baseados emDisco Professor Eduardo Xavier DISCO Lista 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íguos 1 2 5 1 7 1 10 2 14 1 17 4
  • 34.
    Sistemas Baseados emDisco • 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
  • 35.
    Sistemas Baseados emDisco Professor Eduardo Xavier DISCO Alocaçã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ão Arq01.txt 3 4 Arq02.txt 8 2 Arq03.txt 11 3 Arq04.txt 15 2 Bloco Ocupado Bloco Livre
  • 36.
    Sistemas Baseados emDisco • 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
  • 37.
    Sistemas Baseados emDisco Professor Eduardo Xavier DISCO Alocaçã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
  • 38.
    Sistemas Baseados emDisco • 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
  • 39.
    Sistemas Baseados emDisco Professor Eduardo Xavier DISCO Alocaçã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
  • 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 disco Professor Eduardo Xavier