一种嵌入式平台及动态调控应用资源的方法

阅读: 评论:0

著录项
  • CN201710883412.8
  • 20170926
  • CN107450989A
  • 20171208
  • 中国科学院声学研究所
  • 朱小勇;李超;郭志川
  • G06F9/50
  • G06F9/50

  • 北京市海淀区北四环西路21号
  • 北京(11)
  • 北京亿腾知识产权代理事务所
  • 陈霁
摘要
本发明涉及一种嵌入式平台及动态调控应用资源的方法,其中,嵌入式平台,包括:多个容器,用于分别存储系统中创建的应用;容器引擎,提供所述容器运行环境,在所述容器中安装并启动要运行的应用;操作系统,用于接收容器引擎向统一接口或Cgroup接口发送申请使用资源请求,并根据申请使用请求的类型选择统一接口或Cgroup接口;所述申请使用请求的类型包括共享性资源请求和独占性资源请求;统一接口,为所述独占性资源请求提供资源分配接口,对资源进行统一管理和分配;Cgroup接口,为所述共享性资源请求提供资源分配接口,对资源进行统一管理和分配。本发明提供一种将应用打包在容器当中,通过动态调控应用资源的方法,对资源实现分类调控。
权利要求

1.一种嵌入式平台,其特征在于,包括:

多个容器,用于分别存储系统中创建的应用;

容器引擎,提供所述容器运行环境,在所述容器中安装并启动要运行的应用;

操作系统,用于接收容器引擎向统一接口或Cgroup接口发送申请使用资源请求,并根 据申请使用请求的类型选择统一接口或Cgroup接口;所述申请使用请求的类型包括独占性 资源请求和共享性资源请求;

统一接口,为所述独占性资源请求提供资源分配接口,对资源进行统一管理和分配;

Cgroup接口,为所述共享性资源请求提供资源分配接口,对资源进行统一管理和分配。

2.根据权利要求1所述的平台,其特征在于,所述应用按照用户的关注程度由重到轻依 次划分为:前台应用、可见应用、后台应用;

用户关注度高的应用优先级较高,高优先级应用可以抢占低优先级应用的独占性资 源。

3.根据权利要求1所述的平台,其特征在于,所述容器引擎运行于宿主机之上,提供容 器运行环境,支撑容器运行,管理容器生命周期,根据用户指令生成容器镜像,并基于镜像 运行容器。

4.根据权利要求1所述的平台,其特征在于,所述独占性资源包括解码器、解复用器、外 部存储器和外部设备;所述共享性资源包括:IO设备、内存、网络带宽和CPU。

5.根据权利要求1所述的平台,其特征在于,在嵌入式终端上使用容器的方法对资源进 行调控。

6.一种动态调控应用资源的方法,其特征在于,该方法包括:

在系统中创建应用运行所需要的容器,并配置好相关环境;

在所述容器引擎中安装并启动要运行的应用;

接收容器引擎向统一接口或Cgroup接口发送申请使用资源请求,并根据申请使用请求 的类型选择统一接口或Cgroup接口;所述申请使用请求的类型包括独占性资源请求和共享 性资源请求;

为所述独占性资源请求提供资源分配接口,对资源进行统一管理和分配;以及为所述 共享性资源请求提供资源分配接口,对资源进行统一管理和分配。

7.根据权利要求6所述的方法,其特征在于,所述为所述独占性资源请求提供资源分配 接口,对资源进行统一管理和分配步骤,包括:

判断应用所申请的独占性资源是否被其他应用占用,如果所申请资源处于空闲状态, 则应用通过统一接口调用所需资源;如果所申请资源被正在被其他应用使用,则判断发出 请求的应用的优先级是否高于正在占用资源的应用的优先级,如果发出请求的应用的优先 级较高,则释放低优先级应用对资源的占用,如果发出请求的应用的优先级较低,则重新发 送请求申请。

8.根据权利要求6所述的方法,其特征在于,所述为所述共享性资源请求提供资源分配 接口,对资源进行统一管理和分配步骤,包括:

