一种操作系统中进程的资源分配方法及系统的制作方法

文档序号:6627983阅读:358来源:国知局
一种操作系统中进程的资源分配方法及系统的制作方法
【专利摘要】本发明公开了一种操作系统中进程的资源分配方法及系统,所述方法包括:创建类容器以及所述类容器的属性;根据所述类容器的属性给各个类容器配置能够占用系统资源的最大值;根据进程的类型将新创建的进程加入到相应的类容器中,所述新创建的进程使用所述类容器中的系统资源。本发明提供的方法及系统通过对类容器的分类以及进程的分类,将不同类别的进程隔离开来,使得同类进程可以共享同类类容器的资源,从而使得系统资源能够得到更好的利用、最大程度上的共享,进而提高整个系统的效能;此外,允许用户自定义类和用户的进程的分类,能够在系统中支持多用户环境和各种应用程序。
【专利说明】 一种操作系统中进程的资源分配方法及系统

【技术领域】
[0001]本发明涉及计算机领域,具体涉及一种操作系统中进程的资源分配方法及系统。

【背景技术】
[0002]K-UX系统是我公司最新研发的一款类UNIX操作系统,主要用于服务器和大数据计算环境中,对于原有的UNIX内核做了升级,同时是唯一一款通过国家等保三级的国内自主研发的UNIX操作系统。由于K-UX的使用环境,决定了其对性能的高要求、高标准。为了调高效能,加强进程守护的管理就必须要提上日程。
[0003]目前,现有的进程资源分配的方式只是单纯的根据进程的优先级自动调度来分配资源,进程对于资源的使用是很宽松的,需要资源就去申请,申请不到就等待,并不针对某一种类的进程进行按需分配资源,这就造成了进程资源分配的效率较低,对资源的利用率较低。


【发明内容】

