1

merge dispatcher into scheduler

This commit is contained in:
2022-07-19 00:28:00 +02:00
parent f040aa562b
commit 2b1db30d1c
4 changed files with 48 additions and 92 deletions

View File

@ -13,14 +13,13 @@
#define __Scheduler_include__
#include "devices/CGA_Stream.h"
#include "kernel/threads/Dispatch.h"
#include "kernel/threads/Thread.h"
#include "lib/Queue.h"
#include "lib/SpinLock.h"
#include "user/lib/ArrayList.h"
#include "user/lib/Logger.h"
class Scheduler : public Dispatcher {
class Scheduler {
private:
Scheduler(const Scheduler& copy) = delete; // Verhindere Kopieren
@ -28,6 +27,7 @@ private:
// Scheduler wird evt. von einer Unterbrechung vom Zeitgeber gerufen,
// bevor er initialisiert wurde
Thread* active;
bool has_idle_thread;
Logger log;
@ -42,9 +42,16 @@ private:
ArrayList<Thread*> ready_queue;
ArrayList<Thread*> block_queue;
void start(Thread& first);
void dispatch(Thread& next);
public:
Scheduler() : has_idle_thread(false), log("SCHED") {}
Thread* get_active() const {
return this->active;
}
// Scheduler initialisiert?
// Zeitgeber-Unterbrechung kommt evt. bevor der Scheduler fertig
// intiialisiert wurde!