多系统的资源调度方法及装置与流程

文档序号:12463646阅读:221来源:国知局
多系统的资源调度方法及装置与流程

本发明涉及终端技术领域,具体而言,本发明涉及一种多系统的资源调度方法及装置。



背景技术:

随着社会的进步和科技的发展,智能手机、平板电脑和电子阅读器等终端设备已广泛普及。相当一部分数量的终端设备中安装了两个操作系统。

出于操作系统快速切换的需要,两个操作系统通常是同时运行在终端设备中的。在这种情况下,相比于运行单个操作系统,安装了两个操作系统的终端设备系统需要提供更多的资源,例如处理器资源和内存资源等,以保证两个操作系统的正常运行。

在终端设备上,为了保证用户使用应用流畅的体验,当一个应用从前台切换到后台的时候往往不会释放该应用所占用的资源,而是继续占用原先的资源。这样当新的应用被打开并且申请资源的时候,终端设备会从空闲的资源中分配相应的资源供新的应用使用。经过一段时间的运行,终端设备往往容易出现空闲资源不足的情况,这就需要调度资源供新创建的前台进程使用。现有的双系统还未配置行之有效的资源调度方法。

现有的单系统的资源调度方法包括:当出现空闲资源不足的情况时,首先关闭相对不重要的后台进程,以调度出资源供新创建的前台进程使用;当后台进程中仅剩维持操作系统运行的必要进程时,开始关闭相对不重要的前台进程。

然而,若把单系统的资源调度方法直接运用到双系统中的终端设备中,很可能导致资源调度的混乱。例如,操作系统A和B分别独立采用现有的单系统的资源调度方法,操作系统A和B分别处于前台和后台,一方面由于现有的双系统还未配置行之有效的资源调度方法,因此操作系统A的进程可能占用了较少的资源,操作系统B的进程可能占用了较多的资源;另一方面操作系统B在其进程占用较多资源、未出现空闲资源不足的情况下,利用现有的单系统的资源调度方法,不会主动关闭其进程,以调度资源供前台的操作系统A使用。因此,很容易导致前台的操作系统出现资源不足的局面,给用户带来不便,降低了用户的体验。



技术实现要素:

本发明针对现有方式的缺点,提出一种多系统的资源调度方法及装置,用以解决现有技术存在一个操作系统的进程挤占其它操作系统的资源的问题。

本发明的实施例根据一个方面,提供了一种多系统的资源调度方法,包括:

主控系统启动时,根据预设的资源分配策略中规定的主控系统、前台容器系统和后台容器系统各自的资源占比上限,创建包括所述主控系统、处于前台的第一容器系统和处于后台的至少一个其它容器系统各自的资源分配子目录的资源分配目录;

所述主控系统启动第一容器系统和至少一个其它容器系统;

启动后的第一容器系统和各其它容器系统,根据各自的资源分配子目录获取资源。

本发明的实施例根据另一个方面,还提供了一种多系统的资源调度装置,包括:主控系统、第一容器系统和至少一个其它容器系统;

所述主控系统包括:

资源分配目录处理模块,用于在所述主控系统启动时,根据预设的资源分配策略中规定的主控系统、前台容器系统和后台容器系统各自的资源占比上限,创建包括所述主控系统、处于前台的第一容器系统和处于后台的至少一个其它容器系统各自的资源分配子目录的资源分配目录;

容器系统启动模块,用于启动第一容器系统和至少一个其它容器系统;

第一容器系统包括:

第一资源获取分配模块,用于根据第一容器系统的资源分配子目录获取资源;

每个其它容器系统包括:

其它资源获取分配模块,用于根据其所属的其它容器系统的资源分配子目录获取资源。

较佳地,所述资源分配目录处理模块具体用于在所述主控系统启动时,挂载资源子系统;通过所述资源子系统,根据预设的资源分配策略中规定的主控系统、前台容器系统和后台容器系统各自的资源占比上限,创建包括所述主控系统、处于前台的第一容器系统和处于后台的每个其它容器系统各自的资源分配子目录的资源分配目录。

较佳地,所述资源分配目录处理模块具体用于创建所述主控系统、第一容器系统和其它容器系统各自的资源分配子目录,并在各资源分配子目录的指定文件中分别设定所述资源分配策略规定的主控系统、前台容器系统和后台容器系统的资源占比上限。

较佳地,所述主控系统还包括:

主控资源分配模块,用于在所述主控系统的资源分配子目录中的资源占比上限的范围内,根据所述资源分配策略中规定的主控系统的前、后台进程各自的资源占比上限,在所述主控系统的资源分配子目录名下分别创建所述主控系统的前、后台资源子目录;根据所述主控系统的前、后台资源子目录为所述主控系统的前、后台进程分配资源。

较佳地,第一资源获取分配模块具体用于在第一容器系统启动时,挂载所述资源子系统;通过所述资源子系统,获取第一容器系统的资源分配子目录;根据第一容器系统的资源分配子目录获取资源;以及

所述其它资源获取分配模块具体用于在其所属的其它容器系统启动时,挂载所述资源子系统;通过所述资源子系统,获取其所属的其它容器系统的资源分配子目录;根据其所属的其它容器系统的资源分配子目录获取资源。

较佳地,所述容器系统启动模块还用于在启动第一容器系统后,发送资源占比上限传输通知;

所述资源分配目录处理模块还用于接收到所述资源占比上限传输通知后,通过容器通道,向第一容器系统发送所述资源分配策略中规定的前台容器系统的前、后台进程各自的资源占比上限;以及

第一资源获取分配模块还用于在第一容器系统的资源分配子目录中的资源占比上限的范围内,根据接收的前台容器系统的前、后台进程各自的资源占比上限,在第一容器系统的分配子目录名下分别创建第一容器系统的前、后台资源子目录;根据第一容器系统的前、后台资源子目录为第一容器系统的前、后台进程分配资源。

