Leandro C. Cintra M.C.F. de Oliveira Rosane Minghim PAE 2012: Rafael Martins. Fonte: Folk& Zoelick, File Structure

Documentos relacionados
Fundamentos de Arquivos

Arquivos. Fundamentos de Arquivos. Discos X Memória Principal. Informação mantida em memória secundária:

Fundamentos de Arquivos. SCE-183 Algoritmos e Estruturas de Dados II

Arquivos. Fundamentos de Arquivos. Discos X Memória Principal. Memória Secundária x Principal. Informação mantida em memória secundária (externa)

Fundamentos de Arquivos e Armazenamento Secundário

ARMAZENAMENTO SECUNDÁRIO, PARTE 1 Professora Rosane Minghim

ARMAZENAMENTO SECUNDÁRIO, PARTE 2

Armazenamento Secundário. Endereços no disco. Organização da informação no disco. Organização da informação no disco

HDs. Armazenamento Secundário. HDs. Capacidade do Disco. Organização de Informação em Disco. Organização de Informação em Disco

Algoritmos e Estruturas de Dados II IEC013

Armazenamento Secundário

Computação Eletrônica. Aula 12 Arquivos Texto e Binário. Prof: Luciano Barbosa. CIn.ufpe.br

Introdução. Estrutura de Dados II Prof Jairo Francisco de Souza

Existe uma quantidade de informação que pode ser armazenada para resolver o problema.

Disco como gargalo. Armazenamento Secundário. Técnicas p/ minimizar o problema. Técnicas p/ minimizar o problema

Arquivos em C. Material da Prof. Ana Eliza

Manipulação de Arquivos

Aula de Arquivos. Jesimar da Silva Arantes. Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo - São Carlos, SP

Fundamentos de Arquivos. SCC203 Algoritmos e Estruturas de Dados II

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: Manipulação de arquivos

Sistema de Arquivos. Introdução

Manipulação de Arquivos

Laboratório de Introdução à Ciência da Computação I

Sistemas Operacionais

Sistemas Operacionais

Arquivos Binários UFOP 1/25

Programação para Computação 13ª Aula

Aula: ARQUIVOS. Introdução à Ciência da Computação I Simone Senger Souza. ICMC/USP São Carlos

CURSO BÁSICO DE PROGRAMAÇÃO AULA 17. Manipulação de arquivos binários.

Sistemas de Arquivos

Operações em Arquivos. MC102 Felipe Bergo

Sistemas de Informação. Sistemas Operacionais

08 Arquivos: fundamentos SCC0503 Algoritmos e Estruturas de Dados II

LINGUAGEM C: ARQUIVOS

Sistemas de Arquivos. (Aula 23)

Faculdade de Computação

Lista de Comandos: Arquivo texto e Binário

E/S em Arquivo. Para ler ou escrever arquivos é preciso usar ponteiros de arquivo. Um ponteiro de arquivo é uma variável ponteiro do tipo FILE:

Chaves. Acesso a Registros. Chaves Primária e Secundária. Chaves Primária e Secundária

1/24 FICHEIROS DE TEXTO

13a. Aula Manipulação de arquivos

Implementação de Diretórios (1)

Métodos Computacionais. Arquivos

01 Arquivos: fundamentos SCC0215 Organização de Arquivos

Acesso a registros. Acesso a Registros. Acesso a registros. Chaves. Forma Canônica da Chave. Forma Canônica da Chave

Sistemas de arquivos

INTRODUÇÃO A SISTEMAS DE ARQUIVO E GERENCIA DE MEMÓRIA

Computação Eletronica: Arquivos (Introdução)

Rosane Minghim e Guilherme P. Telles

Manipulação de Arquivos. Técnicas de Programação

Prof. Benito Piropo Da-Rin. Arquitetura, Organização e Hardware de Computadores - Prof. B. Piropo

INTRODUÇÃO AOS SISTEMAS DE ARQUIVO. Prof. Hélio Esperidião

Introdução a Programação. Arquivos

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO ACESSO, ATRIBUTOS E OPERAÇÕES COM ARQUIVOS PROFESSOR CARLOS MUNIZ

Hierarquia. Hierarquia

Departamento de Sistemas de Computação Universidade de São Paulo Introdução a Ciência de Computação I. Aula 13 Arquivos

UFRJ IM - DCC. Sistemas Operacionais I. Unidade IV Gerência de Recursos Entrada e Saída. 02/12/2014 Prof. Valeria M. Bastos

Gerência de Entrada e Saída

MC-102 Aula 24 Arquivos em C e Parâmetros do Programa

LINGUAGEM C: ARQUIVOS

Redes de Computadores. Fundamentos de Sistemas Operacionais - 2º Período

Computadores Digitais 2. Prof. Rodrigo de Souza Couto

9/24/2014. Prof. André Backes

Cap. 12 Gerência de Dispositivos 1

Organização de Arquivos. Leandro C. Cintra M.C.F. de Oliveira Thiago A. S. Pardo Cristina D. A. Ciferri

