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

prof_julio_senac 2,483 views 30 slides Nov 19, 2013
Slide 1
Slide 1 of 30
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30

About This Presentation

Original do trabalho da disciplina Sistemas Operacionais. Trata sobre o sistema de gerenciamento de arquivos principalmente no Windows. Contém exemplos de manipulação de arquivos através de scripts, além de comparativos de gerenciamento de arquivos entre sistemas opercionais.


Slide Content

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:


Estrutura de
diretórios
Estrutura
de arquivos
Partições
3
1
2

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

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.
Obs.: podem haver variações, dependendo do sistema operacional

System Calls (chamadas ao sistema)
Comunicação do usuário ou aplicação com o núcleo do sistema
operacional.
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
•reposicionar
•apagar
•truncar

Pela interface do
usuário (teclado e
mouse)
Pelo prompt de
comando
Através de scripts,
arquivos em lote
ou File System
Object
FileSystemObject
é uma
ferramenta para
manipular
arquivos

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
Tipos de sistema de arquivos suportados
Dos FAT16
Windows 95 FAT16
Windows 95
OSR2
FAT16, FAT32
Windows 98 FAT16, FAT32
Windows NT4 FAT, NTFS (version 4)
Windows
2000/XP
FAT, FAT16, FAT32, NTFS (versions 4 et 5)
Linux
Ext2, Ext3, ReiserFS, Linux Swap(, FAT16,
FAT32, NTFS)
MacOS
HFS (Hierarchical File System), MFS
(Macintosh File System)
OS/2 HPFS (High Performance File System)
SGI IRIX XFS
FreeBSD,
OpenBSD
UFS (Unix File System)
Sun Solaris UFS (Unix File System)
IBM AIX JFS (Journaled File System)
Espaço ocupado (MB)
após criação de 50.000
arquivos de 5120 bytes FileSystemMB
FAT 32 1612
NTFS 456
JFS 419
XFS 288
Reiserfs 430
EXT4 426
EXT3 426
EXT2 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.

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
1

•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.
2

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.
3
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-exefiles-
howto/
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