作者: Kenjiro Taura , Pavan Balaji , Shumpei Shiina , Shintaro Iwasaki
关键词: Deadlock 、 Computer science 、 Scheduling (computing) 、 Context switch 、 Parallel computing 、 Preemption 、 Kernel (linear algebra) 、 Multithreading 、 POSIX Threads 、 User space
摘要: Many-to-many mapping models for user- to kernel-level threads (or "M:N threads") have been extensively studied decades as a lightweight substitute current Pthreads implementations that provide simple one-to-one ("1:1 threads"). M:N derive performance from their ability allow users context switch between and control scheduling entirely in user space with no kernel involvement. This same ability, however, causes lose the kernel-provided of implicit OS preemption---threads explicitly yield other be scheduled. Hence, programs over nonpreemptive can cause core starvation, loss prioritization, and, sometimes, deadlock unless are written proper places. paper explores two techniques efficiently achieve preemption similar 1:1 threads: signal-yield KLT-switching. Overheads these techniques, our optimizations, less than 1% compared threads. Our evaluation three applications demonstrates improve utilization enhance by utilizing switching flexible