Solaris Resource Manager SHR 调度程序相对于标准 Solaris 调度程序的主要优点在于,它是对用户或应用程序而非个别进程进行调度。与 lnode 相关联的每个进程都受到一组限制的制约。对于运行一个活动进程的单个用户的简单情形来说,这就相当于使每个进程都受到相应 lnode 中所列出的限制的制约。当有多个进程附加到一个 lnode 上时,如运行多个进程的组中的成员,则所有进程都受到列出的限制的制约。这样,用户或应用程序耗用的 CPU 不能超过其授权允许的范围,无论他们运行多少个并发进程。以份额数目对授权进行分配的方法既简单又容易理解,而更改某个用户的份额所造成的影响也是可以预测的。
SHR 调度程序的另一个优点就是,在管理各个线程的调度(从技术上看,在 Solaris 中被调度的实体是一个轻量进程 (LWP))的同时,可以在用户之间按比例分配 CPU 资源。
这些概念可通过以下方程进行阐述:
然后,new_SRM_priority 被映射到系统优先权。Solaris Resource Manager 优先权越高,系统优先权就越低,反之亦然。 CPU_usage 等每个衰减期都减少一半,并以最当前的利用率递增。
每个用户还有一组标志,这些标志是类似布尔的变量,可用于启用或禁用所选择的系统优先权(如登录)。这些标志可针对每个用户分别设定,也可从一个父节点 lnode 中继承而来。
某个用户的利用率、限制和标志可被任何用户阅读,但只能由有正确管理优先权的用户修改。