Você está na página 1de 30

UNIVERSIDADE FEDERAL RURAL DO SEMI-RIDO DEPARTAMENTO DE CINCIAS EXATAS E NATURAIS CURSO DE CINCIA DA COMPUTAO

Sistemas Operacionais
16- Arquivos e Diretrios

Prof. Slvio Fernandes


1

Operaes com arquivos


Os arquivos servem para armazenar informaes e permitir que ela seja recuperada depois Sistemas diferentes oferecem diferentes operaes
1. Create: o arquivo criado sem dados. A finalidade anunciar que o arquivo existe e definir alguns de seus atributos 2. Delete: o arquivo deve ser removido para liberar espao em disco
2

Operaes com arquivos


3. Open: o propsito permitir que o sistema busque e coloque na memria principal os atributos e a lista de endereos do disco 4. Close: quando todos os acessos terminam, os atributos e os endereos do disco no so mais necessrios, portanto o arquivo deve ser fechado para liberar espao na tabela interna 5. Read: dados so lidos do arquivo. Normalmente, os bytes lidos so os da posio atual, na quantidade especificada para um buffer indicado
3

Operaes com arquivos


6. write: os dados so escrito no arquivo tambm, em geral na posio atual. Se a posio atual for o final, o tamanho do arquivo sofrer um aumento. Se a posio estiver no meio do arquivo, os dados existentes sero sobrescritos e perdidos 7. Append: uma forma restrita de write. Ela s pode adicionar dados no final do arquivo 8. Seek: reposiciona o ponteiro de arquivo para um local especfico do arquivo, de onde os dados podem ser lidos ou escritos desta posio
4

Operaes com arquivos


9. Get attributes: muitas vezes, os processos precisam ler os atributos de um arquivo para continuar a fazer algo. Ex: make do Unix 10. Set attributes: alguns atributos podem ser alterados pelos usurios e isso pode ser feito depois da criao do arquivo. A maioria das flags tambm pode ser alterada por meio dessa chamada 11. Rename: frequente o usurio precisar alterar o nome de um arquivo existente
5

Exemplo

Exemplo

Exemplo
Programa Unix simples que copia um arquivo de seu arquivo de origem para um destino
Ex: copyfile abc xyz

O programa precisa de 3 argumentos


argv*0+ = copyfile argv*1+ = abc argv*2+ = xyz

O lao de cpia comea tentando ler 4 KB de dados para o buffer. Isso feito por meio da chamada ao procedimento de biblioteca read, que invoca a chamada ao sistema read
8

Exemplo
A chamada write descarrega o buffer no arquivo destino Observe que o contador de bytes o nmero de bytes realmente lidos e no BUF_SIZE Isso importante porque a ltima leitura no retornar 4096, a menos que o arquivo coincidentemente tenha um tamanho mltiplo de 4 KB

Arquivos mapeados na memria


Alguns SO, fornecem alguma maneira de mapear arquivos no espao de endereamento de um processo em execuo Podemos imaginar a existncia de 2 novas chamadas: map e unmap
Ex: Suponha um arquivo f, com 64 KB, seja mapeado em um endereo virtual a partir do endereo 512 K. Ento, qualquer instruo de mquina que leia o contedo do byte em 512 K ler o byte 0 do arquivo e assim por diante
10

Para fornecer um nome de arquivo e um endereo virtual

Arquivos mapeados na memria


O que na verdade acontece que as tabelas internas do sistema so alteradas para que o arquivo se torne um armazenamento sobressalente da regio de 512 a 576 K Assim, uma leitura de 512 K causa uma falta de pgina, trazendo a pgina 0 do arquivo O mapeamento de arquivos funciona melhor em sistema que suporta segmentao
Cada arquivo pode ser mapeado em seu prprio segmento e portanto o byte k no arquivo tambm o byte k no segmento
11

Arquivos mapeados na memria

(a) Um processo segmentado antes de mapear arquivos em seu espao de endereamento (b) Processo depois do mapeamento
arquivo abc existente em um segmento criando novo segmento para xyz

12

Arquivos mapeados na memria


Suponha que o processo copie arquivos, como o programa anterior O processo pode copiar o segmento de origem no segmento de destino usando um lao comum de cpia Nenhuma chamada read ou write so necessrias
Quando tudo estiver feito, o processo poder executar a chamada unmap para remover os arquivos do espao de endereamento e ento sair. O arquivo de sada, xyz, agora existe como se tivesse sido criado de maneira convencional
13

Arquivos mapeados na memria


