Sistemas de ArquivosTipo de arquivos – Cap 4.1.3 Professor Esp. Diego André Sant’Ana Disciplina: Sistemas Operacionais II 1 Tipo de arquivos Muitos sistemas operacionais dão suporte a vários tipos de arquivos. 2 Tipo de arquivos UNIX e Windows, por exemplo, apresentam arquivos regulares e diretórios. O UNIX também tem arquivos especiais de caracteres e de blocos. 3 Tipo de arquivos Os arquivos regulares são aqueles que contêm informação do usuário. Todos os arquivos da Figura 4.1 são arquivos regulares. 4 Tipo de arquivos Os diretórios são arquivos do sistema que mantêm a estrutura do sistema de arquivos. 5 Tipo de arquivos Os arquivos especiais de caracteres são relacionados a entrada/saída e usado para modelar dispositivos de E/S, como terminais, impressores e redes. 6 Tipo de arquivos Os arquivos especiais de blocos são usados para modelar discos... Nosso interesse principalmente pelos arquivos regulares. será 7 Tipo de arquivos Arquivos regulares são, em geral, ou arquivos ASCII ou arquivo binários. Os arquivos ASCII são constituídos de linhas de texto. 8 Tipo de arquivos Em alguns sistemas; cada linha termina com um caractere de retorno de carro(carrige return). Em outros , é usado o caractere próxima linha(line feed). 9 Tipo de arquivos Alguns sistemas (por exemplo, MS-DOS) usam ambos. As linhas não são necessariamente todas do mesmo tamanho. 10 Tipo de arquivos A grande vantagem dos arquivos ASCII é que podem ser mostrados e impressos como são e editados com qualquer editor de textos. 11 Tipo de arquivos Além disso, se vários dos programas usam arquivos ASCII para entrada e saída, é fácil conectar a saída de um programa à entrada de um outro, como em pipelines do interpretador de comandos(shell). 12 Tipo de arquivos Além disso, se vários dos programas usam arquivos ASCII para entrada e saída, é fácil conectar a saída de um programa à entrada de um outro, como em pipelines do interpretador de comandos(shell). 13 Tipo de arquivos Outro tipo de arquivo é o binário, isto é, aquele que não é arquivo ASCII. Relacionar um arquivo desse tipo em uma impressora causaria a impressão de algo totalmente incompreensível. 14 Tipo de arquivos Esses arquivos têm, em geral, alguma estrutura interna conhecida pelos programas que os usam. 15 Tipo de arquivos Esses arquivos têm, em geral, alguma estrutura interna conhecida pelos programas que os usam. 16 Tipo de arquivos Por exemplo, na Figura 4.2(a) vemos um arquivos binário executável simples de uma versão do UNIX. 17 Tipo de arquivos Embora tecnicamente o arquivo seja uma sequência de bytes, o sistema operacional somente executará um arquivo se ele tiver um formato apropriado. 18 Tipo de arquivos O arquivo possui cinco partes: cabeçalho, texto, dados, bits de realocação e tabela de símbolos. 19 Tipo de arquivos O cabeçalho começa com o chamado número mágico, que identifica o arquivo como executável (para impedir a execução acidental de um arquivo que não seja desse formato). 20 Tipo de arquivos Então vem o tamanho das várias partes do arquivo, o endereço no qual a execução deve inicializar e alguns bits de sinalização. 21 Tipo de arquivos Após o cabeçalho estão o texto e os dados do programa propriamente ditos, que são carregados na memória e realocados usando os bits de realocação. A tabela de símbolos é usada para depuração. 22 Tipo de arquivos Nosso segundo exemplo de arquivo binário é o repositório (archive), também do UNIX. Ele consiste em uma coleção de procedimentos de biblioteca (módulos) compilados, mas não ligados. 23 Tipo de arquivos Cada um deles é prefaciado por um cabeçalho indicando seu nome, data de criação, proprietário, código de proteção e tamanho. 24 Tipo de arquivos Assim como nos arquivos executáveis, os cabeçalhos dos módulos são totalmente preenchidos com números binários. Envia-los para a impressora produziria uma completa confusão. 25 Tipo de arquivos Todo sistema operacional deve reconhecer pelo menos um tipo de arquivo: seu próprio arquivo executável. No entanto, alguns fazem mais que simplesmente reconhecê-lo. 26 Tipo de arquivos O velho sistema TOPS-20 (do DECsystem 20) foi tão longe que verificaria qual a data e o horário da criação de qualquer arquivo que fosse executar. 27 Tipo de arquivos Depois ele localizava e verificaria se o arquivo- fonte havia sido modificado após a criação de seu correspondente binário. 28 Tipo de arquivos Em caso afirmativo, ele automaticamente recompilaria a fonte. Em termos de UNIX, é como se o programa make estivesse embutido no shell. 29 Tipo de arquivos As extensões do arquivo eram obrigatórias para que o sistema operacional pudesse identificar qual programa binário correspondia a qual fonte. 30 Tipo de arquivos 31 Tipo de arquivos Ter arquivos fortemente tipificados, como no exemplo anterior, causa problemas se o usuário fizer qualquer coisa que os projetistas do sistema não esperam. 32 Tipo de arquivos Considere, por exemplo, um sistema no qual os arquivos de saída (arquivos de dados). tenham extensões .dat 33 Tipo de arquivos Se um usuário escreve um programa formatador que lê um arquivo .c(um programa em C), transforma-o (por exemplo, convertendo-o para um layout-padrão de identação ), escreve-o em um arquivo de saída – um arquivo .dat – e tenta compilar esse arquivo usando o compilador C, o sistema se recusará, pois ele terá uma extensão errada. 34 Tipo de arquivos As tentativas de copiar o file.dat para file.c serão rejeitadas pelo sistema e entendidas como inválidas (para proteger o usuário contra enganos). 35 Tipo de arquivos Enquanto para os novatos esse tipo de ‘amigabilidade’ ao usuário é útil, para os usuários experientes, é um obstáculo que terão de se esforçar consideravelmente para se sobrepor ao que o sistema operacional considera razoavel. 36 Referências Tanenbaum, Andrew S.; Tanenbaum, Andrew S. Operacionais Modernos - 3ª Ed. 2010 Prentice Hall – Br Sistemas 37