Programação de Sistemas



Documentos relacionados
Sistemas de Arquivos. Arquivos e Diretórios Características e Implementação Tadeu Ferreira Oliveira - tadeu.ferreira@ifrn.edu.br

Sistemas de Ficheiros. Ficheiros Diretórios Implementação de sistemas de ficheiros Exemplos de sistemas de ficheiros

Estrutura Interna do KernelUNIX Sistema O. Estrutura Interna de Arquivos (1) Estrutura Seqüência. User application. Standard Unix libraries

Sistemas Operacionais

Capítulo 6. Gerenciamento de Arquivos. 6.1 Arquivos 6.2 Diretórios 6.3 Implementação (6.3.1 a 6.3.6) 6.4 Exemplos

Sistemas de Ficheiros. 1. Ficheiros 2. Directórios 3. Implementação de sistemas de ficheiros 4. Exemplos de sistemas de ficheiros

SOP - TADS Sistemas de Arquivos Cap 4 Tanenmbaum

Gerência do Sistema de Arquivos. Adão de Melo Neto

implementação Nuno Ferreira Neves Faculdade de Ciências de Universidade de Lisboa Fernando Ramos, Nuno Neves, Sistemas Operativos,

Funções de um SO. Gerência de processos Gerência de memória Gerência de Arquivos Gerência de I/O Sistema de Proteção

Sistemas de Arquivos NTFS, FAT16, FAT32, EXT2 e EXT3

Sistemas de Arquivos. André Luiz da Costa Carvalho

Sistema de Ficheiros

Sistemas Operacionais

AULA 16 - Sistema de Arquivos

Sistema de Entrada/Saída

Sistemas de Ficheiros. Sistema de Ficheiros

Laboratório de Hardware

Sistema de Arquivos FAT

Sistema de Arquivos EXT3

Capítulo 11: Implementação de Sistemas de Arquivos. Operating System Concepts 8 th Edition

Programação de Sistemas

Sistemas Operacionais Arquivos. Carlos Ferraz Jorge Cavalcanti Fonsêca

