Alberto Costa
Carlos Bernardino

Danilo Souza
Júlio Rodrigues
 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
• 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.
• 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
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.
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
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.
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
Linha de comando
executada neste diretório
devido mudança nas
variáveis de ambiente do
Windows para o Java
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
http://www.mvps.org/
http://www.macoratti.net/filesyst.htm
Add Method (Folders)
BuildPath Method
Close Method (FileSystemObject)
Copy Method (FileSystemObject)
CopyFile Method
CopyFolder Method
CreateFolder Method
CreateTextFile Method
Delete Method
DeleteFile Method
DeleteFolder Method
DriveExists Method
FileExists Method
FolderExists Method
GetAbsolutePathName Method
GetBaseName Method
GetDrive Method
GetDriveName Method
GetExtensionName Method
GetFile Method

GetFileName Method
GetFileVersion Method
GetFolder Method
GetParentFolderName Method
GetSpecialFolder Method
GetStandardStream Method
GetTempName Method
Move Method
MoveFile Method
MoveFolder Method
OpenAsTextStream Method
OpenTextFile Method
Read Method
ReadAll Method
ReadLine Method
Skip Method
SkipLine Method
Write Method (FileSystemObject)
WriteBlankLines Method
WriteLine Method (FileSystemObject)
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.
Partição Linux
(Windows não detecta)
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
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
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.
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
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.
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.
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.
Mapa Conceitual sobre a gerência de espaço livre
http://www.uderzo.it/main_products/space_sniffer/
 http://mintywhite.com/software-reviews/maintenance-software/iexpress-convert-batfiles-exefileshowto/
 http://pt.wikipedia.org/wiki/Sistema_de_ficheiros
 http://gizmodo.uol.com.br/entenda-o-godmode-do-windows-7/
 http://technet.microsoft.com/en-us/sysinternals//bb896653.aspx

 http://www.diolinux.com.br/2012_02_01_archive.html
 http://www.gsigma.ufsc.br/~popov/aulas/so1/cap5so.html

 http://pt.wikibooks.org/wiki/Sistemas_operacionais/Sistemas_de_arquivos#Implementa.C3.A7.C3.A3o_de_arqui
vos
 http://pt.wikiversity.org/wiki/Introdu%C3%A7%C3%A3o_aos_Sistemas_Operacionais/Sistemas_de_arquivos#Con
ceitos_de_arquivos
 http://www.makeuseof.com/tag/fix-corrupted-windows-ntfs-filesystem-ubuntu/
 http://msdn.microsoft.com/en-us/library/t0aew7h6(v=vs.84).aspx
 http://www.macoratti.net/filesyst.htm

 http://www.computerhope.com/dosext.htm

Material sobre sistemas de arquivos do Windows,como é a organização e o suporte a esse sistema

  • 1.
  • 2.
     Sistemas dearquivos  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 deorganizaçã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 possuicertos 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 textoWindows 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 havervariaçõ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 (chamadasao 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 executadaneste 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
  • 13.
  • 15.
    Add Method (Folders) BuildPathMethod Close Method (FileSystemObject) Copy Method (FileSystemObject) CopyFile Method CopyFolder Method CreateFolder Method CreateTextFile Method Delete Method DeleteFile Method DeleteFolder Method DriveExists Method FileExists Method FolderExists Method GetAbsolutePathName Method GetBaseName Method GetDrive Method GetDriveName Method GetExtensionName Method GetFile Method GetFileName Method GetFileVersion Method GetFolder Method GetParentFolderName Method GetSpecialFolder Method GetStandardStream Method GetTempName Method Move Method MoveFile Method MoveFolder Method OpenAsTextStream Method OpenTextFile Method Read Method ReadAll Method ReadLine Method Skip Method SkipLine Method Write Method (FileSystemObject) WriteBlankLines Method WriteLine Method (FileSystemObject)
  • 16.
    Para abrir oAgendador 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.
  • 17.
  • 19.
    Sistema operacional Dos Windows 95 Windows 95 OSR2 Windows98 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 arquivocorrompido 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 fornecema 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 dearquivos 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 porlista 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 abaixa 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 deespaç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.
  • 26.
    Mapa Conceitual sobrea gerência de espaço livre
  • 27.
  • 30.
     http://mintywhite.com/software-reviews/maintenance-software/iexpress-convert-batfiles-exefileshowto/  http://pt.wikipedia.org/wiki/Sistema_de_ficheiros http://gizmodo.uol.com.br/entenda-o-godmode-do-windows-7/  http://technet.microsoft.com/en-us/sysinternals//bb896653.aspx  http://www.diolinux.com.br/2012_02_01_archive.html  http://www.gsigma.ufsc.br/~popov/aulas/so1/cap5so.html  http://pt.wikibooks.org/wiki/Sistemas_operacionais/Sistemas_de_arquivos#Implementa.C3.A7.C3.A3o_de_arqui vos  http://pt.wikiversity.org/wiki/Introdu%C3%A7%C3%A3o_aos_Sistemas_Operacionais/Sistemas_de_arquivos#Con ceitos_de_arquivos  http://www.makeuseof.com/tag/fix-corrupted-windows-ntfs-filesystem-ubuntu/  http://msdn.microsoft.com/en-us/library/t0aew7h6(v=vs.84).aspx  http://www.macoratti.net/filesyst.htm  http://www.computerhope.com/dosext.htm