[0004]本发明需要解决的技术问题是提供一种操作系统中进程的资源分配方法及系统,使得系统资源可以得到更好的利用、最大程度上的共享。
[0005]为了解决上述技术问题,本发明提供了一种操作系统中进程的资源调度方法,包括:
[0006]创建类容器以及所述类容器的属性;
[0007]根据所述类容器的属性给各个类容器配置能够占用系统资源的最大值;
[0008]根据进程的类型将新创建的进程加入到相应的类容器中,所述新创建的进程使用所述类容器中的系统资源。
[0009]进一步地,所述类容器包括:系统预定义类容器和用户自定义类容器;所述系统预定义类容器包括:系统类容器、默认类容器和共享类容器,其中:
[0010]所述用户自定义类容器用于为指定用户运行的进程提供系统资源;
[0011]所述系统类容器用于为系统相关的进程提供系统资源;
[0012]所述默认类容器用于为所有不能分辨出属于哪个类容器的进程提供系统资源;
[0013]所述共享类容器用于为其他类容器中的进程提供共享资源。
[0014]进一步地,所述类容器的属性至少包括:类容器名和优先级;
[0015]所述根据所述类容器的属性给各个类容器配置能够占用系统资源的最大值,包括:
[0016]按照各个类容器的优先级配置其能够占用系统资源的最大值;优先级高的类容器占用的最大值高于优先级低的类容器占用的最大值。
[0017]进一步地,所述进程包括系统类进程、用户自定义类进程以及其他进程;
[0018]所述根据所述进程的类型将新创建的进程加入到对应的类容器中,包括:
[0019]将系统类进程加入到系统类容器中;
[0020]将用户自定义类进程加入到对应的用户自定义类容器中;
[0021]将所有不能分辨出属于哪个类容器的进程加入到默认类容器中。
[0022]进一步地,所述类容器还包括管理类容器,所述方法还包括:
[0023]当某一类容器中当前所有进程使用的资源没有达到为所述类容器配置的占用系统资源的最大值时,则将该类容器中空闲的系统资源存放于管理类容器中;
[0024]当又有新的进程加入所述某一类容器时,则从所述管理类容器中取出相应的资源提供给所述新的进程。
[0025]进一步地,所述方法还包括:
[0026]对各个类容器中进程使用的资源进行监控,当某一类容器中的进程使用的资源达到为所述类容器配置的占用系统资源的最大值时,则提醒系统管理员该类容器资源过度申请。
[0027]为了解决上述技术问题,本发明还提供了一种操作系统中进程的资源调度系统,包括:
[0028]类容器管理模块,用于创建类容器以及所述类容器的属性;根据所述类容器的属性给各个类容器配置能够占用系统资源的最大值;
[0029]进程管理模块,用于根据进程的类型将新创建的进程加入到相应的类容器中,所述新创建的进程使用所述类容器中的系统资源。
[0030]进一步地,所述类容器包括:系统预定义类容器和用户自定义类容器;所述系统预定义类容器包括:系统类容器、默认类容器和共享类容器,其中:
[0031]所述用户自定义类容器用于为指定用户运行的进程提供系统资源;
[0032]所述系统类容器用于为系统相关的进程提供系统资源;
[0033]所述默认类容器用于为所有不能分辨出属于哪个类容器的进程提供系统资源;
[0034]所述共享类容器用于为其他类容器中的进程提供共享资源。
[0035]进一步地,所述类容器的属性至少包括:类容器名和优先级;
[0036]所述类容器管理模块,用于根据所述类容器的属性给各个类容器配置能够占用系统资源的最大值,包括:
[0037]按照各个类容器的优先级配置其能够占用系统资源的最大值;优先级高的类容器占用的最大值高于优先级低的类容器占用的最大值。
[0038]进一步地,所述进程包括系统类进程、用户自定义类进程以及其他进程;
[0039]所述进程管理模块,用于根据所述进程的类型将新创建的进程加入到对应的类容器中,包括:
[0040]将系统类进程加入到系统类容器中;
[0041]将用户自定义类进程加入到对应的用户自定义类容器中;
[0042]将所有不能分辨出属于哪个类容器的进程加入到默认类容器中。
[0043]与现有技术相比,本发明实施例提供的操作系统中进程的资源分配方法及系统,通过对类容器的分类以及进程的分类,将不同类别的进程隔离开来,使得同类进程可以共享同类类容器的资源,从而使得系统资源能够得到更好的利用、最大程度上的共享,进而提高整个系统的效能;此外,允许用户自定义类和用户的进程的分类,能够在系统中支持多用户环境和各种应用程序。

【专利附图】

【附图说明】
[0044]图1是实施例中操作系统中进程的资源分配方法的流程图;
[0045]图2是实施例中操作系统中进程的资源调度系统的结构图。

