Page 231 - 《软件学报》2026年第5期
P. 231

2110                                                       软件学报  2026  年第  37  卷第  5  期


                 到, bgwriter_lru_multiplier 的配置正常生效需要   background writer 能够正常运行, 从而联想到之前阅读过的
                 bgwriter_lru_maxpages 描述中有关  background writer 的描述, 如图  3  右侧蓝色部分“When this parameter is set to 0,
                 the background writer is disabled”, 即如果  bgwriter_lru_maxpages 被设置为  0, 则  background writer 处于  disabled  状
                 态, 这与  background writer 正常运行的要求产生了矛盾, 于是研究人员推理出一条配置约束:
                                    (bgwriter_lru_maxpages==0) LeadTo NotEffect(bgwriter_lru_multiplier).


                         vgwriter_lru_multiplier                bgwriter_lru_maxpages


                                                                     ···
                                           ···
                                              CoT step 1                    CoT step 2
                                                        CoT step 3
                                                         conflict!



                                 图 3 bgwriter_lru_maxpages 和  bgwriter_lru_multiplier 约束提取思维链

                    在以上的推理过程中我们发现, 研究人员综合分析两个不同的配置项的描述文本推理出了配置间约束, 而正
                 是  background writer 这一软件功能实体使这两个配置项产生关联. 而在图             4  展示的案例中, 配置间约束展现了更
                 复杂的关联路径. 如图       4  所示, 研究人员阅读配置项      audit_enabled  的描述时得知将  audit_enabled  设置为  off 会导
                 致  auditing function  被关闭; 接下来研究人员阅读配置项      audit_resource_policy  的描述时发现  audit_resource_
                 policy  作用于  audit logs 功能, 当  audit_resource_policy  被设置为  off 时, audit logs 按照最小持续时间作为触发条件,
                 结合  audit_enabled  的描述, 研究人员认为  audit logs 功能还依赖  auditing function  的开启; 而在  audit_file_remain_
                 time 的描述中研究人员发现       audit_file_remain_time 定义了触发  audit logs 的最小持续时间, 因此  audit_file_remain_
                 time 依赖于  audit logs 将时间作为触发条件, 即“audit logs are preferentially stored by time”. 总结上述一系列发现,
                 研究人员得出了以下配置间约束:
                            (audit_enabled==off or audit_resource_policy!=off) LeadTo NotEffect(audit_file_remain_time).

                            audit_enabled                        audit_resource_policy


                                                                                 ...
                                                    ...                               ...


                                         Conflict!
                                                  auditing                         (audit logs)
                             Lead to auditing              Require  Require audit logs  Require  are preferentially
                            function is disabled  function         work normally
                                                  is enabled                       stored by time

                            audit_file_remain_time                                   Require
                                                                   audit_file_remain_time
                            Specifies the minimum duration required    take effect
                            for recording audit logs ···
                                           图 4 audit_file_remain_time 约束提取思维链

                    从以上的推理中可以发现, 该条配置约束涉及软件配置对软件功能状态的影响、软件功能之间的依赖关系、
                 软件配置之间的依赖关系等多种依赖关系, 研究人员通过对这些依赖关系的理解、记忆和组合, 推断出多个配置
                 之间存在的约束关系. 回顾约束推断过程并进行抽象, 我们发现配置间约束推断的依据是一个多种异构节点相互
   226   227   228   229   230   231   232   233   234   235   236