Sistemas Operacionais
Gerência de
Sistemas de Arquivos
Sistemas Operacionais19 de novembro de 2012 1
Prof. Eder Pansani [email protected]
Sistemas Operacionais
Sistemas Operacionais
Todas as aplicações precisam armazenar grandes quantidades de informações.
Além disso, todos os processos precisam armazenar informações e recuperá-las posteriormente, independente da vida do processo.
Introdução
19 de novembro de 2012 3
Prof. Eder Pansani
Sistemas Operacionais
Um terceiro problema é que muitas vezes é necessário que múltiplos processos tenham acesso a informação ao mesmo tempo. Sendo assim a informação tem de ser independente de processo.
Sistemas Operacionais
Sendo assim podemos elencar três requisitos
essenciais para o armazenamento de
informação a longo prazo:
1. Deve ser possível armazenar uma
quantidade muito grande de informação;
2. A informação deve sobreviver ao término
do processo que a usa;
3. Múltiplos processos têm de ser capazes de
acessar a informação concorrentemente.
Introdução
19 de novembro de 2012 5
Prof. Eder Pansani
[email protected] http://www.ederpansani.com.br
Sistemas Operacionais
Sistemas Operacionais
Arquivos: são unidades lógicas de
informação criadas por processos.
A informação armazenada em arquivos deve ser persistente, isto é, não pode ser afetada pela criação ou término do processo.
Definições
19 de novembro de 2012 7
Prof. Eder Pansani
Sistemas Operacionais
Arquivos são gerenciados pelo SO.
O modo como são estruturados, nomeados, acessados, usados, protegidos e implementados são tarefas de uma parte do sistema operacional conhecida por
Sistema de arquivos.
Sistemas Operacionais
NOMEAÇÃO DE ARQUIVOS
19 de novembro de 2012
Prof. Eder Pansani
Sistemas Operacionais
Arquivo é um mecanismo de abstração. Ele oferece meios de armazenar informações no disco e lê-las depois. Isso deve ser feito de um modo que isole o usuário dos detalhes sobre como e onde a informação está armazenada e como os discos na verdade funcionam.
Sistemas Operacionais
As regras para dar nomes aos arquivos variam de um sistema operacional para outro, mas em geral os nomes são formados por cadeias de caracteres (strings) com tamanhos até 255 caracteres.
Arquivos
19 de novembro de 2012 11
Prof. Eder Pansani
Sistemas Operacionais
Alguns sistemas de arquivos distinguem letras maiúsculas de minúsculas (como o UNIX e o Linux) e outros não (como o Windows).
Sistemas Operacionais
A maioria dos sistemas operacionais modernos permitem que os nomes sejam compostos por duas partes separadas por um ponto. Como por exemplo:
Aula-SO.pdf
Arquivos
19 de novembro de 2012 13
Prof. Eder Pansani
Sistemas Operacionais
A parte antes do ponto é o nome do
arquivo e a parte após o ponto é a extensão do arquivo. A extensão do
arquivo normalmente significa algo sobre o arquivo.
Sistemas Operacionais
EXTENSÕES
19 de novembro de 2012
Prof. Eder Pansani
Sistemas Operacionais
Nos sistemas baseados em UNIX o tamanho da extensão fica a critério do usuário, sendo que as extensões não são impostas pelo sistema operacional, elas servem apenas para lembrar o usuário do conteúdo do arquivo.
Sistemas Operacionais
Já nos sistemas baseados em Windows o tamanho da extensão é padronizado em três caracteres e o sistema operacional atribui significado a elas, sendo que cada arquivo deve ser aberto pelo programa que “possui” aquela extensão.
Arquivos
19 de novembro de 2012 17
Prof. Eder Pansani
Sistemas Operacionais
Sistemas Operacionais
ESTRUTURA DE ARQUIVOS
19 de novembro de 2012
Prof. Eder Pansani
Sistemas Operacionais
Os arquivos podem ser estruturados de várias maneiras, porém a estratégia que os sistemas Windows e Linux utilizam é a que o arquivo é uma sequência desestruturada de bytes.
O SO não sabe o que o arquivo contém ou simplesmente não se interessa por isso.
Sistemas Operacionais
Qualquer significado deve ser imposto pelos programas em nível de usuário.
Isso garante uma maior flexibilidade pois os programas de usuário podem colocar o que quiserem em seus arquivos.
Os SOs não ajudam mas também não atrapalham.
Estrutura de arquivos
19 de novembro de 2012 21
Prof. Eder Pansani
Sistemas Operacionais
Sistemas Operacionais
Muitos sistemas operacionais dão suporte a vários tipo de arquivos. O Windows, por exemplo apresenta arquivos regulares e
diretórios já o UNIX apresentam além
destes os arquivos especiais de caracteres
e de blocos.
Tipos de arquivos
19 de novembro de 2012 23
Prof. Eder Pansani
Sistemas Operacionais
Arquivos regulares: são os que contém
informação do usuário.
Diretórios: são arquivos do sistema que mantém a
estrutura do sistema de arquivos.
Arquivos especiais de caracteres: são
relacionados a entrada/saída e usados para modelar dispositivos de E/S como impressoras por exemplo.
Arquivos especiais de blocos: são usados para
Sistemas Operacionais
ACESSO AOS ARQUIVOS
19 de novembro de 2012
Prof. Eder Pansani
Sistemas Operacionais
Os primeiros sistemas operacionais forneciam apenas um tipo de acesso aos arquivos, o acesso sequencial. Onde um processo poderia ler todos os bytes de um arquivo partindo do início mas nunca saltando fora da ordem.
Esse meio era conveniente pois o meio de Acesso aos arquivos
Sistemas Operacionais
Com o surgimento dos discos tornou-se possível ler os bytes de um arquivo fora da ordem em que apareciam no disco, eram os chamados arquivos de acesso aleatório. Dois métodos poderiam ser utilizados para iniciar a leitura dos arquivos o read e o
seek.
Acesso aos arquivos
19 de novembro de 2012 27
Prof. Eder Pansani
Sistemas Operacionais
O read usa a posição do início do arquivo para iniciar sua leitura. Já o seek usa somente o nome do arquivo, ele primeiro faz uma busca no disco para descobrir a localização do início do mesmo para depois começar a leitura. O Windows e o UNIX utilizam o segundo método.
Sistemas Operacionais
ATRIBUTOS DE ARQUIVOS
19 de novembro de 2012
Prof. Eder Pansani
Sistemas Operacionais
Todo arquivo possui além de seu nome e dados outras informações, como data e horário em que foi criado e por qual usuário. Estes outros itens são chamados
atributos (ou metadados) do arquivo.
A lista de atributos varia de um sistema para outro.
Sistemas Operacionais
Atributos de arquivos
19 de novembro de 2012 31
Prof. Eder Pansani
Sistemas Operacionais
Sistemas Operacionais
A seguir uma breve lista com as operações mais comuns relacionadas aos arquivos.
• Create: o arquivo é criado sem dados. A finalidade dessa chamada é anunciar que o arquivo existe e definir alguns atributos.
• Delete: chamada usada para remover o arquivo e liberar espaço em disco.
Operações com arquivos
19 de novembro de 2012 33
Prof. Eder Pansani
Sistemas Operacionais
• Open: Antes de usar um arquivo é necessário abri-lo. Essa chamada também faz com que o sistema busque e coloque na memória principal os atributos do arquivo e a lista de endereços do arquivo no disco.
Sistemas Operacionais
• Close: quando nenhum processo está usando mais o arquivo seus dados são removidos da memória principal.
• Rename: faz a alteração do nome do arquivo.
• Read: dados são lidos do arquivo na posição atual do ponteiro.
Operações com arquivos
19 de novembro de 2012 35
Prof. Eder Pansani
Sistemas Operacionais
• Write: os dados são escritos no arquivo na posição atual do ponteiro, se a posição estiver no meio do arquivo os dados serão sobrescritos.
• Append: é uma chamada a instrução
write porém com o ponteiro no final do
arquivo.
Sistemas Operacionais
• Seek: método para especificar onde estão os dados. Reposiciona o ponteiro para um local específico do arquivo.
• Get Attributes: faz a leitura dos atributos de um arquivo.
• Set Attributes: faz a alteração dos atributos do arquivo após sua criação.
Operações com arquivos
19 de novembro de 2012 37
Prof. Eder Pansani
Sistemas Operacionais
Sistemas Operacionais
Para controlar os arquivos, os sistemas de arquivos têm, em geral, diretórios ou
pastas, que em muitos sistemas também
são arquivos.
Diretórios
19 de novembro de 2012 39
Prof. Eder Pansani
Sistemas Operacionais
Sistemas de diretório em nível único: uma
maneira muito simples de organizar os arquivos era criar um único diretório com todos os arquivos dentre deste. Os primeiros computadores pessoais eram assim.
Ele possui a vantagem de ser mais simples Diretórios
Sistemas Operacionais
O sistema anterior tem um grave problema, se dois usuários tentarem criar um arquivo com o mesmo nome isso implicará em um erro. Além do que colocar milhares de arquivos em um único diretório tornaria a tarefa de encontrar qualquer coisa impossível.
Diretórios
19 de novembro de 2012 41
Prof. Eder Pansani
Sistemas Operacionais
Devido a isso surgiram os sistemas de
diretórios hierárquicos que são capazes de
criar diretórios dentro de outros diretórios, ou uma árvore de diretórios.
Os sistemas operacionais modernos se utilizam deste método.
Sistemas Operacionais
NOMES DE CAMINHOS
19 de novembro de 2012
Prof. Eder Pansani
Sistemas Operacionais
Quando o sistema de arquivos é organizado como uma árvore de diretórios, é preciso algum modo de especificar o nome dos arquivos.
São usados comumente dois métodos, no primeiro cada arquivo possui um nome de
caminho absoluto, formado pelo caminho
Sistemas Operacionais
Exemplo de nome de caminho absoluto: copy \C:\Trabalhos\Trabalho1.pdf
\C:\Backup\Trabalhos\Trabalho1.pdf
Nomes de caminhos
19 de novembro de 2012 45
Prof. Eder Pansani
Sistemas Operacionais
O outro tipo de nome é o nome de
caminho relativo. Ele usa o conceito de diretório de trabalho (ou diretório atual),
neste esquema não é necessário informar sempre o caminho absoluto, é possível apenas informar o nome do arquivo considerando o diretório atual.
Sistemas Operacionais
Exemplo de nome de caminho relativo:
Considerando que o diretório de trabalho (atual) é C:\Trabalhos
copy Trabalho1.pdf
..\Backup\Trabalhos\Trabalho1.pdf
Nomes de caminhos
19 de novembro de 2012 47
Prof. Eder Pansani
Sistemas Operacionais
Sistemas Operacionais
As chamadas de sistema mais comuns para gerenciar diretórios são as seguintes:
• Create: cria um diretório vazio.
• Delete: remove um diretório, somente diretórios vazios podem ser removidos. • Opendir: Permite a leitura de diretórios.
Operações com diretórios
19 de novembro de 2012 49
Prof. Eder Pansani
Sistemas Operacionais
• Readdir: esta chamada devolve a próxima entrada em um diretório aberto.
• Rename: altera o nome do diretório.