判断应用所申请的共享性资源是否被其他应用占用,如果所申请资源处于空闲状态, 则应用通过Cgroup接口接口调用所需资源;如果所申请资源被正在被其他应用使用,则判 断发出请求的应用的优先级是否高于正在占用资源的应用的优先级,如果发出请求的应用 的优先级较高,则释放低优先级应用对资源的占用,如果发出请求的应用的优先级较低,则 重新发送请求申请。

9.根据权利要求6所述的方法,其特征在于,对应用按照用户的关注程度由重到轻依次 划分为:前台应用、可见应用和后台应用。

10.根据权利要求6所述的方法,其特征在于,在嵌入式终端上使用容器的方法对资源 进行调控。

说明书
技术领域

本发明涉及计算机领域,尤其涉及一种嵌入式平台及动态调控应用资源的方法。

随着计算机技术,网络技术和微电子技术的深入发展,嵌入式系统的应用无处不 在,无疑是当前最热门最有发展前途的IT应用领域之一。嵌入式系统用在一些特定专用设 备上,通常这些设备的硬件资源(如处理器、存储器等)非常有限,并且对成本很敏感,有时 对实时响应要求很高等。特别是随着消费家电的智能化,嵌入式更显重要。像我们平常常见 到的手机、PDA、电子字典、可视电话、VCD/DVD/MP3Player、数字相机(DC)、数字摄像机(DV)、 U-Disk、机顶盒(Set Top Box)、高清电视(HDTV)、游戏机、智能玩具、交换机、路由器、数控 设备或仪表、汽车电子、家电控制系统、医疗仪器、航天航空设备等等都是典型的嵌入式系 统。

同时近年来,以Docker为代表的容器技术作为轻量级虚拟化技术,广泛应用于云 计算、安全、智能操作系统等领域。Docker是一个开源的应用容器引擎,让开发者可以打包 他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上。 Docker容器可以为应用提供一个虚拟化的运行环境,各个容器之间完全隔离,相互之间不 会有任何接口,而且几乎没有性能开销,可以很容易地在主机上运行。

目前Linux系统中对于资源的管控是以进程为单位的,没有对多进程应用的整体 资源进行有效管控,同时,嵌入式平台相较于PC机,资源比较匮乏。因此必须对有限的资源 进行有效的管理才能满足应用需要。本方法以容器为基础,将应用以及其依赖环境整体打 包进容器之中。可以方便的控制应用的整体资源。并且该方法对嵌入式上所有可用资源进 行了有效管理。大大简化了应用对于嵌入式资源的使用方法。为独占性资源提供统一的接 口,方便应用对其进行有效合理的管控。能够优先保障用户更加关注的应用的可靠高效运 行,提升用户体验。

本发明目的是为了解决嵌入式上应用资源管理不便,提供一种将应用打包在容器 当中,通过动态调控应用资源的方法,对资源实现分类调控。

为实现上述目的,本发明一方面提供了一种嵌入式平台,包括:多个容器,用于分 别存储系统中创建的应用;容器引擎,提供所述容器运行环境,在所述容器中安装并启动要 运行的应用;操作系统,用于接收容器引擎向统一接口或Cgroup接口发送申请使用资源请 求,并根据申请使用请求的类型选择统一接口或Cgroup接口;所述申请使用请求的类型包 括独占性资源请求和共享性资源请求;统一接口,为所述独占性资源请求提供资源分配接 口,对资源进行统一管理和分配;Cgroup接口,为所述共享性资源请求提供资源分配接口, 对资源进行统一管理和分配。

优选地,所述应用按照用户的关注程度由重到轻依次划分为:前台应用、可见应 用、后台应用;用户关注度高的应用优先级较高,高优先级应用可以抢占低优先级应用的独 占性资源。

优选地,所述容器引擎运行于宿主机之上,提供容器运行环境,支撑容器运行,管 理容器生命周期,根据用户指令生成容器镜像,并基于镜像运行容器。

优选地,所述独占性资源包括解码器、解复用器、外部存储器和外部设备;所述共 享性资源包括:IO设备、内存、网络带宽和CPU。

优选地,在嵌入式终端上使用容器的方法对资源进行调控。

