material sobre sistemas de arquivos do windows,como é a organização e o suporte a esse sistema
Post on 21-Jun-2015
1.707 Views
Preview:
DESCRIPTION
TRANSCRIPT
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
FileSystem MB
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://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
top related