• Nenhum resultado encontrado

08 - Gerência de Arquivos

N/A
N/A
Protected

Academic year: 2021

Share "08 - Gerência de Arquivos"

Copied!
55
0
0

Texto

(1)

Sistemas Operacionais

Prof. Leonardo Araújo

(2)

Plano de aula

• Gerenciamento de Arquivos

• Definição • Arquivos • Uso de arquivos • Organização de volumes • Sistemas de arquivos • Pesquisa

(3)
(4)

Gerência de Arquivos

• Até agora vimos que o SO tem por finalidades principais:

• Gerenciar os recursos de hardware x software • Estender a capacidade da máquina;

• Vimos também que o SO é responsável por gerenciar os processos e

a memória principal do sistema;

(5)

Gerência de Arquivos

• Os processos, como sabemos, são programas em execução;

• Mas os programas, antes de entrarem em execução, aonde

eles estão?

• Em meios de armazenamento secundário (não-voláteis), como discos rígidos (HDs) ou memórias flash (pen-drives);

• E claro, o SO também fica responsável pela

(6)

Gerência de Arquivos

• Mas vamos a uma definição bem familiar:

• O que é um arquivo?

“Um conjunto de dados, armazenados em uma memória não

volátil, com uma finalidade específica, que contém uma

(7)

Gerência de Arquivos

• Um arquivo pode ser:

• Conjunto de textos • Imagem

• Sons • Vídeos

(8)

Gerência de Arquivos

• Imagine um HD com dezenas de gigabytes de arquivos.

Como você acha que eles estão lá dentro?

• Geralmente organizados dentro de diretórios;

• Além disso, em se tratando de sistema operacional, estão

organizados em um sistema de arquivos;

(9)
(10)

Gerência de Arquivos

• Qualquer arquivo tem atributos ou características que os

tornam únicos na visão do usuário e do sistema;

• Nome;

• Tipo (extensão do nome do arquivo); • Tamanho;

• Data;

• Proprietário;

• Permissão de acesso; • Etc...

(11)

Gerência de Arquivos

• Qualquer arquivo tem atributos ou características que os

tornam únicos na visão do usuário e do sistema;

• Nome;

• Tipo (extensão do nome do arquivo); • Tamanho;

• Data;

• Proprietário;

• Permissão de acesso; • Etc...

(12)

Gerência de Arquivos

• O Sistema Operacional pode manipular os arquivos através

de chamadas de funções e/ou bibliotecas específicas da

seguinte forma:

• Criar; • Abrir; • Fechar; • Excluir; • Ler; • Escrever; • Copiar; • Etc..

(13)

Gerência de Arquivos

• Qualquer arquivo tem atributos ou características que os

tornam únicos na visão do usuário e do sistema;

• Nome;

• Tipo (extensão do nome do arquivo); • Tamanho;

• Data;

• Proprietário;

• Permissão de acesso; • Etc...

(14)

Gerência de Arquivos

• Além disso, todo arquivo tem um formato, também

conhecido como extensão o arquivo;

• Geralmente o núcleo do SO reconhece apenas extensões

básicas como bibliotecas do sistema (DLL’s);

• Caso o SO não reconheça um formato, ele o interpretará

apenas como um “arquivo desconhecido”;

• Neste último caso, é necessário alguma aplicação para que o

formato do arquivo seja reconhecido.

(15)
(16)

Gerência de Arquivos

• Um arquivo, além de ser o próprio executável, também pode

ser parte de um processo em execução;

• Um arquivo pode ser acessado enquanto um processo está

sendo executado;

(17)

Gerência de Arquivos

• Quando um processo precisa abrir um arquivo, a seguinte

sequência é realizada pelo SO (na maioria dos SOs):

1. Localiza o arquivo no dispositivo físico

2. Verifica as permissões do arquivo (leitura/escrita);

3. Cria uma estrutura na memória do núcleo para representar o arquivo;

4. Insere uma referência a essa memória na lista de arquivo abertos, para fins de gerência;

