一种依赖关系感知的软件仓库编译调度方法、系统和介质技术方案

技术编号:41224254 阅读:19 留言:0更新日期:2024-05-09 23:42
本发明专利技术公开了一种依赖关系感知的软件仓库编译调度方法、系统和介质,本发明专利技术方法包括获取指定的软件仓库的软件源代码列表;根据软件源代码列表中各软件源码包的编译依赖关系属性字段构建软件源码包的编译关系图G,将编译关系图G拆分为多个子图;为每一个子图确定软件源码包的编译顺序并构建独立的编译链;控制各个子图的编译链根据对应的软件源码包的编译顺序进行并发编译。本发明专利技术旨在针对软件仓库中的软件通过感知软件的依赖关系并给出确定的编译顺序作为指导,消除或缓和因包之间依赖和冲突关系导致的软件包编译停顿问题、提升软件仓库的编译效率。

【技术实现步骤摘要】

本专利技术涉及软件仓库构建,具体涉及一种依赖关系感知的软件仓库编译调度方法、系统和介质


技术介绍

1、目前主流开源操作系统的软件仓库中一般维护6万多的软件包,当需要从源代码包编译为二进制包时,为了提高编译效率,软件仓库维护者会采用并发编译的方式同时启动多条流水线进行包的编译,由于软件包之间存在编译依赖关系,并行编译的多条流水线并不能总是进行下去,存在由于编译依赖问题,导致在流水线l1编译的包因为依赖流水线l2上还未编译生成的包而出现停顿的现象,等到需要的包就绪才可以进行,通常软件仓库的需要编译回滚若干次才能完成一次软件仓库源代码到二进制软件包的编译更新。造成这一问题的主要原因是在发送并发编译命令时,并没有给出确定的编译顺序作为指导,这就使得软件并发编译的顺序是随机的,存在因编译顺序和依赖顺序不一致,导致需要等待依赖包就绪而暂停的现象,未能充分发挥并发编译的性能。


技术实现思路

1、本专利技术要解决的技术问题:针对现有技术的上述问题,提供一种依赖关系感知的软件仓库编译调度方法、系统和介质,本专利技术旨在针对软本文档来自技高网...

【技术保护点】

1.一种依赖关系感知的软件仓库编译调度方法,其特征在于,包括下述步骤:

2.根据权利要求1所述的依赖关系感知的软件仓库编译调度方法,其特征在于,步骤S101之后、步骤S102之前还包括获取指定的定制系统编译镜像中包含的软件源码包集合{Pk},并从软件源代码列表中移除指定的定制系统编译镜像中包含的软件源码包集合{Pk}。

3.根据权利要求1所述的依赖关系感知的软件仓库编译调度方法,其特征在于,步骤S102包括:

4.根据权利要求1所述的依赖关系感知的软件仓库编译调度方法,其特征在于,步骤S103中将编译关系图G拆分为多个子图时,拆分原则为子图内节点之间存...

【技术特征摘要】

1.一种依赖关系感知的软件仓库编译调度方法,其特征在于,包括下述步骤:

2.根据权利要求1所述的依赖关系感知的软件仓库编译调度方法,其特征在于,步骤s101之后、步骤s102之前还包括获取指定的定制系统编译镜像中包含的软件源码包集合{pk},并从软件源代码列表中移除指定的定制系统编译镜像中包含的软件源码包集合{pk}。

3.根据权利要求1所述的依赖关系感知的软件仓库编译调度方法,其特征在于,步骤s102包括:

4.根据权利要求1所述的依赖关系感知的软件仓库编译调度方法,其特征在于,步骤s103中将编译关系图g拆分为多个子图时,拆分原则为子图内节点之间存在连接边、不同子图之间不存在连接边。

5.根据权利要求1所述的依赖关系感知的软件仓库编译调度方法,其特征在于,步骤s104包括:

6.根据权利要求5所述的依赖关系感知的软件仓库编译调度方法,其特征在于,步骤s311中针对第i个子图gi中环通过加入虚包进行环的消解时,包括根据第i个子图gi中节点的依赖关系识别第i个子图gi中的单环和复合环,分别针对单环和复合环通过加入虚包进行环的消解时,所述单环是指各个节点构成一个环路,单环的环路上的每个节点都有一个出度一个入度,所述复合环是指各个节点构成多个环路,复合环上存在两个以上出度或入度的节点。

7.根据权利要求6所述的依赖关系感知的软件...

【专利技术属性】
技术研发人员:秦莹王静李小玲马俊张雪艳沈霄阳王皓天潘嘉言刘文昊谭郁松
申请(专利权)人:中国人民解放军国防科技大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1