CN116266133A - 一种任务处理方法、装置、设备及存储介质 - Google Patents

一种任务处理方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN116266133A
CN116266133A CN202111556264.1A CN202111556264A CN116266133A CN 116266133 A CN116266133 A CN 116266133A CN 202111556264 A CN202111556264 A CN 202111556264A CN 116266133 A CN116266133 A CN 116266133A
Authority
CN
China
Prior art keywords
resource
threshold
resource allowance
user
current
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
CN202111556264.1A
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.)
Sonoscape Medical Corp
Original Assignee
Sonoscape Medical Corp
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 Sonoscape Medical Corp filed Critical Sonoscape Medical Corp
Priority to CN202111556264.1A priority Critical patent/CN116266133A/zh
Publication of CN116266133A publication Critical patent/CN116266133A/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/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
    • 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/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and 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/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/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • 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/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5022Mechanisms to release resources
    • 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
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • 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/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5017Task decomposition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/503Resource availability
    • 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)
  • Ultra Sonic Daignosis Equipment (AREA)

Abstract

本申请公开了一种任务处理方法、装置、设备及存储介质,在该方案中,针对用户无操作感知的进程进行占运算资源任务的管控,在该类进程执行占用运算资源的目标任务中的任一子任务之前,将超声系统中的当前运算资源余量与当前子任务对应的第一资源余量阈值进行比较;若当前运算资源余量不大于当前子任务对应的第一资源余量阈值,则不执行当前子任务,而是释放执行完成的预设数量个子任务占用的运算资源,从而等待继续执行该任务,该方案在有限的运算资源下,通过用户无感知进程的自我管控来保障其他进程的正常执行,从而可保障前端用户操作的流畅性,提升了用户体验。本申请提供的任务处理装置、设备及存储介质,也同样具有上述技术效果。

Description

一种任务处理方法、装置、设备及存储介质
技术领域
本申请涉及计算机技术领域,特别涉及一种任务处理方法、装置、设备及存储介质。
背景技术
超声系统在工作过程中,需要采集各种类型的超声数据,如:超声二维图像、超声三维图像、超声二维电影、超声三维电影等,并对这些超声数据进行处理、显示等。这些过程需要借助多种进程来实现。
但是,超声系统中的运算资源有限,往往无法满足所有进程的同时占用。某些进程对该有限的运算资源的占用可能会造成另一些进程无法顺利运行,进而造成超声系统的响应时长过长,导致用户操作卡顿。
发明内容
有鉴于此,本申请的目的在于提供一种任务处理方法、装置、设备及存储介质,以避免用户操作超声系统的卡顿现象。其具体方案如下:
为实现上述目的,一方面,本申请提供了一种任务处理方法,应用于超声系统中用户无操作感知的目标进程,所述方法包括:
在所述目标进程执行占用运算资源的目标任务中的任一子任务之前,将所述超声系统中的当前运算资源余量与当前子任务对应的第一资源余量阈值进行比较;
若所述当前运算资源余量不大于当前子任务对应的第一资源余量阈值,则不执行当前子任务,释放执行完成的预设数量个子任务占用的运算资源,并等待继续执行所述目标任务。
可选地,还包括:
在所述目标进程执行所述目标任务之前,若所述当前运算资源余量不大于第二资源余量阈值,则等待执行所述目标任务;
实时查询所述当前运算资源余量,待所述当前运算资源余量大于所述第二资源余量阈值时,执行所述目标任务。
可选地,还包括:
若等待超时,则记录等待超时次数,以基于所述等待超时次数调整所述第一资源余量阈值和/或所述第二资源余量阈值。
可选地,所述基于所述等待超时次数调整所述第一资源余量阈值和/或所述第二资源余量阈值,包括:
若在预设时长内,所述等待超时次数超过次数阈值,则调小所述第一资源余量阈值和/或所述第二资源余量阈值,并将调小后的第一资源余量阈值和/或调小后的第二资源余量阈值写入所述目标进程的配置文件。
可选地,调整所述第一资源余量阈值之前,所述第一资源余量阈值的写入过程包括:
获取用户输入的任一子任务对应的第一资源余量阈值;
若用户输入的当前子任务的第一资源余量阈值不小于第一阈值,则将用户输入的第一资源余量阈值写入所述配置文件;否则,提示用户重新输入第一资源余量阈值;所述第一阈值为执行当前子任务待用的运算资源量与预设进程待用的运算资源量之和;所述预设进程为超声系统中用户有操作感知的进程。
可选地,调整所述第二资源余量阈值之前,所述第二资源余量阈值的写入过程包括:
获取用户输入的第二资源余量阈值;
若用户输入的第二资源余量阈值不小于第二阈值,则将用户输入的第二资源余量阈值写入所述配置文件;否则,提示用户重新输入第二资源余量阈值;所述第二阈值为所述目标任务与所述预设进程待用的运算资源量之和。
可选地,还包括:
若在所述目标任务的执行过程中,所述超声系统中用户有操作感知的进程启动运行,则暂停执行所述目标任务,并在所述用户有操作感知的进程的优先级高于优先级阈值的情况下,释放执行完成的预设数量个子任务占用的运算资源,并等待继续执行所述目标任务。
可选地,所述释放执行完成的预设数量个子任务占用的运算资源,包括:
释放执行完成的所述目标任务的所有子任务占用的运算资源。
又一方面,本申请还提供了一种任务处理装置,应用于超声系统中用户无操作感知的目标进程,所述装置包括:
比较模块,用于在所述目标进程执行占用运算资源的目标任务中的任一子任务之前,将所述超声系统中的当前运算资源余量与当前子任务对应的第一资源余量阈值进行比较;
退回模块,用于若所述当前运算资源余量不大于当前子任务对应的第一资源余量阈值,则不执行当前子任务,释放执行完成的预设数量个子任务占用的运算资源,并等待继续执行所述目标任务。
又一方面,本申请还提供了一种超声设备,所述超声设备包括处理器和存储器;其中,所述存储器用于存储计算机程序,所述计算机程序由所述处理器加载并执行以实现前述任务处理方法。
又一方面,本申请还提供了一种存储介质,所述存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现前述任务处理方法。
本申请针对用户无操作感知的进程进行占运算资源任务的管控,在该类进程执行占用运算资源的目标任务中的任一子任务之前,将超声系统中的当前运算资源余量与当前子任务对应的第一资源余量阈值进行比较;若当前运算资源余量不大于当前子任务对应的第一资源余量阈值,则不执行当前子任务,而是释放执行完成的预设数量个子任务占用的运算资源,从而等待目标任务,以继续执行该任务,从而避免在运算资源余量较小的情况下,该进程与超声系统中的其他进程争抢运算资源。该方案在有限的运算资源下,兼顾超声系统中用户无感知进程和其他进程,通过用户无感知进程的自我管控来保障其他进程的正常执行,无需借助专用管控进程进行资源调度,实现了运算资源的合理利用,从而可保障前端用户操作的流畅性,提升了系统响应效率和用户体验。
相应地,本申请提供的任务处理装置、设备及存储介质,也同样具有上述技术效果。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请提供的一种任务处理方法流程图;
图2为本申请提供的另一种任务处理方法流程图;
图3为本申请提供的又一种任务处理方法流程图;
图4为本申请提供的一种任务处理装置示意图;
图5为本申请提供的一种服务器结构图;
图6为本申请提供的一种终端结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。另外,在本申请实施例中,“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
现有超声系统中的运算资源有限,往往无法满足所有进程的同时占用。某些进程对该有限的运算资源的占用可能会造成另一些进程无法顺利运行,进而造成超声系统的响应时长过长,导致用户操作卡顿。
鉴于目前所存在的上述问题,本申请提出了任务处理方案,该方案通过用户无感知进程的自我管控来保障其他进程的正常执行,实现了运算资源的合理利用,从而可保障前端用户操作的流畅性,提升了系统响应效率和用户体验。
请参见图1,图1为本申请实施例提供的一种任务处理方法流程图。如图1所示,该任务处理方法应用于超声系统中用户无操作感知的目标进程,可以包括以下步骤:
S101、在目标进程执行占用运算资源的目标任务中的任一子任务之前,将超声系统中的当前运算资源余量与当前子任务对应的第一资源余量阈值进行比较。
首先需要说明的是,用户无操作感知的目标进程即:该进程的启动、运行,无需用户触发,该目标进程是否启动、是否运行,用户在前端也没有任何感知。故管控此类程序不会影响用户在系统前端的操作。
超声系统中一般包括:主进程、后台进程、AI进程(用于运行人工智能相关算法)、DVR进程(用于实现录屏功能)、Xorg、触摸屏进程等。其中的后台进程主要进行后台DICOM(医学数字成像和通信)转换任务,其对用户而言没有操作感知,属于本实施例的管控对象。而主进程、AI进程、DVR进程、触摸屏进程一般都由用户触发运行,其运行被用户所感知,不属于本实施例的管控对象。Xorg是系统的一个管理输入输出的进程,其虽然不被用户所感知,但其不执行占用运算资源的任务,也不属于本实施例的管控对象。
可见,本实施例所管控的进程需要具备两个特点:(1)用户在前端的操作不影响其执行任务与否、(2)执行占用运算资源的任务。需要注意,此类进程按照本实施例提供的方法进行自我管控,而不是接受其他进程的管控,因此本实施例无需设定专用管控进程进行资源调度,可以进一步节约系统资源。
为了便于在超声系统中确定需要管控的进程,可以为超声系统中各进程设置优先级,将需要管控的进程的优先级设为最低,其他进程的优先级高于需要管控的进程的优先级。例如:设置后台进程的优先级为最低,Xorg、主进程的优先级为最高,AI进程、DVR进程、触摸屏进程的优先级居中,并将优先级最小的进程确定为需要进行自我管控的进程。当然,需要进行自我管控的进程的个数可能并不唯一。
其中,运算资源具体指:GPU显存或CPU内存等。
在一种实施方式中,超声系统中的后台进程执行的DICOM转存任务就是占用运算资源的任务,其主要用于对超声图像进行渲染、裁剪、转存等处理,其中的渲染、裁剪、转存即分别对应一个子任务。也即:占用运算资源的任务具体可以包括:渲染子任务、裁剪子任务、回调子任务、转存子任务等。并且,每个子任务需要用的运算资源量可能相同也可能不同。
一般地,每个子任务需要用的运算资源量最小为相应超声图像的大小,也可能是相应超声图像大小的整数倍。假设超声图像大小为mM(兆),那么各子任务需要用的运算资源量可以为1m、2m、3m等。而子任务对应的第一资源余量阈值最小为该子任务需要用的运算资源量,因此不同子任务对应的第一资源余量阈值可以相同,也可以不同。
S102、若当前运算资源余量不大于当前子任务对应的第一资源余量阈值,则不执行当前子任务,释放执行完成的预设数量个子任务占用的运算资源,并等待继续执行目标任务。
在执行任一子任务之前,将超声系统中的当前运算资源余量与当前子任务对应的第一资源余量阈值进行比较;若当前运算资源余量不大于当前子任务对应的第一资源余量阈值,则表明当前运算资源余量不足以支持当前子任务的运行,而此时较小运算资源余量很容易引起用户操作卡顿,故此时暂停执行目标任务,也就是不执行当前子任务,并释放执行完成的预设数量个子任务占用的运算资源,以增大运算资源余量,然后等待继续执行目标任务。若当前运算资源余量大于当前子任务对应的第一资源余量阈值,则表明当前运算资源余量充足,足以支持当前子任务的运行和其他进程的运行,那么执行当前子任务,以继续目标任务的执行。
在一种实施方式中,释放执行完成的预设数量个子任务占用的运算资源,包括:释放执行完成的目标任务的所有子任务占用的运算资源,即:回到目标任务执行的原点,并等待执行目标任务。
需要说明的是,预设数量可以是:已执行完成的各子任务的总个数,也可以是:已执行的部分子任务的个数。在一种实施方式中,预设数量可以是:S×X%,S为已执行完成的各子任务的总个数,X%可灵活设定。
若X%=50%,且目标任务共包括10个子任务,当前即将执行第5个子任务,若此时当前运算资源余量不大于当前子任务对应的第一资源余量阈值,则不执行第5个子任务,那么S×X%=4(已执行完成的各子任务的总个数)×50%=2,因此释放执行完成的、第3个和第4个子任务这2个子任务占用的运算资源,即:回到第3个子任务的开始执行位置,并等待执行目标任务。
可见,增大运算资源余量时,可以放弃已经执行完成的所有子任务,也可以放弃已执行的部分子任务。放弃已经执行完成的所有子任务可以释放出更多的运算资源,但这些子任务后续需要重新执行,不免影响整个任务的执行进度。而放弃已执行的部分子任务,既可以增大运算资源余量,又可以保留一些已执行的子任务,后续可以继续执行其他子任务,从而使整个任务的执行进度不至于过慢。当然,放弃已执行的部分子任务后,还可能出现:运算资源余量仍不够用,需要再次释放,此过程可以反复执行。
本实施例针对用户无操作感知的进程进行占运算资源任务的管控,在该类进程执行占用运算资源的目标任务中的任一子任务之前,将超声系统中的当前运算资源余量与当前子任务对应的第一资源余量阈值进行比较;若当前运算资源余量不大于当前子任务对应的第一资源余量阈值,则不执行当前子任务,而是释放执行完成的预设数量个子任务占用的运算资源,从而等待目标任务,以继续执行该任务,从而避免在运算资源余量较小的情况下,该目标进程与超声系统中的其他进程争抢运算资源。
可见,本实施例在有限的运算资源下,兼顾超声系统中用户无感知进程和其他进程,通过用户无感知进程的自我管控来保障其他进程的正常执行,无需借助专用管控进程进行资源调度,实现了运算资源的合理利用,从而可保障前端用户操作的流畅性,提升了用户体验。
基于上述实施例,需要说明的是,若占用运算资源的目标任务包括:渲染、裁剪、回调、转存等子任务,那么各个子任务在执行之前,都将超声系统的当前运算资源余量与相应子任务对应的第一资源余量阈值进行比较;若当前运算资源余量不大于当前子任务对应的第一资源余量阈值,则不执行当前子任务,然后释放执行完成的预设数量个子任务占用的运算资源,并等待继续执行目标任务。
例如:若当前待执行的子任务是转存子任务,则有:在目标进程执行占用运算资源的目标任务中的转存子任务之前,将当前运算资源余量与转存子任务对应的第一资源余量阈值进行比较;若当前运算资源余量不大于转存子任务对应的第一资源余量阈值,则不执行转存子任务,释放执行完成的预设数量个子任务占用的运算资源,并等待继续执行目标任务。
基于上述实施例,需要说明的是,在目标进程执行目标任务之前,若当前运算资源余量不大于第二资源余量阈值,则等待执行目标任务;实时查询当前运算资源余量,待当前运算资源余量大于第二资源余量阈值时,执行目标任务。
可见,针对用户无操作感知的目标进程进行占运算资源任务的管控,若该类进程即将执行占用运算资源的任务,则在超声系统中的当前运算资源余量不大于第二资源余量阈值时,不让该目标进程执行相应任务,而是进入等待状态,从而避免在运算资源余量较小的情况下,该目标进程与超声系统中的其他进程争抢运算资源。当然,该类目标进程可以实时查询超声系统中的当前运算资源余量,在当前运算资源余量不小于第二资源余量阈值时,正常执行相应任务,从而可一定程度上保障此类任务的正常完成。
基于上述实施例,需要说明的是,无论是在任务执行原点等待超时,还是在某个子任务处等待超时,都表明该任务的执行受阻,为保证该任务的正常完成,可以在等待超时后,记录等待超时次数,从而基于等待超时次数调整第一资源余量阈值和/或第二资源余量阈值。
在一种实施方式中,基于等待超时次数调整第一资源余量阈值,包括:若在预设时长内,等待超时次数超过次数阈值,则调小第一资源余量阈值,并将调小后的第一资源余量阈值写入目标进程的配置文件。
在一种实施方式中,基于等待超时次数调整第二资源余量阈值,包括:若在预设时长内,等待超时次数超过次数阈值,则调小第二资源余量阈值,并将调小后的第二资源余量阈值写入目标进程的配置文件。
在一种实施方式中,调整第一资源余量阈值之前,第一资源余量阈值的写入过程包括:
获取用户输入的任一子任务对应的第一资源余量阈值;
若用户输入的当前子任务的第一资源余量阈值不小于第一阈值,则将用户输入的第一资源余量阈值写入配置文件;否则,提示用户重新输入第一资源余量阈值;第一阈值为执行当前子任务待用的运算资源量与预设进程待用的运算资源量之和;预设进程为超声系统中用户有操作感知的进程。
在一种实施方式中,调整第二资源余量阈值之前,第二资源余量阈值的写入过程包括:
获取用户输入的第二资源余量阈值;
若用户输入的第二资源余量阈值不小于第二阈值,则将用户输入的第二资源余量阈值写入配置文件;否则,提示用户重新输入第二资源余量阈值;第二阈值为目标任务与预设进程待用的运算资源量之和。
可见,第一资源余量阈值和第二资源余量阈值可以写入目标进程的配置文件中,该进程在执行任务时可以从该配置文件中读取相应阈值。
在调整前后,任一子任务对应的第一资源余量阈值不小于当前子任务待用的运算资源量与预设进程待用的运算资源量之和(即第一阈值),第二资源余量阈值不小于目标任务与预设进程待用的运算资源量之和(即第二阈值);预设进程为超声系统中用户有操作感知的进程。
其中,用户有操作感知的进程即:该进程的启动、运行,需要用户触发,该进程是否启动、是否运行,用户在前端有感知,故此类程序会影响用户在系统前端的操作。如:超声系统中的AI进程、DVR进程、触摸屏进程、Xorg等,都可以看作用户有操作感知的进程。
基于上述实施例,需要说明的是,若在目标任务的执行过程中,超声系统中用户有操作感知的进程启动运行,则暂停执行目标任务,并在用户有操作感知的进程的优先级高于优先级阈值的情况下,释放执行完成的预设数量个子任务占用的运算资源,并等待继续执行目标任务。
可见,目标进程可以实时感知系统中是否有其他进程启动,若确定系统中启动的其他进程的优先级较高,则目标进程释放自身所执行任务占用的运算资源,以保障优先级较高的其他进程的正常运行。此时的预设数量可参照前文相关介绍,在此不再赘述。
在一实施方式中,可以提供如下一种任务处理方法,该任务处理方法应用于超声设备。该超声设备包括超声探头、主机、显示器、操作面板等。
请参见图2,具体的任务处理过程可以包括:
步骤1:医生控制超声探头扫查被测对象,在该过程中,显示器显示相应超声图像,主机的后台进程在确定当前运算资源余量大于第二资源余量阈值时,执行超声图像的DICOM转存任务。
步骤2:在后台进程执行超声图像的DICOM转存任务的过程中,若医生通过操作面板启动了AI进程,导致运算资源余量骤减,此时后台进程查询到当前运算资源余量小于第一资源余量阈值,且已不足以支撑当前子任务的执行,那么后台进程退回至任务执行原点,以释放运算资源给AI进程使用,从而提升AI进程的运行效率,避免前端操作卡顿。
一般地,超声设备总体有4G显存,其通常需要支撑包括AI功能、基础模式功能、高级功能、三维功能等涉及人机交互的功能,因此这些功能的优先级一般较高。具体的,设定后台进程的优先级最低,因此牺牲优先级最低的后台进程的运行效率,当运算资源小于一定阈值时,如果此时后台进程已经在运行中,则释放其占用的运算资源,放弃相关任务的执行,如果还未开始运行,则阻塞等待,待运算资源多的时候再运行。该方式采用抢占式策略,使后台进程管控自己所执行的任务,从而只修改后台进程,而不影响其他进程。
其中,超声设备启动后,DVR进程、软件架构、AI进程、软件系统等会占用一部分运算资源,这些属于固定占用,那么剩下可用的非固定占用运算资源就可以提供给各进程使用。非固定占用运算资源的余量即:当前运算资源余量。
在本实施例中,第一资源余量阈值和第二资源余量阈值可按照如下内容设定。考虑到DICOM转存任务针对高分辨率三维血流模式(SRFlow3D)的超声图像(4D电影)进行处理时,所需的运算资源最大,因此综合考虑此场景下的混合渲染+裁剪+处理三种类型数据,每个子任务需要处理的体数据大小为m,那么整个任务就需要C=n*m的运算资源,n为整个任务的子任务个数。以n为18,m为13.47M为例,整个任务需要占用242.46M显存。
据此,第二资源余量阈值(阈值2)设定为2C,考虑使用双倍的显存。如果执行任务之前,当前运算资源余量小于2C,则不转存4D电影,大于2C则开始转存4D电影。此处判定粒度为单次回调任务级。
第一资源余量阈值(阈值1)考虑使用C+DVR进程的固定占用,在执行任一子任务之前,如果当前运算资源余量小于此阈值,则暂停不做4D电影转存。大于此值可以执行算法。此处判定粒度为单体算法级。其中,DVR进程固定占用可以为198M。阈值1和阈值2通过配置文件进行配置,后台进程启动的时候读取配置文件获取阈值1和阈值2。此处阈值1仅有一个,即:所有子任务的阈值1相同。
请参见图3,子任务也称为任务中的单个算法,故开始执行转存4D电影之前,判断当前系统的运算资源余量是否大于阈值2,如果大于,则继续执行,如果不大于,则暂停等待,待剩余运算资源大于阈值2之后执行。整个任务执行完成后,及时释放占用的所有运算资源。
而4D电影转存中间涉及到若干个算法,单个算法顺序执行。在单个算法执行之前,需要判定当前系统空闲运算资源(也称为,剩余运算资源或空闲资源)是否大于阈值1,如果大于,则继续执行,如果不大于,则暂停执行,并退回到任务执行原点,回收该任务已占用的所有运算资源,等待空闲运算资源大于阈值2方可重新执行任务。
转存4D电影的过程中会执行回调动作,以渲染超声效果图。由于4D电影数据(即,随时间变化的超声3D视频数据)占用运算资源较多,所以在开始转存之前,首先判断当前任务的数据是否是4D电影数据,如果是,则需要查询当前系统的剩余运算资源并和阈值2做个比较,大于阈值则表示系统运算资源处于相对有余量的状态,如果不大于阈值,则表示当前运算资源不足以支撑完成这个转存任务,则停止等待。
在运算资源够用的情况下,开始执行转存任务。执行任务的过程中,会执行一个一个算法,算法执行也会占用运算资源。每次执行单个算法之前,也需要查询当前系统的运算资源余量,并与阈值1做比较。如果大于阈值1可以继续执行,如果不大于阈值1,则表示当前系统剩余的运算资源已经比较少了,为了不影响其他进程可能需要的资源申请。后台进程马上停止执行,并把之前占用的显存都释放出来(即:回收纹理资源)。整个状态退到第一个算法开始执行处,保证后台转存任务不占用任何多余运算资源。
可见,本实施例在有限的运算资源环境中,可以尽可能的支撑更多的功能,所有的调度和处理逻辑只针对优先级最低的进程,对优先级较高的进程不会产生任何负面影响。方案实现无需增减硬件配置和设备功能,对运算资源进行了分时复用。
其中,关于本实施例中各个步骤更加具体的工作过程可以参考前后实施例中公开的相应内容,在此不再进行赘述。
下面对本申请实施例提供的一种任务处理装置进行介绍,下文描述的一种任务处理装置与上述实施例可以相互参照。请参见图4,图4为本申请实施例提供的一种任务处理装置示意图。
本申请实施例提供的一种任务处理装置,应用于超声系统中用户无操作感知的目标进程,包括:
比较模块401,用于在目标进程执行占用运算资源的目标任务中的任一子任务之前,将超声系统中的当前运算资源余量与当前子任务对应的第一资源余量阈值进行比较;
退回模块402,用于若当前运算资源余量不大于当前子任务对应的第一资源余量阈值,则不执行当前子任务,释放执行完成的预设数量个子任务占用的运算资源,并等待继续执行目标任务。
在一种实施方式中,还包括:
等待模块,用于在目标进程执行目标任务之前,若当前运算资源余量不大于第二资源余量阈值,则等待执行目标任务;
查询模块,用于实时查询当前运算资源余量,待当前运算资源余量大于第二资源余量阈值时,执行目标任务。
在一种实施方式中,还包括:
记录模块,用于若等待超时,则记录等待超时次数,以基于等待超时次数调整第一资源余量阈值和/或第二资源余量阈值。
在一种实施方式中,记录模块具体用于:
若在预设时长内,等待超时次数超过次数阈值,则调小第一资源余量阈值和/或第二资源余量阈值,并将调小后的第一资源余量阈值和/或调小后的第二资源余量阈值写入目标进程的配置文件。
在一种实施方式中,还包括:
阈值写入模块,用于在调整第一资源余量阈值之前,写入第一资源余量阈值,具体包括:
获取用户输入的任一子任务对应的第一资源余量阈值;
若用户输入的当前子任务的第一资源余量阈值不小于第一阈值,则将用户输入的第一资源余量阈值写入配置文件;否则,提示用户重新输入第一资源余量阈值;第一阈值为执行当前子任务待用的运算资源量与预设进程待用的运算资源量之和;预设进程为超声系统中用户有操作感知的进程。
在一种实施方式中,阈值写入模块,还用于在调整第二资源余量阈值之前,写入第二资源余量阈值,具体包括:
获取用户输入的第二资源余量阈值;
若用户输入的第二资源余量阈值不小于第二阈值,则将用户输入的第二资源余量阈值写入配置文件;否则,提示用户重新输入第二资源余量阈值;第二阈值为目标任务与预设进程待用的运算资源量之和。
在一种实施方式中,还包括:
检测模块,用于若在目标任务的执行过程中,超声系统中用户有操作感知的进程启动运行,则暂停执行目标任务,并在用户有操作感知的进程的优先级高于优先级阈值的情况下,释放执行完成的预设数量个子任务占用的运算资源,并等待继续执行目标任务。
在一种实施方式中,预设数量为:执行完成的所有子任务的总个数。
其中,关于本实施例中各个模块、单元更加具体的工作过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
可见,本实施例提供了一种任务处理装置,通过用户无感知进程的自我管控来保障其他进程的正常执行,实现了运算资源的合理利用,从而可保障前端用户操作的流畅性,提升了用户体验。
下面对本申请实施例提供的一种超声设备进行介绍,下文描述的一种超声设备与上述实施例的相关实现步骤可以相互参照。
进一步的,本申请实施例还提供了一种超声设备。其中,上述超声设备既可以是如图5所示的服务器50,也可以是如图6所示的终端60。图5和图6均是根据一示例性实施例示出的超声设备结构图,图中的内容不能被认为是对本申请的使用范围的任何限制。
图5为本申请实施例提供的一种服务器的结构示意图。该服务器50,具体可以包括:至少一个处理器51、至少一个存储器52、电源53、通信接口54、输入输出接口55和通信总线56。其中,所述存储器52用于存储计算机程序,所述计算机程序由所述处理器51加载并执行,以实现前述任一实施例公开的任务处理中的相关步骤。
本实施例中,电源53用于为服务器50上的各硬件设备提供工作电压;通信接口54能够为服务器50创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口55,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
另外,存储器52作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源包括操作系统521、计算机程序522及数据523等,存储方式可以是短暂存储或者永久存储。
其中,操作系统521用于管理与控制服务器50上的各硬件设备以及计算机程序522,以实现处理器51对存储器52中数据523的运算与处理,其可以是Windows Server、Netware、Unix、Linux等。计算机程序522除了包括能够用于完成前述任一实施例公开的任务处理方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。数据523除了可以包括应用程序的更新信息等数据外,还可以包括应用程序的开发商信息等数据。
图6为本申请实施例提供的一种终端的结构示意图,该终端60具体可以包括但不限于智能手机、平板电脑、笔记本电脑或台式电脑等。
通常,本实施例中的终端60包括有:处理器61和存储器62。
其中,处理器61可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器61可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器61也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器61可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器61还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器62可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器62还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器62至少用于存储以下计算机程序621,其中,该计算机程序被处理器61加载并执行之后,能够实现前述任一实施例公开的由终端侧执行的任务处理方法中的相关步骤。另外,存储器62所存储的资源还可以包括操作系统622和数据623等,存储方式可以是短暂存储或者永久存储。其中,操作系统622可以包括Windows、Unix、Linux等。数据623可以包括但不限于应用程序的更新信息。
在一些实施例中,终端60还可包括有显示屏63、输入输出接口64、通信接口65、传感器66、电源67以及通信总线68。
本领域技术人员可以理解,图6中示出的结构并不构成对终端60的限定,可以包括比图示更多或更少的组件。
下面对本申请实施例提供的一种存储介质进行介绍,下文描述的一种存储介质与上述实施例的相关实现步骤可以相互参照。
进一步的,本申请实施例还公开了一种存储介质,所述存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现前述任一实施例公开的任务处理方法。关于该方法的具体步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。
需要指出的是,上述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (10)

