| 12345678910111213141516171819202122232425262728293031323334353637 |
- #ifndef __SCHED_MFQ__
- #define __SCHED_MFQ__
- #define uint unsigned int
- #include <vector>
- #include <queue>
- #include "basesched.h"
- using namespace std;
- class SchedMFQ : public SchedBase {
- public:
- SchedMFQ(std::vector<int> argn);
- ~SchedMFQ();
- virtual void initialize() {};
- virtual void load(int pid);
- virtual void unblock(int pid);
- virtual int tick(int n, const enum Motivo m);
-
- private:
- enum state { READY, BLOCKED, RUNNING };
- struct process {
- enum state state;
- uint quantum_count;
- };
- int ready_at(uint);
- uint next_pid();
- uint pid_queue(uint);
- uint n_colas;
- uint* q_cola;
- std::vector< std::map<int, process> > v_cola;
- typedef std::map<int,process>::iterator it_type;
-
- };
- #endif
|