Sumário • Introdução Sistema de Arquivos • Sistema de Arquivos • Arquivos • Diretórios • Esquema do Sistema de Arquivos M. Sc. Luiz Alberto [email protected] Aula - SO – Sistema de Arquivos Introdução • A parte do sistema responsável pela gerência é denominada sistema de arquivo que é a parte mais visível do sistema operacional pois é uma atividade freqüentemente realizada pelos usuários. • Deve ocorrer de maneira uniforme independente dos diferentes dispositivos de armazenamento. –2– Prof. Luiz Alberto - Definição • Os arquivos são gerenciados pelo sistema operacional e é mediante a implementação de arquivos que o sistema operacional estrutura e organiza as informações. Aula - SO – Sistema de Arquivos –1– Prof. Luiz Alberto - • Um sistema de arquivos provê mecanismos para acesso a dados e programas em um sistema operacional. • Cria um recurso lógico a partir de recursos físicos através de uma interface coerente e simples. • Consiste de duas partes distintas: – Uma coleção de arquivos – Uma estrutura de diretórios Aula - SO – Sistema de Arquivos –3– Prof. Luiz Alberto - Definição (cont.) Arquivos • Questões no qual o sistema de arquivos tende a resolver sobre armazenamento de informações a longo prazo: – Deve ser possível o armazenamento de grande quantidade de informações. – A informação deve sobreviver (persistência) ao término do processo que a estiver usando. – Vários processos devem ser capazes de manipular concorrentemente a informação. Aula - SO – Sistema de Arquivos –4– Prof. Luiz Alberto - • É um conjunto de registros definidos pelo sistema de arquivos e podem ser armazenados em diferentes dispositivos físicos. • É constituído de informações logicamente relacionadas, podendo representar programas ou dados. • Para o sistema operacional um arquivo é uma seqüência de bytes. Aula - SO – Sistema de Arquivos Arquivos (cont.) –6– Prof. Luiz Alberto - Arquivos (cont.) • É identificado por meio de um nome, formado por uma seqüência de caracteres. • A atribuição de nomes a arquivos é feita no momento de sua criação. • Em alguns sistemas operacionais, a identificação de um arquivo é composta por duas partes separadas por um ponto, a parte após o ponto é chamada extensão do arquivo e serve para identificar o conteúdo. Aula - SO – Sistema de Arquivos –5– Prof. Luiz Alberto - • As regras a serem adotadas para a confecção do nome de um arquivo variam de acordo com o SO. • Exemplos: – DOS: • <nome>.<extensao>, onde o <nome> pode conter até 8 caracteres e a extensão contem até 3 caracteres. Não sensitivo ao caso (caseinsensitive). – UNIX: • <nome>, onde <nome> pode conter até 14 ou até 255 caracteres, dependendo do sistema de arquivos utilizado. Sensitivo ao caso (case-sensitive). Aula - SO – Sistema de Arquivos –7– Prof. Luiz Alberto - Extensão de Arquivos Extensão Descrição arquivo.c arquivo.cob arquivo.exe arquivo.obj arquivo.pas arquivo.txt arquivo.mp3 arquivo.dll Arquivo fonte em C Arquivo fonte em Cobol Arquivo executável Arquivo objeto Arquivo fonte em Pascal Arquivo texto Arquivo de música Arquivo de biblioteca dinâmica Aula - SO – Sistema de Arquivos –8– Estrutura do Arquivo • O servidor de arquivos deve implementar a abstração de arquivo para o restante do sistema. Para tanto, ele deve determinar como o arquivo será estruturado internamente. • As estruturas de arquivos mais comuns são: – sequência de bytes – sequência de registros – árvore de registros Prof. Luiz Alberto - Aula - SO – Sistema de Arquivos –9– Prof. Luiz Alberto - Sequência de Registros Sequência de Bytes • Neste caso, não há estrutura. O arquivo é simplesmente enxergado como uma sequência de bytes. • O SO não tem conhecimento do significado e da estruturação dos campos que compõem um arquivo. • Neste caso, o arquivo é estruturado pelo SO como uma sequência de registros de tamanho fixo. • As operações de leitura e escrita retornam um registro. • Este tipo de estruturação foi muito popular no tempo dos cartões perfurados e das impressoras com número fixo de caracteres. • Vantagens: flexibilidade, possibilidade de uso não convencional de arquivos • Desvantagens: em alguns casos, acesso não otimizado aos dados • Estratégia adotada tanto pelo UNIX quanto pelo Windows • Vantagens: acesso otimizado por registro • Desvantagens: dificuldade em se determinar o tamanho do registro, perda de flexibilidade, espaços não utilizados. • – Exemplo: CP/M Aula - SO – Sistema de Arquivos – 10 – Prof. Luiz Alberto - Aula - SO – Sistema de Arquivos – 11 – Prof. Luiz Alberto - Tipos de Arquivos Árvores de Registros • Neste caso, o arquivo é uma árvore de registros de tamanho variável. Cada registro é composto por um campo chave, contido em uma posição fixa. A árvore é ordenada pelo campo chave. • Esta estruturação visa otimizar o acesso randômico a registros. • Alguns sistemas operacionais suportam vários tipos de arquivos. • Arquivos regulares – contem os dados do usuário (Arquivos ASCII ou binários). • Diretórios – Mantém a estrutura do sistema de arquivos. • Arquivos especiais de caracteres • Vantagens: acesso randômico otimizado • Desvantagens: complexidade da implementação, estrutura fixa de Armazenamento • Exemplos: sistemas de grande porte, MUMPS Aula - SO – Sistema de Arquivos – 12 – – Modelam dispositivos de E/S. • Arquivos especiais de blocos – Modelam discos. Prof. Luiz Alberto - Aula - SO – Sistema de Arquivos Tipos de Arquivos (cont.) – 13 – Prof. Luiz Alberto - Tipos de Arquivos (cont.) • Em geral, os arquivos são ASCII ou binários. • Arquivos ASCII podem ser colocados diretamente na tela ou na impressora. • Arquivos binários contem caracteres que não podem ser impressos sem um tratamento adicional. • O arquivo executável é um arquivo binário. • Alguns sistemas operacionais suportam vários tipos de arquivos. • Arquivos regulares – contem os dados do usuário (Arquivos ASCII ou binários). • Diretórios – Mantém a estrutura do sistema de arquivos. • Arquivos especiais de caracteres – Modelam dispositivos de E/S. • Arquivos especiais de blocos – Modelam discos. Aula - SO – Sistema de Arquivos – 14 – Prof. Luiz Alberto - Aula - SO – Sistema de Arquivos – 15 – Prof. Luiz Alberto - Acesso a Arquivo (cont.) Acesso a Arquivo • Os métodos de acesso determinam como os dados contidos no arquivo serão recuperados pelo usuário. – Acesso sequencial – Acesso direto (ou aleatório) • Acesso seqüencial • Os sistemas de arquivos podem oferecer simultaneamente os dois métodos de acesso e o usuário determina o método a ser utilizado na criação do arquivo. • A maioria dos SO modernos oferece somente o método de acesso direto. • Acesso aleatório Aula - SO – Sistema de Arquivos – 16 – Prof. Luiz Alberto - – Uma operação de leitura de um determinado arquivo deve partir do início, nunca saltando e fora de ordem. – Este método é baseado no funcionamento da fita magnética. – Os arquivos sequenciais podem ser rebobinados para o início e lidos inúmeras vezes. – Uma operação de leitura pode ser feita a partir de qualquer posição do arquivo. – Este método é baseado no funcionamento do disco. Aula - SO – Sistema de Arquivos Atributos do arquivo – 18 – Prof. Luiz Alberto - Atributos do arquivo (cont.) • Além do nome e dos dados, o SO associa a cada arquivo um conjunto de informações que auxiliam na gerência dos mesmos. • Estas informações adicionais são chamadas atributos e estão geralmente contidas na tabela de arquivos. Aula - SO – Sistema de Arquivos – 17 – Prof. Luiz Alberto - • São exemplos de atributos de arquivos: – – – – – – – – – – – proteção: indica as permissões de acesso ao arquivo password: password necessária para o acesso ao arquivo criador: usuário criador do arquivo owner: proprietário atual do arquivo flag de oculto: impede que o nome do arquivo apareça na lista de arquivos flag de temporário: o arquivo é deletado quando o processo que o criou morrer. tamanho: tamanho atual do arquivo tamanho máximo: tamanho máximo que o arquivo pode atingir. instante da última modificação instante da criação etc Aula - SO – Sistema de Arquivos – 19 – Prof. Luiz Alberto - Operações sobre o arquivo Operações sobre o arquivo (cont.) • As operações feitas sobre um arquivo vão depender do sistema de arquivos de cada SO. • Existe, no entanto, um conjunto de operações que constam na maioria dos sistemas de arquvos: • Operações sobre arquivos: • Operações sobre arquivos: – OPEN: Antes de ser utilizado, o arquivo precisa ser aberto. Essa chamada traz a entrada da tabela de arquivos referente ao arquivo a ser aberto para a tabela de processos do processo que executou o OPEN. Este comando retorna um descritor de arquivo, que será utilizado em todas as operações subsequentes sobre o arquivo. – CREATE: cria um arquivo. Deve-se criar uma entrada para o novo arquivo no diretório especificado. Além disso, deve-se criar uma entrada na tabela de arquivoscom o nome do criador, data de criação e permissões de acesso. O arquivo recem-criado não possui dado nenhum. – CLOSE: quando o processo não necessitar mais acessar o arquivo, ele executa a operação CLOSE. Esta operação retira a entrada da tabela de arquivos referente ao arquivo da entrada da tabela de processos do processo. Todos os acessos subsequentes ao descritor de arquivo serão inválidos. – DELETE: Libera o espaço ocupado pelo arquivo, deleta a entrada do diretório que aponta para o arquivo e deleta a entrada na tabela de arquivos. – READ: para ler um arquivo, o processo deve especificar um descritor válido, a quantidade de dados a serem lidos e um local (buffer) em memória onde os dados lidos devem ser colocados. A maioria das operações de leitura lê a partir da posição corrente. Aula - SO – Sistema de Arquivos – 20 – Prof. Luiz Alberto - Aula - SO – Sistema de Arquivos Operações sobre o arquivo (cont.) • Operações sobre arquivos: – WRITE: para escrever dados em um arquivo, o processo deve especificar um descritor válido, um buffer local que contenha os dados a serem escritos e o tamanho destes dados. Normalmente, os dados são escritos em um arquivo a partir da posição corrente. – APPEND: escreve dados em um arquivo, a partir do final do mesmo. – SEEK: utilizado para arquivos de acesso randômico. Para se fazer um seek é necessário um ponteiro para o arquivo. O SEEK faz com que o ponteiro fornecido seja a nova posição corrente do arquivo. – 21 – Prof. Luiz Alberto - Diretórios • Modo como o sistema organiza os diferentes arquivos contidos num disco • É a estrutura de dados que contém entradas associadas aos arquivos – localização física, nome, organização e demais atributos • Quando um arquivo é aberto, o sistema operacional procura a sua entrada na estrutura de diretórios • As informações do arquivo são armazenadas em uma tabela mantida na memória principal(tabela de arquivo abertos) – Fundamental para aumentar o desempenho das operações com arquivos – RENAME: muda o nome do arquivo. Simplesmente altera o nome do arquivo na tabela de arquivos. Aula - SO – Sistema de Arquivos – 22 – Prof. Luiz Alberto - Aula - SO – Sistema de Arquivos – 23 – Prof. Luiz Alberto - Diretório em Nível Único Diretório em Nível Único (cont.) • Implementação mais simples • Existe apenas um único diretório contendo todos os arquivos do disco • Bastante limitado já que não permite que usuários criem arquivos com o mesmo nome • Isso ocasionaria um conflito no acesso aos arquivos Identificação Proteção Organização Localização física Atributos Diretório Aula - SO – Sistema de Arquivos – 24 – Prof. Luiz Alberto - Aula - SO – Sistema de Arquivos Diretório em Dois Níveis – 26 – – 25 – Prof. Luiz Alberto - Diretórios Hierárquicos • Para cada usuário existe um diretório particular e assim poderia criar arquivos com qualquer nome. • Deve haver um nível de diretório adicional para controle que é indexado pelo nome do usuário • Cada entrada aponta para o diretório pessoal. Aula - SO – Sistema de Arquivos Arquivos • • • • Adotado pela maioria dos sistemas operacionais Logicamente melhor organizado É possível criar quantos diretórios quiser Um diretório pode conter arquivos e outros diretórios (chamados subdiretórios) • Cada arquivo possui um path único que descreve todos os diretórios da raiz (MFD) até o diretório onde o arquivo esta ligado • Na maioria dos S.O.s os diretórios são tratados como arquivos tendo atributos e identificação Prof. Luiz Alberto - Aula - SO – Sistema de Arquivos – 27 – Prof. Luiz Alberto - Nomes de Diretórios Diretórios Hierárquicos (cont.) • Como os arquivos estão organizados em diretórios, o “caminho” que é necessário se percorrer para se chegar até o arquivo também faz parte do seu nome. • Nome absoluto: nome que vai do diretório raiz até o arquivo. • – Ex: /usu1/b/d • Nome relativo: nome relativo ao diretório corrente. • – Diretório corrente: diretório no qual estamos posicionados atualmente. • – Ex: (diretório corrente=usu1) b/d, ../usu3/c Aula - SO – Sistema de Arquivos – 28 – Prof. Luiz Alberto - Aula - SO – Sistema de Arquivos • • • • • • • • • Caminho absoluto: – Windows: \usr\ast\caixapostal – Unix: /usr/ast/caixapostal – MULTICS: >usr>ast>caixapostal • Caminho relativo: – Unix: cp caixaposta caixapostal.bak . diretorio atual .. diretorio acima (pai) – 30 – Prof. Luiz Alberto - Operações com Diretórios Nomes de Diretórios (cont.) Aula - SO – Sistema de Arquivos – 29 – Prof. Luiz Alberto - Create - cria um diretório Delete - remove um diretório Opendir - lê diretórios Closedir - fecha um diretório Readdir - retorna prox. entrada do dir. aberto Rename - renomeia o nome do diretório Link - ligação de arquivos em dirs. Diferentes Unlink - remove a ligação Aula - SO – Sistema de Arquivos – 31 – Prof. Luiz Alberto - Esquema do Sistema de Arquivos Esquema do Sistema de Arquivos (cont.) • A maioria dos discos é dividida em uma ou mais partições com Sistemas de arquivos independentes para cada partição • O setor 0 do disco é chamado de Master Boot Record (MBR) • Na inicialização do sistema, a BIOS lê e executa o MBR – O programa do MBR localiza a partição ativa, lê seu primeiro bloco, chamado de bloco de boot – O programa no bloco de boot carrega o S.O. contido na partição • O esquema da partição varia de um S.O. para outro, mas é comum: – A definição de um SuperBloco: contém os principais parâmetros do sistema de arquivos (tipo, no. de blocos, etc.) – As informações sobre os blocos livres Aula - SO – Sistema de Arquivos – 32 – Prof. Luiz Alberto - Aula - SO – Sistema de Arquivos – 33 – Prof. Luiz Alberto - Implementação de arquivos Alocação Contígua • A primeira coisa a se decidr na implementação de arquivos é como os mesmos serão armazenados. Os dados contidos nos arquivos são armazenados em blocos de disco. • Para a associação de blocos de disco a arquivos, temos as seguintes abordagens: • Consiste em armazenar um arquivo em blocos seqüencialmente dispostos • O sistema localiza um arquivo através do endereço do primeiro bloco e da sua extensão em blocos • O acesso é bastante simples • Seu principal problema é a alocação de novos arquivos nos espaços livres – – – – Alocação contígua Alocação com lista encadeada Alocação com lista encadeada e índice Nós-i – Para armazenar um arquivo que ocupa n blocos, é necessário uma cadeia com n blocos dispostos seqüencialmente no disco • Além disso, como determinar o espaço necessário a um arquivo que possa se estender depois da sua criação? – Pré-alocação (fragmentação interna) Aula - SO – Sistema de Arquivos – 34 – Prof. Luiz Alberto - Aula - SO – Sistema de Arquivos – 35 – Prof. Luiz Alberto - Alocação Contígua (cont.) Aula - SO – Sistema de Arquivos – 36 – Alocação Contígua (cont.) Prof. Luiz Alberto - Alocação por Lista Encadeada Aula - SO – Sistema de Arquivos – 37 – Prof. Luiz Alberto - Alocação por Lista Encadeada (cont.) • O arquivo é organizado como um conjunto de blocos ligados no disco • Cada bloco deve possuir um ponteiro para o bloco seguinte • Aumenta o tempo de acesso ao arquivo, pois o disco deve deslocar-se diversas vezes para acessar todos os blocos • É necessário que o disco seja desfragmentado periodicamente • Esta alocação só permite acesso seqüencial • Desperdício de espaço nos blocos com armazenamento de ponteiros Aula - SO – Sistema de Arquivos – 38 – Prof. Luiz Alberto - Aula - SO – Sistema de Arquivos – 39 – Prof. Luiz Alberto - Alocação por Lista Encadeada usando Tabela Alocação por Lista Encadeada usando Tabela na Memória na Memória (cont.) • Mantém os ponteiros de todos os blocos de arquivos em uma única estrutura denominada Tabela de Alocação de Arquivos Alocação por Lista Encadeada usando Tabela na Memória Alocação Encadeada – FAT (File Allocation Table) • Vantagens: – Permitir o acesso direto aos blocos – Não mantém informações de controle dentro dos blocos de dados • Desvantagem – A tabela deve estar na memória o tempo • Esquema usado pelo MS-DOS, Win95 e Win98 Aula - SO – Sistema de Arquivos – 40 – Prof. Luiz Alberto - i-nodes Aula - SO – Sistema de Arquivos – 41 – Prof. Luiz Alberto - Fragmentação Interna • Cada arquivo possui uma tabela (inode) no disco • O i-node só precisa estar na memória quando o arquivo correspondente estiver aberto • Ocupa menos espaço que a FAT • Arquivos são alocados em blocos: • Os blocos têm tamanho fixo. • Entre 512 bytes e 8 Kbytes. • Um bloco não pode ser alocado parcialmente. • Se usarmos blocos de 4096 bytes: – Tamanho da FAT cresce linearmente com o tamanho do disco – I-nodes requerem um espaço proporcional à quantidade máxima de arquivos abertos • um arquivo de 5700 bytes ocupará 2 blocos. • 2492 bytes serão perdidos no último bloco. • Em média, perde-se 1/2 bloco por arquivo. • Usados por sistemas baseados no UNIX Aula - SO – Sistema de Arquivos – 42 – Prof. Luiz Alberto - Aula - SO – Sistema de Arquivos – 43 – Prof. Luiz Alberto - Tamanho dos Blocos Gerência de Espaço Livre • A escolha do tamanho dos blocos é importante para a eficiência do sistema. • Blocos pequenos: • Necessidade de alocar espaço livre do disco a arquivos. • Muitos sistemas operacionais enxergam o disco como uma seqüência de blocos e não de setores. – blocos são agrupamentos de setores. • menor perda por fragmentação interna • mais blocos por arquivo: maior custo de gerência • A unidade de gerência do espaço físico passa a ser bloco. • Blocos grandes: • maior perda por fragmentação interna • menos blocos por arquivo: menor custo de gerência Aula - SO – Sistema de Arquivos – 44 – Prof. Luiz Alberto - Gerência de Espaço Livre (cont.) • Mapa de bits – 45 – Prof. Luiz Alberto - Gerência de Espaço Livre (cont.) • Lista de blocos livres – Forma simples de gerenciar o espaço em disco. – A cada bloco do disco está associado um bit indicando se o bloco está livre ou ocupado. – Como vantagens deste esquema, podemos citar o pouco espaço consumido. Além disso, o espaço consumido é fixo. – A desvantagem é a possibilidade de operações demoradas de alocação de blocos. Aula - SO – Sistema de Arquivos Aula - SO – Sistema de Arquivos – 46 – Prof. Luiz Alberto - – Os blocos livres são organizados em uma lista. – A lista é mantida no próprio disco • O problema é o tamanho da lista. • A medida que o espaço em disco é ocupado a lista diminui de tamanho liberando espaço do disco. – Uma solução alternativa é manter uma lista de áreas livres ao invés de uma lista de blocos livres. Aula - SO – Sistema de Arquivos – 47 – Prof. Luiz Alberto - Confiabilidade Gerência de Blocos Ruins • A perda de dados ou mesmo de arquivos inteiros é extremamente onerosa para o usuário. No mínimo, ele vai gastar muito tempo para colocar o SA no estado que estava antes da perda. • Existem algumas técnicas que podem ajudar a reduzir a probabilidade da perda total da informação: – Gerência de blocos ruins – Backups – Gerência da consistência • Os discos rígidos geralmente saem da fábrica com um conjunto de blocos defeituosos. • Para tratar os blocos ruins, existem duas abordagens: – Por hardware: Um setor específico do disco armazena a lista de blocos ruins. Quando a controladora de disco é ativada pela primeira vez, ela faz um mapeamento dos blocos ruins em “blocos reservas”. Desta maneira, os blocos ruins nunca serão utilizados. • A capacidade do disco é reduzida do número de blocos ruins. – Por software: É construído um arquivo contendo todos os blocos defeituosos. Como os blocos fazem agora parte de um arquivo, o SA não os coloca na lista de blocos livres. • O SA tem que impedir que este arquivo seja lido ou escrito. Aula - SO – Sistema de Arquivos – 48 – Prof. Luiz Alberto - Aula - SO – Sistema de Arquivos • Mesmo com todos os controles de defeitos, existe sempre a possibilidade real de perda irreparável da informação (crash do disco). • Para tratar este problema, a única solução é copiar periodicamente as informações do disco para um outro lugar (disco ou fita), duplicandoas (ou triplicando-as). • As fitas novas possuem uma capacidade maior ( 300Mb, 600Mb) porém sua confiabilidade é mais baixa. Além disso, seu preço é alto. • Por isso, e como o preço dos discos vem caindo, está se tornando cada vez mais usual o backup disco a disco. – 50 – Prof. Luiz Alberto - Backup (cont.) Backup Aula - SO – Sistema de Arquivos – 49 – Prof. Luiz Alberto - • Existem vários tipos de backup, dentre eles: • Backup total: faz a cópia de todos os arquivos do disco • Backup incremental: faz a cópia somente dos arquivos que foram alterados desde o último backup total ou desde o último backup incremental • Em uma instalação, é comum se fazer um backup total por semana (e.g. sexta-feira) e backups incrementais diários. Assim, mantemos no máximo 7 backups: 1 completo e 6 incrementais. Aula - SO – Sistema de Arquivos – 51 – Prof. Luiz Alberto - Backup (cont.) Dúvidas? • Existem vários tipos de backup, dentre eles: • Backup total: faz a cópia de todos os arquivos do disco • Backup incremental: faz a cópia somente dos arquivos que foram alterados desde o último backup total ou desde o último backup incremental • Em uma instalação, é comum se fazer um backup total por semana (e.g. sexta-feira) e backups incrementais diários. Assim, mantemos no máximo 7 backups: 1 completo e 6 incrementais. Aula - SO – Sistema de Arquivos – 52 – Prof. Luiz Alberto - Aula - SO – Sistema de Arquivos – 53 – Prof. Luiz Alberto -