Please note: This PhD seminar will take place online.
Thierry Delisle, PhD candidate
David R. Cheriton School of Computer Science
Supervisor: Professor Peter Buhr
User-Level threading (M:N) is gaining popularity over kernel-level threading (1:1) in many programming languages. This talk discusses user-thread schedulers used in different programming languages. It then presents the design and implementation of the C∀ thread scheduler, which achieves equivalent performance while offering better fairness. In doing so, the talk presents a compromise on FIFO fairness and the steps the C∀ scheduler takes to achieve this relaxed fairness requirement. Several optimizations that eliminate the cost of this fairness are presented. The scheduler also handles implicit nonblocking I/O using the new Linux io_uring interface, allowing more user-threads to block on I/O than there are kernel threads. Finally, the design for efficient idle sleep, i.e., blocking idle kernel threads, is presented.