较佳地,第一资源获取分配模块具体用于根据第一容器系统中预设的前、后台进程各自的资源占比上限,在第一容器系统的资源分配子目录名下分别创建第一容器系统的前、后台资源子目录;根据第一容器系统的前、后台资源子目录为第一容器系统的前、后台进程分配资源。

较佳地,所述资源分配目录处理模块还用于检测到第一容器系统与一个其它容器系统发生前后台切换后,根据所述资源分配策略中规定的后台容器系统和前台容器系统各自的资源占比上限,对分别切换至后台、前台的第一容器系统、所述一个其它容器系统的资源分配子目录中的资源占比上限进行更新。

较佳地,所述资源分配目录处理模块还用于检测到第一容器系统与一个其它容器系统发生前后台切换后,根据所述资源分配策略中规定的后台容器系统和前台容器系统各自的资源占比上限,确定出分别切换至后台、前台的第一容器系统、所述一个其它容器系统的资源占比上限,通过容器通道分别向第一容器系统、所述一个其它容器系统发送;以及

第一资源获取分配模块还用于根据接收的切换至后台的第一容器系统的资源占比上限,对第一容器系统的资源分配子目录中的资源占比上限进行更新;

所述其它资源获取分配模块还用于根据接收的切换至前台的其所属的其它容器系统的资源占比上限,对其所属的其它容器系统的资源分配子目录中的资源占比上限进行更新。

本发明实施例中,根据资源分配策略,主控系统、处于前台的容器系统和处于后台的至少一个容器系统都拥有各自的资源占比上限,各系统可以在各自资源占比上限的范围内获取并使用终端设备的软硬件资源,既可以保证每个系统都处于可以运行的状态,又可以防止某一系统挤占其它系统的资源份额,例如可以防止处于后台的容器系统挤占处于前台的容器系统的资源份额;从而可以既不耽误各系统各司其职处理各自的任务,又可以使得处于前台的容器系统能够获取足够的资源以保证与用户之间的交互不受影响,从而给用户带来便利,可以提升用户的体验。

本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:

图1为本发明实施例的终端设备的内部结构的框架示意图;

图2a、2b和2c分别为本发明实施例的三种多系统的资源调度方法的流程示意图;

图3为本发明实施例的终端设备中的多系统的资源分配目录的一个实例的示意图;

图4为本发明实施例的多系统的资源调度装置的内部结构的框架示意图。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。

本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。

本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。

本技术领域技术人员可以理解,这里所使用的“终端”、“终端设备”既包括无线信号接收器的设备,其仅具备无发射能力的无线信号接收器的设备,又包括接收和发射硬件的设备,其具有能够在双向通信链路上,进行双向通信的接收和发射硬件的设备。这种设备可以包括:蜂窝或其他通信设备,其具有单线路显示器或多线路显示器或没有多线路显示器的蜂窝或其他通信设备;PCS(Personal Communications Service,个人通信系统),其可以组合语音、数据处理、传真和/或数据通信能力;PDA(Personal Digital Assistant,个人数字助理),其可以包括射频接收器、寻呼机、互联网/内联网访问、网络浏览器、记事本、日历和/或GPS(Global Positioning System,全球定位系统)接收器;常规膝上型和/或掌上型计算机或其他设备,其具有和/或包括射频接收器的常规膝上型和/或掌上型计算机或其他设备。这里所使用的“终端”、“终端设备”可以是便携式、可运输、安装在交通工具(航空、海运和/或陆地)中的,或者适合于和/或配置为在本地运行,和/或以分布形式,运行在地球和/或空间的任何其他位置运行。这里所使用的“终端”、“终端设备”还可以是通信终端、上网终端、音乐/视频播放终端,例如可以是PDA、MID(Mobile Internet Device,移动互联网设备)和/或具有音乐/视频播放功能的移动电话,也可以是智能电视、机顶盒等设备。

本发明实施例中,终端设备中配置了主控系统和至少两个容器系统,并预先设定了资源分配策略。主控系统启动时,根据预设的资源分配策略中规定的主控系统、前台容器系统和后台容器系统各自的资源占比上限,创建包括主控系统、处于前台的第一容器系统和处于后台的至少一个其它容器系统各自的资源分配子目录的资源分配目录;主控系统启动第一容器系统和至少一个其它容器系统;启动后的第一容器系统和各其它容器系统,根据各自的资源分配子目录获取资源。可见,本发明实施例中,根据资源分配策略,主控系统、处于前台的容器系统和处于后台的至少一个其它容器系统都拥有各自的资源占比上限,各系统可以在各自资源占比上限的范围内获取并使用终端设备的软硬件资源,既可以保证每个系统都处于可以运行的状态,又可以防止某一系统挤占其它系统的资源份额,例如可以防止处于后台的其它容器系统挤占处于前台的容器系统的资源份额;从而可以既不耽误各系统各司其职处理各自的任务,又可以使得处于前台的容器系统能够获取足够的资源以保证与用户之间的交互不受影响,从而给用户带来便利,可以提升用户的体验。

下面结合附图具体介绍本发明实施例的技术方案。

本发明实施例的终端设备的内部结构的框架示意图如图1所示,包括:主控系统和两个以上容器系统。

其中,两个以上容器系统包括第一容器系统、第二容器系统、……、第N容器系统。N为2以上的正整数。

本发明实施例中的容器系统,是设置在以Linux container(容器)虚拟化技术创建的容器中的操作系统。操作系统可以为传统意义上的Linux操作系统或Unix操作系统,也可以是基于Linux操作系统衍生出来的Android系统或Ubuntu系统等,还可以为以Windows平台为基础的windows系统等等。实际上,本发明中的容器系统不限于前述例举的操作系统,可以涵盖所有能够在容器中运行的操作系统。为便于描述,下面以Android系统作为容器系统为例阐述本发明的技术方案。

主控系统可以是上述传统的操作系统,也可以是对传统的操作系统进行改进得到的操作系统。内核为kernel,或者在kernel基础上增加功能模块之后得到的增强型kernel。较佳地,主控系统可以包括内核;上述容器系统通过主控系统调用或访问内核以实现各种功能。或者,容器系统和主控系统共享内核;本发明的容器系统和主控系统包含现有操作系统中kernel之外的部分,例如框架层和应用层的部分;容器系统和主控系统都可以独立调用或访问内核以实现各种功能。

主控系统主要用于对多个容器系统进行前后台管理,与各容器系统进行交互等。

较佳地,主控系统可以通过容器通道与容器系统进行通信。进一步,容器通道可以是socket(套接字)通道。

下面介绍主控系统与容器系统之间的容器通道的建立方法。

容器系统向主控系统发送容器通道创建请求,该容器通道创建请求中包括容器通道对应的文件描述符、文件权限、允许访问该容器通道的两个以上操作系统的系统标识、允许的最大访问数量、以及待生成文件的描述符的标识等。两个以上操作系统包括(发送容器通道创建请求的)容器系统、和该容器系统期待交互的操作系统。

主控系统接到该容器系统的容器通道创建请求后,创建一对socket文件描述符(socketpair)和连接该对文件描述符的容器通道,并为该对文件描述符命名。将容器通道创建请求中的文件权限、允许访问的系统标识、允许的最大访问数量、以及待生成文件的描述符的标识记录到所创建的容器通道中。

主控系统将容器通道及其标识和一对文件描述符、以及允许访问该容器通道的系统标识注册在内核的NSS(Name Space Server,域名空间服务)虚拟设备中。主控系统和内核都对应记录已经注册的容器通道及其标识和文件描述符对、以及允许访问该容器通道的系统标识。

内核的NSS将容器通道的标识、以及允许访问该容器通道的各系统标识返回给该容器系统。并将容器通道的标识和允许访问该容器通道的各系统标识,分别向与各系统标识相符的操作系统返回。

该容器系统根据获取的容器通道的标识从NSS中获取该容器通道的文件描述符对中的一个文件描述符。

主控系统接收到主控系统针对上述容器通道的获取请求后,查找出已经注册的该容器通道的标识,向该主控系统返回。

主控系统获取容器通道的标识后,向内核中的NSS虚拟设备发送,携带有该容器通道的标识的文件描述符获取请求。

内核中的NSS虚拟设备根据接收到的该文件描述符获取请求中的容器通道的标识,从已注册的容器通道及其标识和文件描述符对中,查找出该容器通道的文件描述符对中的另一个文件描述符返回。较佳地,NSS校验发送文件描述符获取请求的容器系统的系统标识、访问数量等安全信息是否与容器通道中记录的对应信息相符;若校验结果为相符,则根据接收到的该文件描述符获取请求中的容器通道的标识,从已注册的容器通道及其标识和文件描述符对中,查找出该容器通道的文件描述符对中的另一个文件描述符,向主控系统返回。

相当于,将连接容器通道两端的一对文件描述符中的一个文件描述符向容器系统返回,将另一个文件描述符向主控系统的进程返回。

主控系统获取内核返回的另一个文件描述符后,主控系统与容器系统之间的容器通道建立完毕。主控系统可以通过该另一个文件描述符,与拥有该另一个文件描述符所属容器通道的一个文件描述符的容器系统进行通信。

较佳地,主控系统对于一对文件描述符,根据返回给一个容器系统的一个文件描述符,从内核获取socket描述文件的结构体,与该一个文件描述符相关联,并记录在容器通道中。之后,将容器通道注册到内核的NSS虚拟设备中。

内核中的NSS虚拟设备接收到主控系统的进程的文件描述符获取请求后,查询出主控系统的进程中未使用的文件描述符,将该未使用的文件描述符与容器通道中保存的socket描述文件的文件结构体相关联,并向主控系统的该进程返回关联后的文件描述符。此时,关联后的文件描述符相当于同一容器通道的文件描述符中的另一个文件描述符。

本发明实施例中的终端设备中预先设定了资源调度策略。该资源调度策略中规定了主控系统、前台容器系统和后台容器系统各自的资源占比上限。其中,本发明实施例中的资源可以包括下述至少一项:处理器资源、内存资源、非易失性存储器资源、数据传输总线带宽资源等。

较佳地,本发明实施例中,终端设备中可以配置一个主控系统、一个处于前台的容器系统、和处于后台的至少一个其它容器系统。

例如,当处于后台的其它容器系统为一个时,资源调度策略中规定的主控系统、处于前台的容器系统、和处于后台的其它容器系统的资源占比上限分别为30%、50%和20%。

当处于后台的其它容器系统为两个以上时,资源调度策略中规定处于后台的各其它容器系统的资源占比上限。

较佳地,资源调度策略可以从终端设备的总资源中,首先规定主控系统和处于前台的容器系统的资源占比上限,然而确定出主控系统和处于前台的容器系统的资源占比上限之外的剩余资源,在该剩余资源的范围内规定处于后台的各其它容器系统的资源占比上限。其中,处于后台的每个其它容器系统的资源占比上限不小于该其它容器系统维持运行所需的最小资源。

进一步,确定出处于后台的每个其它容器系统持续运行所需的平均资源,从剩余资源中以该平均资源为单位,规定处于后台的各其它容器系统的资源占比上限等。例如,当处于后台的其它容器系统为两个时,资源调度策略中规定的主控系统、处于前台的容器系统、处于后台的容器系统A和处于后台的容器系统B的资源占比上限分别为30%、50%、10%和10%。

可见,本发明实施例的资源调度策略、以及后续基于该资源调度策略的多系统的资源调度方法,适用于存在处于后台的多个其他容器系统的应用场景。

为了便于理解,下面以主控系统、处于前台的第一容器系统和处于后台的第二容器系统(即处于后台的一个其它容器系统)为例,介绍本发明实施例提供的多系统的资源调度方法,该方法的流程示意图如图2a所示,包括下述步骤:

S201:主控系统启动时,根据预设的资源分配策略中规定的主控系统、前台容器系统和后台容器系统各自的资源占比上限,创建包括主控系统、处于前台的第一容器系统和处于后台的第二容器系统各自的资源分配子目录的资源分配目录。

主控系统启动时,挂载资源子系统。例如,当主控系统启动、且需要分配主控系统、第一容器系统和第二容器系统的处理器资源时,获取内核的Cgroup中的处理器资源子系统,并挂载。

主控系统通过资源子系统,根据预设的资源分配策略中规定的主控系统、前台容器系统和后台容器系统各自的资源占比上限,创建包括主控系统、处于前台的第一容器系统和处于后台的第二容器系统各自的资源分配子目录的资源分配目录。

较佳地,主控系统通过资源子系统,创建多系统的资源分配目录。

主控系统通过资源子系统,在资源分配目录名下,创建主控系统的资源分配子目录;在主控系统的资源分配子目录的指定文件中,设定资源分配策略规定的主控系统的资源占比上限、和/或该资源占比上限关联的数值。

主控系统通过资源子系统,创建处于前台的第一容器系统的资源分配子目录;在第一容器系统的资源分配子目录的指定文件中,设定资源分配策略规定的前台容器系统的资源占比上限、和/或该资源占比上限关联的数值。

主控系统通过资源子系统,创建处于后台的第二容器系统的资源分配子目录;在第二容器系统的资源分配子目录的指定文件中,设定资源分配策略规定的后台容器系统的资源占比上限、和/或该资源占比上限关联的数值。

例如,当资源具体为处理器资源时,在主控系统的处理器资源分配子目录中的指定文件cpu.shares中,设定资源分配策略规定的主控系统的资源占比上限关联的数值为614;在第一容器系统的处理器资源分配子目录中的指定文件cpu.shares中,设定资源分配策略规定的主控系统的资源占比上限关联的数值为1024;在第二容器系统的处理器资源分配子目录中的指定文件cpu.shares中,设定资源分配策略规定的主控系统的资源占比上限关联的数值为410。本发明实施例的终端设备总的处理器资源在数值表示为614、1024和410之和2048;则主控系统、处于前台的第一容器系统、处于后台的第二容器系统的处理器资源占比上限大约分别为614/2048=30%、1024/2048=50%、410/2048=20%。

较佳地,主控系统将创建的包括各系统的资源分配子目录的资源分配目录,存储于主控系统或者内核中,供各容器系统获取。

更优的,主控系统在其资源分配子目录中的资源占比上限的范围内,根据资源分配策略中规定的主控系统的前、后台进程各自的资源占比上限,在其资源分配子目录名下分别创建主控系统的前、后台资源子目录。

主控系统分别根据其前、后台资源子目录为其前、后台进程分配资源。

具体地,主控系统通过资源子系统,在其资源分配子目录名下创建主控系统的前台资源子目录;在其资源分配子目录中的资源占比上限的范围内,在主控系统的前台资源子目录的指定文件中,设定资源分配策略中规定的主控系统的前台进程的资源占比上限、和/或该资源占比上限关联的数值。

主控系统通过资源子系统,在其资源分配子目录名下创建主控系统的后台资源子目录;在其资源分配子目录中的资源占比上限的范围内,在主控系统的后台资源子目录的指定文件中,设定资源分配策略中规定的主控系统的后台进程的资源占比上限、和/或该资源占比上限关联的数值。

主控系统分别根据其前台资源子目录、后台资源子目录中的资源占比上限和/或该资源占比上限关联的数值,为主控系统的前台进程、后台进程分配资源。

例如,资源具体为处理器资源,资源分配策略中规定的主控系统的前、后台进程各自的处理器资源占比上限分别为60%、40%,主控系统的处理器资源分配子目录中的资源占比上限为30%;则在主控系统的前、后台资源子目录的指定文件中,分别设定处理器资源占比上限30%*60%=18%、30%*40%=12%。主控系统分别根据18%、12%的处理器资源占比上限,为主控系统的前台进程、后台进程分配处理器资源。

S202:主控系统启动第一、二容器系统。

较佳地,主控系统启动第一容器系统后,通过容器通道,向第一容器系统发送资源分配策略中规定的后台容器系统的前、后台进程各自的资源占比上限。

主控系统启动第二容器系统后,通过容器通道,向第二容器系统发送资源分配策略中规定的后台容器系统的前、后台进程各自的资源占比上限。

S203:启动后的第一、二容器系统,根据各自的资源分配子目录获取资源。

第一、二容器系统启动时,分别从内核获取资源子系统,并挂载获取的资源子系统。

第一、二容器系统通过资源子系统,获取各自的资源分配子目录。

第一、二容器系统分别根据各自的资源分配子目录获取资源。

较佳地,第一、二容器系统可以采用多种方法为其前后台进程分配资源。

一种容器系统为其前、后台进程分配资源的方法,包括:第一容器系统通过容器通道接收到主控系统发送的资源分配策略中规定的后台容器系统的前、后台进程各自的资源占比上限后,在第一容器系统的资源分配子目录中的资源占比上限的范围内,根据接收的后台容器系统的前、后台进程各自的资源占比上限,在其资源分配子目录名下分别创建第一容器系统的前、后台资源子目录。

第一容器系统根据其前、后台资源子目录为其前、后台进程分配资源。

具体地,第一容器系统通过资源子系统,在其资源分配子目录名下创建第一容器系统的前台资源子目录;在其资源分配子目录中的资源占比上限的范围内,在第一容器系统的前台资源子目录的指定文件中,设定资源分配策略中规定的前台容器系统的前台进程的资源占比上限、和/或该资源占比上限关联的数值。

