1. O documento discute os principais conceitos relacionados a sistemas de arquivos, incluindo estruturas de arquivos e diretórios, métodos de alocação, gerenciamento de espaço livre e system calls para manipulação de arquivos.
2. São apresentados os principais atributos de um arquivo e diferentes métodos de alocação como alocação contígua, por lista encadeada e combinada.
3. Também são descritos os métodos de gerenciamento de espaço livre utilizando lista encadeada e mapa de bits.
2. Sistemas de arquivos
Métodos de alocação
Gerenciamento do espaço livre
Conceito de arquivo e diretório
System Call ligado a gerenciamento de arquivo
3. • Segundo Tanembaum, arquivos ou ficheiros são um mecanismo de abstração.
• Pode ser considerado como um objeto, possuindo um nome que o identifica,
atributos e valores.
• Podem conter dados estruturados ou não:
• não estruturados possuem uma sequência de bytes
• estruturados podem vir organizados em registros ou em árvore (estrutura de
dados)
• A implementação do sistema de arquivos, incluindo o formato de arquivo, é de
responsabilidade do sistema operacional, ou seja, cada arquivo depende da
decisão do projetista do sistema operacional.
• Alguns sistemas operacionais como o UNIX não ligam para extensão do arquivo ou
sua estrutura interna , simplesmente tratando cada arquivo como uma sequência
de bytes não estruturados, deixando a responsabilidade de interpretar seu
significado ao programa que o abriu.
4. • Forma de organização de dados em algum meio de armazenamento em massa,
em geral discos magnéticos
• É o aspecto mais visível do sistema operacional
• Pode ser dividido em tres partes:
2
1
Estrutura de
Estrutura
diretórios
de arquivos
3
Partições
5. Um arquivo possui certos atributos que variam de um sistema operacional para o outro, mas
que normalmente são os seguintes:
• Nome
• Identificador: este rótulo único, usualmente um numero, identifica o arquivo dentro do
sistema de arquivo; é o nome não legível pelas pessoas.
• Tipos : esta informação é necessária para aqueles sistemas que suportam diferentes tipos.
• Posição: um ponteiro para um dispositivo e para a posição do arquivo naquele dispositivo.
• Tamanho: o tamanho corrente do arquivo e possivelmente o tamanho máximo permitido
Proteção: a informação de controle de acesso: quem pode ler, gravar e executar.
6. Arquivos de texto Windows por
padrão são codificados em ASCII e
não em Unicode. No Unix, ocorre o
inverso.
http://pt.wikiversity.org
7. Obs.: podem haver variações, dependendo do sistema operacional
Criação: criação sem escrita de dado algum.
Destruição: remoção do arquivo para liberação do espaço.
Abertura: abertura do arquivo, para colocar na memória os atributos e a lista de endereços
para tornar as operações posteriores mais rápidas.
Fechamento: remover as referências do arquivos da memória principal.
Leitura: abertura do arquivo para leitura do seu conteúdo.
Escrita: processo de escrita do arquivo. Geralmente a escrita começa a partir de onde
estiver o ponteiro, caso esse ponteiro esteja no final do arquivo ou durante a escrita o final
for atingido, o arquivo aumentará de tamanho.
Concatenação: forma de escrita que só permite adicionar dados no final do arquivo
Busca: chamada que coloca o ponteiro em uma posição específica do arquivo. Depois dessa
chamada, dados podem ser lidos/escritos a partir daquela posição.
Ver atributos: essa chamada verifica certos atributos como permissões, por exemplo. Às
vezes é necessário escrever em um arquivo, porém é necessário verificar se esse arquivo
possui permissão de escrita.
Definir atributos: Serve para definir ou alterar os atributos de certos arquivos. Flags de
proteção podem ser definidas com essa chamada.
Renomeação: Chamada de sistema para renomear um arquivo.
8. System Calls (chamadas ao sistema)
Comunicação do usuário ou aplicação com o núcleo do sistema
FileSystemObject
operacional.
é uma
Para cada serviço existe uma system call.
• Grupos de funções:
• Gerência de processos
• Gerência de memória
• Gerência de entrada e saída:
Operações de entrada/saída (I/O)
Manipulação de Arquivos
• criar
• gravar
• ler
Pelo prompt de
• reposicionar
comando
• apagar
• truncar
ferramenta para
manipular
arquivos
Pela interface do
usuário (teclado e
mouse)
Através de scripts,
arquivos em lote
ou File System
Object
9. Linha de comando
executada neste diretório
devido mudança nas
variáveis de ambiente do
Windows para o Java
10. Set fso= CreateObject("Scripting.FileSystemObject")
If (fso.FileExists("C:informacoes_do_sistema.txt")) Then
fso.DeleteFile("C:informacoes_do_sistema.txt")
Else
MsgBox "Arquivo não existe",0,"Arquivo não encontrado"
End If
16. Para abrir o Agendador de Tarefas: taskschd.msc
• Criar uma tarefa recorrente, exemplo:
• desligar o PC, todos os dias, às 22:30
• apagar arquivos criados há mais de 90 dias, etc.
19. Sistema
operacional
Dos
Windows 95
Windows 95
OSR2
Windows 98
Windows NT4
Windows
2000/XP
Tipos de sistema de arquivos suportados
Linux
Ext2, Ext3, ReiserFS, Linux Swap(, FAT16,
FAT32, NTFS)
HFS (Hierarchical File System), MFS
(Macintosh File System)
HPFS (High Performance File System)
XFS
MacOS
OS/2
SGI IRIX
FreeBSD,
OpenBSD
Sun Solaris
IBM AIX
FAT16
FAT16
Espaço ocupado (MB)
após criação de 50.000
arquivos de 5120 bytes
FAT16, FAT32
FAT16, FAT32
FAT, NTFS (version 4)
FAT, FAT16, FAT32, NTFS (versions 4 et 5)
UFS (Unix File System)
UFS (Unix File System)
JFS (Journaled File System)
FileSystem
FAT 32
NTFS
JFS
XFS
Reiserfs
EXT4
EXT3
EXT2
MB
1612
456
419
288
430
426
426
393
20. Como corrigir um
arquivo corrompido do
Windows NTFS sistema
de arquivos com Ubuntu
sudo apt-get install ntfs-3g
sudo apt-get install
ntfsprogs
sudo fdisk-l
sudo ntfsfix/ dev/ sda2
21. System Calls fornecem a interface entre os processos e o sistema operacional.
Estas “chamadas” estão geralmente disponíveis como instruções da linguagem Assembly.
Alguns sistemas permitem que as system calls sejam criadas diretamente a partir de
um programa em linguagem de alto nível (linguagem C, Pascal, FORTRAN).
Elas podem ser agrupadas, na maioria dos sistemas, em cinco categorias principais:
• Controle de processos (end, abort, load, execute, create, terminate, wait event,
signal event, set attributes);
• Manipulacão de arquivos (create, delete, open, close, read, write, set attributes);
• Manipulacão de dispositivos (request, release, read, write, logically attach or detach);
• Manutencão de informacão (get and set time or date, get and set process or file);
• Comunicação (create and delete communication connection, send and receive
messages)
A partir do momento que as “chamadas ao sistema” servem de interface entre os
processos e o SO, essas são o mecanismo de proteção ao núcleo do SO e também de
acesso aos seus serviços, como se fossem as portas de entrada para os processos.
22. 1
A criação de arquivos exige que o sistema operacional tenha controle de quais áreas ou
blocos no disco estão livres. É importante o controle de quais blocos de discos estão
relacionados a quais arquivos. Este gerenciamento pode ser feito, principalmente de varias
formas:
• Alocação contígua
• armazenar um arquivo em blocos sequencialmente dispostos. Neste tipo, o sistema
localiza um arquivo através do endereço do primeiro bloco e da sua extensão em
blocos
Vantagens: é bastante simples de implementar e de realizar o controle sobre os onde os
blocos estão.
O desempenho de leitura é excelente, pois todo o arquivo pode ser lido em uma única
operação a partir do primeiro bloco de dados.
Desvantagem: como os arquivos podem ser criados e eliminados frequentemente, os
segmentos livres vão se fragmentando em pequenos pedaços por todo o disco
23. 2
• Alocação por lista encadeada
consiste em manter os arquivos, cada um, como uma lista encadeada de blocos de
disco. Dessa forma uma parte de cada bloco é usada como ponteiro para o próximo
bloco. O restante do bloco é usado para dados.
Vantagens: o tamanho do arquivo não precisa ser conhecido antes de sua criação, já que
cada bloco terá um ponteiro para o próximo bloco. Assim o fato de o disco estar
fragmentado não ocasiona problemas para a criação do arquivo.
Desvantagem: O problema deste tipo de alocação é o tempo de leitura extremamente lento.
O acesso deverá ser sempre sequencial. Assim para acessar um bloco intermediário será
necessário percorrer o arquivo desde o inicio.
24. 3
Alocação combinada
Combina a baixa ocupação de espaço em memória da
lista encadeada e o bom desempenho da tabela de
índices.
Nesta técnica, parte de um bloco é utilizado para
apontar diretamente blocos de dados, chamado de
apontadores diretos, e outra parte pode ser utilizada
para apontadores de blocos, chamado de apontadores
indiretos. Se usarmos outros níveis de apontadores,
podemos estender essa mesma técnica para
apontadores duplamente indiretos e apontadores
triplamente indiretos.
Esta abordagem é tipicamente utilizada na
implementação do sistema de arquivos Unix, chamada
de I-nodes.
Um I-node (index-node) são
os metadados armazenados
em estrutura de dados
própria, que relaciona
atributos e os endereços dos
blocos de um arquivo.
25. O monitoramento de espaço livre em um disco é realizado principalmente através de dois
diferentes métodos: lista encadeada e mapa de bits.
Lista Encadeada
Nesta forma de gerenciamento, primeiramente é preciso entender que os blocos livres são
blocos que não contém arquivos (de usuários e programas). Entretanto os mesmos não ficam
em branco, pois enquanto não estão sendo utilizados, eles contém informações que o
Sistema Operacional armazena para mapear o espaço livre. Ou seja, estes blocos estão livres
porém não estão vazios.
Desta forma cada bloco livre no disco possui ponteiros para os seguintes espaços livres em
disco.
Mapa de Bits
Utiliza um espaço fixo adicional em disco especificamente para o mapeamento do espaço
livre, de forma que para cada bloco em disco é utilizado um bit no mapa. Sendo assim, um
disco com n blocos requer um mapa de bits com n bits. Os mapas de bits requerem menos
espaço, já que se usa 1 bit por bloco, contra 32 bits no modelo de lista encadeada. Somente
se o disco estiver quase cheio é que o esquema de lista encadeada precisará de menos
blocos que o mapa de bits. Por outro lado, se houver muitos blocos livres, alguns deles
poderão ser emprestados para conter a lista de livres sem qualquer perda de capacidade de
disco.