O mapeamento introduz alguns problemas especficos
1. difcil para o sistema saber o tamanho exato do arquivo de sada. Ex: xyz 2. Se um arquivo for mapeado por um processo e aberto para uma leitura convencional por outro. Se o 1 modificar a pgina, a alterao no ser refletida no arquivo em disco enquanto a pgina no for retirada

14

Arquivos mapeados na memria


3. O arquivo pode ser maior que um segmento ou at mesmo maior que todo o espao virtual de endereamento
O nico modo de resolver providenciar para que a chamada map possa mapear uma parte do arquivo e no apenas todo o arquivo

15

Diretrios
Para controlar os arquivos, os sistemas de arquivos tm, em geral, diretrios ou pastas, que em muitos sistemas so tambm arquivos

16

Diretrios
Sistemas de diretrios em nvel nico
A maneira mais simples ter um diretrio contendo todos os arquivos Muitas vezes chamado de diretrio-raiz, mas, como ele s um, o nome no importa muito

Um sistema de diretrio de nvel nico


contm 4 arquivos propriedades de 3 pessoas diferentes, A, B, e C
17

Diretrios
Sistemas de diretrios em nvel nico
As vantagens desse esquema so a simplicidade e a capacidade de localizar os arquivos rapidamente O problema de haver somente um diretrio em um sistemas de vrios usurios, que diferentes usurios podem usar acidentalmente os mesmos nomes para seus arquivos

18

Diretrios
Sistemas de diretrios em dois nveis
Para evitar conflitos por diferentes usurios escolhendo o mesmo nome para seus arquivos, o prximo passo oferecer a cada usurio um diretrio privado Esse projeto conduz ao sistema:

19

Diretrios
Sistemas de diretrios em dois nveis
O que est implcito nesse projeto que, quando o usurio tentar abrir um arquivo, o sistema sabe qual o usurio e ento sabe em qual diretrio buscar Como consequncia, necessrio algum tipo de procedimento de identificao, no qual o usurio especifica um nome ou identificador

20

Diretrios
Sistemas de diretrios em dois nveis
Uma pequena extenso feita para permitir que os usurios tenham acesso aos arquivos de outros usurios
open(x) Open(nancy/x)

21

Diretrios
Sistemas de diretrios hierrquicos
O sistema de diretrio em dois nveis no satisfatria para os usurios com um nmero muito grande de arquivos comum aos usurios querer agrupar seus arquivos assumindo critrios lgicos Faz-se necessria uma hierarquia

22

Diretrios
Sistemas de diretrios hierrquicos

23

Diretrios
Nomes de caminhos
Quando o sistema de arquivos organizado como uma rvore de diretrio, preciso algum modo de especificar o nome dos arquivos So usados comumente 2 mtodos:
Nome de caminho absoluto: fornece o caminho entre diretrio-raiz e o arquivo Nome de caminho relativo: usado juntamente com o conceito de diretrio de trabalho

Ex: se o diretrio de trabalho for /usr/ast, ento o arquivo cujo caminho absoluto for /usr/ast/caixapostal pode ser referenciado por caixa postal
24

Diretrios
Nomes de caminhos
A maioria dos SO tem duas entradas especiais de cada diretrio, . e ..
Ex: cp ../bib/dicionario .

O ponto refere-se ao diretrio atual Pontoponto refere-se a seu pai Considere a rvore de diretrio Unix

25

Diretrios
Nomes de caminhos

26

Diretrios
Operaes com diretrios
Exemplos do Unix 1. Create: cria um diretrio vazio 2. Delete: remove um diretrio, somente se estiver vazio 3. Opendir: l diretrio, assim como um arquivo que precisa ser aberto antes de ser lido 4. Closedir: quando acaba de ser lido o diretrio deve ser fechado para liberar espao na tabela interna
27

Diretrios
Operaes com diretrios
Exemplos do Unix 5. Readir: retorna a prxima entrada em um diretrio aberto 6. Rename: permite mudar o nome do diretrio 7. Link: a ligao (linking) uma tcnica que possibilita a um arquivo aparecer em mais de um diretrio 8. Unlink: remove uma entrada de diretrio. Se o arquivo sendo desligado estiver presente em apaneas um diretrio, ele ser removido do sistema. Se estiver em vrios diretrios, somente o nome do caminho especificado ser removido
28

Chamadas de sistema do Windows


Chamadas para manipulao arquivos

29

Referncias
Andrew S. Tanenbaum. Sistemas Operacionais Modernos. 2 Edio, Prentice Hall, 2007. Francis B. Machado e Luiz P. Maia. Arquitetura de Sistemas Operacionais. 3a. Edio. LTC, 2004.

30

Você também pode gostar