1. Os caracteres (p.ex: a, A, 8,!, +, etc) são representados no computador através da codificação ASCII (American Standard Code for

Programação de Sistemas

1 - SISTEMA DE FICHEIROS NO WINDOWS

Gestor de Sistemas de Ficheiros. Sistema de Ficheiros

Tecnologia - Conjunto de instrumentos, métodos e processos específicos de qualquer arte, ofício ou técnica.

Sistemas Operacionais. Roteiro. Introdução. Marcos Laureano

Unix: Sistema de Arquivos. Geraldo Braz Junior

SISTEMA DE ARQUIVOS. Instrutor: Mawro Klinger

Sistemas Operacionais: Sistema de Arquivos

Sistemas de arquivos no Linux. Carlos Eduardo Maiolino Software Engineer Red Hat

Sistemas de Arquivos. Sistemas Operacionais - Professor Machado

Sistemas Operacionais Arquivos

Sistemas Operacionais Sistemas de Arquivos. Thiago Leite

Sistemas Operacionais. Prof. André Y. Kusumoto

AULA 5 Sistemas Operacionais

Entradas/Saídas. Programação por espera activa Programação por interrupções

ROM-BIOS Inicialização Sistemas de Arquivos Formatação

Capacidade = 512 x 300 x x 2 x 5 = ,72 GB

Exercícios de revisão V2. FAT: 300 GB / 2KB = 150MB X 8 bytes (64 bits / 8) = 1.2GB

Fundamentos de Sistemas Operacionais

Programador/a de Informática

SISTEMAS DE ARQUIVOS Sistemas operacionais

Curso Profissional de Técnico de Gestão e Programação de Sistemas Informáticos. Sistemas Operativos - 2º Ano

BC Sistemas Operacionais Sistema de Arquivos (aula 10 Parte 2) Prof. Marcelo Z. do Nascimento

Sistemas Operativos I

TIC TECNOLOGIAS DA INFORMAÇÃO (TI) TECNOLOGIAS ORIGEM DA PALAVRA

Sistemas de Armazenamento de Ficheiros. Interface

Sistemas de Arquivos

A memória é um recurso fundamental e de extrema importância para a operação de qualquer Sistema Computacional; A memória trata-se de uma grande

Introdução a Informática. Prof.: Roberto Franciscatto

Gerenciamento Básico B de Memória Aula 07

Referencial do Módulo B

UFRJ IM - DCC. Sistemas Operacionais I. Unidade IV Sistema de arquivos. Prof. Valeria M. Bastos Prof. Antonio Carlos Gay Thomé 13/06/2012 1

FACENS Engenharia Mecatrônica Sistemas de Computação Professor Machado. Memória Armazenamento Sistema de Arquivos

Periféricos e Interfaces Ano lectivo 2003/2004 Docente: Ana Paula Costa. Aula Teórica 11

Processos. Paulo Sérgio Almeida 2005/2006. Grupo de Sistemas Distribuídos Departamento de Informática Universidade do Minho

Sistema de Ficheiros. Sistemas Operativos 1

Capítulo 4 Livro do Mário Monteiro Introdução Hierarquia de memória Memória Principal. Memória principal

Sistemas de Arquivos. Gerenciamento de Espaço em Disco

Capítulo 6 Sistemas de Arquivos

Processos. Estados principais de um Processo: Contexto de um Processo. Nível de um Processo.

Arquitetura de Sistemas Operacionais

Sistemas de Arquivos. Sistemas de arquivos: Mecanismos para armazenamento on-line e acesso de dados e programas.

Acadêmicos: Luís Fernando Martins Nagata Gustavo Rezende Vinícius Rezende Santos

Conjunto organizado de informações da mesma natureza, agrupadas numa unidade independente de processamento informático

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar

Sistemas Operativos I

Cap. 12 Gerenciamento de Arquivos

Técnicas de Programação: ESTRUTURAS, UNIÕES E TIPOS DEE UFPB

Samsung Data Migration v3.0 Guia de Introdução e Instalação

Estudo de Sistemas de Arquivos

Escola Secundária de Emídio Navarro

Aula 01 Visão Geral do Linux

I n f o r m á t i c a

Sistemas Operacionais

Computador. 1982: os computadores são ferramentas que nos permitem fazer cálculos rápida e comodamente

Curso de Instalação e Gestão de Redes Informáticas

Gerenciamento de Entrada e Saída Hélio Crestana Guardia e Hermes Senger

GERENCIAMENTO DE DISPOSITIVOS

TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO

Introdução à estrutura e funcionamento de um Sistema Informático

Sistemas de Informação. Sistemas Operacionais 4º Período

Introdução aos Computadores

Programação de Sistemas

Profa. Dra. Amanda Liz Pacífico Manfrim Perticarrari

Base de dados I. Uma base de dados é um simples repositório de informação relacionado com um determinado assunto ou finalidade

SISTEMAS OPERACIONAIS

Problema: Solução: Vantagens da estruturação em Níveis: Introdução INTRODUÇÃO À ARQUITETURA DE COMPUTADORES. Introdução

Transcrição:

Programação de Sistemas Sistemas de ficheiros ext e iso9660 Programação de Sistemas Sistema de ficheiros : 1/21 Sistema de ficheiros ext (1) As estruturas de dados usadas nas partições do Unix muito diversificadas - tabelas, listas e árvores. O FS na versão inicial do Linux era ext1, semelhante ao Unix V7. Actualmente o Linux usa ext2 ou ext3 (ext2 + registo / journaling ). 1. Partição: no sistema de ficheiros ext2, semelhante ao Berkeley Fast File do Unix BSD (também designado UFS-Unix File System), a partição é dividida em duas partes a) Boot block : programa de carregamento do sistema operativo (vazio nas partições que não sejam de sistema). b) Vários grupos de blocos. Programação de Sistemas Sistema de ficheiros : 2/21

