Are most modern desktop operating system throughput-oriented? Or do they favor finishing a single thread by returning to execution as soon as that thread is finished stalling?
I believe this slide discusses a hardware implementation and the OS is not involved. The processor pretends to have more cores than it actually has, and treats the processes running on these cores as "threads". If there is a stall or they're using different compute units, both threads can run in parallel, but otherwise there is a switching cost.
In terms of OS threads, it comes down to the particular scheduler used by the OS. Common operating systems use priority based systems to allocate cpu time. In general, you probably want every thread with the same priority to run at fairly even intervals to keep them responsive. Once a thread finishes a "stall" or async operation, it will probably be rescheduled and run depending on priority.
Based on this, it seems likely that they will favour throughput, though a high-priority thread might be returned to execution very soon after it's again runnable.
Hi, I am a little confused between minimizing/hiding latency and maximizing throughput. What is the definition of throughput? And are latency and throughput related? If yes, how?