第一容器系统通过资源子系统,在其资源分配子目录名下创建第一容器系统的后台资源子目录;在其资源分配子目录中的资源占比上限的范围内,在第一容器系统的后台资源子目录的指定文件中,设定资源分配策略中规定的前台容器系统的后台进程的资源占比上限、和/或该资源占比上限关联的数值。

第一容器系统分别根据其前台资源子目录、后台资源子目录中的资源占比上限和/或该资源占比上限关联的数值,为第一容器系统的前台进程、后台进程分配资源。

例如,资源具体为处理器资源,资源分配策略中规定的前台容器系统的前、后台进程各自的处理器资源占比上限分别为70%、30%,前台容器系统的处理器资源分配子目录中的资源占比上限为50%;则在第一容器系统的前、后台资源子目录的指定文件中,设定处理器资源占比上限分别为50%*70%=35%、50%*30%=15%。第一容器系统分别根据35%、15%的处理器资源占比上限,为第一容器系统的前台进程、后台进程分配处理器资源。

同理,第二容器系统可以根据该方法为第二容器系统的前、后台进程分配资源。

例如,资源具体为处理器资源,资源分配策略中规定的后台容器系统的前、后台进程各自的处理器资源占比上限分别为80%、20%,后台容器系统的处理器资源分配子目录中的资源占比上限为20%;则在第二容器系统的前、后台资源子目录的指定文件中,设定处理器资源占比上限分别为20%*80%=16%、20%*20%=4%。第二容器系统分别根据16%、4%的处理器资源占比上限,为第二容器系统的前台进程、后台进程分配处理器资源。

此外,需要指出的是虽然本步骤的例子中,处于前台的第一容器系统的前台进程、后台进程的资源占比上限,都高于处于后台的第二容器系统的前台进程、后台进程的资源占比上限。然而,这不是必须的。本领域技术人员可以根据历史数据、经验数据、实验数据、和/或实际情况等,合理地确定各系统、以及其前后台进程各自的资源占比上限,以满足用户的多种需要。

另一种容器系统为其前、后台进程分配资源的方法,包括:第一容器系统根据其中预设的前、后台进程各自的资源占比上限,在其资源分配子目录名下分别创建第一容器系统的前、后台资源子目录;第一容器系统分别根据其前、后台资源子目录为其前、后台进程分配资源。

具体地,第一容器系统通过资源子系统,在其资源分配子目录名下创建第一容器系统的前台资源子目录;在其资源分配子目录中的资源占比上限的范围内,在第一容器系统的前台资源子目录的指定文件中,设定第一容器系统中预设的前台进程的资源占比上限、和/或该资源占比上限关联的数值。

第一容器系统通过资源子系统,在其资源分配子目录名下创建第一容器系统的后台资源子目录;在其资源分配子目录中的资源占比上限的范围内,在第一容器系统的后台资源子目录的指定文件中,设定第一容器系统中预设的后台进程的资源占比上限、和/或该资源占比上限关联的数值。

第一容器系统分别根据其前台资源子目录、后台资源子目录中的资源占比上限和/或该资源占比上限关联的数值,为第一容器系统的前台进程、后台进程分配资源。

同理,第二容器系统根据其中预设的前、后台进程各自的资源占比上限,在其资源分配子目录名下分别创建第二容器系统的前、后台资源子目录;第二容器系统分别根据其前、后台资源子目录为其前、后台进程分配资源。

容易理解,上述一种容器系统为其前、后台进程分配资源的方法,较为适用于容器系统本身未自带(预设)有前后台进程的资源占比上限、或者虽然自带有前后台进程的资源占比上限但安全性要求较高的应用场景;例如,容器系统自带的前后台进程的资源占比上限可能被恶意程序篡改、容器系统自带的前后台进程的资源占比上限所在文件可能被恶意程序附着等应用场景。

实际操作中,对于上述步骤S201和S202,可以先执行步骤S201后执行步骤S202,可以先执行步骤S202后执行步骤S201,或者同时执行步骤S201和步骤S202。

事实上,通过上述步骤S201-S203的流程,本发明实施例中的终端设备中的多系统的资源分配目录的一个实例的示意图如图3所示,呈树状结构,资源分配目录处于根节点,其名下具有主控系统、处于前台的第一容器系统、和处于后台的第二容器系统的资源分配子目录;主控系统的资源分配子目录名下具有主控系统的前台资源子目录和后台资源子目录;第一系统的资源分配子目录名下具有第一系统的前台资源子目录和后台资源子目录;第二系统的资源分配子目录名下具有第二系统的前台资源子目录和后台资源子目录。

上述另一种容器系统为其前、后台进程分配资源的方法,较为适用于容器系统自带有前后台进程的资源占比上限且安全性要求较低的应用场景。

事实上,本发明实施例还提供了一种适用于容器系统前后台切换的多系统的资源调度方法,该方法的流程图如图2b所示,在上述步骤S201-S203的基础上,增加了下述步骤:

S204:主控系统根据资源分配策略,对分别切换至后台、前台的第一、二容器系统的资源分配子目录进行更新。

主控系统检测到第一、二容器系统发生前后台切换后,根据资源分配策略中规定的后台容器系统和前台容器系统各自的资源占比上限,对分别切换至后台、前台的第一、二容器系统的资源分配子目录中的资源占比上限进行更新。

具体地,主控系统检测到第一容器系统切换至后台、第二容器系统切换至前台后,将第一容器系统的资源分配子目录的指定文件中的资源占比上限和/或该资源占比上限关联的数值,更新为资源分配策略中规定的后台容器系统的资源占比上限和/或该资源占比上限关联的数值;将第二容器系统的资源分配子目录的指定文件中的资源占比上限和/或该资源占比上限关联的数值,更新为资源分配策略中规定的前台容器系统的资源占比上限和/或该资源占比上限关联的数值。

