Buscar

Aula0 - Sistemas Operacionais

Prévia do material em texto

Centro Universitário 
de Formiga
Sistemas Operacionais II
Sistemas de Arquivos
Profº Harley Rios
Ciência da Computação 
6º Período
Sistemas de arquivos 
 Parte do Sistema Operacional mais visível ao usuário.
 Oferece condições essenciais para armazenamento de 
informações em mídias por um longo prazo.
 Controle contra perda de informações em casos de desligamentos;
 Localizar os blocos onde estão os seus dados dentro do disco;
Sistemas de arquivos
Armazenamento de Informações 
 Armazenamento de informações: três importantes requisitos no a 
longo prazo:
 Deve ser possível armazenar uma grande quantidade de informação.
 A informação deve sobreviver ao término do processo que está usando 
a mesma, posterior recuperação,
 Ex.: banco de dados;
 Múltiplos processos devem ser capaz de acessar a informação 
simultaneamente.
Sistemas de arquivos
Armazenamento de Informações 
 Em um disco como uma sequência linear de blocos de tamanho fixo 
e que apoiam a leitura e registro dos blocos, outras questões 
surgem rapidamente também:
• Como encontrar a informação?
• Como saber se os blocos estão livres?
• Como alocar as ninformações nos blocos?
 Para atender a esses requisitos, as informações são armazenadas 
em unidades chamadas arquivos;
Arquivos
 Unidade lógica de informação.
 Criado/lido/escrito/apagado por processos;
 Utilizam o espaço de endereçamento de disco.
 Outras perguntas surgem:
 Qual sua cara? 
 Como são nomeados e protegidos? 
 Quais operações podem ser executadas neles? 
 Concorrência no acesso a dados.
 Parte do Sistema Operacional responsável pelo tratamento dos 
arquivos: Sistemas de Arquivos
Arquivos
 Outras funções do sistema de arquivos:
 Estruturar
 Identificar
 Proteger
 Acessar
 Da parte de vista do usuário, o aspecto mais importante é a 
apresentação dos arquivos.
Sistema de Arquivos
Identificação
 Quando arquivos são criados, nomes são atribuídos. 
 Quando o processo termina sua execução, o arquivo continua a 
