每个 lnode 均被分配一定数量的 CPU 份额。根据未决活动份额(活动是指 lnode 附加了正在运行的进程)的总数,按比例将与每个 lnode 相关联的进程分配给 CPU 资源。在分配资源时只考虑活动 lnode,因为只有它们才有正在运行的活动进程,并需要 CPU 时间。
当某个进程耗用 CPU 资源时,其 lnode 的 CPU 利用率属性就会增加。调度程序可定期调节所有进程的优先权,以强制 CPU 利用率的相对比率,将 CPU 份额的相对比率集中在各级别的所有活动 lnode 上。这样,用户至少可以期望最后总能获得使用 CPU 服务的授权,而无需考虑其他用户的行为。
该调度程序采用分层结构,因为它还能确保各组无需考虑其成员的行为而接收组授权。Solaris Resource Manager SHR 调度程序是一种长期运行的调度程序;它可确保所有用户和应用程序都能在该调度程序运行期间接收到公平的份额。这意味着,当一个小负荷用户开始请求 CPU 时,该用户就会收到比大负荷用户更多的资源,直到二者的相对利用率与其相对“公平”份额的分配比率相当为止。所以,您现在对自己的授权使用的越多,将来能使用的授权就越少。
此外,Solaris Resource Manager 有一个由系统管理员设定的、不跟踪过去利用率的衰减期。衰减模型是半衰期模型之一,即在寿命达到一半时有 50% 的资源已经衰减。这就能确保稳定而平均的用户不会受到短期且与进程密切相关的用户的惩罚。半衰期设定了调度程序的响应模式或期限;缺省值为 120 秒钟。长半衰期对较长的批任务等平均利用率更有益,而短半衰期则对交互用户更有益。较短的数值可在系统上产生更平均的响应,但是在系统内资源分配的计算和维护方面精度较低。无论管理设置如何,调度程序都会尝试防止资源缺乏,并确保甚至在极端条件下的合理行为。