#include "tasks.h" #include "stdlib.h" using namespace std; void TaskCPU(int pid, vector params) { // params: n uso_CPU(pid, params[0] - 1); // Uso el CPU n milisegundos. } void TaskIO(int pid, vector params) { // params: ms_pid, ms_io, uso_CPU(pid, params[0]); // Uso el CPU ms_pid milisegundos. uso_IO(pid, params[1]); // Uso IO ms_io milisegundos. } void TaskAlterno(int pid, vector params) { // params: ms_pid, ms_io, ms_pid, ... for(int i = 0; i < (int)params.size(); i++) { if (i % 2 == 0) uso_CPU(pid, params[i] - 1); else uso_IO(pid, params[i]); } } void TaskConsola(int pid, vector params) { int calls = params[0]; int bmin = params[1]; int bmax = params[2]; for (int i = 0; i < calls; i++) { uso_CPU(pid, 1); uso_IO(pid, rand() %(bmax-bmin) + bmin); } } void TaskBatch(int total_cpu, int cant_bloqueos) { while(cant_bloqueos>0){ //uso_IO(pid, rand() %(bmax-bmin) + bmin); cant_bloqueos--; } } void tasks_init(void) { /* Todos los tipos de tareas se deben registrar acá para poder ser usadas. * El segundo parámetro indica la cantidad de parámetros que recibe la tarea * como un vector de enteros, o -1 para una cantidad de parámetros variable. */ register_task(TaskCPU, 1); register_task(TaskIO, 2); register_task(TaskConsola, 3); register_task(TaskAlterno, -1); }