另一方面提供了一种动态调控应用资源的方法,该方法包括:在系统中创建应用 运行所需要的容器,并配置好相关环境;在所述容器引擎中安装并启动要运行的应用;接收 容器引擎向统一接口或Cgroup接口发送申请使用资源请求,并根据申请使用请求的类型选 择统一接口或Cgroup接口;所述申请使用请求的类型包括独占性资源请求和共享性资源请 求;为所述独占性资源请求提供资源分配接口,对资源进行统一管理和分配;以及为所述共 享性资源请求提供资源分配接口,对资源进行统一管理和分配。

优选地,所述为所述独占性资源请求提供资源分配接口,对资源进行统一管理和 分配步骤,包括:判断应用所申请的独占性资源是否被其他应用占用,如果所申请资源处于 空闲状态,则应用通过统一接口调用所需资源;如果所申请资源被正在被其他应用使用,则 判断发出请求的应用的优先级是否高于正在占用资源的应用的优先级,如果发出请求的应 用的优先级较高,则释放低优先级应用对资源的占用,如果发出请求的应用的优先级较低, 则重新发送请求申请。

优选地,所述为所述共享性资源请求提供资源分配接口,对资源进行统一管理和 分配步骤,包括:判断应用所申请的共享性资源是否被其他应用占用,如果所申请资源处于 空闲状态,则应用通过Cgroup接口接口调用所需资源;如果所申请资源被正在被其他应用 使用,则判断发出请求的应用的优先级是否高于正在占用资源的应用的优先级,如果发出 请求的应用的优先级较高,则释放低优先级应用对资源的占用,如果发出请求的应用的优 先级较低,则重新发送请求申请。

优选地,对应用按照用户的关注程度由重到轻依次划分为:前台应用、可见应用和 后台应用。

优选地,在嵌入式终端上使用容器的方法对资源进行调控。

本发明以容器为基础,将应用以及其依赖环境整体打包进容器之中,可以方便的 控制应用的整体资源。并且该方法对嵌入式上所有可用资源进行了有效管理,大大简化了 应用对于嵌入式资源的使用方法,为独占性资源提供统一的接口,方便应用对其进行有效 合理的管控,能够优先保障用户更加关注的应用的可靠高效运行。

为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用 的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本 领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的 附图。

图1为本发明实施例的嵌入式平台架构图;

图2为本发明动态调控应用资源的方法的流程图;

图3为本发明实施例的应用进程优先级示意图;

图4为本发明实施例的动态调用独占性资源流程图。

图1为本发明实施例的系统架构图。一方面本发明创新性的将嵌入式平台上的应 用打包进容器当中,并对资源实现分类管控其整体系统架构。如图1所示,嵌入式平台包括 以下几个部分:

容器101:用于分别存储系统中创建的应用。为了达到应用安全,方便资源调控的 目的,每个应用都运行于一个单独的容器之中。

另外,应用容器是由容器的镜像生成。

容器引擎102:提供容器运行环境,在容器中安装并启动要运行的应用。

运行于宿主机之上,提供容器运行环境,支撑容器运行,管理容器生命周期,根据 用户指令生成容器镜像,并基于镜像运行容器。

操作系统103:用于接收容器引擎向统一接口或Cgroup接口发送申请使用资源请 求,并根据申请使用请求的类型选择统一接口或Cgroup接口。

目前市场上流行的各种嵌入式操作系统,例如:嵌入式Linux、VxWorks、QNX、 Windows CE等。

统一接口104:为独占性资源请求提供资源分配接口,对资源进行统一管理和分 配。

本发明提出的对解码器、解复用器以及图形这类硬件,平台提供的独占性资源以 及外存等外部设备进行有效管理的模块。

Cgroup接口105:为共享性资源请求提供资源分配接口,对资源进行统一管理和分 配。

其中,独占性资源包括:解码器、解复用器、外部存储器和外部设备;共享性资源包 括:IO设备、内存、网络带宽和CPU。

Linux内核提供的一种可以限制、记录、隔离进程组(process groups)所使用的物 理资源(如:CPU,memory,IO等等)的机制。最初由google的工程师提出,后来被整合进Linux 内核。

图2为本发明动态调控应用资源的方法的流程图。如图2所示,另一方面本发明还 提出了一种动态调控应用资源的方法,该方法包括:

步骤S201,在系统中创建应用运行所需要的容器,并配置好相关环境。

步骤S202,在所述容器引擎中安装并启动要运行的应用。

步骤S203,接收容器引擎向统一接口或Cgroup接口发送申请使用资源请求,并根 据申请使用请求的类型选择统一接口或Cgroup接口;所述申请使用请求的类型包括共享性 资源请求和独占性资源请求。

步骤S204,为所述独占性资源请求提供资源分配接口,对资源进行统一管理和分 配;以及为所述共享性资源请求提供资源分配接口,对资源进行统一管理和分配。

为独占性资源请求提供资源分配接口,对资源进行统一管理和分配步骤,包括:判 断应用所申请的独占性资源是否被其他应用占用,如果所申请资源处于空闲状态,则应用 通过统一接口调用所需资源;如果所申请资源被正在被其他应用使用,则判断发出请求的 应用的优先级是否高于正在占用资源的应用的优先级,如果发出请求的应用的优先级较 高,则释放低优先级应用对资源的占用,如果发出请求的应用的优先级较低,则重新发送请 求申请。

为共享性资源请求提供资源分配接口,对资源进行统一管理和分配步骤,包括:判 断应用所申请的共享性资源是否被其他应用占用,如果所申请资源处于空闲状态,则应用 通过Cgroup接口接口调用所需资源;如果所申请资源被正在被其他应用使用,则判断发出 请求的应用的优先级是否高于正在占用资源的应用的优先级,如果发出请求的应用的优先 级较高,则释放低优先级应用对资源的占用,如果发出请求的应用的优先级较低,则重新发 送请求申请。

当系统中的应用出现互斥资源竞争的情况下,将基于用户体验的任务调度算法和 资源访问控制协议相结合,综合用户体验和抢占代价两方面因素,实现应用的高效可靠调 度,并减少任务抢占的次数,缩短应用的相应和处理时间。

图3为本发明实施例的应用进程优先级示意图。如图3所示,系统中运行的应用进 程根据运行状态可以分为三类:前台进程、可见进程、后台进程。

前台进程301:为用户当前正在使用的应用的进程。

可见进程302:为可以在屏幕上被用户观察到,但并非用户当前所关注的应用。

后台进程303:为当前处于后台运行,无法在屏幕上观察到的应用。

三类进程在系统中的优先级按重要性依次为:前台进程>可见进程>后台进程。

资源访问控制协议在使用独占性资源时,必须使用统一接口模块提供的资源分配 接口进行资源请求,以实现对资源的统一管理和分配。重要性较高的资源具有较高的优先 级。

为使本发明实施例的技术方案以及优点表达的更清楚,下面通过附图和实施例, 对本发明的技术方案做进一步的详细描述。在本实施例中,容器技术选择Docker,操作系统 选择Linux嵌入式系统。

图4为本发明实施例的动态调用独占性资源流程图。如图4所示提供的一种嵌入式 上动态控制独占性资源的流程图,该方法包括:

步骤S401:在Docker中创建应用运行所需要的容器。

具体地,容器的镜像应选择应用运行所需要的操作系统,在容器中应配置应用运 行所需要的运行环境,其中,运行环境包括应用运行所依赖的其他程序、库文件和配置环境 变量,以使应用能够在容器中正常启动。

步骤S402:在容器中安装并启动要运行的应用。

步骤S403:应用向统一接口发送请求申请使用独占性资源。

步骤S404:统一接口判断应用所申请的资源是否被其他应用占用,如果所申请资 源处于空闲状态,则流程进行到步骤S407,如果所申请资源被正在被其他应用使用,则流程 进行到步骤S405。

步骤S405:判断发出请求的应用的优先级是否高于正在占用资源的应用的优先 级,如果发出请求的应用的优先级较高,则流程进行到步骤S406,如果发出请求的应用的优 先级较低,则流程进行到步骤返回到步骤S403。

步骤S406:释放低优先级应用对资源的占用。

步骤S407:应用通过统一接口调用所需资源。

本发明利用容器技术与统一的资源管理接口,优化了嵌入式平台上,应用资源调 度策略,提升了用户体验度。

专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的 单元及算法步骤,可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种 实现不应认为超出本发明的范围。

以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步 详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明 的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含 在本发明的保护范围之内。

本文发布于:2023-04-14 04:30:41,感谢您对本站的认可!

本文链接:https://patent.en369.cn/patent/3/86424.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图