printing tasks karolina rivera jean robert charles jacinthe

20
Printing Tasks Karolina Rivera Jean Robert Charles Jacinthe

Upload: natividad-villalobos-san-segundo

Post on 24-Jan-2016

218 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Printing Tasks Karolina Rivera Jean Robert Charles Jacinthe

Printing Tasks

Karolina RiveraJean Robert Charles Jacinthe

Page 2: Printing Tasks Karolina Rivera Jean Robert Charles Jacinthe

Un queue (cola) es una colección ordenada de elementos, donde se añaden elementos por atrás (trasero) y se empujan asea el “frente” donde se extraen por orden de entrada FIFO (First-in-First-Out).

What is a Queue?

Page 3: Printing Tasks Karolina Rivera Jean Robert Charles Jacinthe

En un día promedio 10 alumnos trabajan en el lab de computadoras con un tiempo dado. Suelen imprimir hasta 2 veces en ese tiempo y las tareas pueden ser de 1 a 20 páginas. En el lab la impresora (industrial) es capaz de procesar 10 páginas por minuto. Esta se podría cambiar buscando mejor calidad pero limitaría la impresión a 5 páginas por minuto. Esto atrasa a los estudiantes.

Printing Problem

Page 4: Printing Tasks Karolina Rivera Jean Robert Charles Jacinthe

• La fila se hace por orden de llegada (first-in-first-out).

• Cuando se termine una tarea (“task”) se ira a la siguiente.

Page 5: Printing Tasks Karolina Rivera Jean Robert Charles Jacinthe

¿Cuánto seria el límite de páginas que se debería imponer para poder agilizar el proceso?

Printing Problem

Si hay 10 estudiantes en el lab y cada uno imprime 2 veces serán 20 “print task” por hora como normal.

Page 6: Printing Tasks Karolina Rivera Jean Robert Charles Jacinthe

Podrían imprimir un solo documento que tenga de 1 a 20 páginas de largo.Si el contenido de cada papel es igual, la ejercitación del “print task” se hará de manera mas rápida.

Page 7: Printing Tasks Karolina Rivera Jean Robert Charles Jacinthe

¿Cuál es la probabilidad de que en un momento dado una tarea de impresión se va a crear?

Page 8: Printing Tasks Karolina Rivera Jean Robert Charles Jacinthe

Una tarea cada 180 segundos.

Page 9: Printing Tasks Karolina Rivera Jean Robert Charles Jacinthe

Main Simulation Steps

1. Crear un queue de print tasks. Cada task se le dará una marca de tiempo a su llegada. El queue al principio está vacío.

2. Para cada segundo (currentSecond):• ¿Se crea un nuevo print task? Si es así, agregarlo al queue con el

currentSecond para marcar el tiempo.

Page 10: Printing Tasks Karolina Rivera Jean Robert Charles Jacinthe

• Si el printer está vacío y un task espera,

• Mueve el siguiente task a el print queue y asígnalo al printer.• Substrae el timetamp del currentSecond para completar el

tiempo de espera del task.• Añada el tiempo de espera para esa tarea a una lista para

luego procésalo.• Basado en el número de páginas del print task, calcular

cuánto tiempo se requerirá.

Page 11: Printing Tasks Karolina Rivera Jean Robert Charles Jacinthe

• El printer hace un segundo de impresión si es necesario. También resta un segundo del tiempo requerido para esa la tarea.

• Si la tarea se ha completado, en otras palabras, el tiempo requerido ha llegado a cero, la impresora ya no está ocupado.

3. Después que la simulación este completa, calcular el promedio de tiempo de espera de la lista de tiempos de espera.

Page 12: Printing Tasks Karolina Rivera Jean Robert Charles Jacinthe

La clase Printer necesita saber si un task o tarea esta siendo imprimida. Si hay una tarea en la impresora pues esta esta “busy” (ocupada) y la cantidad de tiempo necesario puede ser computarizado por el numero de paginas en la tarea. El método tick disminuye el tiempo interno y establece el printer en estado de reposo si se terminas los tasks.

Page 13: Printing Tasks Karolina Rivera Jean Robert Charles Jacinthe

El método busy te dirá si con un True or False (cierto o falso) si el printer está desocupado o no, si esta ocupado es cierto cuando no es falso.

El método startNext hace que el printer siga a la próxima tarea y siga el siclo otra vez.

Page 14: Printing Tasks Karolina Rivera Jean Robert Charles Jacinthe

Aquí se le estará indicando a la simulación cuantas paginas tendrá la tarea.

Page 15: Printing Tasks Karolina Rivera Jean Robert Charles Jacinthe

Printing Class

Page 16: Printing Tasks Karolina Rivera Jean Robert Charles Jacinthe

Cada tarea necesita guardar un timestamp para poder computar el tiempo de espera. El timestamp representara el tiempo en que la tarea fue creada.El método waitTime puede ser usado para recuperar la cantidad de tiempo usado en la cola antes de que la impresión comience.

Page 17: Printing Tasks Karolina Rivera Jean Robert Charles Jacinthe
Page 18: Printing Tasks Karolina Rivera Jean Robert Charles Jacinthe

def simulation

El objeto printQueue es una instancia de nuestro ADT cola existente. Una función auxiliar booleano, newPrintTask, decide si una nueva tarea de impresión se ha creado.

Se utiliza otra vez la función randrange desde el módulo al azar para devolver un número entero aleatorio entre 1 y 180. Tareas de impresión llega una vez cada 180 segundos.

Al elegir al azar 180 de la gama de enteros aleatorios (línea 32), podemos simular este evento aleatorio. La función de simulación nos permite establecer el tiempo total y las páginas por minuto para la impresora.

Page 19: Printing Tasks Karolina Rivera Jean Robert Charles Jacinthe
Page 20: Printing Tasks Karolina Rivera Jean Robert Charles Jacinthe

Task Class