S205:分别切换至后台、前台的第一、二容器系统,分别根据各自更新后的资源分配子目录获取资源。

分别切换至后台、前台的第一、二容器系统,分别从内核获取资源子系统,并挂载获取的资源子系统。

分别切换至后台、前台的第一、二容器系统通过资源子系统,获取各自更新后的资源分配子目录。

分别切换至后台、前台的第一、二容器系统分别根据各自更新后的资源分配子目录获取资源。

较佳地,主控系统通过资源子系统,将切换至后台的第一容器系统的资源分配子目录的指定文件中的资源占比上限、和/或该资源占比上限关联的数值,更新为资源分配策略规定的后台容器系统的资源占比上限、和/或该资源占比上限关联的数值。

主控系统通过资源子系统,将切换至前台的第二容器系统的资源分配子目录的指定文件中的资源占比上限、和/或该资源占比上限关联的数值,更新为资源分配策略规定的前台容器系统的资源占比上限、和/或该资源占比上限关联的数值。

较佳地,切换至后台的第一容器系统,在其更新后的资源分配子目录中的资源占比上限的范围内,根据资源分配策略中规定的后台容器系统的前、后台进程各自的资源占比上限、或者第一容器系统中预设的前、后台进程各自的资源占比上限,对第一容器系统的资源分配子目录名下的第一容器系统的前台资源子目录、后台资源子目录进行更新。

切换至后台的第一容器系统根据其更新后的前、后台资源子目录为其前、后台进程分配资源。

进一步,切换至后台的第一容器系统通过资源子系统,在第一容器系统更新后的资源分配子目录中的资源占比上限的范围内,将第一容器系统的前台资源子目录的指定文件中的前台进程的资源占比上限、和/或该资源占比上限关联的数值,更新为资源分配策略中规定的后台容器系统的前台进程的资源占比上限、和/或该资源占比上限关联的数值。

切换至后台的第一容器系统通过资源子系统,在第一容器系统更新后的资源分配子目录中的资源占比上限的范围内,将第一容器系统的后台资源子目录的指定文件中的后台进程的资源占比上限、和/或该资源占比上限关联的数值,更新为资源分配策略中规定的后台容器系统的后台进程的资源占比上限、和/或该资源占比上限关联的数值。

切换至后台的第一容器系统分别根据其更新后的前台资源子目录、后台资源子目录中的资源占比上限和/或该资源占比上限关联的数值,为切换至后台的第一容器系统的前台进程、后台进程分配资源。

例如,资源具体为处理器资源,资源分配策略中规定的后台容器系统的前、后台进程各自的处理器资源占比上限分别为80%、20%,后台容器系统的处理器资源分配子目录中的资源占比上限为20%;则将切换至后台的第一容器系统的更新后的前、后台资源子目录的指定文件中的处理器资源占比上限,分别更新为20%*80%=16%、20%*20%=4%。切换至后台的第一容器系统分别根据16%、4%的处理器资源占比上限,为切换至后台的第一容器系统的前台进程、后台进程分配处理器资源。

同理,可以更新切换至前台的第二容器系统的资源分配子目录、前台资源子目录、后台资源子目录中的资源占比上限和/或资源占比上限关联数值。

实时上,切换至后台的第一容器系统及其前后台进程的资源占比上限,与处于后台时的第二容器系统及其前后台进程的资源占比上限相一致;切换至前台的第二容器系统及其前后台进程的资源占比上限,与处于前台时的第一容器系统及其前后台进程的资源占比上限相一致。

本发明实施例还提供了另一种适用于容器系统前后台切换的多系统的资源调度方法,该方法的流程图如图2c所示,在上述步骤S201-S203的基础上,增加了下述步骤:

S211:主控系统根据资源分配策略,确定出分别切换至后台、后台的第一、二容器系统的资源占比上限,分别向第一、二容器系统发送。

具体地,主控系统检测到第一容器系统切换至后台、第二容器系统切换至前台后,根据资源分配策略中规定的后台容器系统和前台容器系统各自的资源占比上限,确定出切换至后台的第一容器系统、和切换至前台的第二容器系统的资源占比上限和/或资源占比上限关联的数值。

主控系统将确定出的切换至后台的第一容器系统的资源占比上限和/或资源占比上限关联的数值,通过主控系统与第一容器系统之间的容器通道向第一容器系统发送。

较佳地,主控系统将确定出的切换至后台的第一容器系统的前台进程、和后台进程的资源占比上限和/或资源占比上限关联的数值,通过主控系统与第一容器系统之间的容器通道向第一容器系统发送。

主控系统将确定出的切换至前台的第二容器系统的资源占比上限和/或资源占比上限关联的数值,通过主控系统与第二容器系统之间的容器通道向第二容器系统发送。

较佳地,主控系统将确定出的切换至前台的第二容器系统的前台进程、和后台进程的资源占比上限和/或资源占比上限关联的数值,通过主控系统与第二容器系统之间的容器通道向第二容器系统发送。

S212:分别切换至后台、后台的第一、二容器系统根据各自接收的资源占比上限,对各自资源分配子目录进行更新。

切换至后台的第一容器系统通过容器通道接收到主控系统发送的第一容器系统的资源占比上限和/或资源占比上限关联的数值后,根据接收到的资源占比上限和/或资源占比上限关联的数值,对第一容器系统的资源分配目录的指定文件中的资源占比上限和/或资源占比上限关联的数值进行更新。

较佳地,切换至后台的第一容器系统通过容器通道接收到主控系统发送的第一容器系统的前台进程、和后台进程的资源占比上限和/或资源占比上限关联的数值后,对第一容器系统的前台资源子目录、和后台资源子目录的指定文件中的资源占比上限和/或资源占比上限关联的数值进行更新。

