\newpage
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 |