IBM’s older operating systems define a service level which the kernel could comprehend and enforce. Several service levels were present and various jobs were assigned to these levels. Crude access control was provided over modification of these assignments and levels. This was useful to enduser that critical nightly jobs finish before morning.
Dynamic pricing, together with a market in futures to resources, or service levels, seems to me an ultimate solution to rational allocation.