A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Ordenação Externa de Arquivos – Um exemplo

Apresentações semelhantes


Apresentação em tema: "Ordenação Externa de Arquivos – Um exemplo"— Transcrição da apresentação:

1 Ordenação Externa de Arquivos – Um exemplo
AULA 18 Profa. Sandra de Amo GBC053 – BCC

2 Arquivo Q de 108 páginas em disco
Descrever as operações para ordenar as tuplas do arquivo Q, distribuídas em 108 páginas em disco. Cada página tem duas tuplas, portanto o arquivo Q contém 216 tuplas ao todo. Dispõe-se de somente 4 páginas na memória principal para realizar a ordenação de todas as tuplas. Logo, não será possível carregar as 108 páginas de uma só vez e aplicar um algoritmo de ordenação interna (tipo quicksort, bubblesort, etc) Buffer com 4 páginas

3 Etapa 0 Arquivo em disco Ordena os registros das 4 páginas
em memória principal utilizando um algoritmo de ordenação interna: quicksort, bubblesort, por exemplo. Tais algoritmos são do tipo “in place”: fazem a ordenação utilizando o próprio espaço ocupado pelos registros, Sem necessidade de mais páginas livres para fazer as operações. Buffer com 4 páginas

4 Etapa 0 Buffer com 4 páginas

5 Etapa 0 Subarquivo 1 = 4 páginas ordenadas
Buffer com 4 páginas

6 Etapa 0 Subarquivo 1 = 4 páginas ordenadas
Buffer com 4 páginas Buffer com 4 páginas ... Subarquivo 27 = 4 páginas ordenadas

7 Custo da Etapa 0 Ao final da etapa 0 temos 27 arquivos de 4 páginas cada um. Cada um dos subarquivos está ordenado. Custo = = 216 I/Os Na etapa 0, carregamos blocos de 4 páginas cada no buffer. Total de blocos carregados = 108/4 = 27

8 Etapa 1 Agrupa-se os 27 subarquivos de 3 em 3 (3 = B – 1 = 4 - 1)
Cada bloco constituido de 3 subarquivos tem 3*4 = 12 páginas Nº de blocos de 12 páginas = 27/3 = 9

9 Etapa 1 São 9 iterações na etapa 1.
Em cada iteração, cada subarquivo de 12 páginas é carregado, ordenado na memória principal e gravado de volta no disco, totalmente ordenado. A ordenação de cada subarquivo utiliza um algoritmo de ordenação EXTERNA, de forma iterativa.

10 Etapa 1 No final da Etapa 1 temos 9 subarquivos de 12 páginas cada um.
Cada um dos 9 subarquivos está ordenado Custo da etapa 1 = 2*108 = 216 I/O

11 Etapa 2 Agrupa-se os 9 subarquivos de 3 em 3 (3 = B – 1 = 4 - 1)
Cada bloco constituído de 3 subarquivos tem 3*12 = 36 páginas Nº de blocos de 36 páginas = 9/3 = 3

12 Etapa 2 São 3 iterações na etapa 2.
Em cada iteração, cada subarquivo de 36 páginas é carregado, ordenado na memória principal e gravado de volta no disco, totalmente ordenado. A ordenação de cada subarquivo utiliza um algoritmo de ordenação EXTERNA, de forma iterativa.

13 Etapa 2 No final da Etapa 2 temos 3 subarquivos de 36 páginas cada um.
Cada um dos 3 subarquivos está ordenado Custo da etapa 2 = 2*108 = 216 I/O

14 Etapa 3 Agrupa-se os 3 subarquivos (3 = B – 1 = 4 - 1)
Temos um único bloco constituído de 3 subarquivos com 3*36 = 108 páginas

15 Etapa 3 Em uma única iteração o arquivo de 108 páginas é carregado, ordenado na memória principal e gravado de volta no disco, totalmente ordenado. A ordenação do arquivo utiliza um algoritmo de ordenação EXTERNA, de forma iterativa.

16 Etapa 3 No final da Etapa 3 temos 1 arquivo de 108 páginas completamente ordenado Custo da etapa 3 = 2*108 = 216 I/O Nº total de etapas = 1 + log3 ( 108/4) = 1 + log3 ( 27) = = 4 Custo total da ordenação = 4*216 = 864 I/O

17 Algoritmo Input: Arquivo A com P páginas (em disco), B = nº de páginas livres no buffer Output: Arquivo A ordenado (em disco). M = [P/B] [A1,...,AM] = Separa_SubArq(A) For each i = 1, ..., M do - Lê Ai - AiOrd = Ordena_INT(Ai) - Grava AiOrd M = [M/B-1] While M ≥ 1 do - [A1,...,AM] = Separa_SubArq(A) - Para cada i = 1, ..., M * Lê Ai * AiOrd = Ordena_EXT(Ai) * Grava AiOrd A = A1Ord U A2Ord U A3Ord U AMOrd M = [M/B-1]

18 Ordena_Ext Uma das 9 iterações da Etapa 1 Ai 5 10 1 7 13 6 11 18 9 14
21 11 16 22 15 19 30 20 24 32 22 28 35 25 Ai


Carregar ppt "Ordenação Externa de Arquivos – Um exemplo"

Apresentações semelhantes


Anúncios Google