切换至前台的第二容器系统通过容器通道接收到主控系统发送的第二容器系统的资源占比上限和/或资源占比上限关联的数值后,根据接收到的资源占比上限和/或资源占比上限关联的数值,对第二容器系统的资源分配目录的指定文件中的资源占比上限和/或资源占比上限关联的数值进行更新。

较佳地,切换至前台的第二容器系统通过容器通道接收到主控系统发送的第二容器系统的前台进程、和前台进程的资源占比上限和/或资源占比上限关联的数值后,对第二容器系统的前台资源子目录、和前台资源子目录的指定文件中的资源占比上限和/或资源占比上限关联的数值进行更新。

S213:分别切换至后台、前台的第一、二容器系统,分别根据各自更新后的资源分配子目录获取资源。

本步骤的方法与上述步骤S205中的具体方法相一致,此处不再赘述。

基于上述多系统的资源调度方法,本发明实施例还提供了一种多系统的资源调度装置,该装置设置于本发明实施例的终端设备中,该装置的内部结构的框架示意图如图4所示,包括:主控系统、第一容器系统和至少一个其它容器系统。

其中,主控系统包括:资源分配目录处理模块401和容器系统启动模块402。

资源分配目录处理模块401用于在主控系统启动时,根据预设的资源分配策略中规定的主控系统、前台容器系统和后台容器系统各自的资源占比上限,创建包括主控系统、处于前台的第一容器系统和处于后台的至少一个其它容器系统各自的资源分配子目录的资源分配目录。

容器系统启动模块402用于启动第一容器系统和至少一个其它容器系统。

第一容器系统包括:

第一资源获取分配模块411用于根据第一容器系统的资源分配子目录获取资源。

每个其它容器系统包括:

其它资源获取分配模块421用于根据该其它资源获取分配模块421所属的其它容器系统的资源分配子目录获取资源。

较佳地,资源分配目录处理模块401具体用于在主控系统启动时,挂载资源子系统;通过资源子系统,根据预设的资源分配策略中规定的主控系统、前台容器系统和后台容器系统各自的资源占比上限,创建包括主控系统、处于前台的第一容器系统和处于后台的每个其它容器系统各自的资源分配子目录的资源分配目录。

较佳地,资源分配目录处理模块401具体用于创建主控系统、第一容器系统和其它容器系统各自的资源分配子目录,并在各资源分配子目录的指定文件中分别设定资源分配策略规定的主控系统、前台容器系统和后台容器系统的资源占比上限。

更优的,如图4所示,本发明实施例中的主控系统还包括:

主控资源分配模块403用于在主控系统的资源分配子目录中的资源占比上限的范围内,根据资源分配策略中规定的主控系统的前、后台进程各自的资源占比上限,在主控系统的资源分配子目录名下分别创建主控系统的前、后台资源子目录;根据主控系统的前、后台资源子目录为主控系统的前、后台进程分配资源。

较佳地,第一资源获取分配模块411具体用于在第一容器系统启动时,挂载资源子系统;通过资源子系统,获取第一容器系统的资源分配子目录;根据第一容器系统的资源分配子目录获取资源。

以及,其它资源获取分配模块421具体用于在其所属的其它容器系统启动时,挂载资源子系统;通过资源子系统,获取其所属的其它容器系统的资源分配子目录;根据其所属的其它容器系统的资源分配子目录获取资源。

更优的,容器系统启动模块402还用于在启动第一容器系统后,发送资源占比上限传输通知。

资源分配目录处理模块401还用于接收到资源占比上限传输通知后,通过容器通道,向第一容器系统发送资源分配策略中规定的前台容器系统的前、后台进程各自的资源占比上限。

以及,第一资源获取分配模块411还用于在第一容器系统的资源分配子目录中的资源占比上限的范围内,根据接收的前台容器系统的前、后台进程各自的资源占比上限,在第一容器系统的分配子目录名下分别创建第一容器系统的前、后台资源子目录;根据第一容器系统的前、后台资源子目录为第一容器系统的前、后台进程分配资源。

进一步,资源分配目录处理模块401还用于接收到资源占比上限传输通知后,通过容器通道,向每个其它容器系统发送资源分配策略中规定的对应的后台容器系统的前、后台进程各自的资源占比上限。

以及,第二资源获取分配模块421还用于在其所属的其它容器系统的资源分配子目录中的资源占比上限的范围内,根据接收的对应的后台容器系统的前、后台进程各自的资源占比上限,在其所属的其它容器系统的分配子目录名下分别创建该其它容器系统的前、后台资源子目录;根据该其它容器系统的前、后台资源子目录为该其它容器系统的前、后台进程分配资源。

更优的,第一资源获取分配模块411具体用于根据第一容器系统中预设的前、后台进程各自的资源占比上限,在第一容器系统的资源分配子目录名下分别创建第一容器系统的前、后台资源子目录;根据第一容器系统的前、后台资源子目录为第一容器系统的前、后台进程分配资源。

更优的,第二资源获取分配模块421具体用于根据其所属的其它容器系统中预设的前、后台进程各自的资源占比上限,在其所属的其它容器系统的资源分配子目录名下分别创建该其它容器系统的前、后台资源子目录;根据该其它容器系统的前、后台资源子目录为该其它容器系统的前、后台进程分配资源。

更优的,资源分配目录处理模块401还用于检测到第一容器系统与一个其它容器系统发生前后台切换后,根据资源分配策略中规定的后台容器系统和前台容器系统各自的资源占比上限,对分别切换至后台、前台的第一容器系统、该一个其它容器系统的资源分配子目录中的资源占比上限进行更新。

更优的,资源分配目录处理模块401还用于检测到第一容器系统与一个其它容器系统发生前后台切换后,根据资源分配策略中规定的后台容器系统和前台容器系统各自的资源占比上限,确定出分别切换至后台、前台的第一容器系统、该一个其它容器系统的资源占比上限,通过容器通道分别向第一容器系统、该一个其它容器系统发送。

