Context switching imposes a performance penalty on threads in a multitasking environment. The source of this penalty is both direct overhead due to running the context switch code and indirect overhead due to perturbation of caches. We calculate indirect overhead by measuring the running time of tasks that use context switching and subtracting the direct overhead. We also measure the indirect overhead impact on the running time of tasks due to processor interrupt servicing. Experiment results are presented for the Linux kernel running on an ARM processor based mobile device platform. Categories and Subject Descriptors D.4.8 [Operating Systems]: Performance--Measurements General Terms Experimentation,Measurement,Performance Keywords operating system, context switch overhead
Francis M. David, Jeffrey C. Carlyle, Roy H. Campb