It is a little easier for Windows, but I'm not sure if giving a priority boost to the foreground window application is always the best.
I was over-simplifying, off course.
On windows each process has a single base priority, but each thread has a priority (based on the process priority) that can be boosted for short periods (and with limited range).
Also, there is a distinction between system and local processes. The system ones have a base priority sligthly higher than local ones, and if a wait is not satisfied for a thread, it's quantum is reduced (they call it quantum decay).
This foreground window boost for all threads that own that window is made for interactivity sake, but can be disabled when you configure Windows to optimize performance for background services (and is the default on the server versions).
I'm no scheduling master, I just happen to have read the "Windows Internals" book by Mark Russinovich and David Solomon. There are differences between Windows versions, so if you really want to learn more (and not only about this) I would advise you to get that book.
Copyright © 2017, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds