Scheduler
Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
Scheduler::Process Class Reference

#include <process.h>

Public Member Functions

 Process (int pid, int nbBursts, std::vector< double > cpuBursts, std::vector< double > ioBursts, int priority=0)
 
 Process (const Process &task)
 
 ~Process ()
 
void setDurationDistribution (std::shared_ptr< Utils::BoundedRandomDistribution > randomDist)
 
int getPid (void) const
 
int getPriority () const
 
void setPriority (int pri)
 
void updateCurrentAow (double aow)
 
bool advanceBurst ()
 
void decrementBurst ()
 
double getCurrentCpuAow () const
 
double getCurrentIoTime () const
 
void setRtParams (double dl, double T, double wcet, double bcet)
 
void setDeadlineTimeFromStartTime (double startTime)
 
bool isRealTime () const
 
double getPeriod () const
 
double getDeadline () const
 
double getDeadlineTime () const
 
void print (std::ostream &stream) const
 
void incrementJobNumber ()
 
unsigned int getJobNumber () const
 
double getWcet () const
 
void setPowerCoeff (double)
 

Static Public Member Functions

static std::shared_ptr< ProcesscreateNextJob (const Process &task)
 create the next job for a task More...
 
static std::shared_ptr< ProcesscreateProcess (double cpuLambda, double ioLambda)
 creates an "interactive" process More...
 
static std::shared_ptr< ProcesscreateRealTimeTask (double wcet, double T, double dl, int pid, int priority=0, double bcet=0.0)
 creates a real time task More...
 
static int getNewPid ()
 returns new process identifier. The value returned gets incremented at each call More...
 
static unsigned long int getMaxNumber ()
 returns the maximum number of process that can ever be created More...
 
static void setRandomGenerator (Utils::RandomGenerator *gen)
 specify what random generator to use for interactive task length More...
 
static void end ()
 call this function before any other More...
 

Public Attributes

double powerCoeff {1.0}
 

Detailed Description

Definition at line 31 of file process.h.

Constructor & Destructor Documentation

Process::Process ( int  pid,
int  nbBursts,
std::vector< double >  cpuBursts,
std::vector< double >  ioBursts,
int  priority = 0 
)

Definition at line 110 of file process.cpp.

Process::Process ( const Process task)

Definition at line 122 of file process.cpp.

Process::~Process ( )

Definition at line 148 of file process.cpp.

Member Function Documentation

bool Process::advanceBurst ( )

Definition at line 173 of file process.cpp.

std::shared_ptr< Process > Process::createNextJob ( const Process task)
static

create the next job for a task

Definition at line 31 of file process.cpp.

std::shared_ptr< Process > Process::createProcess ( double  cpuLambda,
double  ioLambda 
)
static

creates an "interactive" process

Parameters
cpuLambdais the lambda parameter of the exponential distribution used to randomly generate the cpu bursts
ioLambdais the lambda parameter of the exponential distribution used to randomly generate the io burst durations

Definition at line 52 of file process.cpp.

std::shared_ptr< Process > Process::createRealTimeTask ( double  wcet,
double  T,
double  dl,
int  pid,
int  priority = 0,
double  bcet = 0.0 
)
static

creates a real time task

Parameters
aowamount of work to be performed by each job
Tperiod between two consecutive jobs are issued
dldeadline, relative to the time at which the job was issued
pidprocess identifier
priorityis for scheduling algos with prioirty lists
bcetbest vase execution time

Definition at line 67 of file process.cpp.

void Process::decrementBurst ( )

Definition at line 179 of file process.cpp.

void Process::end ( )
static

call this function before any other

call this function at the end of the simulation

Definition at line 103 of file process.cpp.

double Process::getCurrentCpuAow ( ) const

Definition at line 184 of file process.cpp.

double Process::getCurrentIoTime ( ) const

Definition at line 189 of file process.cpp.

double Process::getDeadline ( ) const

Definition at line 227 of file process.cpp.

double Process::getDeadlineTime ( ) const

Definition at line 251 of file process.cpp.

unsigned int Process::getJobNumber ( ) const

Definition at line 287 of file process.cpp.

unsigned long int Process::getMaxNumber ( )
static

returns the maximum number of process that can ever be created

This is needed by some MDP algorithms

Definition at line 94 of file process.cpp.

int Process::getNewPid ( )
static

returns new process identifier. The value returned gets incremented at each call

Definition at line 88 of file process.cpp.

double Process::getPeriod ( ) const

Definition at line 246 of file process.cpp.

int Process::getPid ( void  ) const

Definition at line 158 of file process.cpp.

int Process::getPriority ( ) const

Definition at line 163 of file process.cpp.

double Process::getWcet ( ) const

Definition at line 197 of file process.cpp.

void Process::incrementJobNumber ( )

Definition at line 282 of file process.cpp.

bool Process::isRealTime ( ) const

Definition at line 233 of file process.cpp.

void Process::print ( std::ostream &  stream) const

Definition at line 256 of file process.cpp.

void Process::setDeadlineTimeFromStartTime ( double  startTime)

Definition at line 222 of file process.cpp.

void Process::setDurationDistribution ( std::shared_ptr< Utils::BoundedRandomDistribution randomDist)

Definition at line 153 of file process.cpp.

void Process::setPowerCoeff ( double  coeff)

Definition at line 293 of file process.cpp.

void Process::setPriority ( int  pri)

Definition at line 168 of file process.cpp.

void Process::setRandomGenerator ( Utils::RandomGenerator gen)
static

specify what random generator to use for interactive task length

Definition at line 99 of file process.cpp.

void Process::setRtParams ( double  dl,
double  T,
double  wcet,
double  bcet 
)

Definition at line 213 of file process.cpp.

void Process::updateCurrentAow ( double  aow)

Definition at line 241 of file process.cpp.

Member Data Documentation

double Scheduler::Process::powerCoeff {1.0}

Definition at line 103 of file process.h.


The documentation for this class was generated from the following files: