3.3 API设计
CpuMemSets提供了一系列的内核级和应用级的编程接口,分别定义在内核的include/linux/cpumemset.h文件和库代码CpuMemSets/cpumemsets.h文件中。
通过调用用户级接口对cmm&cms进行设置将导致内核的调度器和内存分配器所使用的系统位向量如cpus_allowed和mems_allowed的变化,从而使内核调度代码使用新的系统处理器号、内存分配代码从新内存块中分配内存页;但是,原先从旧内存块中分配的内存页将不会发生迁移,除非强制采用其他手段。具体来说,系统在cmsAttachNewTask()、cmsExchangeTask()和cmsExchangePid()过程中,执行update_cpus_allowed()根据任务的current_cms的当前处理器列表更改它的cpus_allowed位向量;在cms_set()过程中,执行mems_allowed_build()根据任务的current_cms的当前 页码:[1] [2] [3] [4] [5] [6] 第1页、共6页 |