Classificação Externa: Geração de Partições Classificadas

Documentos relacionados
Ordenação Externa. Ordenação Externa. Ordenação Externa. Ordenação Externa

Métodos de Ordenação

Memória secundária. Memória secundária

BCC202 - Estrutura de Dados I

Intercalação de vários arquivos. Estrutura de Dados II Prof Jairo Francisco de Souza

ESTRUTURA DE DADOS VETORES E LISTAS LINEARES

Aula 3 Listas Lineares Sequenciais Ordenadas. prof Leticia Winkler

Algoritmos e Estruturas de Dados I1 Prof. Eduardo 1

Estrutura de Dados. Algoritmos de Ordenação. Prof. Othon M. N. Batista Mestre em Informática

Simulador didático de testes de algoritmos de ordenação

Métodos de ordenação. Bubble sort:

Departamento de Engenharia Rural Centro de Ciências Agrárias. Programação I

QuickSort. Estrutura de Dados II Jairo Francisco de Souza

SUMÁRIO. Fundamentos Árvores Binárias Árvores Binárias de Busca

Capítulo 11 Sistemas de Arquivos

Universidade Estadual de Mato Grosso do Sul Bacharelado em Ciência da Computação Algoritmos e Estruturas de Dados II Prof. Fabrício Sérgio de Paula

Classificação por Intercalação

Busca em Memória Primária Estrutura de Dados II

indexação e hashing Construção de Índices e Funções Hash Diego Gomes Tomé - MSc. Informática Orientador: Prof. Dr. Eduardo Almeida October 13, 2016

Sistemas Operacionais. Interrupção e Exceção

O Problema da Ordenação Métodos de Ordenação Parte 1

Pesquisa em Memória Secundária. Prof. Jonas Potros

Linguagem C vetores multidimensionais

FUNDAMENTOS DE ARQUITETURAS DE COMPUTADORES MEMÓRIA CACHE CAPÍTULO 5. Cristina Boeres

Listas de Prioridade. Fonte de consulta: Szwarcfiter, J.; Markezon, L. Estruturas de Dados e seus Algoritmos, 3a. ed. LTC.

Classificação e Pesquisa de Dados. Aula 23 Organização de Arquivos: Arquivos Indexados, Diretos e Arquivos Invertidos

INF111 Programação II Aulas 11, 12, 13 Ordenação

TABELA HASH. Prof. André Backes. Princípio de funcionamento dos métodos de busca

Capítulo 5 Livro do Mário Monteiro Conceituação. Elementos de projeto de memória cache

Acesso Sequencial Indexado

Teoria da Computação. Aula 9 Pesquisa em Memória Secundária 5COP096. Aula 9 Prof. Dr. Sylvio Barbon Junior. Sylvio Barbon Jr

Sistemas de arquivos

Ordenação em Memória Primária Estrutura de Dados II

Organização de Arquivos. SCE-183 Algoritmos e Estruturas de Dados II

Análise de Algoritmos

Estrutura de Dados. Plano de Ensino. Vilson Heck Junior. Campus Lages. Instituto Federal de Santa Catarina

LINGUAGEM C: ARQUIVOS

Hashing: conceitos. Hashing

Arquivos Sequenciais Ordenados Fisicamente

O mais leve e o mais pesado Algoritmos de Ordenação

Lista de Exercícios. Av. Trabalhador São-carlense, 400. centro. São Carlos - SP cep Brasil.

Medida do Tempo de Execução de um Programa. Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP

Lista de Figuras Figura 1 1: Figura 1 2: Figura 1 3: Figura 1 4: Figura 1 5: Figura 1 6: Figura 1 7: Figura 1 8: Figura 1 9: Figura 1 10:

Introdução Métodos de Busca Parte 1

Processador: Conceitos Básicos e Componentes

Capítulo 14. Ordenação e pesquisa. Bubblesort. Alguns algoritmos de ordenação e pesquisa Medição do tempo de execução de um programa

ORGANIZAÇÃO DE ARQUIVOS INDEXADOS

Matrizes esparsas: definição

Linguagem de Descrição de algoritmos

Estruturas de Dados 2