Sistemas Operacionais

Linguagem C. Armazenamento de Dados em Arquivos - Continuação

Introdução a Programação. Manipulando Arquivos em Modo Texto

Programação de Computadores II

Gerência de Dispositivos. Adão de Melo Neto

SSC0112 Organização de Computadores Digitais I

O que faz? De tudo um pouco.

Sequência de informações binárias armazenadas num dispositivo de armazenamento permanente. Em geral os bits são agrupados em grupos de 8 (1 byte)

Sumário. Sumário. Algoritmos e Estruturas de Dados II Organização de Arquivos. Organização de Arquivos. Seqüência de bytes (stream)

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE

Aula 14 Oficina de Programação Tópicos Especiais em C: Arquivos. Profa. Elaine Faria UFU

Capítulo 11 Sistemas de Arquivos

Linguagem C arquivos. IF61A/IF71A - Computação 1 Prof. Leonelo Almeida. Universidade Tecnológica Federal do Paraná

Programação de Computadores

INE5408 Estruturas de Dados. Gerência de Arquivos

UNIVERSIDADE ESTADUAL DO PARÁ UEPA LISTA DE EXERCÍCIOS DE INTRODUÇÃO A COMPUTAÇÃO. 2. O que diferencia os computadores de 1ª geração dos da 2ª.

Computação L. Apresentação da Disciplina e Conceitos Básicos de Computadores

Prof. Neucimar J. Leite. 3 de março de 2007

USP - ICMC - SSC SSC o. Semestre Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria

C Arquivos. Adriano Cruz 21 de julho de Instituto de Matemática Departamento de Ciência da Computação UFRJ

Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria

Gerência de Dispositivos. Adão de Melo Neto

Introdução aos Sistemas Operacionais. Subsistema de Arquivos

PROGRAMAÇÃO COM ARQUIVOS PROF. MARCOS QUINET (BASEADO NO MATERIAL ORIGINAL DO PROF. ANDRÉ RENATO) Arquivos binários

Arquivos. Estruturas de Dados II Vanessa Braganholo

Sistemas Operacionais

Capítulo 10: Interface de Sistemas de Arquivos. Operating System Concepts 8 th Edition

Índice. Índices. Índice simples. Em geral, um índice fornece mecanismos para localizar informações

Implementação de Sistemas de Arquivos. Na Aula Anterior... Esquema do Sistema de Arquivos. Nesta Aula 31/10/2016. Estrutura de Baixo Nível de um Disco

Manipulação de arquivos


Disciplina: Sistemas Operacionais

Aula 16: Manipulação de Arquivos em C

Transcrição:

Fundamentos de Arquivos Leandro C. Cintra M.C.F. de Oliveira Rosane Minghim 2004-2012 PAE 2012: Rafael Martins Fonte: Folk& Zoelick, File Structure

2 Arquivos Informação mantida em memória secundária HD Fitas magnéticas CD DVD HD USB

3 Discos X Memória Principal Tempo de acesso HD: alguns milisegundos ~ 10ms RAM: alguns nanosegundos ~ 10ns...40ns Ordem de grandeza da diferença entre os tempos de acesso ~ 250.000, isto é, HDs são 250.000 vezes mais lentos que memória RAM

4 Discos X Memória Principal Capacidade de Armazenamento HD muito alta, a um custo relativamente baixo RAM limitada pelo custo e espaço Tipo de Armazenamento HD não volátil RAM volátil

5 Discos X Memória Principal Em resumo Acesso a disco é muito caro, isto é, lento! Então O número de acessos ao disco deve ser minimizado A quantidade de informações recuperadas em um acesso deve ser maximizada Estruturas de organização de informação em arquivos!

6 Organização de Arquivos Meta: minimizar as desvantagens do uso da memória externa Objetivo : minimizar o tempo de acesso ao dispositivo de armazenamento externo De forma independente da tecnologia: Tempo de Acesso = Nº. de acessos * Tempo de 1 acesso

7 Discos X Memória Principal Estruturas de dados eficientes em memória principal são inviáveis em disco Seria fácil obter uma estrutura de dados adequada para disco se os arquivos fossem estáveis (não sofressem alterações) Solução: Organização adequada de arquivos no disco, e de informações em arquivos

8 Arquivo Físico e Arquivo Lógico Arquivo Físico:seqüência de bytes armazenada no disco Arquivo Lógico: arquivo como visto pelo aplicativo que o acessa Associação arquivo físico arquivo lógico:iniciada pelo aplicativo, gerenciada pelo S.O.

9 Arquivo Físico e Arquivo Lógico Arquivo Físico:conjunto de bytes no disco, geralmente agrupados em setores de dados. Gerenciado pelo sistema operacional Arquivo Lógico:modo como a linguagem de programação enxerga os dados. Uma seqüência de bytes, eventualmente organizados em registros ou outra estrutura lógica.

10 Exemplo: Associação entre Arquivo Físico e Arquivo Lógico Em Turbo Pascal: file arq; assign(arq, meuarq.dat ); Em C: (associa e abre para leitura) FILE *parq; parq = fopen( meuarq.dat, r )

11 Abertura de Arquivos Arquivo novo (p/ escrita) ou arquivo já existente (p/ leitura ou escrita) Em Turbo Pascal reset( ) //para arquivo existente rewrite( ) //para criar novo arquivo assign(arq, meuarq.dat ); reset(arq) ou rewrite(arq);

12 Abertura de Arquivos Em C Comandos fopen comando da linguagem open comando do sistema (chamada ao sistema operacional UNIX) Parâmetros especiais indicam o modo de abertura

13 Função fopen fd = fopen(<filename>,<flags>) filename:nome do arquivo a ser aberto flags:controla o modo de abertura r Abre apenas para leitura; o arquivo precisa existir w cria arquivo vazio para escrita (se já existe, é apagado) a adiciona conteúdo ao arquivo (append) r+ Abre arquivo para leitura e escrita w+ Cria arquivo vazio para leitura e escrita a+ Abre arquivo para leitura e adição (append) t = modo texto fim do arquivo é o primeiro <CTRL+Z> b = modo binário fim do arquivo é o último byte

14 Comando open fd = open(<filename>,<flags>,[pmode]) fd:descritor (identificador do arquivo lógico); open retorna NULL em caso de erro flags: controla modo de abertura O_APPEND: O_CREAT: O_RDONLY: O_WRONLY: O_RDWR: O_TRUNC: abre para escrita no final do arquivo cria o arquivo se ele não existe abre apenas para leitura abre apenas para escrita abre para leitura e escrita trunca o tamanho do arquivo para zero pmode:(opcional) seqüência octalindica permissões de acesso (p/ owner, group, world) Exemplo: pmode=0751 (rwxrw---x)

15 Fechamento de Arquivos Encerra a associação entre arquivos lógico e físico, garantindo que todas as informações sejam atualizadas e salvas (conteúdo dos buffers de E/S enviados para o arquivo). S.O.fecha o arquivo se o aplicativo não o fizer. Interessante para: Prevenir contra interrupção Liberar as estruturas associadas ao arquivo para outros arquivos

16 Exemplo: fechamento de arquivos Pascal: C: close(arq) // para open : close(fd); // para fopen : fclose(fd)

17 Leitura e Escrita C: Operações do S.O. Dados lidos/escritos como bloco de bytes read(<src-file>,<dest-addr>,<size>) write(<dest-file>,<src-addr>,<size>) Retornam o número de bytes lidos/escritos <src-file> e <dest-file>: descritores do arquivo <dest-addr> e <src-addr>: endereços de memória <size>: número de bytes a serem lidos/escritos

18 Leitura e Escrita C: Funções da linguagem fread(<dest-addr>, size, count, <src-file>) fwrite(<src-addr>, size, count, <dest-file>) Dados lidos/escritos em blocos de bytes (modo binário) <char> = fgetc(<src-file>) fputc(<dest-file>, <char>) Dados lidos/escritos um byte (caractere) por vez

19 Leitura e Escrita C: Funções da linguagem fgets(<string>, <max>, <src-file>) fputs(<string>, <max> <dest-file>) dados lidos/escritos como strings fscanf(<src-file>,...) fprintf(<dest-file>,...) dados lidos/escritos de modo formatado

20 Fim de Arquivo Ponteiro de arquivo: controla o próximo byte a ser lido Pascal: eof(arq)(função lógica) C: read()retorna o número de bytes lidos. Se igual a zero, indica final de arquivo.

O ponteiro no arquivo lógico 21

22 Acesso seqüencial X aleatório Leitura seqüencial:ponteiro de leitura avança byte a byte (ou por blocos), a partir de uma posição inicial Acesso aleatório (direto): acesso envolve o posicionamento do ponteiro em um byte ou registro arbitrário

23 Seeking Ação de mover o ponteiro para uma certa posição no arquivo Unix: C: lseek(<src-file>, <offset>, <origin>) pos=fseek(<src-file>, <offset>, <origin>) Retorna a posição final do ponteiro offset: posição desejada, em bytes, a partir de origin origin: SEEK_SET início do arquivo, SEEK_CUR posição atual, SEEK_END fim do arquivo Pascal: seek(arq, n) n é o número do registro

24 Bufferização Toda operação de I/O é bufferizada Buffer: I/O de dispositivos exceto discos (teclado, vídeo, etc.) Memória Cache: I/O discos 256K, 640K Os bytes passam por uma memória de transferência de tamanho fixo e de acesso otimizado, de maneira a serem transferidos em blocos Porque?

25 Bufferização Qual o tamanho dos blocos de leitura/escrita? Depende do SO e da organização do disco (sistema de arquivo: gerencia a manipulação de dados no disco, determinando como arquivos podem ser gravados, alterados, nomeados ou apagados) Ex. No Windows, é determinado pela FAT (FAT16, FAT32 ou NTFS)

FIM 26