existir, podendo ser acessado por outros processos.
 Tamanho: até 255 caracteres;
 Restrição: MS-DOS aceita de 1-8 caracteres
 Caracteres permitidos: A-Z, a-z, 0-9, $, %, ´, @, {, }, ~, `, !, #, (, ), &
 Caracteres não permitidos: ?, *, /, \, “, |, <, >, :
 (Case sensitive) Unix: (Barbara, BARbara)
 Alguns sistemas suportam uma extensão relacionada ao nome do arquivo.
Nomeação de arquivos
Extensões
 A maioria dos S.O’s suportam nomes compostos.
 Uma extensão, geralmente, associa o arquivo a algum aplicativo 
(associação feita pelo aplicativo):
Como o conteúdo do arquivo é 
estruturado?
 Três maneiras muito comuns:
 Sequência não estruturada de bytes (usual).
 SO não se importa com o conteúdo do arquivo; Flexibilidade (nomear arquivos. 
alterar); (Unix, DOS)
 Sequência de registros de tamanho fixo.
 Leitura/escrita em registros; Pouco utilizado;
 Árvores de registros (tamanho variado):
 Possui chave fixa
 Operação básica não é 
obter o próximo registro, 
mas obter o registro com
uma chave específica.
- Encontrar registro cuja chave
é pônei, sem preocupar com 
sua posição exata no arquivo.
Tipos de arquivos
 Sistemas operacionais suportam vários tipos de arquivos.
 Regulares: informações do usuário;
 ASCII: editáveis (.txt)
 Binário: todos arquivos não ASCII (executável);
 Diretórios: manter a estrutura do Sistema de Arquivos; (/, c:)
 Especiais de caracteres: E/S (impressoras, terminais, interface rede);
 Arquivos especiais de bloco: modelar discos; (listar os blocos do disco)
Tipos de arquivos
- Em UNIX/Linux, o comando file pode distinguir o tipo do arquivo.
- Padrão especial é armazenado no início de cada arquivo binário (magic number);
Ex: arquivos GIF sempre iniciam com o string “GIF87a” ou “GIF89a 
Acesso a arquivos
 Acesso Sequencial:
 Primeiros sistemas operacionais.
 leitura em ordem byte a byte; do início do arquivo...
 sem operação “seek” (interessante para fita magnética).
 Acesso Aleatório: 
 Aplicações podem ler bytes em qualquer posição, em qualquer ordem. (S.O’s 
modernos).
 Acesso feito por chave;
 Operação Read;
 Operação Seek;
Atributos de arquivos
 Cada arquivo tem necessariamente um nome e um conjunto de dados.
 Atributos: informações associadas ao arquivo; 
 Varia de SO para SO (proteções são comuns).
Anatomia de um arquivo
Atributos de Arquivos
Lendo atributos – Linux
Comando stat
Operações sobre arquivos
 Operações são oferecidas para armazenar e recuperar informações.
Algumas chamadas são:
 Create: criar arquivo sem dados, define atributos
 Delete: remover o arquivo e liberar espaço
 Open: necessário antes de usar, o sistema deve buscar atributos e 
localização dos endereços dos dados em disco (carrega estas 
informações na memória principal (agilizar)).
 Close: os acessos terminam, dados para o acesso não mais 
necessários, liberar espaço nas tabelas, finalizar escritas
 Read: leitura de dados a partir da posição atual, quantidade e local 
especificados
Operações sobre arquivos
 Write: escrita de dados no arquivo, a partir da posição atual, quantidade e 
local especificado 
 (Append). Tipo de write que escreve somente no final do arquivo.
 Seek: para arquivos de acesso randômico; Indica posição dos dados 
(ponteiro do arquivo).
 Get attributes: leitura dos atributos de um arquivo, Ex. make;
 Set attributes: altera valores dos atributos, Ex. Modo de proteção.
 Rename: altera o nome do arquivo.
Diretórios
 São arquivos responsáveis por manter a estrutura do Sistema de 
Arquivos.
 Tipo Nível Único: um diretório contém todos os arquivos diretório raiz (root 
directory).
 Vantagens: simplicidade
 Desvantagens: arquivos com o mesmo nome;
Diretórios 
Nível Hierárquico
 Cada usuário possui um diretório privado;
 Procedimento de login: identificação;
 Sistemas operacionais modernos utilizam esse método;
Nomes de arquivos
 É preciso especificar o nome dos arquivos para acessar...
 Existem dois métodos muito conhecidos:
– Caminho absoluto,
/usr/ast/mailbox - Absoluto
– Caminho relativo ( Diretório de trabalho)
mailbox (se estiver em /usr/ast) 
 Sistemas de diretório hierárquico suportam
entradas especiais.
– '.' (diretório corrente)
– '..‘ (pai do corrente)
Operações sobre Diretórios
 CREATE: Cria um diretório vazio contendo apenas o . e .. colocados 
automaticamento (mkdir).
 DELETE: apaga um diretório (rm –rf)
 OPENDIR: diretórios podem ser lidos (listar todos arquivos de um diretório)
 CLOSEDIR: fechar um diretório
 READDIR: Retorna a próxima entrada em um diretório aberto
 RENAME: renomear um diretório (mv)
 LINK: permite que um arquivo apareça em mais de um diretório (atalho)
Implementação do Sistema de 
Arquivos
 Como arquivos e diretórios são armazenados;
 Como o espaço em disco é gerenciado;
 Como tornar o sistema eficiente e confiável;
Esquema do sistema de arquivos
 Discos divididos em uma ou mais partições, com sistemas de arquivos 
independentes para cada partição.
 Setor 0 (MBR): inicializar o computador.
 Fim do MBR: Tabela de partição com endereços iniciais e finais de cada partição
Esquema do sistema de arquivos
 Computador liga: executa a MBR que localiza a partição ativa
 Lê o primeiro bloco (Bloco de inicialização)
 Programa no bloco de inicialização carrega o S.O. contido naquela 
partição.
 Superbloco: informações sobre o sistemas de arquivos utilizado...
Implementação do Sistema de 
Arquivos
 O ponto chave na implementação do armazenamento de arquivos é 
associar blocos de disco a arquivos (quais blocos pertencem a quais 
arquivos).
 Diferentes técnicas são implementadas por diferentes Sistemas 
Operacionais;
Alocação contígua;
 Técnica mais simples;
 Armazena arquivos de forma contínua no disco;
 Ex.: em um disco com blocos de 1kb, um arquivo com 50kb será alocado em 50 
blocos consecutivos;
Alocação Contígua Vantagens: Simplicidade: somente endereço do primeiro bloco é 
necessário. Dado o número do primeiro bloco, outro pode ser encontrado 
por uma simples adição.
 Bom desempenho para o acesso ao arquivo: acesso sequencial em uma 
única operação
 Desvantagens: Fragmentação externa, perde-se espaço útil;
Alocação por lista encadeada 
 Manter o espaço em disco alocado ao arquivo como uma lista ligada de blocos.
 A primeira palavra de cada bloco é um ponteiro para um próximo bloco;
 O restante do bloco é destinado aos dados;
 Ao contrário da alocação contígua, qualquer bloco pode ser usado
 Apenas o endereço em disco do primeiro bloco do arquivo é armazenado; restante 
pode ser encontrado a partir dele.
 Serviço de diretório é responsável por manter esse endereço;
Alocação por lista encadeada
 Vantagem: Não se perde espaço com a fragmentação externa;
 Desvantagens: Leitura - acesso aleatório é extremamente lento; chegar ao 
bloco n, precisa ler os n – 1 blocos antes dele;
Alocação por lista encadeada usando 
uma tabela na memória
 Utiliza uma tabela na memória; (Elimina as desvantagens da encadeada)
 O ponteiro é colocado em uma tabela na memória ao invés de ser colocado no 
bloco;
 O arquivo A inicia no bloco 4 que indica o
próximo bloco (bloco 7) e assim por diante...
 Acesso aleatório mais fácil (memória principal ao 
invés do acesso em disco);
 MS-DOS (FAT)
 Desvantagem: tabela deve estar na memória o
tempo todo.
Implementando o Sistema de Arquivos
I-nodes
 Cada arquivo possui uma estrutura de dados (tabela) chamada i-
node (index-node) que lista os atributos e endereços em disco dos 
blocos do arquivo;
 Assim, dado o i-node de um arquivo é possível encontrar todos os blocos desse 
arquivo;
 Se cada i-node ocupa n bytes e k arquivos podem estar aberto ao 
mesmo tempo o total de memória ocupada é kn bytes;
 UNIX e Linux;
I-nodes
 Vantagem: O i-node somente é
carregado na memória quando o seu
respectivo arquivo está aberto (em uso);
 Desvantagem: O tamanho do arquivo 
pode aumentar muito
 Solução: reservar o último endereço 
para outros endereços de blocos;
Implementação de diretórios 
 Quando um arquivo é aberto, o Sistema Operacional utiliza o caminho 
fornecido pelo usuário para localizar o diretório de entrada;
 O diretório de entrada provê as informações necessárias para encontrar os 
blocos no disco nos quais o arquivo está armazenado:
 Endereço do arquivo inteiro (alocação contínua);
 Número do primeiro bloco do arquivo (alocação com listas encadeadas);
 Número do i-node;
 O serviço de diretório é responsável por mapear o nome ASCII
do arquivo na informação necessária para localizar os dados.
Implementação de diretórios
 O serviço de diretório também é responsável por manter armazenados 
os atributos relacionados a um arquivo:
 Entrada do Diretório: consiste de uma lista de entradas com tamanho fixo (uma 
para cada arquivo) 
 contém um nome de arquivo (tamanho fixo), uma estrutura de atributos de arquivos, e 
um ou mais endereços de disco; MS/DOS e Windows;
Implementação de diretórios
 Para sistemas que usam nós-i, uma outra possibilidade é armazenar os 
atributos nos próprios nós, em vez de na entrada do diretório.
 I-node: nesse caso, o diretório de entrada é menor, armazenando somente 
o nome de arquivo e o número do i-node que contém os atributos; UNIX
Arquivos compartilhados 
 Arquivos de C presentes no diretório de B (link);
Gerenciamento de Espaço em Disco
 Duas estratégias para um arquivo de n bytes;
 São alocados ao arquivo n bytes consecutivos do
espaço disponível em disco; 
 Arquivo é espalhado por um número de blocos não necessariamente 
contínuos blocos com tamanho fixo;
 A maioria dos sistemas de arquivos utilizam essa estratégia;
 O tamanho do bloco tem uma grande influência;
 Se for muito grande, ocorre desperdício de espaço;
 Se for muito pequeno, um arquivo irá ocupar muitos blocos, tornando o 
acesso/busca lento;
Gerenciamento de Espaço em Disco
 Blocos pequenos contribuem para um baixo desempenho, mas são 
bons para o gerenciamento de espaço em disco;
Gerenciamento de Espaço em Disco
 Controle de blocos livres (dois métodos):
 Lista ligada de blocos livres: 32 bits para endereçar cada
bloco; mantida no disco;
 Somente um bloco de ponteiros é mantido na memória principal quando 
bloco está completo, esse bloco é escrito no disco;
 Vantagens: 
 Requer menos espaço se existem poucos blocos livres (disco quase cheio);
 Armazena apenas um bloco de ponteiros na memória;
 Desvantagens:
 Requer mais espaço se existem muitos blocos livres (disco quase vazio);
 Dificulta alocação contínua;
 Não ordenação;
Gerenciamento de Espaço em Disco
Gerenciamento de Espaço em Disco
 Mapa de bits (bitmap): depende do tamanho do disco:
 Um disco com n blocos, possui um mapa de bits com n bits, sendo 
um bit para cada bloco;
 Mapa é mantido na memória principal; 
 Vantagens: 
 Requer menos espaço;
 Facilita alocação contínua;
 Desvantagens:
 Torna-se lento quando o disco está quase cheio;
Confiabilidade do Sistema de Arquivos
Backup
 Danos causados ao sistema de arquivos podem ser desastrosos;
 Sistemas de arquivos são projetados para proteger as informações 
de danos lógicos e não físicos;
 Cópias de Segurança (Backup)
 Recuperação em caso de desastre
 Questões de Backup
 O que copiar?
 Politica de Backup
 Tempo (Eu posso perder quanto?)
 Tipos de Backup
 Lógico (Arquivos), Físico (Blocos do Sistema de arquivos)
Confiabilidade do Sistema de Arquivos
Backup
 Política de Backup
 Full: Copia de todos os dados SEMPRE
 Pró: Restaura todo o sistema de uma única fonte (Cópia)
 Contra: Gasta muita área de Armazenamento
 Incremental: Copia-se os dados modificados desde a ultima cópia.
 Pró: Usa pouco espaço
 Contra: Para restaurar o sistema pode precisar de várias fontes (Melhora-se 
usando um full de tempos em tempos).
 Diferencial: Copia os dados alterados desde a última cópia full.
 Pros e Contras: Reune o melhor das políticas anteriores
Consistência do sistema de arquivos
 O que fazer na ocorrência de falhas entre a atualizacão de um bloco e 
a escrita em disco?
 Especialmente crítico quando o problema envolve um i-node.
 Verificação de consistência: fsck e scandisk.
 (a) Consistente (b) Bloco faltando (c) Duplicacão na lista de livres (d) Duplicacão nos dados

Continue navegando