5. Devolve ao processo a referência de acesso ao arquivo aberto no núcleo para fins de gerência;

6. Quando o processo termina de usar aquele arquivo, o SO fecha o arquivo, excluindo as suas estruturas do núcleo.

(18)

Gerência de Arquivos

• Quando abertos, os arquivos podem ser acessados,

geralmente, de duas formas:

• Sequencial – leitura dos dados de forma sequencial, onde um ponteiro percorre a sequência de dados até o fim, representado por um flag EoF (End-of-File);

• Aleatório – os dados são lidos de forma direta, bastando o SO saber a posição exata do dado na memória;

(19)

Gerência de Arquivos

• Como os arquivos geralmente estão estritamente associados

a um processo, os mesmos possuem controles de acesso,

que geralmente estão definidos nos seguintes atributos:

• Proprietário – usuário/dono do arquivo;

(20)

Gerência de Arquivos

• Por exemplo, nos sistemas UNIX a estrutura de controle de

acesso a arquivos se dá da seguinte maneira:

• Usuários: proprietários do arquivo (User), Grupo de usuários associados ao arquivo (Group), demais usuários (Others)

• Permissões: ler (Read), escrever (Write), Executar (eXecute)

Fig. 2: Exemplo de controle de acesso a arquivos Fonte: Maziero, 2010

(21)

Gerência de Arquivos

• Da mesma forma que os processos podem sofrer condições

de disputa (race conditions), os arquivos também podem;

• Logo, para que arquivos sejam acessados de forma

simultânea (seja por processos ou usuários distintos),

algumas técnicas devem ser implementadas;

(22)

Gerência de Arquivos

• Travas em arquivos

• São semelhantes à técnica de exclusão mútua entre processos;

• Garante a um processo (ou usuário) o acesso exclusivo a um arquivo; • Pode ser

• Obrigatórias (quando um processo tem acesso a um arquivo e os demais ficam suspensos aguardando a vez)

• Recomendadas (quando qualquer processo acessa um arquivo – trechos – ao mesmo tempo, porém de forma ordenada – programador)

(23)

Gerência de Arquivos

• Semântica de acesso

• Quando um arquivo é modificado por um processo na memória e outros arquivos, ao acessá-lo em disco, não encontram o arquivo modificado, ocorre uma semântica de acesso;

• O disco é mais lento do que a memória, por isso o atraso na atualização dos dados na memória secundária;

• Para que esse problema seja tratado, existem as semânticas de

(24)

Gerência de Arquivos

• Semântica de acesso

• Semântica UNIX: todas as modificações são visíveis a todos os dispositivos que acessam aquele arquivo na memória local;

• Semântica de sessão: os arquivos são abertos em sessões. Logo, as modificações feitas no arquivo em uma sessão só serão visíveis na mesma sessão ou por outro processo após o fechamento e reabertura de sessão; • Semântica imutável: simplesmente o arquivo é marcada como imutável, ou

seja, mesmo sendo compartilhado, o seu conteúdo nunca poderá ser alterado.

(25)
(26)
(27)

Gerência de Arquivos

• Os arquivos, como visto, são armazenados em memórias

secundárias;

• Dessas memórias, em sistemas do tipo PC a memória mais

usada ainda é o HD ou disco rígido;

• Logo, na maioria dos HDs, a forma de organização determina

o modo de acesso aos arquivos;

(28)

Gerência de Arquivos

• De forma sintetizada, o HD é dividido em blocos de bytes,

que contem dados específicos para o seu gerenciamento

(MBR - Master Boot Record e VBR – Volume Boot Record) e

os dados dos arquivos de usuários, além de partições;

Fig. 4: Organização em partições de um disco rígido típico Fonte: Maziero, 2010

(29)

Gerência de Arquivos

• Assim, as partições devem ser formatadas para contem um

sistema de arquivo, que pode conter arquivos, diretórios,

atalhos, etc.

(30)

Gerência de Arquivos

• Como um sistema pode contem milhões de arquivos, para o

SO é simples gerenciá-los, conforme as técnicas já

mencionadas;

• Porém, para usuários, torna-se complexo identificar um

arquivo sem estar estruturado;

(31)

Gerência de Arquivos

• Os diretórios também são arquivos estruturados, que

contem referências a demais arquivos;

• Logo, fisicamente falando, os diretórios não contém

arquivos, mas apontam para estes;

• Logo, para se identificar um arquivo dentro de um diretório,

é necessário a implementação de um caminho de acesso;

(32)

Gerência de Arquivos

(33)

Gerência de Arquivos

• O acesso a arquivos e diretórios pode ser dado ainda por

meio de referência diretas em locais diferentes, onde o seu

acesso

será

feito

por

meio

de

ponteiros

e

não

necessariamente do arquivo replicado;

• Neste caso temos os atalhos, que podem ser

• Simbólicos, que são arquivos que apenas contem o caminho de acesso ao arquivo original, porém são independentes;

• Físicos, quando várias referências no volume de disco são feitas a um arquivo físico e estão diretamente ligados, ou seja, o arquivo original só pode ser excluído quando as suas referências físicas foram excluídas;

(34)

Gerência de Arquivos

• Por fim, os volumes podem ser acessados quando há a

montagem de volumes;

• Cada unidade é representada no sistema por um volume,

que podem ser partições de um disco, outros discos,

pen-drives, CD-ROM, etc.

(35)
(36)
(37)

Gerência de Arquivos

• Um sistema de arquivo é o que organiza a estrutura de

dados dos arquivos;

• Com um sistema de arquivo, o SO consegue gerenciar os

arquivos em uma unidade;

• Existem vários elementos que compõem um sistema de

arquivos, os quais iremos discutir a partir de agora,

conforme a Figura 7.

(38)

Gerência de Arquivos

(39)

Gerência de Arquivos

• Os discos contam com uma organização física dividida geralmente em

512 bytes, denominada de bloco físico;

• Como a quantidade de blocos pode facilmente ultrapassar a casa dos

500 milhões, para o SO gerenciar esses blocos, o mesmo trata os blocos

físicos como conjuntos de 2^n blocos físicos, denominados de blocos

lógicos ou clusters;

• Com os blocos lógicos, geralmente de 4KB, 8KB, 16KB e 32KB, o

desempenho geral do sistema aumenta e a gerência dos dados melhora

consideravelmente;

(40)

Gerência de Arquivos

• Logo, cada arquivo ou diretório ocupa um ou mais blocos lógicos;

• O tamanho do cluster depende do SO durante a formatação da partição;

• Blocos pequenos: tem melhor aproveitamento do espaço dos dados, porém mais dados precisam ser passados e mais blocos precisam ser gerenciados, degradando o desempenho geral do sistema;

• Blocos grandes: são mais rápidos de serem acessados e gerenciados, aumentando o desempenho, porém podem sofrer com a fragmentação interna;

• Logo, o tamanho do bloco lógicos deve ser escolhido de forma adequada

aos tipos de arquivos mais usados naquela partição.

(41)

Gerência de Arquivos

• Um arquivo pode conter milhares e até milhões de blocos;

• Esses dado e meta-dados (atributos) de um arquivos precisam ser

organizados de forma que esteja ligados um ao outro;

• Para os processos, o acesso ao arquivo deve ser feito de forma

transparente;

• Porém, os arquivos podem estar dispostos em bloco não contíguos no

disco, gerando o problema da alocação de arquivos, necessitando então

de estratégias de alocação de arquivos;

(42)

Gerência de Arquivos

Fig. 8: Problema da alocação de arquivos Fonte: Maziero, 2010

(43)

Gerência de Arquivos

• As estratégias de alocação de arquivos podem ser:

• Contígua; • Encadeada; • Indexada;

(44)

Gerência de Arquivos

• Estratégia contígua

• Os blocos de um arquivo são dispostos fisicamente de forma sequencial (contígua), sem “buracos”. A sua localização é dada pelo acesso ao primeiro bloco;

• Boa robustez a falhas de disco (se houver defeito em um bloco, os demais poderão ser acessados normalmente);

• Baixa flexibilidade: o tamanho do arquivo precisa ser conhecido e está sujeita à fragmentação externa (igual alocação contígua na memória);

(45)
(46)

Gerência de Arquivos

• Estratégia encadeada

• Os blocos do arquivo não precisam estar dispostos sequencialmente. Cada bloco pode ficar em uma posição não-contígua, onde os bloco serão “ligados” por meio de ponteiros, formando uma lista encadeada;

• Elimina a fragmentação externa;

(47)
(48)

Gerência de Arquivos

• Estratégia de alocação indexada

• Nesta estratégia, ao invés de ligar um bloco a outro por meio de ponteiros diretamente, é criada uma tabela de nós de índices (i-nodes), em uma parte reservada na partição, onde essa tabela contem cada índice tem o endereço físico de cada bloco;

• Muito robusto, visto que além de os nós estarão interligados sem ocorrer a fragmentação externa e, mesmo um nó tendo falha física, a tabela de índices tem o ponteiro correto para os demais nós;

• Se a estrutura do arquivo for muito grande, pode ser que haja vários acessos para um mesmo arquivo, diminuindo o desempenho, além de o tamanho dos arquivos serem limitados devido ao tamanho da tabela de índices de nós.

(49)
(50)

Gerência de Arquivos

• Além da forma de alocação dos dados no blocos, os blocos livres

também precisam ser gerenciados;

• Há, basicamente, duas abordagens para gerenciar os blocos livres:

• Mapa de bits (Silberschatz et al., 2004);

(51)

Gerência de Arquivos

• Além da forma de alocação dos dados no blocos, os blocos livres

também precisam ser gerenciados;

• Há, basicamente, duas abordagens para gerenciar os blocos livres:

• Mapa de bits (Silberschatz et al., 2004): no início da partição, existe uma tabela com bits representativos aos blocos da partição, onde para cada bit, sendo 1, indica que o bloco está livre e 0 que o bloco está ocupado;

• Lista de blocos livres (Tanenbaum, 2010): cada bloco livre aponta para outro bloco livre no disco;

(52)

Pesquisa

• Sistemas de arquivos

• Formem grupos de até quatro pessoas;

• Pesquise sobre os sistemas de arquivo FAT (e suas extensões 12, 16 e 32), NTFS, Ext2, Ext3, ReiserFS, Journaling FS, Extents, LFS, HFS descrevendo de forma breve as suas técnicas de alocação de arquivos e depois faça uma tabela, como no exemplo a seguir, fazendo uma comparação entre todos esses sistemas de arquivos de acordo com os seguintes critérios:

• Rapidez: velocidade oferecida pela estratégia no acesso aos dados do arquivo, tanto para acessos sequenciais quanto para acessos diretos;

• Robustez: desdobramentos frente a erros, como bloco de discos defeituosos (bad blocks) e dados corrompidos;

• Flexibilidade: criação, modificação e exclusão de arquivos e diretórios;

• Cada grupo terá 10 minutos para apresentar, na próxima aula, sobre cada sistema de arquivo e os critérios exigidos;

(53)

Pesquisa

• Exemplo de tabela

Sistema de Arquivo

Rapidez Robustez Flexibilidade

FAT 16 FAT 32 NTFS

(54)

Referências

• TANENBAUM, Andrew S. Sistemas Operacionais Modernos. São

Paulo: PRENTICE HALL, 2010.

• MAZIERO, Carlos. A. Sistemas Operacionais: Conceitos e Aplicações.

Creative Commons 3.0, 2013.

• SILBERSCHATZ, A.; GALVIN, P. B.; GAGNE, G. Sistemas Operacionais

com Java. Rio de Janeiro: Elsevier, 2004.

• CARISSIMI, Alexandre. Sistemas Operacionais. Porto Alegre:

Bookman.

(55)

Sistemas Operacionais

Prof. Leonardo Araújo

Referências

Documentos relacionados