【具体实施方式】
[0046]为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
[0047]实施例:
[0048]如图1所示,本实施例提供了一种操作系统中进程的资源分配方法,包括以下步骤:
[0049]SlOl:创建类容器以及所述类容器的属性;
[0050]其中,类容器相当于一个用于装载资源的容器的概念,容器类的属性就是此种资源容器的标签,用于说明此容器的用途。
[0051]所述类容器包括:系统预定义类容器和用户自定义类容器;所述系统预定义类容器包括:系统类容器、默认类容器和共享类容器,其中:
[0052]所述用户自定义类容器用于为指定用户运行的进程提供系统资源;
[0053]所述系统类容器用于为系统相关的进程提供系统资源;
[0054]所述默认类容器用于为所有不能分辨出属于哪个类容器的进程提供系统资源;
[0055]所述共享类容器用于为其他类容器中的进程提供共享资源,设定共享类容器的原因在于,不是所有的进程都能严格的只使用本类容器中的资源,所以需要共享类容器来存放共享部分的系统资源。
[0056]例如,系统类容器中的某一进程与自定义类容器中的某一进程均要访问系统日志,系统日志属于系统类容器占用的资源,需要将该系统日志的内存块取出放入共享类容器中,同时提供给系统类容器中的某一进程与自定义类容器中的某一进程使用。
[0057]所述类容器的属性包括:类容器名和优先级、资源限制;
[0058]类容器名,用于在系统中唯一标识类容器;类容器的优先级,用于决定系统给多个类容器分配系统资源的优先顺序或者多少;资源限制,用于决定类容器中资源集包含的资源的种类、多少以及对某一种资源的使用权限,资源集就是多种资源的集合。系统资源包括CPU、内存、磁盘、网络1等等,将各种资源分配给类容器就能在类容器内部实现更好的资源共享方式,更好的调度进程之间的切换。
[0059]S102:根据所述类容器的属性给各个类容器配置能够占用系统资源的最大值;
[0060]具体包括:按照各个类容器的优先级配置其能够占用系统资源的最大值;优先级高的类容器占用的最大值高于优先级低的类容器占用的最大值。
[0061]一种优选的方式是,系统类容器的优选级最高,其次为默认类容器,然后为用户自定义类容器,最后是共享类容器。例如,可以配置系统类容器可占用系统资源的50%,默认类容器占用系统资源的30%,用户自定义类容器占用系统资源的20%,共享类容器占用系统资源的10%。
[0062]每个类容器的资源集包括所有种类的系统资源,因为,无论是系统类容器还是默认类容器都包括多种多样的进程,所以需要所有种类资源。但是,自定义类容器就不同,在管理员自定义类的时候,他可以指定此类所使用的资源种类,比如需要使用CPU、内存、磁盘,但不使用网络1,所以,可将其资源集定义为包括前三种,而不包括网络1,这也是资源集的由来。
[0063]此外,出于严谨的考虑,还可以设置各个类容器配置能够占用系统资源的最小值,最小值一般默认为O。
[0064]S103:根据进程的类型将新创建的进程加入到相应的类容器中,所述新创建的进程使用所述类容器中的系统资源。
[0065]其中,所述进程包括系统类进程、用户自定义类进程以及其他进程;
[0066]系统类进程是指与系统相关的进程,包括守护进程都属于此类进程,在本实施例中,用户还可以设置某一用户开机运行的进程可以放在某一用户自定义类容器中,使用该用户自定义类容器的系统资源,即用户自定义进程的类别,而且,用户可以自定义多个进程的类别,即用户自定义类进程包括:一个或多个。其他进程是指除系统类进程和用户自定义类进程之外的进程。
[0067]其中,所述根据所述进程的类型将新创建的进程加入到对应的类容器中,包括:
[0068]将系统类进程加入到系统类容器中;
[0069]将用户自定义类进程加入到对应的用户自定义类容器中;
[0070]将所有不能分辨出属于哪个类容器的进程加入到默认类容器中。
[0071]此外,作为一种优选的方式,所述类容器还包括管理类容器,所述方法还包括:
[0072]当某一类容器中当前所有进程使用的资源没有达到为所述类容器配置的占用系统资源的最大值时,则将该类容器中空闲的系统资源存放于管理类容器中;
[0073]当又有新的进程加入所述该类容器时,则从所述管理类容器中取出相应的资源提供给所述新的进程。
[0074]某一类容器是除了管理类容器和共享类容器之外的其他类容器,比如、系统类容器、默认类容器和用户自定义类容器。
[0075]此外,作为一种优选的方式,所述方法还包括:
[0076]对各个类容器中进程使用的资源进行监控,当某一类容器中的进程使用的资源达到为所述类容器分配的最大值时,则提醒系统管理员该类容器资源过度申请。
[0077]下面,在一个应用示例中,以系统管理员未自定义类容器和进程的类别的情况为例,进一步详细描述本实施例的进程的资源分配方法。
[0078]假设,用户root登录系统,并打开Qt程序,希望制作界面,此时产生Qt相关的进程,如果系统管理员没有针对root启动的进程没有自定义类别,则此程序属于默认类容器,并使用其中的资源。此时用户userl登录系统,userl和root共同开发同一个项目,但是,userl负责后台编码的工作,所以他启动vim实用程序,如前所说,如果没有对userl的进程进行类别设置,则该进程属于默认类容器,但是后台和前台界面要有信息交互,如果此信息与系统无关,则应属于默认类容器,若此信息与系统相关,比如访问系统日志,即默认类容器中userl的进程与系统类容器中的进程需要共享资源,此时,需要把系统日志中的共享页面放入共享类容器中。
[0079]下面,在另一个应用示例中,以系统管理员自定义类容器和进程的类别的情况为例,进一步详细描述本实施例的进程的资源分配方法。
[0080]假设,系统管理员自定义一个类容器test,为此类容器配置占用最大1M内存的系统资源,并定义将用户userf的进程加入到test类容器中,所以,当用户userf登录系统时,他启动的所有进程都是属于test类容器的。此外,用户userf启动火狐浏览器上网查找资料,上网过程中可能并不能使用1M内存,假设他只使用3M内存,则此类容器中剩余7M都是空闲的,可以将7M内存暂时存放在管理类容器中以备使用,当然,这7M内存并不是只有test类中的进程可以使用,当系统类容器中的进程需要申请资源,而且资源使用的量又没有超过系统类容器占用系统资源的最大值,此时,系统类容器可以从所述管理类容器中取出相应的资源提供给新的进程,新的进程可以使用这7M内存。同样的,如果系统类容器中有空闲资源,也可以存放在管理类容器中,供其他类容器使用,这样的资源分配方式实现了资源动态分配。
[0081 ] 对于监控和提醒的使用,假设系统管理员定义一个类容器test I,并为其配置占用最大2G (机器内存为2G)内存的系统资源,当此类容器中的进程使用内存即将达到2G限额时,还需要申请内存,因为系统中不可能没有其他进程使用内存,所以造成系统内存的高度使用,从而降低系统性能,此时,当此类容器中的进程使用的资源达到为所述类容器配置的占用系统资源的最大值时,则提醒系统管理员该类容器资源过度申请。
[0082]如图2所示,本实施例提供了一种操作系统中进程的资源分配系统,包括:
[0083]类容器管理模块,用于创建类容器以及所述类容器的属性;根据所述类容器的属性给各个类容器配置能够占用系统资源的最大值;
[0084]进程管理模块,用于根据进程的类型将新创建的进程加入到相应的类容器中,所述新创建的进程使用所述类容器中的系统资源;
[0085]其中,所述类容器包括:系统预定义类容器和用户自定义类容器;所述系统预定义类容器包括:系统类容器、默认类容器和共享类容器,其中:
[0086]所述用户自定义类容器用于为指定用户运行的进程提供系统资源;
[0087]所述系统类容器用于为系统相关的进程提供系统资源;
[0088]所述默认类容器用于为所有不能分辨出属于哪个类容器的进程提供系统资源;
[0089]所述共享类容器用于为其他类容器中的进程提供共享资源。
[0090]其中,所述类容器的属性至少包括:类容器名和优先级;
[0091]所述类容器管理模块,用于根据所述类容器的属性给各个类容器配置能够占用系统资源的最大值,包括:
[0092]按照各个类容器的优先级配置其能够占用系统资源的最大值;优先级高的类容器占用的最大值高于优先级低的类容器占用的最大值。
[0093]其中,所述进程包括系统类进程、用户自定义类进程以及其他进程;
[0094]所述进程管理模块,用于根据所述进程的类型将新创建的进程加入到对应的类容器中,包括:
[0095]将系统类进程加入到系统类容器中;
[0096]将用户自定义类进程加入到对应的用户自定义类容器中;
[0097]将所有不能分辨出属于哪个类容器的进程加入到默认类容器中。
[0098]从上述实施例可以看出,相对于现有技术,上述实施例中提供的进程的资源分配方法及系统,通过对类容器的分类以及进程的分类,将不同类别的进程隔离开来,使得同类进程可以共享同类类容器的资源,从而使得系统资源能够得到更好的利用、最大程度上的共享,进而提高整个系统的效能;此外,由于允许用户自定义类和用户的进程的分类,能够在系统中支持多用户环境和各种应用程序。
[0099]本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。
[0100]以上所述仅为本发明的优选实施例而已,并非用于限定本发明的保护范围。根据本发明的
【发明内容】
,还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种操作系统中进程的资源调度方法,包括: 创建类容器以及所述类容器的属性; 根据所述类容器的属性给各个类容器配置能够占用系统资源的最大值; 根据进程的类型将新创建的进程加入到相应的类容器中,所述新创建的进程使用所述类容器中的系统资源。
2.如权利要求1所述的方法,其特征在于: 所述类容器包括:系统预定义类容器和用户自定义类容器;所述系统预定义类容器包括:系统类容器、默认类容器和共享类容器,其中: 所述用户自定义类容器用于为指定用户运行的进程提供系统资源; 所述系统类容器用于为系统相关的进程提供系统资源; 所述默认类容器用于为所有不能分辨出属于哪个类容器的进程提供系统资源; 所述共享类容器用于为其他类容器中的进程提供共享资源。
3.如权利要求1或2所述的方法,其特征在于: 所述类容器的属性至少包括:类容器名和优先级; 所述根据所述类容器的属性给各个类容器配置能够占用系统资源的最大值,包括:按照各个类容器的优先级配置其能够占用系统资源的最大值;优先级高的类容器占用的最大值高于优先级低的类容器占用的最大值。
4.如权利要求2所述的方法,其特征在于: 所述进程包括系统类进程、用户自定义类进程以及其他进程; 所述根据所述进程的类型将新创建的进程加入到对应的类容器中,包括: 将系统类进程加入到系统类容器中; 将用户自定义类进程加入到对应的用户自定义类容器中; 将所有不能分辨出属于哪个类容器的进程加入到默认类容器中。
5.如权利要求1所述的方法,其特征在于: 所述类容器还包括管理类容器,所述方法还包括: 当某一类容器中当前所有进程使用的资源没有达到为所述类容器配置的占用系统资源的最大值时,则将该类容器中空闲的系统资源存放于管理类容器中; 当又有新的进程加入所述某一类容器时,则从所述管理类容器中取出相应的资源提供给所述新的进程。
6.如权利要求1所述的方法,其特征在于:所述方法还包括: 对各个类容器中进程使用的资源进行监控,当某一类容器中的进程使用的资源达到为所述类容器配置的占用系统资源的最大值时,则提醒系统管理员该类容器资源过度申请。
7.一种操作系统中进程的资源调度系统,包括: 类容器管理模块,用于创建类容器以及所述类容器的属性;根据所述类容器的属性给各个类容器配置能够占用系统资源的最大值; 进程管理模块,用于根据进程的类型将新创建的进程加入到相应的类容器中,所述新创建的进程使用所述类容器中的系统资源。
8.如权利要求7所述的系统,其特征在于: 所述类容器包括:系统预定义类容器和用户自定义类容器;所述系统预定义类容器包括:系统类容器、默认类容器和共享类容器,其中: 所述用户自定义类容器用于为指定用户运行的进程提供系统资源; 所述系统类容器用于为系统相关的进程提供系统资源; 所述默认类容器用于为所有不能分辨出属于哪个类容器的进程提供系统资源; 所述共享类容器用于为其他类容器中的进程提供共享资源。
9.如权利要求7或8所述的系统,其特征在于: 所述类容器的属性至少包括:类容器名和优先级; 所述类容器管理模块,用于根据所述类容器的属性给各个类容器配置能够占用系统资源的最大值,包括: 按照各个类容器的优先级配置其能够占用系统资源的最大值;优先级高的类容器占用的最大值高于优先级低的类容器占用的最大值。
10.如权利要求8所述的系统,其特征在于: 所述进程包括系统类进程、用户自定义类进程以及其他进程; 所述进程管理模块,用于根据所述进程的类型将新创建的进程加入到对应的类容器中,包括: 将系统类进程加入到系统类容器中; 将用户自定义类进程加入到对应的用户自定义类容器中; 将所有不能分辨出属于哪个类容器的进程加入到默认类容器中。
【文档编号】G06F9/50GK104268022SQ201410490711
【公开日】2015年1月7日 申请日期:2014年9月23日 优先权日:2014年9月23日
【发明者】吴丹宇 申请人:浪潮(北京)电子信息产业有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1