Sistema de ficheiros ext (2) Os grupos de blocos permitem que: dados fiquem próximo dos seus inodes inodes fiquem próximos dos seus inodes de directórios. Figura 10-35, Modern Operating Systems Programação de Sistemas Sistema de ficheiros : 3/21 Sistema de ficheiros ext (3) Um grupo de blocos é dividido em: a) Superblock : contém informação administrativa, nomeadamente Identificador do tipo de ficheiros ( magic number ) e versão. Número total de grupos de blocos. Número total de blocos por grupo. Dimensão dos blocos. Número total de blocos livres e de i-nodes livres. c) Descritores Localização dos mapas de blocos livres e de i-node livres. Localização da tabela de i-node. d) Informação sobre blocos livres, que pode ser implementado por mapas de bits, ou lista ligada e) Tabela de i-nodes. f) Dados dos restantes ficheiros e directórios. Programação de Sistemas Sistema de ficheiros : 4/21

Sistema de ficheiros ext (4) 2. Tabela de i-nodes: armazena informação sobre todos os ficheiro de directorias e de dados existentes. 1: reservado para os bad blocks. 2: reservado para o directório de raíz. Cada entrada da tabela de i-nodes ocupa 128B, contendo Modos de acesso. Localizações do ficheiro. Datas (criação, último acesso, última modificação). Dimensões. Nota1: Unix armazena no directório o identificador e o i-node do ficheiro Nota2: número i-node de ficheiro identificado pelo comandols i asterix.ist.utl.pt> ls -i /home/ec-ps/public_html/index.html 1835499 /home/ec-ps/public_html/index.html Programação de Sistemas Sistema de ficheiros : 5/21 Sistema de ficheiros ext (5) 3. Estrutura i-node do ext2 <linux/ext2_fs.h> struct ext2_inode { le16 i_mode; /* File mode */ le16 i_uid; /* Low 16 bits of Owner Uid */ le32 i_size; /* Size in bytes */ le32 i_atime; /* Access time */ le32 i_ctime; /* Creation time */ le32 i_mtime; /* Modification time */ le32 i_dtime; /* Deletion Time */ le16 i_gid; /* Low 16 bits of Group Id */ le16 i_links_count; /* Links count */ le32 i_blocks; /* Blocks count */ le32 i_flags; /* File flags */ union { } osd1; /* OS dependent 1 */ le32 i_block[ext2_n_blocks];/* Pointers to blocks */ le32 i_generation; /* File version (for NFS) */ le32 i_file_acl; /* File ACL */ le32 i_dir_acl; /* Directory ACL */ le32 i_faddr; /* Fragment address */ union { } osd2; /* OS dependent 2 */ le16 i_extra_isize; le16 i_pad1; }; Programação de Sistemas Sistema de ficheiros : 6/21

Sistema de ficheiros ext (6) A informação do sistema de ficheiro pode ser recolhida pelo comando /sbin/debugfs dispositivo A informação do i-node pode ser recolhida pelo comando stat fich charlie.ist.utl.pt> stat test.txt File: 'test.txt' Size: 4 Blocks: 8 IO Block: 4096 regular file Device: fd00h/64768d Inode: 1409040 Links: 1 Access: (0644/-rw-r--r--) Uid:(7012/rgc) Gid:(700/docentes) Access: 2007-07-27 22:33:23.000000000 +0100 Modify: 2007-07-27 22:21:43.000000000 +0100 Change: 2007-07-27 22:23:25.000000000 +0100 Programação de Sistemas Sistema de ficheiros : 7/21 Sistema de ficheiros ext (7) Bloco identificado por um número individual de 32 bits. As localizações dos blocos de dados são determinados por vários multiníveis de indirecção: A. Na estrutura i-node existe uma tabela de 12 posições para os primeiros blocos em disco. Exemplo: se um bloco ocupar 4KB, a estrutura i-node guarda directamente as localizações de um espaço de dados igual a 12*4KB = 48 KB. B. Para ficheiros maiores, o 13º índice passa a ser ponteiro Single indirect para um bloco contendo as localizações seguintes. Exemplo: para bloco de 4KB (1KB), o Single indirect referencia 4KB/4B = 1K (1KB/4B=256) localizações de blocos. A dimensão máxima do ficheiro aumenta 1K*4KB = 4 MB (256*4KB=1MB). C. Para além de 48KB+4MB é necessário o Double indirect Exemplo: para bloco de 4KB, a dimensão máxima do ficheiro aumenta 1M*4KB = 4 GB. Programação de Sistemas Sistema de ficheiros : 8/21

