Switching overhead and model boundaries
What this concept is
Switch overhead is modeled time spent changing jobs rather than executing useful work. This lab charges only direct changes between different job identities. It charges no initial dispatch, no same-job continuation and no dispatch after genuine idle time.
Why it matters here
Charging every quantum expiration overstates cost when only one runnable job exists. Ignoring overhead can overstate the benefits of small quanta. The overhead convention needs to be explicit before comparing results.
Concrete example
A(0,2), B(0,1), C(3,1), quantum 2, cost 2: A runs [0,2), switch [2,4), B [4,5), switch [5,7), C [7,8). B was selected before the first switch, so the arrival of C at 3 does not replace it. Total useful work is 4 and overhead is 4.
Common confusion / misconception
Real switch costs are not one universal constant. Address-space tags, cache state, architecture and workload matter; a switch does not invariably flush every cache or TLB. A FIFO/RR toy also says nothing directly about Linux fair scheduling or deadline guarantees.
How to use it
Compare quantum 1,2,4 with costs 0 and 1 on the same workload. Keep per-job metrics, total overhead and useful utilization. Describe the objective you would choose, and the missing I/O or multicore behavior that might reverse that choice.
Check yourself
One job needs 5 ticks and quantum is 2. With cost 3, does the model take 11 ticks? No: the same job continues and total remains 5. If another job arrives while it runs, explain when a charged transition can first occur.
Mini drill or application
Construct a switch-cost case with an arrival during overhead and an idle-gap case. Explain which dispatches cost zero. Then contrast historical CFS virtual-runtime ideas with EEVDF eligibility/deadline selection using kernel documentation; do not claim the simulator reproduces either.
Read this only if stuck
Review OSTEP process abstraction for mechanism versus policy, then inspect the exact cost convention in the lab README.