X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fthreads%2Fthread.h;h=0039560018ddc942fb2f10002ddd4d94e3045b8c;hb=53a7f5d0952a4595f252247f5ee3d017468eb57e;hp=1f17a9c8e5b033b4c88580b313fc78dc8454b552;hpb=2cfc156c39840ce7f1cda6b473de1322691a8a0b;p=pintos-anon diff --git a/src/threads/thread.h b/src/threads/thread.h index 1f17a9c..0039560 100644 --- a/src/threads/thread.h +++ b/src/threads/thread.h @@ -21,8 +21,8 @@ typedef int tid_t; /* Thread priorities. */ #define PRI_MIN 0 /* Lowest priority. */ -#define PRI_DEFAULT 29 /* Default priority. */ -#define PRI_MAX 59 /* Highest priority. */ +#define PRI_DEFAULT 31 /* Default priority. */ +#define PRI_MAX 63 /* Highest priority. */ /* A kernel thread or user process. @@ -101,8 +101,14 @@ struct thread unsigned magic; /* Detects stack overflow. */ }; +/* If false (default), use round-robin scheduler. + If true, use multi-level feedback queue scheduler. + Controlled by kernel command-line option "-o mlfqs". */ +extern bool thread_mlfqs; + void thread_init (void); void thread_start (void); + void thread_tick (void); void thread_print_stats (void); @@ -119,7 +125,12 @@ const char *thread_name (void); void thread_exit (void) NO_RETURN; void thread_yield (void); -void thread_set_priority (int); int thread_get_priority (void); +void thread_set_priority (int); + +int thread_get_nice (void); +void thread_set_nice (int); +int thread_get_recent_cpu (void); +int thread_get_load_avg (void); #endif /* threads/thread.h */