Documento de Requisitos SISTEMA DE APOIO À ESCRITA (SAPES)

BC1424 Algoritmos e Estruturas de Dados I Aula 05 Custos de um algoritmo e funções de complexidade

INE5408 Estruturas de Dados

Ordenação e Pesquisa

Introdução à Programação. Vanessa Braganholo

ORDENAÇÃO E BUSCA 1. MÉTODOS DE ORDENAÇÃO

Métodos de Pesquisa de Dados (II) Árvore N-ária de Pesquisa

Uma pasta é pouco mais que um contêiner no qual é possível armazenar arquivos. Se

Complexidade de algoritmos Notação Big-O

Compressão de Textos. Introdução. Introdução. Introdução. O volume de informação textual disponível on-line é imenso:

Aula 02: Custos de um algoritmo e funções de complexidade

Método Guloso. Troco mínimo. Paulo Eustáquio Duarte Pinto (pauloedp arroba ime.uerj.br) junho/2012. Troco mínimo. Troco mínimo

Aula 21 Ordenação externa

Aula 04 / LAB 01 Resolução de problemas por meio de busca Prof. Dr. Alexandre da Silva Simões. Exercício 1. Problema dos jarros de água

Vença o relógio Redes de Ordenação

Introdução à Programação

Oracle Database 11g: Introdução à Linguagem SQL Novo

Memória Volátil Em um computador, contrário a memória não volátil, é aquela cuja informação se perde ao se interromper o fluxo de corrente elétrica.

Aula 4B. Lógica e Algoritmos. Profª. Fabiany

Aprender a utilizar o aplicativo Gnuplot para fazer gráficos

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

Estruturas de Dados. Filas em que a prioridade de remoção não é cronológica. Maior prioridade não é do elemento que ingressou primeiro

ARMAZENAMENTO SECUNDÁRIO, PARTE 1 Professora Rosane Minghim

Vetores. Vanessa Braganholo

ICET CURSO: Ciência da Computação e Sistemas de Informação (Sistemas Operacionais Abertos) Estudos Disciplinares. Campus: Data: / / Nome: Questão 1:

MATEMÁTICA - 2º ANO. Novo programa de matemática Objetivos específicos

Análise e Síntese de Algoritmos. Revisão CLRS, Cap. 7-10

AGRUPAMENTO de ESCOLAS Nº1 de SANTIAGO do CACÉM Ano Letivo 2013/2014 PLANIFICAÇÃO ANUAL

Árvores B. Prof. Márcio Bueno. / Fonte: Material da Prof a Ana Eliza Lopes Moura

Transcrição:

Classificação Externa: Geração de Partições Classificadas Vanessa Braganholo Baseado no Material de: Inhaúma Neves Ferraz (IC/UFF)

Cenário: Arquivos Sequencias } Acesso não pode ser feito em posições aleatórias do arquivo } Para ler o 10o. registro é necessário antes ler os 9 registros anteriores 2

Consulta } Dada uma tabela com 10 registros e o valor de uma chave, como encontrar o registro correspondente na tabela?

Consulta } Dada uma tabela com 10 registros e o valor de uma chave, como encontrar o registro correspondente na tabela? } Solução: busca sequencial dentro do arquivo } Recuperar o primeiro registro, testar a chave. } Caso não seja a chave pesquisada, recuperar o segundo registro, testar, e assim por diante, até encontrar o registro ou chegar ao final do arquivo

Exemplo: Procurar a chave 201 CHAVE A B C D 300 A1 B1 C1 D1 200 A2 B2 C2 D2 215 A3 B3 C3 D3 201 A4 B4 C4 D4 230 A5 B5 C5 D5 205 A6 B6 C6 D6 225 A7 B7 C7 D7 280 A8 B8 C8 D8

Grandes volumes de dados } E para 1.000.000 de registros? } É possível ser mais eficiente? 6

Solução de Contorno } As tabelas são mantidas ordenadas pela chave primária. } Deste modo não é necessário ir até o final do arquivo para saber que uma determinada chave não está no arquivo } Assim que uma chave maior do que a chave que está sendo procurada for encontrada, sabe-se que a chave procurada não está lá

