CN116302485A - Cpu调度方法、装置、电子设备及可读存储介质 - Google Patents

Cpu调度方法、装置、电子设备及可读存储介质 Download PDF

Info

Publication number
CN116302485A
CN116302485A CN202310065229.2A CN202310065229A CN116302485A CN 116302485 A CN116302485 A CN 116302485A CN 202310065229 A CN202310065229 A CN 202310065229A CN 116302485 A CN116302485 A CN 116302485A
Authority
CN
China
Prior art keywords
task
cpu
tasks
importance level
target
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
Application number
CN202310065229.2A
Other languages
English (en)
Inventor
柯锦玲
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Vivo Mobile Communication Co Ltd
Original Assignee
Vivo Mobile Communication Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Vivo Mobile Communication Co Ltd filed Critical Vivo Mobile Communication Co Ltd
Priority to CN202310065229.2A priority Critical patent/CN116302485A/zh
Publication of CN116302485A publication Critical patent/CN116302485A/zh
Priority to PCT/CN2024/074299 priority patent/WO2024160154A1/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Multi Processors (AREA)

Abstract

本申请公开了一种CPU调度方法、装置、电子设备及可读存储介质,属于人工智能领域,该方法包括:从多个CPU中确定出目标CPU,目标CPU为多个CPU上运行的所有满足预设条件的任务的负载最低的CPU,满足预设条件的任务对应的重要等级大于或等于第一任务对应的重要等级;在第一任务对应的重要等级大于目标CPU中正在运行的第二任务对应的重要等级的情况下,暂停第二任务,并通过目标CPU运行第一任务。

Description

