"Early Unix implementations use a scheduler with Multilevel Feedback Queues with round robin selections within each Feedback Queue. In this system, processes begin in a high priority queue (giving a quick response time to new processes, such as those involved in a single mouse movement or keystroke), and as they spend more time within the system, they are preempted multiple times and placed in lower priority queues. Unfortunately under this system older processes may be starved of CPU time by a continual influx of new processes, although if a system is unable to deal with new processes faster than they arrive, starvation is inevitable anyway. Process priorities could be explicitly set under Unix to one of 40 values, although most modern Unix systems have a higher range of priorities available (Solaris has 160). Instead of the Windows NT 4.0 solution to low priority process starvation (bumping a process to the front of the round robin queue should it be starving), early Unix systems used a more subtle aging system, to slowly increase the priority of a starving process until it was executed, whereupon its priority would be reset to whatever it was before it started starving."
(Hozzátenném: késõbbi unix verziókban és implementációkban újabb megoldások születtek, de többnyire mindnek sajátja ez a dinamikus módosítás.)
Itt nincs félreértés. Mint látod, dinamikusan állítja az OS a prioritást.
Most az, hogy prioritásnak vagy nice-nak hívjuk, egy másik kérdés. Azt hiszem, a nice is a tulajdonképpeni prioritást állítja, csak korlátok között (magát a számot tekintve, illetve csak user processeké állítható, stb.). Mindenesetre általában nice-ként szokták emlegetni a unix-os prioritást, mivel user szinten az az.
Ja, és még kérdezted, hogy jelzi a program, hogy átállíthatja-e az OS a prioritását. Nos, két módja is van. 1. különféle classok vannak, úgy mint realtime, time-sharing, fair-share, fixed-priority. Továbbá ezeken belül is beállíthatók bizonyos policy-k erre vonatkozólag (pl. átmenetileg).