Procurar a chave 202 CHAVE A B C D 200 A2 B2 C2 D2 201 A4 B4 C4 D4 205 A6 B6 C6 D6 215 A3 B3 C3 D3 225 A7 B7 C7 D7 230 A5 B5 C5 D5 280 A8 B8 C8 D8 300 A1 B1 C1 D1

Ordenação em Memória Principal } Uma possível forma de ordenar um arquivo é: 1. ler todos os registros 2. armazená-los em memória principal 3. ordenar os registros (insertion sort, selection sort, quick sort, etc.) 4. gravá-los em um arquivo de saída 9

Mas } E quando os registros não cabem na memória? 10

Tipos de Classificação } Classificação interna: utilização exclusiva de memória principal } Todos os registros do arquivo cabem em memória principal } Classificação externa: utilização de memória secundária } Há mais registros a serem classificados do que é possível manter na memória principal em qualquer momento ATENÇÃO: Nessa disciplina usamos o termo classificação como sinônimo de ordenação 11

Conceito de Classificação Externa } Na classificação externa o parâmetro fundamental é o número de operações de entrada e saída } Deve ser o menor possível 12

Discussão } Como poderíamos resolver o problema de ordenar um arquivo muito grande, que não cabe em memória? 13

Ideia básica da Classificação Externa } A Classificação Externa divide os arquivos em pequenas frações que são ordenadas e intercaladas em duas etapas: } Classificação } Intercalação 14

Modelo da Classificação Externa 15

Na aula de hoje: Etapa de Classificação 16

Etapa de Classificação } Partição: sequencia ordenada de n registros. } Registros são lidos de arquivos de entrada (não ordenados) e/ou de partições (ordenadas) } Estes registros são ordenados e gravados em arquivos de saída ou partições ordenadas 17

Geração de Partições Classificadas

Métodos do Estágio de Classificação } Métodos } Classificação interna } Seleção com substituição } Seleção natural } Considera-se que a memória principal tenha capacidade para armazenar M registros do arquivo a classificar 19

Classificação Interna

Classificação Interna } Critério fundamental de eficiência da classificação interna: número de comparações entre chaves de registros } Consiste na leitura de M registros para a memória, classificação desses registros por qualquer processo de classificação interna e gravação desses registros classificados em uma partição } Todas as partições classificadas contêm M registros, exceto, talvez, a última 21

Processos de classificação interna } Troca: bubble sort, shaker sort, quick sort } Seleção: direta, heap sort, } Inserção: simples, shell sort } Outros: merge sort, etc. 22

Visão geral da Geração de partições Classificadas M Entrada Memória Partição de Saída M 23

Exemplo } Chaves do arquivo a ordenar } (Sequência de leitura: 29, 14, 76, ) } Assumir que na memória cabem 6 registros simultaneamente 29 14 76 75 59 6 7 74 48 46 10 18 56 20 26 4 21 65 22 49 11 16 8 15 5 19 50 55 25 66 57 77 12 30 17 9 54 78 43 38 51 32 58 13 73 79 27 1 3 60 36 47 31 24

Exemplo 29 14 76 75 59 6 7 74 48 46 10 18 56 20 26 4 21 65 22 49 11 16 8 15 5 19 50 55 25 66 57 77 12 30 17 9 54 78 43 38 51 32 58 13 73 79 27 1 3 60 36 47 31 25

Exemplo Memória Principal 29 14 76 75 59 6 Leitura 29 14 76 75 59 6 7 74 48 46 10 18 56 20 26 4 21 65 22 49 11 16 8 15 5 19 50 55 25 66 57 77 12 30 17 9 54 78 43 38 51 32 58 13 73 79 27 1 3 60 36 47 31 26

Exemplo Memória Principal 29 14 76 75 59 6 Ordenação 29 14 76 75 59 6 7 74 48 46 10 18 56 20 26 4 21 65 22 49 11 16 8 15 5 19 50 55 25 66 57 77 12 30 17 9 54 78 43 38 51 32 58 13 73 79 27 1 3 60 36 47 31 27

