| 12345678910111213141516171819202122232425262728293031323334353637383940 |
- #ifndef __SCHED_RR__
- #define __SCHED_RR__
- #include <map>
- #include <queue>
- #include <vector>
- #include <algorithm>
- #include "basesched.h"
- using namespace std;
- class SchedRR : public SchedBase {
- public:
- SchedRR(std::vector<int> argn);
- ~SchedRR();
- virtual void initialize() {};
- virtual void load(int pid);
- virtual void unblock(int pid);
- virtual int tick(int cpu, const enum Motivo m);
- virtual int next_pid(uint cur_pid);
- private:
- uint nucleos;
- uint* quantums;
-
- enum state { READY, BLOCKED, RUNNING };
-
- struct process {
- int pid;
- enum state state;
- uint quantum_count;
- };
-
- std::map<int, process> p_map;
- typedef std::map<int,process>::iterator it_type;
- /* llenar */
- };
- #endif
|