1.一种任务处理方法,其特征在于,应用于超声系统中用户无操作感知的目标进程,所述方法包括:
在所述目标进程执行占用运算资源的目标任务中的任一子任务之前,将所述超声系统中的当前运算资源余量与当前子任务对应的第一资源余量阈值进行比较;
若所述当前运算资源余量不大于当前子任务对应的第一资源余量阈值,则不执行当前子任务,释放执行完成的预设数量个子任务占用的运算资源,并等待继续执行所述目标任务。
2.根据权利要求1所述的方法,其特征在于,还包括:
在所述目标进程执行所述目标任务之前,若所述当前运算资源余量不大于第二资源余量阈值,则等待执行所述目标任务;
实时查询所述当前运算资源余量,待所述当前运算资源余量大于所述第二资源余量阈值时,执行所述目标任务。
3.根据权利要求2所述的方法,其特征在于,还包括:
若等待超时,则记录等待超时次数,以基于所述等待超时次数调整所述第一资源余量阈值和/或所述第二资源余量阈值。
4.根据权利要求3所述的方法,其特征在于,所述基于所述等待超时次数调整所述第一资源余量阈值和/或所述第二资源余量阈值,包括:
若在预设时长内,所述等待超时次数超过次数阈值,则调小所述第一资源余量阈值和/或所述第二资源余量阈值,并将调小后的第一资源余量阈值和/或调小后的第二资源余量阈值写入所述目标进程的配置文件。
5.根据权利要求3或4任一项所述的方法,其特征在于,
调整所述第一资源余量阈值之前,所述第一资源余量阈值的写入过程包括:
获取用户输入的任一子任务对应的第一资源余量阈值;
若用户输入的当前子任务的第一资源余量阈值不小于第一阈值,则将用户输入的第一资源余量阈值写入所述配置文件;否则,提示用户重新输入第一资源余量阈值;所述第一阈值为执行当前子任务待用的运算资源量与预设进程待用的运算资源量之和;所述预设进程为超声系统中用户有操作感知的进程;
和/或
调整所述第二资源余量阈值之前,所述第二资源余量阈值的写入过程包括:
获取用户输入的第二资源余量阈值;
若用户输入的第二资源余量阈值不小于第二阈值,则将用户输入的第二资源余量阈值写入所述配置文件;否则,提示用户重新输入第二资源余量阈值;所述第二阈值为所述目标任务与所述预设进程待用的运算资源量之和。
6.根据权利要求1至4任一项所述的方法,其特征在于,还包括:
若在所述目标任务的执行过程中,所述超声系统中用户有操作感知的进程启动运行,则暂停执行所述目标任务,并在所述用户有操作感知的进程的优先级高于优先级阈值的情况下,释放执行完成的预设数量个子任务占用的运算资源,并等待继续执行所述目标任务。
7.根据权利要求1至4任一项所述的方法,其特征在于,所述释放执行完成的预设数量个子任务占用的运算资源,包括:
释放执行完成的所述目标任务的所有子任务占用的运算资源。
8.一种任务处理装置,其特征在于,应用于超声系统中用户无操作感知的目标进程,所述装置包括:
比较模块,用于在所述目标进程执行占用运算资源的目标任务中的任一子任务之前,将所述超声系统中的当前运算资源余量与当前子任务对应的第一资源余量阈值进行比较;
退回模块,用于若所述当前运算资源余量不大于当前子任务对应的第一资源余量阈值,则不执行当前子任务,释放执行完成的预设数量个子任务占用的运算资源,并等待继续执行所述目标任务。
9.一种超声设备,其特征在于,所述超声设备包括处理器和存储器;其中,所述存储器用于存储计算机程序,所述计算机程序由所述处理器加载并执行以实现如权利要求1至7任一项所述的方法。
10.一种存储介质,其特征在于,所述存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如权利要求1至7任一项所述的方法。
CN202111556264.1A 2021-12-17 2021-12-17 一种任务处理方法、装置、设备及存储介质 Pending CN116266133A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111556264.1A CN116266133A (zh) 2021-12-17 2021-12-17 一种任务处理方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111556264.1A CN116266133A (zh) 2021-12-17 2021-12-17 一种任务处理方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN116266133A true CN116266133A (zh) 2023-06-20

Family

ID=86743931

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111556264.1A Pending CN116266133A (zh) 2021-12-17 2021-12-17 一种任务处理方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN116266133A (zh)

Similar Documents

Publication Publication Date Title
CA2988269C (en) Opportunistic multitasking
US8769548B2 (en) Media player instance managed resource reduction
US20240264940A1 (en) Write data cache method and system, device, and storage medium
JP5725162B2 (ja) 排他制御方法、および排他制御プログラム
CN108228343B (zh) 内存回收方法及装置、计算机装置及计算机可读存储介质
US9703361B2 (en) Memory control apparatus, memory control method, information processing apparatus and program
US20200117623A1 (en) Adaptive Interrupt Coalescing
CN115576645A (zh) 一种虚拟处理器调度方法、装置、存储介质及电子设备
JP2010287046A (ja) リソース配分システム、リソース配分方法及びリソース配分プログラム
US10198784B2 (en) Capturing commands in a multi-engine graphics processing unit
WO2023193527A1 (zh) 线程执行方法、装置、电子设备及计算机可读存储介质
CN115328564B (zh) 一种异步输入输出线程处理器资源分配方法及装置
CN116266133A (zh) 一种任务处理方法、装置、设备及存储介质
CN110383241B (zh) 用于基于应用程序状态降低硬件能耗的装置和方法
CN113806142B (zh) 一种数据恢复方法、装置及相关设备
KR20240063163A (ko) 업스케일러 작업을 위한 플랫폼 리소스 선택
CN114116220A (zh) 一种gpu共享控制方法、gpu共享控制装置及存储介质
CN111290701B (zh) 数据读写控制方法、装置、介质和电子设备
CN110955644A (zh) 一种存储系统的io控制方法、装置、设备及存储介质
CN114510324B (zh) 一种挂载有ceph卷的KVM虚拟机的磁盘管理方法及系统
CN109815192B (zh) 一种嵌入式系统内存管理方法及装置
WO2022206227A1 (zh) 系统启动方法、设备、系统及存储介质
CN114443255A (zh) 一种线程调用方法和装置
CN117742953A (zh) Io调度方法及设备
CN117931111A (zh) 应用跨屏移动方法、装置、存储介质及电子设备

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