以及,第一资源获取分配模块411还用于根据接收的切换至后台的第一容器系统的资源占比上限,对第一容器系统的资源分配子目录中的资源占比上限进行更新。

第二资源获取分配模块421还用于根据接收的切换至前台的其所属的其它容器系统的资源占比上限,对其所属的其它容器系统的资源分配子目录中的资源占比上限进行更新。

上述主控系统中的资源分配目录处理模块401、容器系统启动模块402和主控资源分配模块403,第一容器系统中的第一资源获取分配模块411,以及其它容器系统中的其它资源获取分配模块421功能的实现方法,可以参考上述如图2a、2b和2c的流程步骤的具体内容,此处不再赘述。

本发明实施例中,根据资源分配策略,主控系统、处于前台的容器系统和处于后台的至少一个容器系统都拥有各自的资源占比上限,各系统可以在各自资源占比上限的范围内获取并使用终端设备的软硬件资源,既可以保证每个系统都处于可以运行的状态,又可以防止某一系统挤占其它系统的资源份额,例如可以防止处于后台的容器系统挤占处于前台的容器系统的资源份额;从而可以既不耽误各系统各司其职处理各自的任务,又可以使得处于前台的容器系统能够获取足够的资源以保证与用户之间的交互不受影响,从而给用户带来便利,可以提升用户的体验。

而且,本发明实施例中,主控系统的资源分配子目录的资源占比上限范围内的资源相当于是分配给主控系统的资源;主控系统可以在分配给其的资源范围内,根据资源分配策略规定的主控系统的前、后台进程的资源占比上限,独立地对主控系统的前台进程、后台进程进行资源分配。合理地设置资源分配策略中主控系统的前、后台进程的资源占比上限,可以在保证主控系统中的前、后台进程正常运行的情况下,防止主控系统中的进程挤占分配给容器系统的进程的资源;既充分地利用了主控系统的资源占比上限范围的资源,又增强了进程利用其所属主控系统的资源的安全性和可靠性。

进一步,本发明实施例中,分别处于前台、后台的第一容器系统、至少一个其它容器系统各自的资源分配子目录的资源占比上限范围内的资源,相当于是分别分配给处于前台、后台的第一容器系统、各其它容器系统的资源;分别处于前台、后台的第一容器系统、各其它容器系统可以在分配给各自的资源范围内,根据资源分配策略规定的各自的前、后台进程的资源占比上限,各自独立地对各自的前台进程、后台进程进行资源分配。合理地设置资源分配策略中前台容器系统和后台容器系统各自的前、后台进程的资源占比上限,可以在保证处于前台、后台的第一容器系统、各其它容器系统中的前、后台进程都正常运行的情况下,防止一个容器系统中的进程挤占分配给主控系统和另一个容器系统的进程的资源;既充分地利用了每个容器系统的资源占比上限范围的资源,又增强了进程利用其所属容器系统的资源的安全性和可靠性。

此外,本发明实施例中,检测到第一容器系统与一个其它容器系统发生前后台状态切换后,可以对分别切换至后台、前台的第一容器系统、该一个其它容器系统的资源分配子目录中的资源占比上限进行更新,相当于对分配给切换至后台、前台的第一容器系统、该一个其它容器系统的资源范围进行更新。并且,可以对分别切换至后台、前台的第一容器系统、该一个其它容器系统各自的前台资源子目录和后台资源子目录中的资源占比上限进行更新,相当于对分配给切换至后台、前台的第一容器系统、该一个其它容器系统各自的前台进程和后台进程的资源范围进行更新。利用本发明实施例,可以在容器系统发生前后台状态发生切换的情况下,自动调整每个切换前后台状态的容器系统被分配(可获取)的资源范围、以及该容器系统中前、后台进程被分配的资源范围;从整体上保证了终端设备的资源的被充分利用,并防止了切换前后台状态的每个容器系统的进程挤占其它系统的资源范围内的资源,保证每个容器系统的进程利用资源的安全性和可靠性。

本技术领域技术人员可以理解,本发明包括涉及用于执行本申请中所述操作中的一项或多项的设备。这些设备可以为所需的目的而专门设计和制造,或者也可以包括通用计算机中的已知设备。这些设备具有存储在其内的计算机程序,这些计算机程序选择性地激活或重构。这样的计算机程序可以被存储在设备(例如,计算机)可读介质中或者存储在适于存储电子指令并分别耦联到总线的任何类型的介质中,所述计算机可读介质包括但不限于任何类型的盘(包括软盘、硬盘、光盘、CD-ROM、和磁光盘)、ROM(Read-Only Memory,只读存储器)、RAM(Random Access Memory,随即存储器)、EPROM(Erasable Programmable Read-Only Memory,可擦写可编程只读存储器)、EEPROM(Electrically Erasable Programmable Read-Only Memory,电可擦可编程只读存储器)、闪存、磁性卡片或光线卡片。也就是,可读介质包括由设备(例如,计算机)以能够读的形式存储或传输信息的任何介质。

本技术领域技术人员可以理解,可以用计算机程序指令来实现这些结构图和/或框图和/或流图中的每个框以及这些结构图和/或框图和/或流图中的框的组合。本技术领域技术人员可以理解,可以将这些计算机程序指令提供给通用计算机、专业计算机或其他可编程数据处理方法的处理器来实现,从而通过计算机或其他可编程数据处理方法的处理器来执行本发明公开的结构图和/或框图和/或流图的框或多个框中指定的方案。

本技术领域技术人员可以理解,本发明中已经讨论过的各种操作、方法、流程中的步骤、措施、方案可以被交替、更改、组合或删除。进一步地,具有本发明中已经讨论过的各种操作、方法、流程中的其他步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。进一步地,现有技术中的具有与本发明中公开的各种操作、方法、流程中的步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。

以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1