\newpage Ejercicio 3 ==== Para este ejercicio se pide implementar la tarea `TaskBatch`, la cual simula una tarea que corre sin interacción humana, con una cantidad elevada de tiempo de CPU y con una serie de llamadas bloqueantes definidas. Estos tipos de procesamiento se conocen como _por lotes_ o _batch_, y suelen ser utilizados comunmente en ambientes corporativos donde suelen procesarse gran cantidad de datos. La implementación de `TaskBatch` consiste en crear un vector que posee las los tipos de usos que se van a realizar. Al vector se le inserta un `0` si es una operación de CPU o un `1` si es una operación de IO. Luego se utiliza la operación `random_shuffle` para distribuir las llamadas. Se recorre el vector y se realiza la operación que se encuentre almacenada en el mismo. Para probar y generar el gráfico de Gantt de la implementación realizada utilizamos el siguiente lote de tareas del tipo `TaskBatch`: | Task | Release Time | Total CPU | Cant. Bloqueos | |------|--------------|-----------|----------------| | 0 | 0 | 16 | 4 | | 1 | 5 | 11 | 2 | | 2 | 5 | 11 | 2 | | 3 | 10 | 6 | 1 | ![Ejercicio 3](informe/imagenes/ejercicio3_1core.png)