Baixe o app para aproveitar ainda mais
Prévia do material em texto
SISTEMAS DE ARQUIVOS Eng. Eduardo Juliano Alberti Tudo o que fazemos em um computador utiliza aplicações que reúnem informações, as armazena e as recupera. Algumas informações podem ser retidas na memória RAM, que torna sua disponibilidade maior e a velocidade de acesso também maior, porém nem todas as aplicações podem executar totalmente em memória ou após desligadas necessitam gravar informações de forma persistente. 2 Outro problema é que algumas informações necessitam compartilhar informações, se estas estão em espaço de endereçamento de um processo específico estão, então, indisponíveis para os demais. Desta forma, para o armazenamento a longo prazo: 1. Deve ser possível armazenar uma quantidade muito grande de informação; 2. A informação deve sobreviver ao término do processo; 3. Múltiplos processos têm de ser capazes de acessar a informação corretamente. 3 Para que seja possível realizar tais operações, os dados são agrupados e armazenados em meios externos a memória. Tais agrupamentos recebem o nome de arquivos. 4 ARQUIVOS Os arquivos são dados agrupados com o objetivo de abstrair informações. Não há necessidade e muitas vezes nem é recomendado que o usuário tenha conhecimento do conteúdo (em sua verdadeira forma) de um arquivo. Para facilitar a tarefa de organizar diversos arquivos, provenientes de diversos programas, um arquivo pode receber um nome. 5 ARQUIVOS As regras de nomenclatura de arquivos varia de acordo com o sistema. Usualmente os nomes de arquivos podem receber caracteres alfanuméricos com tamanho máximo de 255 caracteres. Algumas características podem variar como a sensibilidade a caixa alta ou baixa e presença de caracteres especiais ou símbolos. 6 ARQUIVOS Os nomes dos arquivos são seguidos por um ponto e uma extensão, que define algo sobre o arquivo. Tais extensões de arquivo identificam qual tipo de informação tal arquivo carrega. 7 ARQUIVOS 8 ESTRUTURA DOS ARQUIVOS O sistema Operacional não se importa com o conteúdo dos arquivos, não há interesse em conhecer seu conteúdo (apenas o software a nível de usuário se interessa), desta forma o sistema oferece flexibilidade, não ajudam e nem atrapalham o software a incluir informações em seu arquivo. 9 ESTRUTURA DOS ARQUIVOS 10 TIPOS DE ARQUIVOS 11 Arquivos regulares: contêm informações de usuários Normalmente são compostos por caracteres ASCII organizados em linhas terminadas por caracteres especiais Podem ser visualizados, impressos e modificados com qualquer editor de textos. Fácil conexão entre programas. Arquivos Binários: gravam informações em formato binário e possuem uma estrutura interna conhecida pelos programas que o usam. Diretórios: são arquivos do sistema que mantêm a estrutura do sistema de arquivos TIPOS DE ARQUIVOS 12 Arquivos especiais de caracteres: relacionados a entrada/saída e são usados para transportar dados para impressoras, rede e portas. Arquivo especiais de blocos: modelam discos TIPOS DE ARQUIVOS 13 Os arquivos binários executável: Número Mágico: identifica o arquivo como executável Informações do cabeçalho TIPOS DE ARQUIVOS 14 Os sistemas operacionais devem reconhecer ao menos um tipo de arquivo: o seu próprio executável. Os arquivos fortemente tipificados (onde a extensão implica da recusa de sua utilização) pode implicar em problemas, imagine que você queira compilar um programa e ao salvá-lo inseriu uma extensão que não é a utilizada pelo programa. Seu arquivo será rejeitado mesmo que o código esteja correto. Claro que, em uma visão de usuário isso é ótimo, pois evita erros. ACESSO AOS ARQUIVOS 15 Acesso Sequencial os arquivos são lidos de forma sequencial, do início ao fim, sem saltos. O arquivo poderia ser lido quantas vezes fosse necessário. Acesso Aleatório os arquivos são lidos byte a byte sem a necessidade de sequencialidade. O controle de leitura fica mais complexo, porém a leitura fica mais dinâmica. ATRIBUTOS DOS ARQUIVOS 16 Os atributos do arquivo permitem armazenar informações que dizem respeito a data de criação, modificação, proprietário e outras informações. Permitem ainda, incluir senhas, proteção, ocultar ou não sua visualização e demais propriedades avançadas. ATRIBUTOS DOS ARQUIVOS 17 OPERAÇÕES COM ARQUIVOS 18 Create o arquivo é criado sem dados. Define arquivo e atributos, porém não insere dados. Delete exclui o arquivo e libera seu espaço em disco. Open abre o arquivo e copia seus dados para a memória principal tornando mais rápida a resposta a operações posteriores. OPERAÇÕES COM ARQUIVOS 19 Close fecha o arquivo liberando espaço na memória principal. Alguns sistemas possuem um número máximo de arquivos que podem ser abertos simultaneamente. O fechamento força que o último bloco do arquivo seja escrito, mesmo que o bloco não esteja totalmente completo. Read operação que permite a leitura dos bytes do arquivo, especifica a quantidade de bytes a ser lidos e um buffer que receberá tal leitura. OPERAÇÕES COM ARQUIVOS 20 Write escreve dados no arquivo, dependendo a posição do ponteiro de escrita o arquivo pode aumentar de tamanho ou perder seus dados. Se o ponteiro estiver no final do arquivo o tamanho do arquivo será aumentado, caso contrário, os dados posteriores a posição do ponteiro serão substituídos e perdidos. Append escreve dados no arquivo, porém de uma forma restrita, apenas no final do arquivo, torna a operação de escrita mais segura, porém mais restrita. OPERAÇÕES COM ARQUIVOS 21 Seek reposiciona o ponteiro de leitura ou gravação em uma posição específica do arquivo. Provê o acesso aleatório aos dados do arquivo. Get Attributes permite a leitura dos atributos do arquivo, dá acesso as propriedades do arquivo e permite decisões a partir das características do arquivo. Set Attributes permite a alteração de alguns atributos do arquivo, porém alguns atributos não são alteráveis, assim como a data de criação. OPERAÇÕES COM ARQUIVOS 22 Rename permite a alteração do nome do arquivo e sua extensão. Note que a alteração da extensão não altera a forma que o arquivo sobre execução, tornar um arquivo de texto em executável não o torna um arquivo válido. DIRETÓRIOS 23 Os diretórios tem por função agrupar arquivos, controlá-los e organizá-los em uma estrutura conhecida. A organização mais simples é a reunir todos os arquivos em um único diretório, o diretório raiz (nome não importa muito, já que só existe um diretório). DIRETÓRIOS 24 Na organização em nível único, a velocidade de busca de um arquivo é muitas vezes maior que outros tipos de organização, porém um único diretório para vários usuários pode levar a erros, imagine que dois usuários distintos utilizem o mesmo nome de arquivo. Apesar de já ter sido usado em um supercomputador (CDC 6600), este sistema não é mais utilizado. DIRETÓRIOS 25 No sentido de resolver os problemas que podem surgir quando dois usuários utilizam o mesmo nome de arquivo, idealizou-se o sistema de nível duplo, onde cada usuário possuiria um diretório. Desta forma cada usuário poderia utilizar qualquer nome que desejasse sem interferir na escolha do outro usuário. DIRETÓRIOS 26 Neste modelo inclui-se um problema no qual o arquivo só deveria ser executado pelo seu próprio dono, ou seja, deveria ser observado o proprietário do arquivo. Outro porém para tal modelo é que aplicativos deveriam ser dispostos de forma a serem acessados pelos múltiplos usuários, afinal manter várias cópias do mesmo programa apenas gastaria recursos. DIRETÓRIOS 27 Ambos modelos anteriores possuem suas qualidades e defeitos, porém nenhum dos dois permite que o usuário organize seus arquivos(quando existirem muitos) em um sistema de diretórios específico. Desta forma o sistema de diretórios hierárquico tenta suprir a necessidade de organização de um sistema de diretórios. Cada diretório está em um nível de uma hierarquia e pode agrupar n arquivos. CAMINHOS DE DIRETÓRIOS 28 Uma preocupação com o modelo hierárquico é a de acessar o conteúdo de um diretório específico. Para tal, é necessário conhecer o caminho de tal arquivo. Desta forma, podemos relacionar duas opções: Caminho Absoluto: leva em consideração o caminho completo, desde o diretório raiz até o local onde o arquivo se encontra. /usr/x/arquivo.txt C:/usuários/x/arquivo.txt CAMINHOS DE DIRETÓRIOS 29 Caminho Relativo: leva em consideração que o ponto de partida é o diretório atual. Neste conceito o usuário pode navegar por cada um dos diretórios antes de chegar o arquivo que busca. Cd c: cd usuários Cd x Edit arquivo.txt CAMINHOS DE DIRETÓRIOS 30 É importante observar que cada sistema operacional possui uma organização diferente de seus diretórios, pode ser com poucos ou muitos níveis de hierarquia. OPERAÇÕES COM DIRETÓRIOS 31 Create cria um diretório vazio, exceto pelo ponto e pontoponto. Delete remove um diretório vazio Opendir abre um diretório para leitura Closedir fecha um diretório para leitura OPERAÇÕES COM DIRETÓRIOS 32 Readdir permite a leitura do diretório, retorna a próxima entrada de um diretório aberto Rename renomeia o diretório Link possibilita a um arquivo aparecer em mais de um diretório ao mesmo tempo Unlink quebra o link de um arquivo que aparece em dois diretórios simultaneamente. IMPLEMENTAÇÃO DE UM SISTEMA DE ARQUIVOS 33 Quando estudamos os sistemas de arquivos, o que nos importa compreender é como a organização dos diretório e arquivos armazenados pode afetar o desempenho das atividades que dependem deles, se estão armazenados de forma confiável e se sua utilização será da forma mais eficiente possível. IMPLEMENTAÇÃO DE UM SISTEMA DE ARQUIVOS 34 Em todos os discos, não importando o formato de suas partições e sistemas de arquivos, o primeiro setor, chamado de setor 0 ou MBR armazena informações para iniciar o computador, a localização de cada partição e localização do bloco de boot. Outra função do MBR é identificar o superbloco, que é uma área reservada do sistema, lida na memória principal com o intuito de identificar tipos e quais arquivos devem ser executados para iniciar o sistema. ALOCAÇÃO DE SISTEMAS DE ARQUIVOS 35 Existem diversas forma de organizar e realizar a manutenção dos blocos de memória de um sistema de discos. Uma das formas de armazenar arquivos é através da alocação contígua. A alocação contígua é a forma mais simples de alocação, na qual cada arquivo é armazenado de forma contígua no disco. Um arquivo é fracionado em n partes que serão gravadas em blocos contíguos do disco. Ou seja, se possuímos blocos de 1Kb, um arquivo de 50Kb será gravado em 50 blocos sequenciais ou consecutivos. ALOCAÇÃO DE SISTEMAS DE ARQUIVOS 36 É possível verificar vantagens neste tipo de alocação? ALOCAÇÃO DE SISTEMAS DE ARQUIVOS 37 A alocação contígua é a forma mais simples de alocação e sua implementação é, por consequência, também a mais simples. Para encontrar um arquivo, o sistema de arquivos necessita apenas lembrar o local no qual o arquivo de encontra e qual o número de blocos que o arquivo ocupa. Não há atrasos rotacionais ou a necessidade de posicionamento a cada bloco, o que torna a alocação contígua um sistema de alocação com grande desempenho. ALOCAÇÃO DE SISTEMAS DE ARQUIVOS 38 É possível verificar desvantagens neste tipo de alocação? ALOCAÇÃO DE SISTEMAS DE ARQUIVOS 39 Com o tempo, a exclusão de arquivos cria lacunas entre espaços alocados, fragmentando o disco. ALOCAÇÃO DE SISTEMAS DE ARQUIVOS 40 Outro problema é que se o usuário necessitar gravar um arquivo com 100Mb, o disco deverá possuir blocos consecutivos que somados tenham esta capacidade. O problema é que depois de um certo período de tempo, muito provavelmente este espaço contíguo não irá existir, o que impossibilitará o usuário de salvar seus dados. ALOCAÇÃO DE SISTEMAS DE ARQUIVOS 41 Porém se observarmos um CD-ROM, esse tipo de alocação é altamente interessante, pois trará desempenho superior, e não será necessário incluir ou excluir arquivos, o que tornar a alocação contígua viável e altamente recomendada. ALOCAÇÃO DE SISTEMAS DE ARQUIVOS 42 Outra forma de alocação é a alocação por meio de lista encadeada. Com esse método o arquivo pode ser armazenado de forma fracionada, e cada bloco contém um fragmento do arquivo e um endereço para o próximo bloco que contem outro fragmento do arquivo. A grande vantagem da utilização deste método é que todo o disco pode ser usado, e não serão necessário blocos contíguos para armazenar um arquivo. ALOCAÇÃO DE SISTEMAS DE ARQUIVOS 43 A grande desvantagem deste método é que a fragmentação do arquivo (não do espaço livre) pode tornar o processo de leitura lento, devido a latência rotacional, movimentação mecânica e processo de leitura. Uma forma de eliminar tais desvantagens seria pela implementação de uma tabela que armazenaria todos os endereços dos blocos de um arquivo. A essa tabela dá-se o nome de FAT (File Allocation Table). ALOCAÇÃO DE SISTEMAS DE ARQUIVOS 44 A desvantagem da alocação por lista encadeada usando uma tabela de alocação, é que esta tabela necessariamente deve estar em memória durante todo o tempo, ou seja, um espaço da memória principal deverá ser destinado apenas ao sistema de arquivos. Mesmo que tal tabela seja armazenada utilizando memória virtual, o tráfego entre memória e disco seria intenso, deixando o sistema lento.
Compartilhar