Exemplo Memória Principal 6 14 29 69 75 76 Ordenação 29 14 76 75 59 6 7 74 48 46 10 18 56 20 26 4 21 65 22 49 11 16 8 15 5 19 50 55 25 66 57 77 12 30 17 9 54 78 43 38 51 32 58 13 73 79 27 1 3 60 36 47 31 28

Exemplo Memória Principal 6 14 29 69 75 76 Partição 1 (em disco) ordenada 6 14 29 69 75 76 29 14 76 75 59 6 7 74 48 46 10 18 56 20 26 4 21 65 22 49 11 16 8 15 5 19 50 55 25 66 57 77 12 30 17 9 54 78 43 38 51 32 58 13 73 79 27 1 3 60 36 47 31 29

Exemplo Partição 1 (em disco) ordenada 6 14 29 69 75 76 29 14 76 75 59 6 7 74 48 46 10 18 56 20 26 4 21 65 22 49 11 16 8 15 5 19 50 55 25 66 57 77 12 30 17 9 54 78 43 38 51 32 58 13 73 79 27 1 3 60 36 47 31 30

Área de trabalho Partições obtidas Memória 29 14 76 75 59 6 6 14 29 59 75 76 Memória 7 74 48 46 10 18 7 10 18 46 48 74 Memória 56 20 26 4 21 65 4 20 21 26 56 65 Memória 22 49 11 16 8 15 8 11 15 16 22 49 Memória 5 19 50 55 25 66 5 19 25 50 55 66 Memória 57 77 12 30 17 9 9 12 17 30 57 77 Memória 54 78 43 38 51 32 32 38 43 51 54 78 Memória 58 13 73 79 27 1 1 13 27 58 73 79 Memória 3 60 36 47 31 3 31 36 47 60

Seleção com Substituição

Seleção com substituição } Aproveita a possível classificação parcial do arquivo de entrada 33

Seleção com substituição: Algoritmo 1. Ler M registros do arquivo para a memória 2. Selecionar, no array em memória, o registro r com menor chave 3. Gravar o registro r na partição de saída 4. Substituir, no array em memória, o registro r pelo próximo registro do arquivo de entrada 5. Caso a chave deste último seja menor do que a chave recém gravada, considerá-lo congelado e ignorá-lo no restante do processamento 6. Caso existam em memória registros não congelados, voltar ao passo 2 7. Caso contrário: - fechar a partição de saída - descongelar os registros congelados - abrir nova partição de saída - voltar ao passo 2 34

Exemplo } Chaves do arquivo a ordenar } (Sequência de leitura: 29, 14, 76, ) } Assumir que na memória cabem 6 registros simultaneamente 29 14 76 75 59 6 7 74 48 46 10 18 56 20 26 4 21 65 22 49 11 16 8 15 5 19 50 55 25 66 57 77 12 30 17 9 54 78 43 38 51 32 58 13 73 79 27 1 3 60 36 47 31 80 35

Área de trabalho Partições obtidas Registros 1 2 3 4 5 6 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 3 a substituição 20 2 a substituição 10 18 74 1 a substituição 46 48 4 26 56 7 Memória 29 14 76 75 59 6 6 7 14 29 46 48 59 74 75 76 A 1 a partição ficou com 10 registros 2 a substituição 19 16 11 15 1 a substituição 65 22 21 8 5 49 Memória 10 18 4 26 56 20 4 10 18 20 21 22 26 49 56 65 A 2 a partição ficou com 10 registros 3 a substituição 43 2 a substituição 78 9 12 17 30 54 1 a substituição 77 57 25 55 50 66 Memória 19 16 11 8 5 15 5 8 11 15 16 19 25 50 55 57 66 77 78 A 3 a partição ficou com 13 registros 3 a substituição 60 2 a substituição 36 73 27 13 3 1 a substituição 79 38 51 32 58 1 Memória 43 9 12 17 30 54 9 12 17 30 32 38 43 51 54 58 73 79 A 4 a partição ficou com 12 registros 1 a substituição 80 31 47 Memória 36 60 27 13 3 1 1 3 13 27 31 36 47 60 80 A 5 a partição ficou com 9 registros Registros congelados Legenda Divisão de regiões na tabela

Tamanho das partições geradas } Em média, o tamanho das partições obtidas pelo processo de seleção com substituição é de 2 * M 37

