00001 /* #start# *********************************************************** 00002 00003 Scheduling Simulator 00004 Lehrstuhl f"ur Effiziente Algorithmen 00005 Technische Universit"at M"unchen 00006 00007 File : $Id: SLevelAlg.h,v 1.3 2003/01/08 18:57:11 meierb Exp $ 00008 00009 Purpose : level algorithm (or critical path algorithm) 00010 for uniform processing times 00011 (T.C. Hu 1961) 00012 00013 RCS-Log: 00014 $Log: SLevelAlg.h,v $ 00015 Revision 1.3 2003/01/08 18:57:11 meierb 00016 added randomized release times 00017 00018 Revision 1.1.1.1 2002/12/02 22:26:19 meierb 00019 my_schedule 00020 00021 Revision 1.1 2002/08/29 12:59:58 taeubig 00022 Added the sources 00023 00024 Revision 1.3 2000/07/31 11:41:10 taeubig 00025 Added startup() to clear the list of current level jobs 00026 00027 Revision 1.2 2000/05/24 12:21:05 taeubig 00028 New compiler (gcc-2.95) and new Qt (2.1) 00029 Replaced "list" by "leda_list" etc. 00030 00031 Revision 1.1 2000/04/17 23:59:27 taeubig 00032 Added files for Online Level Algorithms for jobs with 00033 unit execution time 00034 00035 00036 * #end# ************************************************************* */ 00037 00038 #ifndef SLEVELALG_H 00039 #define SLEVELALG_H 00040 00041 // system header files 00042 00043 // project header files 00044 #include "SSchedAlgorithm.h" 00045 00046 class SLevelAlg : public SSchedAlgorithm { 00047 public: 00048 00049 virtual ~SLevelAlg() {}; 00050 virtual void startup(); 00051 virtual double innerLoop(const leda_list<STSysSchedEvent>& rEvents); 00052 virtual const leda_string getDescription() const; 00053 00054 protected: 00055 00056 virtual void pack() = 0; 00057 00058 // remaining available jobs of the current level 00059 leda_set<SJob*> currentLevelJobs; 00060 00061 }; 00062 00063 #endif //SLEVELALG_H