Sistema de ficheiros ext (8) D. Para ficheiros gigantescos, as versões recentes do Unix usam o Triple indirect. Exemplo: para blocos de 4KB, as localizações de blocos aumentam 1K*1K*1K = 1G e a dimensão máximo do ficheiro aumenta 1G*4KB = 4TB. Nota: para blocos de 4KB, o ext2 permite que ficheiros possam ter um tamanho até 4TB+4GB+4MB+48KB 4TB. A dimensão máxima do sistema de ficheiros, ou seja da partição, é dada pelo número de endereços i-node vezes o espaço do bloco. Exemplo: Com blocos de 4KB, a dimensão máxima do sistema de ficheiros é 2 32 *4KB = 16 TB. Tamanho de bloco 1K 2K 4K 8K Dimensão máxima ficheiro 16 GB 256 GB 4 TB 64 TB Dimensão máxima sistema de ficheiros 4 TB 8 TB 16 TB 32 TB Programação de Sistemas Usado pelo Linux Sistema de ficheiros : 9/21 Sistema de ficheiros ext (9) Vantagens dos multiníveis de indirecção: simples, os ficheiros podem ser facilmente expandidos, ficheiros pequenos rapidamente acedidos. Inconvenientes: ficheiros longos exigem muitos seeks. 12 blocos iniciais (largura de 10 na versão inicial do BFS) Figura 10-33, Modern Operating Systems Programação de Sistemas Sistema de ficheiros : 10/21

Sistema de ficheiros ext (10) Estratégia de alocação de novos blocos alvo, na posição seguinte ao último bloco alocado, visa evitar fragmentação Alocação orientada ao alvo: Se o bloco alvo se encontrar livre, ocupá- lo. Senão, procurar até uma distância de 25 blocos. Se não encontrar um bloco livre, procurar dentro do grupo. Se o grupo estiver cheio, procurar noutro grupo. Pré-alocação: Se for encontrado um bloco livre, reservar até 8 blocos livres seguintes. Quando o ficheiro for fechado, libertar os blocos reservados livres. Programação de Sistemas Sistema de ficheiros : 11/21 Sistema de ficheiros ext (11) Exercício: Considere o sistema de ficheiros ext do Linux, com blocos de 2KB e endereços de bloco de dimensão 4 B. Um processo vai aceder um ficheiro de 20 MB e o seu i-node já reside na memória central. Apresentando todos os cálculos, determine quantos blocos o processo tem de ler para recolher os dados entre os endereços 295000 e 297000 (decimal). 1. Determinar os blocos de residência dos dados. 295000 2048 297000 2048 2048 144 2048 145 9020 9220 8192 8192 Dados espalhados pelos 8280 10280 blocos 144 e 145 (2 blocos). 8192 10240 88 38 Programação de Sistemas Sistema de ficheiros : 12/21

Sistema de ficheiros ext (12) 2. O i-node contém apenas os endereços dos blocos de dados entre 1 e 12, pelo que é necessário ler o bloco de indirecção única ( single indirect ). Precisamos de determinar quantos blocos de dados são cobertos pelo SI. 2048 4 SI contém endereços de 512 2048 512 blocos de dados (entre 13 e 524). 0 O SI é suficiente para obter os endereços dos blocos 144 e 145. Logo, o processo tem de ler 1(SI)+2(blocos de dados) = 3 blocos. Programação de Sistemas Sistema de ficheiros : 13/21 Sistema de ficheiros ext (13) 4. Entrada do directório: Directórios organizados como ficheiros regulares contendo tuplos <inode#,nome> Número de i-node: 2B (logo directório limitado a 64K ficheiros) Nome no ext1 limitado a 14 caracteres - quaisquer, excepto / e NULL no ext2,3 estendido a 255 caracteres Figura 6-37, Modern Operating Systems Programação de Sistemas Sistema de ficheiros : 14/21

