全网唯一标准王
(19)国家知识产权局 (12)发明 专利申请 (10)申请公布号 (43)申请公布日 (21)申请 号 202210724191.0 (22)申请日 2022.06.24 (71)申请人 上海交通大 学 地址 200240 上海市闵行区东川路80 0号 (72)发明人 徐天强 糜泽羽 陈海波 夏虞斌  (74)专利代理 机构 上海汉声知识产权代理有限 公司 3123 6 专利代理师 胡晶 (51)Int.Cl. G06F 9/48(2006.01) G06F 9/50(2006.01) (54)发明名称 缓存分区感知的调度方法及系统 (57)摘要 本发明提供一种缓存分区感知的调度方法 及系统, 包括: 在系统中分配一个全局映射数据 结构, 记录各个缓存分区中的相关任务数量; 应 用程序在启动时调用register_related_ threads在操作系统中注册任务组, 标识为相 关 任务, 调度器依据此信息进行缓存分区感知的调 度; 为每个相关任务组分配一个任务映射数据结 构, 记录一个相关任务组中任务在各个缓存分区 中的分布情况; 内核调度器在为任务选核时参考 任务映射记录的数据, 将相关任务调度到同一缓 存分区; 内核调度器在为任务选核后进行任务映 射的更新与全局映射的更新; 内核调度器遍历 全 局映射, 若发现缓存分区过载, 则通知该缓存分 区的任务进行任务迁移。 本发明能够提升频繁访 问共享变量的任务组的性能。 权利要求书3页 说明书7页 附图2页 CN 115098233 A 2022.09.23 CN 115098233 A 1.一种缓存分区感知的调度方法, 其特 征在于, 包括: 步骤S1: 在系统中分配一个全局映射数据结构, 该数据结构是一个数组, 数组大小为系 统中缓存分区的数量, 其记录各个缓存分区中的相关任务数量, 且该操作系统启动时生效; 步骤S2: 应用程序在启动时调用register_related_threads在操作系统中注册任务 组, 标识它 们为相关任务, 调度器依据此信息进行缓存分区感知的调度; 步骤S3: 为每个相关任务组分配一个任务映射数据结构, 该数据 结构是一个数组, 数组 大小为系统中缓存分区的数量, 其记录一个相关任务组中任务在各个缓存分区中的分布情 况, 该操作在调用register_related_threads时生效; 步骤S4: 内核调度器在为任务选核时参考任务映射记录的数据, 将相关任务调度到同 一缓存分区; 步骤S5: 内核调度器在为任务选核后进行任务映射的更新; 步骤S6: 内核调度器在为任务选核后进行全局映射的更新; 步骤S7: 内核调度器遍历全局映射, 若发现缓存分区过载, 则通知该缓存分区的任务进 行任务迁移。 2.根据权利要求1所述的缓存分区感知的调度 方法, 其特征在于, 所述步骤S4在内核调 度器为任务选核时生效, 具体包括: 步骤S4.1: 检查任务所属的任务映射, 找到含有最多任务的缓存分区; 步骤S4.2: 在所述缓存分区中找到负载最小的核作为目标核; 步骤S4.3: 最后由调度器将该任务调度到目标核上运行。 3.根据权利要求1所述的缓存分区感知的调度 方法, 其特征在于, 所述步骤S5任务映射 的更新包括: 步骤S5.1: 在选核后, 调度器获得任务此 前运行的核标识号以及目标核标识号; 步骤S5.2: 调度器将这两个核标识号转换为缓存分区标识号, 将缓存分区标识号作为 索引定位到该任务所对应任务映射的对应位置; 步骤S5.3: 调度器对此前运行的缓存分区中任务数量做减一操作, 对目标缓存分区中 任务数量做加一操作。 4.根据权利要求1所述的缓存分区感知的调度 方法, 其特征在于, 所述步骤S6全局映射 的更新包括: 步骤S6.1: 在选核后, 调度器获得任务此 前运行的核标识号以及目标核标识号; 步骤S6.2: 调度器将这两个核标识号转换为缓存分区标识号, 将缓存分区标识号作为 索引定位到全局映射的对应位置; 步骤S6.3: 调度器对此前运行的缓存分区中任务数量做减一操作, 对目标缓存分区中 任务数量做加一操作。 5.根据权利要求1所述的缓存分区感知的调度 方法, 其特征在于, 所述步骤S7防止缓存 分区过载的操作包括: 步骤S7.1: 在完成对全局映射的更新后, 调度器遍历全局映射以检测是否出现缓存分 区过载; 步骤S7.2: 若出现缓存分区过载, 调度器选择一个相关任务组, 将其中的任务标记为缓 存分区迁移;权 利 要 求 书 1/3 页 2 CN 115098233 A 2步骤S7.3: 以后为该任务组任务进行选核时, 选择另一个缓存分区中的核作为目标核, 并将这些任务迁移到别的缓存分区。 6.一种缓存分区感知的调度系统, 其特 征在于, 包括: 模块M1: 在系统中分配一个全局映射数据结构, 该数据结构是一个数组, 数组大小为系 统中缓存分区的数量, 其记录各个缓存分区中的相关任务数量, 该操作系统启动时生效; 模块M2: 应用程序在启动时调用register_related_threads在操作系统中注册任务 组, 标识它 们为相关任务, 调度器依据此信息进行缓存分区感知的调度; 模块M3: 为每个相关任务组分配一个任务映射数据结构, 该数据 结构是一个数组, 数组 大小为系统中缓存分区的数量, 其记录一个相关任务组中任务在各个缓存分区中的分布情 况, 该操作在调用register_related_threads时生效; 模块M4: 内核调度器在为任务选核时参考任务映射记录的数据, 将相关任务调度到同 一缓存分区; 模块M5: 内核调度器在为任务选核后进行任务映射的更新; 模块M6: 内核调度器在为任务选核后进行全局映射的更新; 模块M7: 内核调度器遍历全局映射, 若发现缓存分区过载, 则通知该缓存分区的任务进 行任务迁移。 7.根据权利要求6所述的缓存分区感知的调度系统, 其特征在于, 所述模块M4在内核调 度器为任务选核时生效, 具体包括: 模块M4.1: 检查任务所属的任务映射, 找到含有最多任务的缓存分区; 模块M4.2: 在所述缓存分区中找到负载最小的核作为目标核; 模块M4.3: 最后由调度器将该任务调度到目标核上运行。 8.根据权利要求6所述的缓存分区感知的调度系统, 其特征在于, 所述模块M5任务映射 的更新包括: 模块M5.1: 在选核后, 调度器获得任务此 前运行的核标识号以及目标核标识号; 模块M5.2: 调度器将这两个核标识号转换为缓存分区标识号, 将缓存分区标识号作为 索引定位到该任务所对应任务映射的对应位置; 模块M5.3: 调度器对此前运行的缓存分区中任务数量做减一操作, 对目标缓存分区中 任务数量做加一操作。 9.根据权利要求6所述的缓存分区感知的调度系统, 其特征在于, 所述模块M6全局映射 的更新包括: 模块M6.1: 在选核后, 调度器获得任务此 前运行的核标识号以及目标核标识号; 模块M6.2: 调度器将这两个核标识号转换为缓存分区标识号, 将缓存分区标识号作为 索引定位到全局映射的对应位置; 模块M6.3: 调度器对此前运行的缓存分区中任务数量做减一操作, 对目标缓存分区中 任务数量做加一操作。 10.根据权利要求6所述的缓存分区感知的调度系统, 其特征在于, 所述模块M7防止缓 存分区过 载的操作包括: 模块M7.1: 在完成对全局映射的更新后, 调度器遍历全局映射以检测是否出现缓存分 区过载;权 利 要 求 书 2/3 页 3 CN 115098233 A 3

.PDF文档 专利 缓存分区感知的调度方法及系统

文档预览
中文文档 13 页 50 下载 1000 浏览 0 评论 309 收藏 3.0分
温馨提示:本文档共13页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
专利 缓存分区感知的调度方法及系统 第 1 页 专利 缓存分区感知的调度方法及系统 第 2 页 专利 缓存分区感知的调度方法及系统 第 3 页
下载文档到电脑,方便使用
本文档由 人生无常 于 2024-03-18 13:33:38上传分享
友情链接
站内资源均来自网友分享或网络收集整理,若无意中侵犯到您的权利,敬请联系我们微信(点击查看客服),我们将及时删除相关资源。