O(I) == constant time to select/add task, regardless of task count
Preemptive, priority-based
-realtime (0-99)
-timesharing (100-139)
User processes
-default 120
-nice value(-20 to 19)
Timeslice Value
– depends on priority
– smallest for low priority
– highest for high priority
Feedback
– sleep time: waiting
– longer sleep => interactive
-> priority -5(boost)
– smaller sleep =>
compute intensive
-> priority +5(lower)
Runqueue == 2 array of tasks
Active
-used to pick next task to run
-constant time to add/select
Expired
multi-CPU sytem
shared memory multiprocessor (SMP)
multi core; shared LLC, memory, CPU w/ multiple cores, cores have private LI
Hyper threading(SMT)
– multiple hardware – supported execution context
– still 1 CPU, but with very fast context switch
-> hardware multithreading
-> hyper threading
-> chip multithreading(CMT)
if(t_idle > 2*t.ctx.switch)