Seleção Natural

Seleção Natural } Desvantagem da seleção com substituição: no final da partição grande parte do espaço em memória principal está ocupado com registros congelados } Na seleção natural, reserva-se um espaço de memória secundária (o reservatório) para abrigar os registros congelados num processo de substituição } A formação de uma partição se encerra quando o reservatório estiver cheio ou quando terminarem os registros de entrada } Para a memória comportando M registros supõe-se um reservatório comportando n registros } Para M = n o comprimento médio das partições é de M * e, onde e = 2,718.... 39

Seleção Natural: Algoritmo 1. Ler M registros do arquivo para a memória 2. Selecionar, no array em memória, o registro r com menor chave 3. Gravar o registro r na partição de saída 4. Substituir, no array em memória, o registro r pelo próximo registro do arquivo de entrada 5. Caso a chave deste último seja menor do que a chave recém gravada, gravá-lo no reservatório e substituir, no array em memória, o registro r pelo próximo registro do arquivo de entrada 6. Caso ainda exista espaço livre no reservatório, voltar ao passo 2 7. Caso contrário: - fechar a partição de saída - copiar os registros do reservatório para o array em memória - esvaziar o reservatório - abrir nova partição de saída - voltar ao passo 2 40

Exemplo } Chaves do arquivo a ordenar } (Sequência de leitura: 29, 14, 76, ) } Assumir que na memória cabem 6 registros simultaneamente (M = 6), e que o tamanho do reservatório também é 6 (n = 6) 29 14 76 75 59 6 7 74 48 46 10 18 56 20 26 4 21 65 22 49 11 16 8 15 5 19 50 55 25 66 57 77 12 30 17 9 54 78 43 38 51 32 58 13 73 79 27 1 3 60 36 47 31 80 41

Área de trabalho Partições obtidas Registros 1 2 3 4 5 6 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 2 a substituição 56 74 1 a substituição 46 48 7 Memória 29 14 76 75 59 6 6 7 14 29 46 48 56 59 74 75 76 Reservatório 10 18 20 26 4 21 A 1 a partição ficou com 11 registros 1 a substituição 22 49 65 Memória 10 18 20 26 4 21 4 10 18 20 21 22 26 49 65 Reservatório 11 16 8 15 5 19 A 2 a partição ficou com 9 registros 3 a substituição 54 2 a substituição 30 78 1 a substituição 25 57 55 66 50 77 Memória 11 16 8 15 5 19 5 8 11 15 16 19 25 30 50 54 55 57 66 77 78 Reservatório 12 17 9 43 38 51 A 3 a partição ficou com 15 registros 2 a substituição 79 1 a substituição 58 73 32 47 60 Memória 12 17 9 43 38 51 9 12 17 32 38 43 47 51 58 60 73 79 Reservatório 13 27 1 3 36 31 A 4 a partição ficou com 12 registros 1 a substituição 80 Memória 42 13 27 1 3 36 31 1 3 13 27 31 36 80 Reservatório A 5 a partição ficou com 7 registros

Comparação dos Processos } A classificação interna gera as menores partições, o que implica em mais arquivos a intercalar } Os processos de seleção geram partições maiores, reduzindo o tempo total de processamento } A seleção natural sofre o ônus adicional de utilizar mais operações de entrada e saída (devido ao reservatório estar em memória secundária) 43

Exercício 1 } Gerar partições classificadas segundo o método de Seleção com Substituição para a seguinte situação } Assumir que na memória cabem 7 registros simultaneamente } Arquivo a ordenar 30 14 15 75 32 6 5 81 48 41 87 18 56 20 26 4 21 65 22 49 11 16 8 12 44

Exercício 2 } Repetir o exercício anterior, agora utilizando o método de Seleção Natural } Assumir que na memória cabem 7 registros simultaneamente. Tamanho do reservatório = 7. } Arquivo a ordenar 30 14 15 75 32 6 5 81 48 41 87 18 56 20 26 4 21 65 22 49 11 16 8 12 45

Exercício 3 } Implementar um dos 2 métodos de geração de partições vistos na aula de hoje (Seleção com Substituição ou Seleção Natural) 46