Sistema de ficheiros ext (14) Exemplo: localização de um ficheiro, por exemplo /usr/ast/mbox, parte da raíz 1. Recolher i-node 2 (directório raíz) 2. Varrer a listagem dos ficheiros até emparelhar o identificador usr. Recolher localização do i-node de /usr (por exemplo, 6). 3. No i-node 6 recolher localização do bloco de dados, que contém a listagem dos ficheiros do directório /usr (por exemplo, 132). 4. Varrer a listagem dos ficheiros até emparelhar o identificador ast. Recolher localização do i-node de /usr/ast (por exemplo, 26). 5. No i-node 26 recolher localização do bloco de dados, que contém a listagem dos ficheiros do directório /usr/ast (por exemplo, 406). 6. Varrer a listagem dos ficheiros até emparelhar o identificador mbox. Recolher localização do i-node de /usr/ast/mbox (por exemplo, 60). Programação de Sistemas Sistema de ficheiros : 15/21 Sistema de ficheiros ext (15) Figura 6-39, Modern Operating Systems Para apressar acesso aos ficheiros do directório, o Linux possui directório corrente (CWD). O bloco é mantido em cache, usado de partida quando o ficheiro é dado relativamente ao CWD. Programação de Sistemas Sistema de ficheiros : 16/21

Sistema de ficheiros ext (16) A ocupação de um bloco, por exemplo na escrita de um ficheiro, é efectuada nos seguintes passos 1. bit[i]=1 em disco 2. Alocar bloco[i] 3. bit[i]=1 em memória 4. Actualizar i-node Se o sistema for abaixo, os mapas de bits dos blocos e dos i-nodes deixam de ser coerentes. A recuperação da coerência é executada pelo comando /sbin/fsck. Programação de Sistemas Sistema de ficheiros : 17/21 Sistema de ficheiros iso9660 (1) Norma publicada em 1988 pelo ISO - International Organization for Standardization para acesso de CDs em todos os sistemas operativos, incluindo MSDOS. Os blocos em CDs ocupam 2352B, com 2KB para dados e o resto do espaço usado para correcção de erros. 1. Os primeiros 16 blocos são livres para o fabricante, por exemplo para boot do sistema operativo. 2. O bloco seguinte, primary volume descriptor, com informação sobre o CD: Programação de Sistemas Sistema de ficheiros : 18/21

Sistema de ficheiros iso9660 (2) Identificadores de sistema e de volume (32B cada). Identificador do fabricante e preparação de dados (128B cada). Identificador de 3 ficheiros: Resumo ( abstract ) Informação direitos de autor ( copyright ) Informação bibliográfica Dimensão dos blocos (usualmente 2KB). Número total de blocos no CD. Datas de criação e validade. Número de bloco onde se encontra instalado o directório raíz. 3. Pode existir um descritor secundário de volume. Programação de Sistemas Sistema de ficheiros : 19/21 Sistema de ficheiros iso9660 (3) 4. As entradas possuem número variável de campos (10 a 12). Campos de texto (por exemplo, nome de ficheiro) em ASCII Campos numéricos (por exemplo, dimensão de ficheiro) em ambas representações: Little-endien e Big-endien. Primeiro Byte indica comprimento das entradas. Ficheiros alocados continuamente por ordem alfabética, excepto dois primeiros (directório e directório pai). Ficheiros regulares e directórios discriminados por flag. Figura 6-29, Modern Operating Systems Programação de Sistemas Sistema de ficheiros : 20/21

Sistema de ficheiros iso9660 (4) Não há limite do número de ficheiros, mas a profundidade dos directórios limitada a 8. Implementados 3 níveis 1. (O mais restritivo) Nomes de ficheiros limitados a 8+3 caracteres, nomes de directórios limitados a 8 caracteres sem extensão, ficheiros contíguos no CD. 2. Nomes de ficheiros e directórios podem ter até 31 caracteres. 3. Os ficheiros podem ser distribuídos por secções espalhadas no CD, cada uma contígua. Programação de Sistemas Sistema de ficheiros : 21/21