13 - Procesamiento coordinado

12

description

 Dichas lista se pueden producir ya sea por: (archivo1) (archivo 2) Lista única Lista 2 Lista 1 Esta se usa para cuando se quiere obtener los nombres comunes de entre dos listas.  Las listas deben de estar en orden ascendente.  Se inicia con la lectura del nombre inicial del la lista 1 y lo compara con el nombre inicial de la lista 2.  Si encuentra una correspondencia se inserta el elemento en un nuevo archivo y se leen los siguientes de las dos listas.

Transcript of 13 - Procesamiento coordinado

Page 1: 13 - Procesamiento coordinado
Page 2: 13 - Procesamiento coordinado

La operaciones secuenciales coordinadas

implica el procesamiento coordinado de dos

o más listas secuenciales para producir una

única lista de salida.

Dichas lista se pueden producir ya sea por:

Correspondencia (intersección)

Intercalación (unión)

Lista única

Lista 1

Lista 2

(archivo1)

(archivo 2)

Page 3: 13 - Procesamiento coordinado

Esta se usa para cuando se quiere obtener

los nombres comunes de entre dos listas.

Las listas deben de estar en orden

ascendente.

Se inicia con la lectura del nombre inicial del

la lista 1 y lo compara con el nombre inicial

de la lista 2.

Si encuentra una correspondencia se inserta

el elemento en un nuevo archivo y se leen los

siguientes de las dos listas.

Page 4: 13 - Procesamiento coordinado
Page 5: 13 - Procesamiento coordinado

• Asignación de valores iniciales. Acomodar la

información.

• Sincronización. Debe asegurarse que el nombre

actual de una de las listas nunca esté tan adelante del

nombre actual de la otra lista que se pierda una

correspondencia posible. Algunas veces esto implica

leer el siguiente nombre de la lista 1, otra vesces de

la lista 2, y otras, de ambas listas.

• Manejo del estado de fin de archivo. Cuando se llega

al final de archivo 1 o 2 es necesario detener el

programa.

• Reconocimiento de errores. (Nombre duplicados o

nombres fuera de secuencia) se debe detectar y

efectuar alguna acción.

Page 6: 13 - Procesamiento coordinado

Esta se usa para cuando se quiere obtener los nombres de ambas listas sin repeticiones.

Es la unión de los elementos de dos listas.

La diferencia entre la correspondencia y la intercalación es que con la intercalación deben leerse totalmente las listas.

La función para identificar si hay mas nombres en la lista debe estar en verdadero mientras haya registros en cualquiera de las dos listas y el proceso debe reconocer cuando una lista se agoto para dejar de leerla.

Page 7: 13 - Procesamiento coordinado
Page 8: 13 - Procesamiento coordinado
Page 9: 13 - Procesamiento coordinado

Suposiciones Comentarios Dos o más archivos de entrada se procesan

en forma paralela para producir uno o más

archivos do salida.

En algunos casos, un archivo de salida

puede ser el mismo que uno de los de

entrada.

En algunos casos debe existir un valor de

llave alto que sea más grande que cualquier

llave legítima de registro, y un valor bajo

que sea menor que cualquier llave legítima

de registro.

El uso de un valor de llave alto y de uno

bajo no es absolutamente necesario, pero

puede ayudar a evitar la necesidad de

tratar como casos especiales los estados de

inicio y final de archivo y, por lo tanto,

disminuir la complejidad.

Los registros se procesan en el orden lógico

de clasificación.

El orden físico de los registros es

irrelevante para el modelo, pero en la

práctica puede ser muy importante para la

manera de implantarlo. El orden físico

puede influir en la eficiencia del

procesamiento.

Para cada archivo existe sólo un registro

actual. Este es el registro cuya llave es

accesible dentro del ciclo de sincronización

El modelo no prohíbe buscar registros

delante o hacia atrás, pero tales

operaciones deben restringirse a

subprocedimientos, y no debe permitirse

que se afecte la estructura del ciclo

principal de sincronización.

Los registros pueden manipularse sólo en

memoria interna.

Un programa no puede alterar un registro

en el almacenamiento secundario.

Page 10: 13 - Procesamiento coordinado

1. Asignación de valores iniciales. Los

registros actuales para todos los archivos se

leen de los primeros registros lógicos en los

archivos respectivos. Los valores de

Llave_anterior para todos los archivos se

asignan con el valor bajo.

2. Se emplea un ciclo principal de

sincronización, que continúa mientras haya

registros relevantes.

Page 11: 13 - Procesamiento coordinado

3. Dentro del cuerpo del ciclo principal de sincronización hay una selección basada en la comparación de las llaves de registro de los registros respectivos de los archivos de entrada. Si hay dos archivos de entrada, la selección se ve así:

si (llave_actual_archivo3 > llave_actual_archivo2} entonces otro si (llave_actual_archivo1 llavo_actual_archivo2>

entonces otro /* Las llaves actuales son iguales */

fin si

4. Se revisa que los archivos de entrada y salida estén en secuencia, comparando el valor llave_interior, con el valor llave_actual, cuando se lee un registro. Después de revisar con éxito la secuencia, se asigna llave_interior a llave_actual, para preparar la siguiente operación de entrada en el archivo correspondiente.

Page 12: 13 - Procesamiento coordinado

5. Los valores altos se sustituyen en los valores de llave actual cuando aparece un final de archivo. El ciclo principal de procesamiento termina cuando han ocurrido los valores altos para todos los archivos de entrada relevantes. El uso de valores altos evita la necesidad de agregar un código especial para el estado de final de archivo. (Este caso no es necesario en un procedimiento de correspondencia pura, porque el procedimiento de correspondencia se detiene cuando se encuentra el primer estado de final de archivo.)

6. Todas las actividades posibles de E/S y detección de errores se relegan a subprocesos, de tal forma que los detalles de estas actividades no obscurezcan la lógica del procesamiento principal.