priority arbiter
It's not really a matter of which is "better", rather, it's a matter of which one is more suitable to a particular application.
If the tasks have a relatively equal importance, then the round-robin works better, since all the tasks get a better chance of getting run; you avoid the situation where the task with the lowest priority hardly ever gets run, since there seems to always be another task with a higher priority.
Imagine you need to read data from a number of sensors. Basically, they are all important, so you would probably choose a round-robin scheme.
On the other hand, there are situations, where some of the tasks are really important, and possibly they need to be run relatively infrequently. In this case a priority arbiter works best, since the higher-priority tasks get serviced very quickly. Yet, because they do not need to be run too frequently, there is enough time for the low-priority tasks to get their fair share.
For instance, there are key parameters in a process and you must take action when something goes out of range. On the other hand, the operator keyboard can be serviced a few milliseconds or tens of milliseconds later, without his even noticing it.
Deciding which method to use is really the "art" of designing the operating system. And this is an important decision to make.