CN106020973A - 云主机系统中的cpu调度方法及装置 - Google Patents
云主机系统中的cpu调度方法及装置 Download PDFInfo
- Publication number
- CN106020973A CN106020973A CN201610307689.1A CN201610307689A CN106020973A CN 106020973 A CN106020973 A CN 106020973A CN 201610307689 A CN201610307689 A CN 201610307689A CN 106020973 A CN106020973 A CN 106020973A
- Authority
- CN
- China
- Prior art keywords
- cpu
- cloud
- cloud host
- main frame
- processes
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
Abstract
本发明公开了一种云主机系统中的CPU调度方法及装置。该方法包括:将云主机系统中的云主机进程的CPU优先级设定为相同的值;每隔预设时间间隔获取所述云主机所属的宿主机的负载信息;当所述宿主机的负载信息达到临界值时,按照云主机的预设服务质量QOS等级,对所述云主机进程的CPU优先级进行调整。本发明保证了高预设QOS等级的云主机对CPU的使用,实现了按照服务质量的不同要求使用宿主机的资源。
Description
技术领域
本发明实施例涉及CPU调度技术,尤其涉及一种云主机系统中的CPU调度方法及装置。
背景技术
云主机是云计算在基础设施应用上的重要组成部分,位于云计算产业链金字塔底层,产品源自云计算平台。该平台整合了互联网应用三大核心要素:计算、存储、网络,面向用户提供公用化的互联网基础设施服务。云主机是一种类似VPS(Virtual Private Server,虚拟专用服务器)主机的虚拟化技术,VPS是采用虚拟软件(如VZ或VM)在一台主机上虚拟出多个类似独立主机的部分,能够实现单机多用户,每个部分都可以做单独的操作系统,管理方法同主机相同。而云主机是在一组集群主机上虚拟出多个类似独立主机的部分,集群中每个宿主机上都有云主机的一个镜像,从而大大提高了虚拟主机的安全稳定性。
在现有的云主机系统中,各个云主机按照各自的配置均衡的使用宿主机的资源进行运算,而不能按照服务质量的不同要求使用宿主机的资源。
发明内容
有鉴于此,本发明实施例提供一种云主机系统中的CPU调度方法及装置,以实现按照服务质量的不同要求使用宿主机的资源。
第一方面,本发明实施例提供了一种云主机系统中的CPU调度方法,所述方法包括:
将云主机系统中的云主机进程的CPU优先级设定为相同的值;
每隔预设时间间隔获取所述云主机所属的宿主机的负载信息;
当所述宿主机的负载信息达到临界值时,按照云主机的预设QOS等级,对所述云主机进程的CPU优先级进行调整。
第二方面,本发明实施例还提供了一种云主机系统中的CPU调度装置,所述装置包括:
CPU优先级设定模块,用于将云主机系统中的云主机进程的CPU优先级设定为相同的值;
负载信息获取模块,用于每隔预设时间间隔获取所述云主机所属的宿主机的负载信息;
CPU优先级调整模块,用于当所述宿主机的负载信息达到临界值时,按照云主机的预设QOS等级,对所述云主机进程的CPU优先级进行调整。
本发明实施例的技术方案,通过首先将云主机系统中的所有的云主机进程的CPU优先级设定为相同的值,保证所有云主机进程在相同的起点上,当宿主机的负载信息达到临界值时,为了不影响高预设QOS等级的云主机的运行,按照云主机的预设QOS等级,对所述云主机进程的CPU优先级进行调整,保证了高预设QOS等级的云主机对CPU的使用,实现了按照服务质量的不同要求使用宿主机的资源。
附图说明
图1是本发明实施例一提供的一种云主机系统中的CPU调度方法的流程图;
图2是本发明实施例二提供的一种云主机系统中的CPU调度方法的流程图;
图3是本发明实施例三提供的一种云主机系统中的CPU调度方法的流程图;
图4是本发明实施例四提供的一种云主机系统中的CPU调度装置的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。
在本发明实施例中,设计了一个供用户设定云主机的QOS(Quality ofService,服务质量)等级的设定接口,通过用户对云主机的QOS等级的设定,在结合本发明实施例所述的云主机系统中的CPU调度方法,可以保障QOS等级高的云主机的CPU使用。
实施例一
图1是本发明实施例一提供的一种云主机系统中的CPU调度方法的流程图,本实施例可适用于按照服务质量等级对CPU进行调度的情况,该方法可以由云主机系统中的CPU调度装置来执行,该装置可以由软件和/或硬件来实现。该方法具体包括如下步骤:
步骤110,将云主机系统中的云主机进程的CPU优先级设定为相同的值。
其中,所述云主机系统是指安装在一个宿主机上的多个云主机。
在常见的服务器操作系统中,常用进程的nice值来表示进程的CPU优先级,优先级越高,nice值月底;优先级越低,nice值越高。可以根据nice值来计算一个进程每次调度可以占用的CPU的时间长度。优先级越高,进程每次调度可占用的CPU时间越长。
通过将云主机系统中的所有的云主机进程的CPU优先级设定为相同的值,可以保证所述的云主机进程在相同的起点上,在宿主机的负载信息没有达到临界值时,可以一直保持相同的CPU优先级。
可以将所有的云主机进程的CPU优先级nice值优选设定为0,也可以是(-20~19)之间的一个固定值。
步骤120,每隔预设时间间隔获取所述云主机所属的宿主机的负载信息。
其中,所述宿主机是指承载所述云主机的物理设备。
每隔预设时间间隔(如每秒)获取一次所述云主机所属的宿主机的负载信息,所述负载信息可以是内存利用率。
步骤130,当所述宿主机的负载信息达到临界值时,按照云主机的预设QOS等级,对所述云主机进程的CPU优先级进行调整。
其中,负载信息的临界值是预设的负载信息的临界值。云主机的预设QOS等级不同,优先保证预设QOS等级高的云主机的运行。
当所述宿主机的负载信息达到临界值时,即在同一台宿主机上,当该宿主机整体的计算资源接近瓶颈时,按照云主机的预设QOS等级的不同,对所述云主机进程的CPU优先级进行调整,将不同预设QOS等级的云主机进程的优先级调整为不同的值,以优先保证高预设QOS等级的云主机的进程的运行,即将高预设QOS等级的云主机进程的CPU优先级保持在比较高的CPU优先级上。
本实施例的技术方案,通过首先将云主机系统中的所有的云主机进程的CPU优先级设定为相同的值,保证所有云主机进程在相同的起点上,当宿主机的负载信息达到临界值时,为了不影响高预设QOS等级的云主机的运行,按照云主机的预设QOS等级,对所述云主机进程的CPU优先级进行调整,保证了高预设QOS等级的云主机对CPU的使用,实现了按照服务质量的不同要求使用宿主机的资源,防止了云主机系统发生雪崩。
实施例二
图2是本发明实施例二提供的一种云主机系统中的CPU调度方法的流程图,本实施例在实施例一的基础上进行了优化,该方法具体包括如下步骤:
步骤210,将云主机进程的CPU调度策略设置为时间片轮转调度方式。
其中,时间片轮转调度是进程的一种实时调度策略。
通过将所有的云主机进程的CPU调度策略设置为时间片轮转调度方式,以保证云主机进程在一次调度中使用CPU的时间长度为时间片的长度。
在时间片轮转调度方式中,当进程的时间片用完,系统将重新为该进程分配时间片,并置于就绪队列尾。放在队列尾保证了所有具有相同优先级的任务的调度公平。
步骤220,将云主机系统中的云主机进程的CPU优先级设定为相同的值。
步骤230,每隔预设时间间隔获取所述云主机所属的宿主机的负载信息。
步骤240,当所述宿主机的负载信息达到临界值时,按照云主机的预设QOS等级,对所述云主机进程的CPU优先级进行调整。
按照CPU优先级的nice值确定云主机进程的时间片的长度,CPU优先级高的云主机进程的时间片的长度更长,从而保证CPU优先级高的云主机进程的CPU使用能力。
其中,当所述宿主机的负载信息达到临界值时,按照云主机的预设QOS等级,对所述云主机进程的CPU优先级进行调整优选包括:
当所述宿主机的负载信息达到临界值时,按照云主机的预设QOS等级,逐级提高对应的云主机进程的CPU优先级;或
当所述宿主机的负载信息达到临界值时,按照云主机的预设QOS等级,逐级降低对应的云主机进程的CPU优先级。
当所述宿主机的负载信息达到临界值时,可以按照云主机的预设QOS等级的从低到高,逐级提高预设QOS等级对应的云主机进程的CPU优先级,云主机的预设QOS等级越高,该云主机进程的CPU优先级提升的越多,保证高预设QOS等级的云主机的进程的CPU优先级最高,以保证高预设QOS等级的云主机的进程的优先执行;也可以按照云主机的预设QOS等级的从高到低,逐级降低对应的云主机进程的CPU优先级,云主机的预设QOS等级越低,该云主机进程的CPU优先级降低的越多,保证高预设QOS等级的云主机的进程的CPU优先级最高,以保证高预设QOS等级的云主机的进程的优先执行。
本实施例的技术方案,在实施例一的基础上,通过将云主机进程的CPU调度策略设置为时间片轮转调度方式,调整不同QOS等级的云主机的CPU时间片的长度,更好的保证高预设QOS等级的云主机的进程的CPU使用。
在上述技术方案的基础上,对所述云主机进程的CPU优先级进行调整优选包括:
通过调整云主机进程的时间片长度或者数量,调整云主机进程的CPU优先级。
当时间片长度不固定时,可以通过调整云主机进程的时间片长度,即将高预设QPS等级的云主机进程的时间片长度调的更长,从而保证在一次对进程的调度中高预设QOS等级的云主机进程的运行时间更长,来达到将高预设QOS等级的云主机进程的CPU优先级调高的目的;当时间片长度固定时,可以通过调整云主机进程的时间片的数量,即将高预设QPS等级的云主机进程的时间片数量调的更多,从而保证在一次对进程的调度中高预设QOS等级的云主机进程的运行时间更长,来达到将高预设QOS等级的云主机进程的CPU优先级调高的目的。
实施例三
图3是本发明实施例三提供的一种云主机系统中的CPU调度方法的流程图,本实施例是在上述实施例的基础上的一个优选实例,该方法具体包括如下步骤:
步骤310,将物理设备中的每一个云主机进程的调度策略均设置为时间片轮转调度。
其中,物理设备即上述的宿主机。
步骤320,将所有的云主机进程的CPU优先级设定为相同的值。
步骤330,每隔预设时间间隔获取一次物理设备的CPU负载信息。
步骤340,判断CPU负载信息是否达到临界值,如果是则执行步骤350,如果否,则返回执行步骤330。
步骤350,按照每个云主机的预设QOS等级,逐级提高对应的云主机进程的CPU优先级,或逐级降低对应的云主机进程的CPU优先级。
本实施例的技术方案,通过调整不同预设QOS等级的云主机进程的CPU优先级,使得预设QOS等级高的云主机进程的CPU时间片较长,从而实现了预设QOS等级高的云主机的CPU使用保障。
实施例四
图4是本发明实施例四提供的一种云主机系统中的CPU调度装置的结构示意图,如图4所示,本实施例所述的云主机系统中的CPU调度装置包括:CPU优先级设定模块410、负载信息获取模块420和CPU优先级调整模块430。
其中,CPU优先级设定模块410用于将云主机系统中的云主机进程的CPU优先级设定为相同的值;
负载信息获取模块420用于每隔预设时间间隔获取所述云主机所属的宿主机的负载信息;
CPU优先级调整模块430用于当所述宿主机的负载信息达到临界值时,按照云主机的预设QOS等级,对所述云主机进程的CPU优先级进行调整。
优选的,该云主机系统中的CPU调度装置还包括:
CPU调度策略设置模块,用于在将云主机系统中的云主机进程的CPU优先级设定为相同的值之前,将云主机进程的CPU调度策略设置为时间片轮转调度方式。
优选的,所述CPU优先级调整模块具体用于:
当所述宿主机的负载信息达到临界值时,按照云主机的预设QOS等级,逐级提高对应的云主机进程的CPU优先级;或
当所述宿主机的负载信息达到临界值时,按照云主机的预设QOS等级,逐级降低对应的云主机进程的CPU优先级。
优选的,所述CPU优先级调整模块包括:
时间片调整单元,用于通过调整云主机进程的时间片长度或者数量,调整云主机进程的CPU优先级。
上述云主机系统中的CPU调度装置可执行本发明任意实施例所提供的云主机系统中的CPU调度方法,具备执行云主机系统中的CPU调度方法相应的功能模块和有益效果。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (8)
1.一种云主机系统中的CPU调度方法,其特征在于,所述方法包括:
将云主机系统中的云主机进程的CPU优先级设定为相同的值;
每隔预设时间间隔获取所述云主机所属的宿主机的负载信息;
当所述宿主机的负载信息达到临界值时,按照云主机的预设服务质量QOS等级,对所述云主机进程的CPU优先级进行调整。
2.根据权利要求1所述的方法,其特征在于,在将云主机系统中的云主机进程的CPU优先级设定为相同的值之前,还包括:
将云主机进程的CPU调度策略设置为时间片轮转调度方式。
3.根据权利要求2所述的方法,其特征在于,当所述宿主机的负载信息达到临界值时,按照云主机的预设QOS等级,对所述云主机进程的CPU优先级进行调整包括:
当所述宿主机的负载信息达到临界值时,按照云主机的预设QOS等级,逐级提高对应的云主机进程的CPU优先级;或
当所述宿主机的负载信息达到临界值时,按照云主机的预设QOS等级,逐级降低对应的云主机进程的CPU优先级。
4.根据权利要求2或3所述的方法,其特征在于,对所述云主机进程的CPU优先级进行调整包括:
通过调整云主机进程的时间片长度或者数量,调整云主机进程的CPU优先级。
5.一种云主机系统中的CPU调度装置,其特征在于,所述装置包括:
CPU优先级设定模块,用于将云主机系统中的云主机进程的CPU优先级设定为相同的值;
负载信息获取模块,用于每隔预设时间间隔获取所述云主机所属的宿主机的负载信息;
CPU优先级调整模块,用于当所述宿主机的负载信息达到临界值时,按照云主机的预设QOS等级,对所述云主机进程的CPU优先级进行调整。
6.根据权利要求5所述的装置,其特征在于,还包括:
CPU调度策略设置模块,用于在将云主机系统中的云主机进程的CPU优先级设定为相同的值之前,将云主机进程的CPU调度策略设置为时间片轮转调度方式。
7.根据权利要求6所述的装置,其特征在于,所述CPU优先级调整模块具体用于:
当所述宿主机的负载信息达到临界值时,按照云主机的预设QOS等级,逐级提高对应的云主机进程的CPU优先级;或
当所述宿主机的负载信息达到临界值时,按照云主机的预设QOS等级,逐级降低对应的云主机进程的CPU优先级。
8.根据权利要求6或7所述的装置,其特征在于,所述CPU优先级调整模块包括:
时间片调整单元,用于通过调整云主机进程的时间片长度或者数量,调整云主机进程的CPU优先级。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610307689.1A CN106020973A (zh) | 2016-05-10 | 2016-05-10 | 云主机系统中的cpu调度方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610307689.1A CN106020973A (zh) | 2016-05-10 | 2016-05-10 | 云主机系统中的cpu调度方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106020973A true CN106020973A (zh) | 2016-10-12 |
Family
ID=57100363
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610307689.1A Pending CN106020973A (zh) | 2016-05-10 | 2016-05-10 | 云主机系统中的cpu调度方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106020973A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107861816A (zh) * | 2017-10-31 | 2018-03-30 | 广东欧珀移动通信有限公司 | 资源配置方法及装置 |
CN109308220A (zh) * | 2017-07-26 | 2019-02-05 | 华为技术有限公司 | 共享资源分配方法及装置 |
CN111813536A (zh) * | 2019-04-11 | 2020-10-23 | 华为技术有限公司 | 任务处理方法、装置、终端以及计算机可读存储介质 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6094674A (en) * | 1994-05-06 | 2000-07-25 | Hitachi, Ltd. | Information processing system and information processing method and quality of service supplying method for use with the system |
CN101488098A (zh) * | 2009-02-13 | 2009-07-22 | 华中科技大学 | 基于虚拟计算技术的多核计算资源管理系统 |
CN101894047A (zh) * | 2010-06-24 | 2010-11-24 | 北京航空航天大学 | 一种基于内核虚拟机调度策略的实现方法 |
CN102033782A (zh) * | 2009-09-30 | 2011-04-27 | 英业达集团(天津)电子技术有限公司 | 动态调整进程的优先值的调度方法 |
CN102567072A (zh) * | 2010-12-20 | 2012-07-11 | 中国移动通信集团公司 | 一种资源分配方法、装置及系统 |
CN102946433A (zh) * | 2012-11-22 | 2013-02-27 | 合肥华云通信技术有限公司 | 云公共服务平台下的大规模计算机资源的监控和调度方法 |
CN103049332A (zh) * | 2012-12-06 | 2013-04-17 | 华中科技大学 | 一种虚拟cpu调度方法 |
CN103763130A (zh) * | 2013-12-31 | 2014-04-30 | 华为数字技术(苏州)有限公司 | 大规模集群的管理方法、装置和系统 |
CN104539672A (zh) * | 2014-12-19 | 2015-04-22 | 南京工业大学 | 一种基于云计算的移动应用程序消息推送代理系统 |
CN105138402A (zh) * | 2015-08-25 | 2015-12-09 | 海信集团有限公司 | 一种应用进程内存释放的优先级调整方法及装置 |
-
2016
- 2016-05-10 CN CN201610307689.1A patent/CN106020973A/zh active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6094674A (en) * | 1994-05-06 | 2000-07-25 | Hitachi, Ltd. | Information processing system and information processing method and quality of service supplying method for use with the system |
CN101488098A (zh) * | 2009-02-13 | 2009-07-22 | 华中科技大学 | 基于虚拟计算技术的多核计算资源管理系统 |
CN102033782A (zh) * | 2009-09-30 | 2011-04-27 | 英业达集团(天津)电子技术有限公司 | 动态调整进程的优先值的调度方法 |
CN101894047A (zh) * | 2010-06-24 | 2010-11-24 | 北京航空航天大学 | 一种基于内核虚拟机调度策略的实现方法 |
CN102567072A (zh) * | 2010-12-20 | 2012-07-11 | 中国移动通信集团公司 | 一种资源分配方法、装置及系统 |
CN102946433A (zh) * | 2012-11-22 | 2013-02-27 | 合肥华云通信技术有限公司 | 云公共服务平台下的大规模计算机资源的监控和调度方法 |
CN103049332A (zh) * | 2012-12-06 | 2013-04-17 | 华中科技大学 | 一种虚拟cpu调度方法 |
CN103763130A (zh) * | 2013-12-31 | 2014-04-30 | 华为数字技术(苏州)有限公司 | 大规模集群的管理方法、装置和系统 |
CN104539672A (zh) * | 2014-12-19 | 2015-04-22 | 南京工业大学 | 一种基于云计算的移动应用程序消息推送代理系统 |
CN105138402A (zh) * | 2015-08-25 | 2015-12-09 | 海信集团有限公司 | 一种应用进程内存释放的优先级调整方法及装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109308220A (zh) * | 2017-07-26 | 2019-02-05 | 华为技术有限公司 | 共享资源分配方法及装置 |
CN107861816A (zh) * | 2017-10-31 | 2018-03-30 | 广东欧珀移动通信有限公司 | 资源配置方法及装置 |
US10824470B2 (en) | 2017-10-31 | 2020-11-03 | Guangdong Oppo Mobile Telecommunications Corp., Ltd. | Method for resource allocation and terminal device |
CN111813536A (zh) * | 2019-04-11 | 2020-10-23 | 华为技术有限公司 | 任务处理方法、装置、终端以及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11934864B1 (en) | System and method for controlled sharing of consumable resources in a computer cluster | |
CN103516807B (zh) | 一种云计算平台服务器负载均衡系统及方法 | |
US9575691B2 (en) | Scheduling user requests in a distributed resource system having a plurality of schedulers and coordinators | |
Choudhary et al. | A dynamic optimization algorithm for task scheduling in cloud environment | |
US10652360B2 (en) | Access scheduling method and apparatus for terminal, and computer storage medium | |
CN109582448B (zh) | 一种面向关键度和时效性的边缘计算任务调度方法 | |
CN106445675B (zh) | 一种b2b平台分布式应用调度与资源分配方法 | |
US20170279735A1 (en) | Method for operating a virtual network infrastructure | |
US11102143B2 (en) | System and method for optimizing resource utilization in a clustered or cloud environment | |
CN105718316A (zh) | 一种作业调度的方法及装置 | |
CN109542608B (zh) | 一种基于混合排队网络的云仿真任务调度方法 | |
CN108123980B (zh) | 一种资源调度方法及系统 | |
CN103503412B (zh) | 用于调度资源的方法及装置 | |
CN110187960A (zh) | 一种分布式资源调度方法及装置 | |
CN106020973A (zh) | 云主机系统中的cpu调度方法及装置 | |
Behzad et al. | Queue based job scheduling algorithm for cloud computing | |
CN116389831B (zh) | 一种基于云原生的离线渲染系统及方法 | |
CN106878389B (zh) | 用于在云系统中进行资源调度的方法和装置 | |
CN103023980A (zh) | 一种云平台处理用户服务请求的方法和系统 | |
CN110569252A (zh) | 一种数据处理系统及方法 | |
Squillante et al. | Threshold-based priority policies for parallel-server systems with affinity scheduling | |
CN108563495A (zh) | 数据中心综合管理系统的云资源队列分级调度系统和方法 | |
CN105912408A (zh) | 云主机系统中的cpu调度方法及装置 | |
CN111309472A (zh) | 一种基于虚拟机预部署的在线虚拟资源分配方法 | |
CN104135535A (zh) | 一种面向云计算的租户调整方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20161012 |
|
RJ01 | Rejection of invention patent application after publication |