CPU调度方法、装置、电子设备及可读存储介质
技术领域
本申请属于人工智能领域,具体涉及一种CPU调度方法、装置、电子设备及可读存储介质。
背景技术
随着互联网技术和硬件技术的不断发展,电子设备的功能也越来越强大,常驻后台的应用程序越来越多,同一时间下运行的任务也越来越多。如此,可能会出现前台任务不能及时得到CPU调度而导致延迟运行的情况,从而导致系统出现卡顿。
发明内容
本申请实施例的目的是提供一种CPU调度方法、装置、电子设备及可读存储介质,能够解决由于CPU调度不及时而导致任务延迟运行,从而导致的系统卡顿的问题。
第一方面,本申请实施例提供了一种CPU调度方法,该方法包括:从多个CPU中确定出目标CPU,目标CPU为多个CPU上运行的所有满足预设条件的任务的负载最低的CPU,满足预设条件的任务对应的重要等级大于或等于第一任务对应的重要等级;在第一任务对应的重要等级大于目标CPU中正在运行的第二任务对应的重要等级的情况下,暂停第二任务,并通过目标CPU运行第一任务。
第二方面,本申请实施例提供了一种CPU调度装置,该装置包括:确定模块和处理模块;确定模块,用于从多个CPU中确定出目标CPU,目标CPU为多个CPU上运行的所有满足预设条件的任务的负载最低的CPU,满足预设条件的任务对应的重要等级大于或等于第一任务对应的重要等级;处理模块,用于在第一任务对应的重要等级大于确定模块确定的目标CPU中正在运行的第二任务对应的重要等级的情况下,暂停第二任务,并通过目标CPU运行第一任务。
第三方面,本申请实施例提供了一种电子设备,该电子设备包括处理器和存储器,所述存储器存储可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如第一方面所述的方法的步骤。
第四方面,本申请实施例提供了一种可读存储介质,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如第一方面所述的方法的步骤。
第五方面,本申请实施例提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现如第一方面所述的方法。
第六方面,本申请实施例提供一种计算机程序产品,该程序产品被存储在存储介质中,该程序产品被至少一个处理器执行以实现如第一方面所述的方法。
在本申请实施例中,从多个CPU中确定出目标CPU,目标CPU为多个CPU上运行的所有满足预设条件的任务的负载最低的CPU,满足预设条件的任务对应的重要等级大于或等于第一任务对应的重要等级;在第一任务对应的重要等级大于目标CPU中正在运行的第二任务对应的重要等级的情况下,暂停第二任务,并通过目标CPU运行第一任务。通过该方案,由于CPU调度装置可以为一个任务设置相应的重要等级,并基于当前任务的重要等级,确定出重要等级大于或等于第一任务对应的重要等级的任务负载最低的CPU,进行CPU调度,因此可以使得当前任务及时运行,从而可以降低后台任务抢占前台任务CPU的概率,提升前台应用的响应速度,进而可以减少系统卡顿。
附图说明
图1是本申请实施例提供的一种CPU调度方法的流程图;
图2是本申请实施例提供的一种CPU调度方法的实例示意图;
图3是本申请实施例提供的一种CPU调度装置的结构示意图;
图4是本申请实施例提供的一种电子设备的硬件结构示意图之一;
图5是本申请实施例提供的一种电子设备的硬件结构示意图之二。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。
下面对本申请实施例中涉及的一些术语/名词进行解释说明。
1、完全公平调度器(Completely Fair Scheduler,CFS调度器)
这是Linux操作系统内核的一个基本调度器。CFS调度器核心原理就是使得每个进程都尽可能公平地获得运行时间,因此每次都选择过去运行得最少的进程运行,也就是在真实的硬件上实现理想的、精准、完全公平的多任务调度。
CFS调度器以动态优先级为权重,对CPU进行调度,运行所有的任务。
2、相对时间单位
系统的相对时间单位,也称为系统的时基,来源于定时器的周期性中断。一次中断表示一个tick,因此也称为Tick中断。
Tick中断为周期性的时钟中断,作为操作系统(Operating System,OS)的心跳。
下面结合附图,通过具体的实施例及其应用场景对本申请实施例提供的CPU调度方法、装置、电子设备及可读存储介质进行详细地说明。
目前,电子设备(如手机、平板等)的功能越来越强大,其内存也越来越大,常驻在后台的应用也越来越多,这意味着系统同一时间运行的程序也越来越多。一方面,由于在使用电子设备时,系统同一时间会运行着各种各样的任务,其中包括前台任务,后台任务,系统服务型任务等等。例如,在使用电子设备时,视频软件可以前台播放视频,同时通讯软件可以在后台接收消息,下载软件可以在后台下载电影等。因此对系统的并发能力是一个很大的挑战。另一方面,由于许多电子设备的屏幕为120Hz高刷,对前台任务的响应时间要求非常高,稍微响应不及时,就会出现卡顿现象。
在相关技术中,Linux内核的CFS调度器可以根据任务的优先级对CPU进行调度,使得系统不出现卡顿现象,满足性能流畅的要求。
然而,一方面,由于CFS调度器为根据任务的优先级对CPU进行调度的完全公平调度器,其在高并发场景下,会将多个重要的任务放在同一个CPU上运行,因此容易导致多个任务互相抢占CPU进行运行,从而导致后台的任务有可能会抢占前台任务的运行,从而导致前台任务因为不能及时得到CPU调度出现延迟运行的情况,进而使得最终表现出系统卡顿的现象。
另一方面,由于在电子设备使用的是高帧率屏幕的情况下,对前台任务的响应时间要求非常高,Linux的CFS调度器已经不能满足当前系统性能的需求。
而在本申请实施例提供的CPU调度方法中,从多个CPU中确定出目标CPU,目标CPU为多个CPU上运行的所有满足预设条件的任务的负载最低的CPU,满足预设条件的任务对应的重要等级大于或等于第一任务对应的重要等级;在第一任务对应的重要等级大于目标CPU中正在运行的第二任务对应的重要等级的情况下,暂停第二任务,并通过目标CPU运行第一任务。通过该方案,由于CPU调度装置可以为一个任务设置相应的重要等级,并基于当前任务的重要等级,确定出重要等级大于或等于第一任务对应的重要等级的任务负载最低的CPU,进行CPU调度,因此可以使得当前任务及时得到CPU运行,从而可以降低后台任务抢占前台任务CPU的概率,提升前台应用的响应速度,进而可以减少系统卡顿。
本申请实施例提供的CPU调度方法的执行主体可以为CPU调度装置。示例性地,该CPU调度装置可以为电子设备,也可以为该电子设备中的部件,例如集成电路或芯片。以下将以CPU调度装置为例对本申请实施例提供的CPU调度方法进行示例性说明。
本申请实施例提供一种CPU调度方法,图1示出了本申请实施例提供的一种CPU调度方法的流程图。如图1所示,本申请实施例提供的CPU调度方法可以包括下述的步骤101至步骤102。
步骤101、CPU调度装置从多个CPU中确定出目标CPU。
其中,上述目标CPU为上述多个CPU上运行的所有满足预设条件的任务的负载最低的CPU,满足预设条件的任务对应的重要等级大于或等于第一任务对应的重要等级。
可选地,上述任务对应的重要等级可以指示任务的重要程度。
示例性地,第一任务的重要程度越高,其所对应的重要等级则越高,反之,第一任务的重要程度越低,其所对应的重要等级则越低。
可选地,任务的重要程度可以由该任务处于前台还是后台、是否为渲染显示视频或音频的关键链路线程、是否为重要服务任务等因素决定。
需要说明的是,任务对应的重要等级可以根据其所对应的任务的重要程度来动态设定。也就是说,一个任务对应的重要等级可以随任务的状态的改变而改变。
示例性地,在一个CPU中有任务1、任务2、任务3和任务4共4个任务。其中,任务1为后台任务,其所对应的重要等级为0;任务2为前台任务,其所对应的重要等级为2;任务3为为前台任务服务的任务,其所对应的重要等级为1;任务4为非常关键的任务,其所对应的重要等级为3。当发生前台任务与后台任务的切换时,即当任务1变为前台任务,任务2变为后台任务时,任务1对应的重要等级可以变为2,任务2对应的重要等级可以变为0。
可以理解,CPU的负载可以指示该CPU在一段时间内正在处理以及等待处理的进程数之和的统计信息。
本申请实施例中,CPU调度装置可以对多个CPU进行调度。
本申请实施例中,“负载最低的目标CPU”可以理解为:多个CPU中运行满足预设条件的任务进程数最少的目标CPU。也就是说,CPU调度装置可以根据第一任务对应的重要等级,以及上述多个CPU中运行的重要等级大于或等于第一任务对应的重要等级的任务的负载情况,将负载最低的CPU,确定为目标CPU。即,获取各个CPU中任务重要等级高于或等于第一任务的所有任务,如果其中部分CPU中不存在任务重要等级高于或等于第一任务的任务,则这些CPU的负载被认为是0,进一步,将其中负载最低的CPU确定为目标CPU。能够理解的,目标CPU是运行有重要任务最少的CPU。
可选地,上述步骤101可以包括下述的步骤101a和步骤101b。
步骤101a、CPU调度装置获取多个CPU中的每个CPU的第一负载。
可选地,CPU的第一负载可以为该CPU中运行目标任务的负载,即该CPU中运行重要等级大于或等于第一任务对应的重要等级的任务的负载。
示例性地,CPU调度装置可以计算CPU中运行的重要等级大于或等于第一任务对应的重要等级的任务的进程数,作为该CPU的第一负载。一般的,CPU的第一负载越高,则表明CPU中运行有重要任务的进程数量越多,反之,CPU的第一负载越低,则表明CPU中运行有重要任务的进程数量越少。
步骤101b、CPU调度装置将多个CPU中第一负载最低的CPU,确定为目标CPU。
其中,在第一CPU中运行有多个满足预设条件的任务的情况下,第一CPU的第一负载为第一CPU运行的所有满足预设条件的任务的总负载,在第一CPU中未运行满足预设条件的任务的情况下,第一CPU的第一负载为0。
可选地,上述第一CPU为多个CPU中的任一CPU。
本申请实施例中,“多个CPU中第一负载最低的CPU”可以理解为:多个CPU中运行目标任务进程数最少的目标CPU。
例如,CPU调度装置可以对CPU1、CPU2和CPU3进行调度。假设第一任务对应的重要等级为1;CPU1中运行有重要等级为0的任务1;CPU2中运行有重要等级为2的任务2和重要等级为1的任务3;CPU3中运行有重要等级为3的任务4。那么,CPU1中重要等级大于或等于第一任务对应的重要等级的任务进程数之和为0,CPU2中重要等级大于或等于第一任务对应的重要等级的任务进程数之和为2,CPU3中重要等级大于或等于第一任务对应的重要等级的任务进程数之和为1。因此,CPU调度装置可以将重要等级大于或等于第一任务对应的重要等级的任务的负载最低的CPU,即CPU1,确定为目标CPU。
如此,由于CPU调度装置可以将所有CPU中重要等级大于或等于第一任务对应的重要等级的任务的负载最低的CPU,确定为目标CPU,因此可以确保重要的任务,即任务对应的重要等级高的任务分配到不同的CPU上,从而可以确保重要任务之间不会互相抢占CPU进行运行,进而可以减少系统卡顿。
步骤102、CPU调度装置在第一任务对应的重要等级大于目标CPU中正在运行的第二任务对应的重要等级的情况下,暂停第二任务,并通过目标CPU运行第一任务。
本申请实施例中,“暂停第二任务,并通过目标CPU运行第一任务”可以理解为,第一任务抢占第二任务所占用的CPU进行运行。
需要说明的是,当暂停第二任务之后,第二任务可以进入等待运行的任务的队列,等待CPU的运行。
在本申请实施例中,由于CPU调度装置可以为一个任务设置相应的重要等级,并基于当前任务的重要等级,确定出重要等级大于或等于第一任务对应的重要等级的任务负载最低的CPU,进行CPU调度,因此可以使得当前任务及时得到CPU运行,从而可以降低后台任务抢占前台任务CPU的概率,提升前台应用的响应速度,进而可以减少系统卡顿。
可选地,在上述步骤101之后,本申请实施例提供的CPU调度方法还可以包括下述的步骤103。
步骤103、CPU调度装置在第一任务对应的重要等级均小于目标CPU中正在运行的所有任务对应的任务对应的重要等级的情况下,继续运行目标CPU中的任务。
需要说明的是,此时,第一任务可以进入等待运行的任务的队列,等待CPU的运行。
如此,由于CPU调度装置可以在第一任务对应的重要等级均小于目标CPU中正在运行的所有任务对应的重要等级的情况下,继续运行目标CPU中的任务,因此可以使得CPU调度装置根据任务对应的重要等级,即任务的重要程度,来确定目标CPU中所要运行的任务,从而可以减少重要任务的响应时间,减少系统卡顿。
可选地,在上述步骤101之后,本申请实施例提供的CPU调度方法还可以包括下述的步骤104。
步骤104、CPU调度装置在第一任务对应的重要等级等于目标CPU中正在运行的第二任务对应的重要等级的情况下,通过目标CPU运行目标任务。
其中,上述目标任务可以为第一任务和第二任务中优先级高的任务。
本申请实施例中,任一任务的优先级可以用于指示操作系统为该任一任务指定的使用运行资源的优先级。
可以理解,CPU调度装置在第一任务对应的重要等级等于目标CPU中正在运行的第二任务对应的重要等级的情况下,通过目标CPU,运行第一任务和第三任务中优先级高的任务。
如此,由于CPU调度装置可以在第一任务对应的重要等级等于目标CPU中正在运行的第二任务对应的重要等级的情况下,通过目标CPU,运行第一任务和第三任务中优先级高的任务,因此可以使得CPU调度装置根据任务对应的重要等级,即任务的重要程度,以及任务的优先级,来确定目标CPU中所要运行的任务,从而可以减少重要任务的响应时间,减少系统卡顿。
可选地,在上述目标CPU当前运行的任务运行结束的情况下,本申请实施例提供的CPU调度方法还可以包括下述的步骤201。
步骤201、CPU调度装置在目标CPU中没有待运行的任务的情况下,将第二CPU的任务重要等级最高的任务,作为目标CPU执行的下一个任务。
其中,上述第二CPU为上述多个CPU中存在至少两个任务的CPU。
示例性地,CPU调度装置可以在目标CPU的当前任务运行完成之后,在等待运行的任务的队列中没有其他任务存在时,可以从其他存在至少两个任务的CPU中,选择重要等级最高的任务,作为目标CPU执行的下一个任务。
例如,CPU调度装置可以从包含2个以上任务的CPU中,选择出一个重要等级最高的任务,作为目标CPU执行的下一个任务。
可选地,CPU调度装置可以从上述多个CPU中,选择一个负载最重的CPU,将该CPU中的重要等级最高的任务,作为所述目标CPU执行的下一个任务。
可选地,CPU调度装置在等待运行的任务的队列中存在其他任务时,可以从等待运行的任务的队列中,选择重要等级最高的任务,作为目标CPU执行的下一个任务。
本申请实施例中,若等待运行的任务的队列中,存在重要等级最高的多个任务,则CPU调度装置可以从该多个重要等级最高的任务中,选择优先级最高的任务作为目标CPU所要执行的下一个任务。
例如,在等待运行的任务的队列中,有任务5、任务6、任务7、任务8和任务9共5个任务。其中,任务5对应的重要等级为1,任务6对应的重要等级为2,任务7对应的重要等级为3,任务8对应的重要等级为3,任务9对应的重要等级为1。那么,CPU调度装置可以将重要等级最高的任务7和任务8中,优先级最高的任务,作为目标CPU所要执行的下一个任务。
需要说明的是,若第二CPU中不存在至少2个任务,则CPU调度装置可以控制目标CPU进入睡眠状态。
如此,由于CPU调度装置可以从至少一个待运行的任务中,选择重要等级最高的任务,作为目标CPU执行的下一个任务,因此可以使得重要等级高的任务及时得到CPU进行运行,从而可以缩短重要任务的响应时间,减少系统卡顿。
可选地,本申请实施例提供的CPU调度方法还可以包括下述的步骤301。
步骤301、CPU调度装置在CPU运行任务的过程中,在单位时间内第三任务的运行时间超过第三任务对应的重要等级所对应的任务时间的情况下,暂停第三任务,并按照优先级选择下一个运行的任务。
能够理解的,每个重要等级都可以对应一个任务时间,一旦该重要等级的任务运行超过这个对应的任务时间,就先暂停该任务的运行。
可选地,CPU调度装置可以在发生Tick中断之后,判断第三任务的运行时间是否超过第三任务对应的重要等级所对应的任务时间,即CPU调度装置可以判断第三任务是否运行超时。
可选地,任务所对应的任务时间可以指示任务的可运行时间。
可选地,不同的重要等级可以对应不同的任务时间。
示例性地,重要等级越高的任务,其所对应的任务时间就越长。即,越重要的任务,其可运行时间就越长。
例如,任务1对应的重要等级为1,其所对应的任务时间为30毫秒;任务11对应的重要等级为2,其所对应的任务时间为50毫秒。
可选地,若任务的运行时间超过其所对应的任务时间,则CPU调度装置可以判断该任务运行超时,即该任务的运行时间过长。CPU调度装置可以将该任务强制暂停,并为该CPU选择所要执行的下一个任务。
需要说明的是,CPU调度装置为CPU选择所要执行的下一个任务的方式,可以参见上述的步骤201,此处不再赘述。
需要说明的是,上述被强制暂停的第三任务,可以根据优先级,进入等待运行的任务的队列,等待被执行。
需要说明的是,若任务的运行时间没有超过其所对应的任务时间,则CPU调度装置可以退出此次超时检测,CPU继续运行第三任务。
如此,由于CPU调度装置可以对CPU中正在运行的任务进行超时检测,因此可以防止重要等级高的任务,即重要任务,运行时间过长,从而可以避免导致其他任务饿死,避免系统稳定性降低。
以下以具体示例来对本申请实施例提供的CPU调度方法进行示例性说明。
如图2所示,本申请实施例提供的CPU调度方法可以包括下述的步骤401至步骤411。
步骤401、CPU调度装置确定待运行的唤醒任务。
可选地,唤醒任务与上述第一任务可以相同。
步骤402、CPU调度装置选择一个当前任务对应的重要等级及以上任务负载最低的CPU运行。
步骤403、CPU调度装置在唤醒任务对应的重要等级比当前CPU上运行任务的重要等级高的情况下,抢占当前任务所占用的CPU,运行唤醒任务。
步骤404、CPU调度装置在唤醒任务对应的等级小于或等于当前CPU上运行任务对应的重要等级的情况下,继续运行当前任务或者根据优先级来确定所要运行的任务。
步骤405、CPU调度装置在当前任务运行完成之后,选取所要运行的下一个任务。
步骤406、CPU调度装置确定重要等级最高的任务的任务列表。
步骤407、CPU调度装置在任务列表中,根据优先级确定出所要运行的任务。
可选地,任务列表中优先级最高的任务,可以优先运行。
步骤408、CPU调度装置在步骤407中确定出的所要运行的任务运行完成后,在等待运行的任务列表中还有其他任务的情况下,从负载最重的CPU上,选择一个重要等级最高的任务到当前CPU运行。
步骤409、CPU调度装置在步骤407中确定出的所要运行的任务运行完成后,在等待运行的任务列表中没有其他任务的情况下,判断其他CPU中是否存在2个以上任务运行。
步骤410、CPU调度装置在其他CPU中存在2个以上任务运行的情况下,从负载最重的CPU上,选择一个重要等级最高的任务到当前CPU运行。
步骤411、CPU调度装置在其他CPU中不存在2个以上任务运行的情况下,控制当前CPU进入睡眠状态。
在本申请实施例中,从多个CPU中确定出目标CPU,目标CPU为多个CPU上运行的所有满足预设条件的任务的负载最低的CPU,满足预设条件的任务对应的重要等级大于或等于第一任务对应的重要等级;在第一任务对应的重要等级大于目标CPU中正在运行的第二任务对应的重要等级的情况下,暂停第二任务,并通过目标CPU运行第一任务。通过该方案,由于CPU调度装置可以为一个任务设置相应的重要等级,并基于当前任务的重要等级,确定出重要等级大于或等于第一任务对应的重要等级的任务负载最低的CPU,进行CPU调度,因此可以使得当前任务及时得到CPU运行,从而可以降低后台任务抢占前台任务CPU的概率,提升前台应用的响应速度,进而可以减少系统卡顿。
本申请实施例提供的CPU调度方法,执行主体可以为CPU调度装置。本申请实施例中以CPU调度装置执行CPU调度方法为例,说明本申请实施例提供的CPU调度装置。
图3示出了本申请实施例中涉及的CPU调度装置的一种可能的结构示意图。如图3所示,该CPU调度装置30可以包括:确定模块31和处理模块32。
其中,确定模块31,用于从多个CPU中确定出目标CPU,目标CPU为多个CPU上运行的所有满足预设条件的任务的负载最低的CPU,满足预设条件的任务对应的重要等级大于或等于第一任务对应的重要等级;处理模块32,用于在第一任务对应的重要等级大于确定模块31确定的目标CPU中正在运行的第二任务对应的重要等级的情况下,暂停第二任务,并通过目标CPU运行第一任务。
在一种可能的实现方式中,上述确定模块31,具体用于:
获取多个CPU中的每个CPU的第一负载;
将多个CPU中第一负载最低的CPU,确定为目标CPU;
其中,在第一CPU中运行有多个满足预设条件的任务的情况下,第一CPU的第一负载为第一CPU运行的所有满足预设条件的任务的总负载,在第一CPU中未运行满足预设条件的任务的情况下,第一CPU的第一负载为0;
其中,第一CPU为多个CPU中的任一CPU。
在一种可能的实现方式中,上述处理模块32,还用于在确定模块31从多个CPU中确定出目标CPU之后,在第一任务对应的重要等级均小于目标CPU中正在运行的所有任务对应的重要等级的情况下,继续运行目标CPU中的任务。
在一种可能的实现方式中,上述处理模块32,还用于在确定模块31从多个CPU中确定出目标CPU之后,在第一任务对应的重要等级等于目标CPU中正在运行的第二任务对应的重要等级的情况下,通过目标CPU运行目标任务,目标任务为第一任务和第二任务中优先级最高的任务,其中,任一任务的优先级用于指示操作系统为任一任务指定的使用运行资源的优先等级。
在一种可能的实现方式中,上述处理模块32,还用于在目标CPU当前运行的任务运行结束的情况下,在目标CPU中没有待运行的任务的情况下,将第二CPU的任务中重要等级最高的任务,作为目标CPU执行的下一个任务;其中,第二CPU为多个CPU中存在至少两个任务的CPU。
在一种可能的实现方式中,上述处理模块32,还用于在CPU运行任务的过程中,在单位时间内第三任务的运行时间超过第三任务对应的重要等级所对应的任务时间的情况下,暂停第三任务,并按照优先级选择下一个运行的任务。
本申请实施例提供一种CPU调度装置,从多个CPU中确定出目标CPU,目标CPU为多个CPU上运行的所有满足预设条件的任务的负载最低的CPU,满足预设条件的任务对应的重要等级大于或等于第一任务对应的重要等级;在第一任务对应的重要等级大于目标CPU中正在运行的第二任务对应的重要等级的情况下,暂停第二任务,并通过目标CPU运行第一任务。通过该方案,由于CPU调度装置可以为一个任务设置相应的重要等级,并基于当前任务的重要等级,确定出重要等级大于或等于第一任务对应的重要等级的任务负载最低的CPU,进行CPU调度,因此可以使得当前任务及时得到CPU运行,从而可以降低后台任务抢占前台任务CPU的概率,提升前台应用的响应速度,进而可以减少系统卡顿。
本申请实施例中的CPU调度装置可以是电子设备,也可以是电子设备中的部件,例如集成电路或芯片。该电子设备可以是终端,也可以为除终端之外的其他设备。示例性的,电子设备可以为手机、平板电脑、笔记本电脑、掌上电脑、车载电子设备、移动上网装置(Mobile Internet Device,MID)、增强现实(augmented reality,AR)/虚拟现实(virtualreality,VR)设备、机器人、可穿戴设备、超级移动个人计算机(ultra-mobile personalcomputer,UMPC)、上网本或者个人数字助理(personal digital assistant,PDA)等,还可以为服务器、网络附属存储器(Network Attached Storage,NAS)、个人计算机(personalcomputer,PC)、电视机(television,TV)、柜员机或者自助机等,本申请实施例不作具体限定。
本申请实施例中的CPU调度装置可以为具有操作系统的装置。该操作系统可以为安卓(Android)操作系统,可以为ios操作系统,还可以为其他可能的操作系统,本申请实施例不作具体限定。
本申请实施例提供的CPU调度装置能够实现图N至图N+x的方法实施例实现的各个过程,达到相同的技术效果,为避免重复,这里不再赘述。
可选地,如图4所示,本申请实施例还提供一种电子设备400,包括处理器401和存储器402,存储器402上存储有可在所述处理器401上运行的程序或指令,该程序或指令被处理器401执行时实现上述CPU调度方法实施例的各个步骤,且能达到相同的技术效果,为避免重复,这里不再赘述。
需要说明的是,本申请实施例中的电子设备包括上述所述的移动电子设备和非移动电子设备。
图5为实现本申请实施例的一种电子设备的硬件结构示意图。
该电子设备500包括但不限于:射频单元501、网络模块502、音频输出单元503、输入单元504、传感器505、显示单元506、用户输入单元507、接口单元508、存储器509、以及处理器510等部件。
本领域技术人员可以理解,电子设备500还可以包括给各个部件供电的电源(比如电池),电源可以通过电源管理系统与处理器510逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。图5中示出的电子设备结构并不构成对电子设备的限定,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置,在此不再赘述。
其中,处理器510,用于从多个CPU中确定出目标CPU,目标CPU为多个CPU上运行的所有满足预设条件的任务的负载最低的CPU,满足预设条件的任务对应的重要等级大于或等于第一任务对应的重要等级;用于在第一任务对应的重要大于目标CPU中正在运行的第二任务对应的重要等级的情况下,暂停第二任务,并通过目标CPU运行第一任务。
可选地,上述处理器510,具体用于:
获取多个CPU中的每个CPU的第一负载;
将多个CPU中第一负载最低的CPU,确定为目标CPU;
其中,在第一CPU中运行有多个满足预设条件的任务的情况下,第一CPU的第一负载为第一CPU运行的所有满足预设条件的任务的总负载,在第一CPU中未运行满足预设条件的任务的情况下,第一CPU的第一负载为0;
其中,第一CPU为多个CPU中的任一CPU。
可选地,上述处理器510,还用于在从多个CPU中确定出目标CPU之后,在第一任务对应的重要等级均小于目标CPU中正在运行的所有任务对应的重要等级的情况下,继续运行目标CPU中的任务。
可选地,上述处理器510,还用于在从多个CPU中确定出目标CPU之后,在第一任务对应的重要等级等于目标CPU中正在运行的第二任务对应的重要等级的情况下,通过目标CPU运行目标任务,目标任务为第一任务和第二任务中优先级最高的任务,其中,任一任务的优先级用于指示操作系统为任一任务指定的使用运行资源的优先等级。
可选地,上述处理器510,还用于在目标CPU当前运行的任务运行结束的情况下,在目标CPU中没有待运行的任务的情况下,将第二CPU的任务中重要等级最高的任务,作为目标CPU执行的下一个任务;其中,第二CPU为多个CPU中存在至少两个任务的CPU。
可选地,上述处理器510,还用于在CPU运行任务的过程中,在单位时间内第三任务的运行时间超过第三任务对应的重要等级所对应的任务时间的情况下,暂停第三任务,并按照优先级选择下一个运行的任务。
本申请实施例提供一种电子设备,从多个CPU中确定出目标CPU,目标CPU为多个CPU上运行的所有满足预设条件的任务的负载最低的CPU,满足预设条件的任务对应的重要等级大于或等于第一任务对应的重要等级;在第一任务对应的重要等级大于目标CPU中正在运行的第二任务对应的重要等级的情况下,暂停第二任务,并通过目标CPU运行第一任务。通过该方案,由于CPU调度装置可以为一个任务设置相应的重要等级,并基于当前任务的重要等级,确定出重要等级大于或等于第一任务对应的重要等级的任务负载最低的CPU,进行CPU调度,因此可以使得当前任务及时得到CPU运行,从而可以降低后台任务抢占前台任务CPU的概率,提升前台应用的响应速度,进而可以减少系统卡顿。
应理解的是,本申请实施例中,输入单元504可以包括图形处理器(GraphicsProcessing Unit,GPU)5041和麦克风5042,图形处理器5041对在视频捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图片或视频的图像数据进行处理。显示单元506可包括显示面板5061,可以采用液晶显示器、有机发光二极管等形式来配置显示面板5061。用户输入单元507包括触控面板5071以及其他输入设备5072中的至少一种。触控面板5071,也称为触摸屏。触控面板5071可包括触摸检测装置和触摸控制器两个部分。其他输入设备5072可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆,在此不再赘述。
存储器509可用于存储软件程序以及各种数据。存储器509可主要包括存储程序或指令的第一存储区和存储数据的第二存储区,其中,第一存储区可存储操作系统、至少一个功能所需的应用程序或指令(比如声音播放功能、图像播放功能等)等。此外,存储器509可以包括易失性存储器或非易失性存储器,或者,存储器509可以包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data Rate SDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synch link DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DRRAM)。本申请实施例中的存储器509包括但不限于这些和任意其它适合类型的存储器。
处理器510可包括一个或多个处理单元;可选的,处理器510集成应用处理器和调制解调处理器,其中,应用处理器主要处理涉及操作系统、用户界面和应用程序等的操作,调制解调处理器主要处理无线通信信号,如基带处理器。可以理解的是,上述调制解调处理器也可以不集成到处理器510中。
本申请实施例还提供一种可读存储介质,所述可读存储介质上存储有程序或指令,该程序或指令被处理器执行时实现上述CPU调度方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
其中,所述处理器为上述实施例中所述的电子设备中的处理器。所述可读存储介质,包括计算机可读存储介质,如计算机只读存储器ROM、随机存取存储器RAM、磁碟或者光盘等。
本申请实施例另提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现上述CPU调度方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
应理解,本申请实施例提到的芯片还可以称为系统级芯片、系统芯片、芯片系统或片上系统芯片等。
本申请实施例提供一种计算机程序产品,该程序产品被存储在存储介质中,该程序产品被至少一个处理器执行以实现如上述CPU调度方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。此外,需要指出的是,本申请实施方式中的方法和装置的范围不限按示出或讨论的顺序来执行功能,还可包括根据所涉及的功能按基本同时的方式或按相反的顺序来执行功能,例如,可以按不同于所描述的次序来执行所描述的方法,并且还可以添加、省去、或组合各种步骤。另外,参照某些示例所描述的特征可在其他示例中被组合。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以计算机软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。

Claims (14)

1.一种CPU调度方法,其特征在于,所述方法包括:
从多个CPU中确定出目标CPU,所述目标CPU为所述多个CPU上运行的所有满足预设条件的任务的负载最低的CPU,所述满足预设条件的任务对应的重要等级大于或等于第一任务对应的重要等级;
在所述第一任务对应的重要等级大于所述目标CPU中正在运行的第二任务对应的重要等级的情况下,暂停所述第二任务,并通过所述目标CPU运行所述第一任务。
2.根据权利要求1所述的方法,其特征在于,所述从多个CPU中确定出目标CPU,包括:
获取所述多个CPU中的每个CPU的第一负载;
将所述多个CPU中第一负载最低的CPU,确定为所述目标CPU;
其中,在第一CPU中运行有多个所述满足预设条件的任务的情况下,所述第一CPU的第一负载为所述第一CPU运行的所有所述满足预设条件的任务的总负载,在所述第一CPU中未运行所述满足预设条件的任务的情况下,所述第一CPU的第一负载为0;
其中,所述第一CPU为所述多个CPU中的任一CPU。
3.根据权利要求1至2任一项所述的方法,其特征在于,所述从多个CPU中确定出目标CPU之后,所述方法还包括:
在所述第一任务对应的重要等级均小于所述目标CPU中正在运行的所有任务对应的重要等级的情况下,继续运行所述目标CPU中的任务。
4.根据权利要求1至2任一项所述的方法,其特征在于,所述从多个CPU中确定出目标CPU之后,所述方法还包括:
在所述第一任务对应的重要等级等于所述目标CPU中正在运行的第二任务对应的重要等级的情况下,通过所述目标CPU运行目标任务,所述目标任务为所述第一任务和所述第二任务中优先级高的任务,其中,任一任务的优先级用于指示操作系统为所述任一任务指定的使用运行资源的优先等级。
5.根据权利要求1至2任一项所述的方法,其特征在于,在所述目标CPU当前运行的任务运行结束的情况下,所述方法还包括:
在所述目标CPU中没有待运行的任务的情况下,将第二CPU的任务中重要等级最高的任务,作为所述目标CPU执行的下一个任务;
其中,所述第二CPU为所述多个CPU中存在至少两个任务的CPU。
6.根据权利要求1的方法,其特征在于,所述方法还包括:
在CPU运行任务的过程中,在单位时间内第三任务的运行时间超过所述第三任务对应的重要等级所对应的任务时间的情况下,暂停所述第三任务,并按照优先级选择下一个运行的任务。
7.一种CPU调度装置,其特征在于,所述装置包括:确定模块和处理模块;
所述确定模块,用于从多个CPU中确定出目标CPU,所述目标CPU为所述多个CPU上运行的所有满足预设条件的任务的负载最低的CPU,所述满足预设条件的任务对应的重要等级大于或等于第一任务对应的重要等级;
所述处理模块,用于在所述第一任务对应的重要等级大于所述确定模块确定的目标CPU中正在运行的第二任务对应的重要等级的情况下,暂停所述第二任务,并通过所述目标CPU运行所述第一任务。
8.根据权利要求7所述的装置,其特征在于,所述确定模块,具体用于:
获取多个CPU中的每个CPU的第一负载;
将所述多个CPU中第一负载最低的CPU,确定为所述目标CPU;
其中,在第一CPU中运行有多个所述满足预设条件的任务的情况下,所述第一CPU的第一负载为所述第一CPU运行的所有所述满足预设条件的任务的总负载,在所述第一CPU中未运行所述满足预设条件的任务的情况下,所述第一CPU的第一负载为0;
其中,所述第一CPU为所述多个CPU中的任一CPU。
9.根据权利要求7至8任一项所述的装置,其特征在于,
所述处理模块,还用于在所述确定模块从多个CPU中确定出目标CPU之后,在所述第一任务对应的重要等级均小于所述目标CPU中正在运行的所有任务对应的重要等级的情况下,继续运行所述目标CPU中的任务。
10.根据权利要求7至8任一项所述的装置,其特征在于,
所述处理模块,还用于在所述确定模块从多个CPU中确定出目标CPU之后,在所述第一任务对应的重要等级等于所述目标CPU中正在运行的第二任务对应的重要等级的情况下,通过所述目标CPU运行目标任务,所述目标任务为所述第一任务和所述第二任务中优先级高的任务,其中,任一任务的优先级用于指示操作系统为所述任一任务指定的使用运行资源的优先等级。
11.根据权利要求7至8任一项所述的装置,其特征在于,
所述处理模块,还用于在所述目标CPU当前运行的任务运行结束的情况下,在所述目标CPU中没有待运行的任务的情况下,将第二CPU的任务中重要等级最高的任务,作为所述目标CPU执行的下一个任务;
其中,所述第二CPU为所述多个CPU中存在至少两个任务的CPU。
12.根据权利要求7所述的装置,其特征在于,
所述处理模块,还用于在CPU运行任务的过程中,在单位时间内所述第三任务的运行时间超过所述第三任务对应的重要等级所对应的任务时间的情况下,暂停所述第三任务,并按照优先级选择下一个运行的任务。
13.一种电子设备,其特征在于,包括处理器和存储器,所述存储器存储可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如权利要求1至6任一项所述的CPU调度方法的步骤。
14.一种可读存储介质,其特征在于,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如权利要求1至6任一项所述的CPU调度方法的步骤。
CN202310065229.2A 2023-01-31 2023-01-31 Cpu调度方法、装置、电子设备及可读存储介质 Pending CN116302485A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202310065229.2A CN116302485A (zh) 2023-01-31 2023-01-31 Cpu调度方法、装置、电子设备及可读存储介质
PCT/CN2024/074299 WO2024160154A1 (zh) 2023-01-31 2024-01-26 Cpu调度方法、装置、电子设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310065229.2A CN116302485A (zh) 2023-01-31 2023-01-31 Cpu调度方法、装置、电子设备及可读存储介质

Publications (1)

Publication Number Publication Date
CN116302485A true CN116302485A (zh) 2023-06-23

Family

ID=86795014

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310065229.2A Pending CN116302485A (zh) 2023-01-31 2023-01-31 Cpu调度方法、装置、电子设备及可读存储介质

Country Status (2)

Country Link
CN (1) CN116302485A (zh)
WO (1) WO2024160154A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024160154A1 (zh) * 2023-01-31 2024-08-08 维沃移动通信有限公司 Cpu调度方法、装置、电子设备及可读存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102641520B1 (ko) * 2018-11-09 2024-02-28 삼성전자주식회사 멀티-코어 프로세서를 포함하는 시스템 온 칩 및 그것의 태스크 스케줄링 방법
CN112925616A (zh) * 2019-12-06 2021-06-08 Oppo广东移动通信有限公司 任务分配方法、装置、存储介质及电子设备
CN111488210B (zh) * 2020-04-02 2023-04-07 腾讯科技(深圳)有限公司 基于云计算的任务调度方法、装置和计算机设备
CN111984391B (zh) * 2020-09-10 2023-10-27 哲库科技(北京)有限公司 任务调度方法、装置、芯片、终端及存储介质
CN116302485A (zh) * 2023-01-31 2023-06-23 维沃移动通信有限公司 Cpu调度方法、装置、电子设备及可读存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024160154A1 (zh) * 2023-01-31 2024-08-08 维沃移动通信有限公司 Cpu调度方法、装置、电子设备及可读存储介质

Also Published As

Publication number Publication date
WO2024160154A1 (zh) 2024-08-08

Similar Documents

Publication Publication Date Title
US20190258514A1 (en) I/O Request Scheduling Method and Apparatus
JP6199477B2 (ja) ゲストオペレーティングシステムおよび仮想プロセッサとともにハイパーバイザを使用するシステムおよび方法
EP2885707B1 (en) Latency sensitive software interrupt and thread scheduling
CN110968415B (zh) 多核处理器的调度方法、装置及终端
US9274832B2 (en) Method and electronic device for thread scheduling
US9201693B2 (en) Quota-based resource management
US9489236B2 (en) Application prioritization
US8904399B2 (en) System and method of executing threads at a processor
US9411649B2 (en) Resource allocation method
CN111597042A (zh) 业务线程运行方法、装置、存储介质及电子设备
EP2581829B1 (en) Dynamic scheduling for frames representing views of a geographic information environment
CN109491780B (zh) 多任务调度方法及装置
WO2024160154A1 (zh) Cpu调度方法、装置、电子设备及可读存储介质
CN113495780A (zh) 任务调度方法、装置、存储介质及电子设备
CN115576645B (zh) 一种虚拟处理器调度方法、装置、存储介质及电子设备
WO2024160136A1 (zh) 任务调度方法、装置和电子设备
CN113495787A (zh) 资源分配方法、装置、存储介质及电子设备
CN111597044A (zh) 任务调度方法、装置、存储介质及电子设备
CN116661964A (zh) 任务处理方法、装置及电子设备
Kang et al. Priority-driven spatial resource sharing scheduling for embedded graphics processing units
WO2023130866A1 (zh) 操作系统的切换方法及装置、电子设备、存储介质
US10908962B1 (en) System and method to share GPU resources
US11347544B1 (en) Scheduling work items based on declarative constraints
CN116737338A (zh) 处理方法、装置、设备和存储介质
Labrosse Operating systems

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination