- Added the Schedulable interface

- Renamed SchedulableStatus to DynamicSchedulable
- Implemented almost all methods of DynamicSchedulable

git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@630 3ecf2c5c-341e-0410-92b4-d18e462d057c
This commit is contained in:
elvez 2006-06-13 16:37:57 +00:00
parent 94c0b563c7
commit a1662de194
22 changed files with 492 additions and 239 deletions

View file

@ -36,7 +36,7 @@
#include "backend/slice.hh"
#include "backend/observed_subject.hh"
#include "backend/schedulable_queue.hh"
#include "backend/schedulable_status.hh"
#include "backend/dynamic_schedulable.hh"
#include "templates/smartp.hh"
using namespace sgpem;
@ -83,7 +83,7 @@ public:
int _history_length; // mirrors the correct length of the history
SchedulableQueue* _get_simulation_status_at[400]; // mirrors the correct content of the history
SchedulableStatus* _get_scheduled_at[400]; // mirrors the correct content of the history
DynamicSchedulable* _get_scheduled_at[400]; // mirrors the correct content of the history
SchedulableQueue _internal_schedulable_queue;
@ -104,7 +104,7 @@ public:
{
std::cout << "get_simulation_status_at";
}
if (History::get_instance().get_scheduled_at(i) != memory::smart_ptr<SchedulableStatus>(NULL) && !(*History::get_instance().get_scheduled_at(i) == *_get_scheduled_at[i]))
if (History::get_instance().get_scheduled_at(i) != memory::smart_ptr<DynamicSchedulable>(NULL) && !(*History::get_instance().get_scheduled_at(i) == *_get_scheduled_at[i]))
{
std::cout << "get_simulation_status_at";
}
@ -121,8 +121,8 @@ public:
_history_length = _history_length + 1;
_get_simulation_status_at[_history_length] = new SchedulableQueue(status);
if (History::get_instance().get_scheduled_at(_history_length) != memory::smart_ptr<SchedulableStatus>(NULL))
_get_scheduled_at[_history_length] = new SchedulableStatus(*(status.top()));
if (History::get_instance().get_scheduled_at(_history_length) != memory::smart_ptr<DynamicSchedulable>(NULL))
_get_scheduled_at[_history_length] = new DynamicSchedulable(*(status.top()));
else
_get_scheduled_at[_history_length] = NULL;
return;
@ -149,7 +149,7 @@ public:
{
status.get_item_at(i)->give_cpu_time(i%2);
status.get_item_at(i)->set_last_scheduled(_history_length%30);
status.get_item_at(i)->set_state(i%2 ? SchedulableStatus::state_running : SchedulableStatus::state_ready);
status.get_item_at(i)->set_state(i%2 ? DynamicSchedulable::state_running : DynamicSchedulable::state_ready);
}
return;
}
@ -212,25 +212,25 @@ main(int argc, char** argv)
StaticProcess p19("PK", 10,24,17);
StaticProcess p20("PK2", 11,34,67); // not used!
SchedulableStatus ss1(p1);
SchedulableStatus ss2(p2);
SchedulableStatus ss3(p3);
SchedulableStatus ss4(p4);
SchedulableStatus ss5(p5);
SchedulableStatus ss6(p6);
SchedulableStatus ss7(p7);
SchedulableStatus ss8(p8);
SchedulableStatus ss9(p9);
SchedulableStatus ss10(p10);
SchedulableStatus ss11(p11);
SchedulableStatus ss12(p12);
SchedulableStatus ss13(p13);
SchedulableStatus ss14(p14);
SchedulableStatus ss15(p15);
SchedulableStatus ss16(p16);
SchedulableStatus ss17(p17);
SchedulableStatus ss18(p18);
SchedulableStatus ss19(p19); // not used!
DynamicSchedulable ss1(p1);
DynamicSchedulable ss2(p2);
DynamicSchedulable ss3(p3);
DynamicSchedulable ss4(p4);
DynamicSchedulable ss5(p5);
DynamicSchedulable ss6(p6);
DynamicSchedulable ss7(p7);
DynamicSchedulable ss8(p8);
DynamicSchedulable ss9(p9);
DynamicSchedulable ss10(p10);
DynamicSchedulable ss11(p11);
DynamicSchedulable ss12(p12);
DynamicSchedulable ss13(p13);
DynamicSchedulable ss14(p14);
DynamicSchedulable ss15(p15);
DynamicSchedulable ss16(p16);
DynamicSchedulable ss17(p17);
DynamicSchedulable ss18(p18);
DynamicSchedulable ss19(p19); // not used!
SchedulableQueue initial;
initial.add_at_bottom(ss1);

View file

@ -40,7 +40,7 @@
#include "backend/slice.hh"
#include "backend/observed_subject.hh"
#include "backend/schedulable_queue.hh"
#include "backend/schedulable_status.hh"
#include "backend/dynamic_schedulable.hh"
namespace sgpem
{
@ -51,7 +51,7 @@ namespace sgpem
class TestHistory : public History
{
public:
memory::smart_ptr<sgpem::SchedulableStatus> get_scheduled_at(int time)
memory::smart_ptr<sgpem::DynamicSchedulable> get_scheduled_at(int time)
{
std::cout << "get_scheduled_at" << time;
return History::get_scheduled_at(time);

View file

@ -34,7 +34,7 @@
#include "backend/static_process.hh"
#include "backend/observed_subject.hh"
#include "backend/schedulable_queue.hh"
#include "backend/schedulable_status.hh"
#include "backend/dynamic_schedulable.hh"
#include "templates/smartp.hh"
#include "scheduler.hh"
@ -185,7 +185,7 @@ namespace sgpem
{
public:
memory::smart_ptr<sgpem::SchedulableStatus> get_scheduled_at(int time) const {}
memory::smart_ptr<sgpem::DynamicSchedulable> get_scheduled_at(int time) const {}
memory::smart_ptr<sgpem::SchedulableQueue> get_simulation_status_at(int time) const;
int get_current_time() const {return _total_time_elapsed;}
void enqueue_slice(const sgpem::SchedulableQueue& status);
@ -252,25 +252,25 @@ main(int argc, char** argv) {
StaticProcess p19("PK", 10,24,17);
StaticProcess p20("PK2", 11,34,67); // not used!
SchedulableStatus ss1(p1);
SchedulableStatus ss2(p2);
SchedulableStatus ss3(p3);
SchedulableStatus ss4(p4);
SchedulableStatus ss5(p5);
SchedulableStatus ss6(p6);
SchedulableStatus ss7(p7);
SchedulableStatus ss8(p8);
SchedulableStatus ss9(p9);
SchedulableStatus ss10(p10);
SchedulableStatus ss11(p11);
SchedulableStatus ss12(p12);
SchedulableStatus ss13(p13);
SchedulableStatus ss14(p14);
SchedulableStatus ss15(p15);
SchedulableStatus ss16(p16);
SchedulableStatus ss17(p17);
SchedulableStatus ss18(p18);
SchedulableStatus ss19(p19); // not used!
DynamicSchedulable ss1(p1);
DynamicSchedulable ss2(p2);
DynamicSchedulable ss3(p3);
DynamicSchedulable ss4(p4);
DynamicSchedulable ss5(p5);
DynamicSchedulable ss6(p6);
DynamicSchedulable ss7(p7);
DynamicSchedulable ss8(p8);
DynamicSchedulable ss9(p9);
DynamicSchedulable ss10(p10);
DynamicSchedulable ss11(p11);
DynamicSchedulable ss12(p12);
DynamicSchedulable ss13(p13);
DynamicSchedulable ss14(p14);
DynamicSchedulable ss15(p15);
DynamicSchedulable ss16(p16);
DynamicSchedulable ss17(p17);
DynamicSchedulable ss18(p18);
DynamicSchedulable ss19(p19); // not used!
SchedulableQueue initial;
initial.add_at_bottom(ss1);