Keykos scheduling on a fine-grain is a simple round robin but at a grosser level is performed by programs with strategic access to meter regulation capabilities—roughly the ability to turn meter subtrees on and off. The ‘priority’ of a domain is that of its meter. There we have the simple discipline that at application configuration time one would ensure that domains do not call other domains with less priority than themselves. An obligation of a high priority program is not to do long running operations. A frequent alternative is to schedule lower priority tasks and yield your high priority. This has the effect that when a low priority task calls a high priority task the 2nd task runs at high priority. This has some downside that seemed small in all but artificial conditions.
Wikipedia has a good article on priority inversion. The inverted priority situation cannot arise with this discipline.