Você está na página 1de 29

QXD0013 - Sistemas Operacionais

Sistemas de Arquivos

Thiago Werlley Bandeira da Silva1

1 Universidade Federal do Ceará, Brazil

2 de junho de 2023
Introdução
• Todas as aplicações de computadores precisam armazenar e
recuperar informações.
• Enquanto um processo está sendo executado, ele pode
armazenar uma quantidade limitada de informações dentro
do seu próprio espaço de endereçamento.
◦ Restrita ao tamanho do endereçamento
◦ Descarte ao final do processo
◦ Múltiplos processos podem querer compartilhar dados
• Assim, temos três requisitos essenciais para o armazenamento de
informações por um longo prazo:
1. Deve ser possı́vel armazenar uma quantidade muito grande de
informações.
2. As informações devem sobreviver ao término do processo que as
está utilizando.
3. Múltiplos processos têm de ser capazes de acessá-las ao mesmo
tempo.
2 of 20
Introdução

• Da mesma maneira que vimos como o sistema operacional


abstraı́a o conceito do processador para criar a abstração de um
processo e como ele abstraı́a o conceito da memória fı́sica para
oferecer aos processos espaços de endereçamento (virtuais),
podemos solucionar esse problema com uma nova abstração: o
arquivo.
• Arquivos → são unidades lógicas de informação criadas por
processos.
◦ Tipo de endereçamento → Disco
• Arquivos são gerenciados pelo sistema operacional.
• Como um todo, aquela parte do sistema operacional lidando com
arquivos é conhecida como sistema de arquivos e é o assunto
desta aula.

3 of 20
Nomeação de Arquivos

• Um arquivo é um mecanismo de abstração.


• Ao ser criado, arquivo é nomeado.
• Quando o processo é concluı́do, o arquivo continua a existir e
pode ser acessado por outros processos usando o seu nome.
• Regras para nomeação variam de acordo com SO
◦ Normalmente cadeias de caracteres (strings)
• Muitos utilizam duas partes separadas por um ponto
◦ Nome
◦ Extensão
• Extensão normalmente indica algo sobre arquivo
• SO pode utilizar informação da extensão

4 of 20
Estrutura de Arquivos
• Arquivos podem ser estruturados de
várias maneiras.
• Três tipos mais comuns
• Sequência desestruturada de bytes
◦ Máxima flexibilidade
◦ SO não tem ciência do conteúdo
◦ Organização definida pelos programas
• Sequência de registros
◦ Primeiro tipo de estruturação
◦ Leitura retorna um registro
◦ Escrita substitui ou anexa um registro
◦ Comum em computadores de grande
porte antigos
◦ Pouco utilizado atualmente

5 of 20
Estrutura de Arquivos
• Arquivos podem ser estruturados de
várias maneiras.
• Três tipos mais comuns
• Sequência desestruturada de bytes
◦ Máxima flexibilidade
◦ SO não tem ciência do conteúdo
◦ Organização definida pelos programas
• Sequência de registros
◦ Primeiro tipo de estruturação
◦ Leitura retorna um registro
◦ Escrita substitui ou anexa um registro
◦ Comum em computadores de grande
porte antigos
◦ Pouco utilizado atualmente

5 of 20
Estrutura de Arquivos

• Árvore de registros
◦ Tamanhos variáveis
◦ Cada um contendo um
campo chave → Em
uma posição fixa no
registro.
◦ Ordenada no campo
chave, a fim de permitir
uma busca rápida por
uma chave especı́fica

6 of 20
Tipos de Arquivos

• Arquivos regulares são aqueles que contêm informações do


usuário.
◦ ASCII
◦ Binários
• Diretórios são arquivos do sistema para manter a estrutura do
sistema de arquivos.
• Arquivos especiais de caracteres são relacionados com
entrada/saı́da e usados para modelar dispositivos de E/S seriais
como terminais, impressoras e redes.
• Arquivos especiais de blocos são usados para modelar discos.

7 of 20
Tipos de Arquivos

8 of 20
Acesso aos Arquivos

• Os primeiros sistemas operacionais → forneciam apenas um tipo


de acesso aos arquivos: acesso sequencial.
◦ Arquivos sequenciais → eram convenientes quando o meio de
armazenamento era uma fita magnética, em vez de um disco.
• Surgimento dos discos → Aleatório
• Arquivos ou registros que podem ser lidos em qualquer ordem são
chamados de arquivos de acesso aleatório.
• Dois métodos para determinar inı́cio da leitura:
◦ Operação read informa posição
◦ Operação seek estabelece posição

9 of 20
Atributos dos Arquivos
• Todos arquivos → possui um nome e
sua data
• Além disso, todos os sistemas
operacionais associam → Outras
informações ( chamados de
metadados):
◦ Data e hora da última modificação
◦ Tamanho
◦ Criador
◦ Proprietário
◦ Flags

10 of 20
Operações com Arquivos

• Arquivos existem para armazenar informações e permitir que elas


sejam recuperadas depois.
• Principais chamadas de sistemas:
◦ create
◦ delete
◦ open
◦ close
◦ read
◦ write
◦ append
◦ seek
◦ get attribute
◦ set attribute
◦ rename

11 of 20
Operações com Arquivos

12 of 20
Diretórios

• Para controlar os arquivos, sistemas de arquivos normalmente têm


diretórios ou pastas, que são em si arquivos.
• Sistemas de diretório em nı́vel único
◦ A forma mais simples de um sistema de diretório é ter um diretório
contendo todos os arquivos. Às vezes ele é chamado de diretório-raiz
◦ Comum nos primeiros PCs (monousuário)
◦ Simples
◦ Localização rápida de arquivos
◦ Utilizado em sistemas embarcados simples
◦ Um exemplo de um sistema com um diretório → Um diretório
contém quatro arquivos.

13 of 20
Diretórios

• Sistemas de diretórios hierárquicos


◦ Usuários modernos → Milhões de arquivos
◦ Difı́cil localização em um único diretório
◦ Idéia de agrupamento
◦ Necessidade de organização hierárquica
◦ Caminhos absolutos e relativos:
• Windows → \usr\ast\caixapostal
• UNIX → /usr/ast/caixapostal
• MULTICS → >usr>ast>caixapostal

• Entradas especiais: ”.”e ”..”

14 of 20
Esquema do Sistema de Arquivos
• Sistemas de arquivos armazenados em disco
• Divisão em partições: cada uma com um sistema independente
• Setor 0 chamado de Master Boot Record (MBR)
◦ MBR — é usado para inicializar o computador.
• O fim do MBR contém a tabela de partição
• Quando o computador é inicializado:
◦ BIOS lê e executa MBR
◦ MBR localiza partição ativa e executa bloco de inicialização
◦ SO é carregado
• Toda partição possui um bloco de inicialização

15 of 20
Esquema do Sistema de Arquivos
• Sistemas de arquivos armazenados em disco
• Divisão em partições: cada uma com um sistema independente
• Setor 0 chamado de Master Boot Record (MBR)
◦ MBR — é usado para inicializar o computador.
• O fim do MBR contém a tabela de partição
• Quando o computador é inicializado:
◦ BIOS lê e executa MBR
◦ MBR localiza partição ativa e executa bloco de inicialização
◦ SO é carregado
• Toda partição possui um bloco de inicialização

15 of 20
Esquema do Sistema de Arquivos
• Sistemas de arquivos armazenados em disco
• Divisão em partições: cada uma com um sistema independente
• Setor 0 chamado de Master Boot Record (MBR)
◦ MBR — é usado para inicializar o computador.
• O fim do MBR contém a tabela de partição
• Quando o computador é inicializado:
◦ BIOS lê e executa MBR
◦ MBR localiza partição ativa e executa bloco de inicialização
◦ SO é carregado
• Toda partição possui um bloco de inicialização

15 of 20
Esquema do Sistema de Arquivos
• Sistemas de arquivos armazenados em disco
• Divisão em partições: cada uma com um sistema independente
• Setor 0 chamado de Master Boot Record (MBR)
◦ MBR — é usado para inicializar o computador.
• O fim do MBR contém a tabela de partição
• Quando o computador é inicializado:
◦ BIOS lê e executa MBR
◦ MBR localiza partição ativa e executa bloco de inicialização
◦ SO é carregado
• Toda partição possui um bloco de inicialização

15 of 20
Esquema do Sistema de Arquivos
• Sistemas de arquivos armazenados em disco
• Divisão em partições: cada uma com um sistema independente
• Setor 0 chamado de Master Boot Record (MBR)
◦ MBR — é usado para inicializar o computador.
• O fim do MBR contém a tabela de partição
• Quando o computador é inicializado:
◦ BIOS lê e executa MBR
◦ MBR localiza partição ativa e executa bloco de inicialização
◦ SO é carregado
• Toda partição possui um bloco de inicialização

15 of 20
Esquema do Sistema de Arquivos
• Superbloco: principais parâmetros do sistema de arquivos
• Informação sobre blocos livres: mapa de bits ou lista de
ponteiros
• i-nodes: arranjo de estruturas de dados (informação sobre cada
arquivo)
• Diretório raı́z: topo da árvore
• Todos arquivos/diretórios

16 of 20
Esquema do Sistema de Arquivos
• Superbloco: principais parâmetros do sistema de arquivos
• Informação sobre blocos livres: mapa de bits ou lista de
ponteiros
• i-nodes: arranjo de estruturas de dados (informação sobre cada
arquivo)
• Diretório raı́z: topo da árvore
• Todos arquivos/diretórios

16 of 20
Esquema do Sistema de Arquivos
• Superbloco: principais parâmetros do sistema de arquivos
• Informação sobre blocos livres: mapa de bits ou lista de
ponteiros
• i-nodes: arranjo de estruturas de dados (informação sobre cada
arquivo)
• Diretório raı́z: topo da árvore
• Todos arquivos/diretórios

16 of 20
Esquema do Sistema de Arquivos
• Superbloco: principais parâmetros do sistema de arquivos
• Informação sobre blocos livres: mapa de bits ou lista de
ponteiros
• i-nodes: arranjo de estruturas de dados (informação sobre cada
arquivo)
• Diretório raı́z: topo da árvore
• Todos arquivos/diretórios

16 of 20
Esquema do Sistema de Arquivos
• Superbloco: principais parâmetros do sistema de arquivos
• Informação sobre blocos livres: mapa de bits ou lista de
ponteiros
• i-nodes: arranjo de estruturas de dados (informação sobre cada
arquivo)
• Diretório raı́z: topo da árvore
• Todos arquivos/diretórios

16 of 20
Implementação de Arquivos
• Controle da relação: blocos ↔ arquivos
• Vários métodos existentes
• Alocação contı́gua:
◦ Esquema mais simples
◦ Armazenamento em blocos contı́guos em disco
◦ Exemplo: Disco com blocos de 1KB, Arquivo de 50KB aloca 50 blocos
◦ Vantagens: simplicidade e desempenho
◦ Desvantagem: fragmentação com o tempo

17 of 20
Implementação de Arquivos
• Alocação por lista encadeada:
◦ Cada arquivo é uma lista de blocos encadeada
◦ Primeira palavra de cada bloco → Ponteiro para próximo
◦ Não há problema com fragmentação
◦ Leitura aleatória lenta
◦ Overhead com alocação dos ponteiros

18 of 20
Implementação de Arquivos
• Alocação por lista encadeada
utilizando tabela na memória:
◦ Resolve problema de lentidão de acesso
da lista encadeada
◦ Palavras com ponteiros colocadas em
uma tabela
◦ Tabela chamada de File Allocation
Table (FAT)
◦ Leitura sequencial mas toda dentro da
memória
◦ Desvantagem: consumo de memória

19 of 20
Implementação de Arquivos
• Index-nodes(I-nodes):
◦ Monitorar quais blocos pertencem a quais arquivos
◦ Somente na memória quando arquivo aberto
◦ Memória proporcional ao número máximo de arquivos abertos

20 of 20

Você também pode gostar