#ifndef __SCHED_RSJF__ #define __SCHED_RSJF__ #include #include #include #include #include #include "basesched.h" using namespace std; class SchedRSJF : public SchedBase { public: SchedRSJF(std::vector argn); ~SchedRSJF(); virtual void initialize() {}; virtual void load(int pid); virtual void unblock(int pid); virtual int next_process(int pid); virtual int tick(int cpu, const enum Motivo m); private: uint nucleos; uint* quantums; struct Process { int pid; uint duration; uint quantum_count; // Esto permite ordenar por la duración mínima int operator()(const Process& me, const Process& other) { cout << "Duration: " << me.duration << " < " << other.duration << "\n"; return me.duration > other.duration; } }; std::map p_map; // Mapeo de los procesos std::priority_queue, Process> pq; // Procesos en estado READY o RUNNING }; #endif