一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种针对CPU上下文切换的性能提升方法与流程

2022-02-19 08:03:44 来源:中国专利 TAG:

一种针对cpu上下文切换的性能提升方法
技术领域
1.本技术涉及工控通信技术领域,尤其涉及一种针对cpu上下文切换的性能提升方法。


背景技术:

2.当今的计算机操作系统,比如windows、linux,都是多任务操作系统。即“同一时刻”可以执行多个任务,不用串行等待。比如,你可以一边运行一个播放器听音乐,同时运行微信和qq跟朋友聊天。而这种多任务并行并非真正的在同时运行,而是cpu快速地在不同的执行任务间进行切换,给人带来的一种“错觉”。
3.这种多任务并行工作的本质是,cpu把时间分割成极其细小的时间片,可以精确到纳秒级。多个待执行的任务被cpu分配固定的时间片,依次地顺序执行。例如,音乐播放器在时间片a中执行,时间片到达后把音乐播放器任务挂起,转而执行其它任务。需要强调的是,cpu在挂起任务前,要保存音乐播放器执行的资源,以便音乐播放器再次被执行时可以知道从哪里执行,通俗地说就是音乐播放到了哪里。进行的任务越多,cpu进行上下文切换的频率就越频繁,损耗的cpu性能就越多。
4.现有的操作系统对cpu的使用及调度采取固定的时间片格式,即按照时钟周期以固定间隔分配时间片,当前任务时间片到期即被挂起,再次轮询到被执行,周而复始。因此时间片的分配较死板,会浪费掉大量的宝贵的cpu资源,这种方式在并行任务较多时造成的损耗越发明显。


技术实现要素:

5.本发明旨在针对计算机核心处理器cpu的上下文切换频率进行优化,从而提升cpu的执行效率。在传统的cpu上下文切换的方法基础上,融合进数据统计分析和线性建模,使cpu的上下文切换控制在智能和可控的范围内,从而达到“最优上下文切换比”,节约宝贵的cpu资源,从而提升cpu的性能。
6.本技术具体提供了一种针对cpu上下文切换的性能提升方法,包括:
7.对操作系统中运行的公共进程进行基线建模;
8.对当前关注的进程切换与基线模型进行数据分析,并对当前关注的进程切换进行冲突规避;
9.依据不影响公共进程基线模型原则,进行数据迭代,构建cpu上下文切换的优化调度算法,实时计算最优时间片;
10.依据最优时间片实时调整cpu上下文切换。
11.如上所述的针对cpu上下文切换的性能提升方法,其中,对操作系统中运行的公共进程,即原生的操作系统依赖、使用的程序切换时间及切换频率进行记录,形成时间与频率的基线模型。
12.如上所述的针对cpu上下文切换的性能提升方法,其中,在对当前关注的进程切换
进行数据分析时,需要将当前关注的进程切换与基线模型进行对比,保证在进行数据分析时没有对原有进程的cpu时间片使用造成影响。
13.如上所述的针对cpu上下文切换的性能提升方法,其中,在保证不影响公共进程的基线模型的情况下,通过数据迭代,得出cpu上下文切换的优化调度算法为:
[0014][0015]
其中,time_slice为计算得到的最优时间片,k为公共进程的基线建模时间片,b
n
为当前关注进程第n次进行自愿上下文切换时的cpu时间片,b
n
‑1为当前关注进程第n

1次进行自愿上下文切换时的cpu时间片。
[0016]
如上所述的针对cpu上下文切换的性能提升方法,其中,对于自愿上下文切换的进程,需要将该进程挂起,存储该进程当前的运行状态数据,进行适当抑制,计算出的最优时间片相对较长,根据计算出的最优时间片确定该进程下一次获得cpu使用权的时间间隔,在间隔该最优时间片后,将cpu使用权赋予该进程,由此保证该自愿上下文切换的进程不会长时间的占用cpu资源。
[0017]
如上所述的针对cpu上下文切换的性能提升方法,其中,自愿上下文切换,指进程无法获得所需的资源导致的上下文切换。
[0018]
如上所述的针对cpu上下文切换的性能提升方法,其中,对于非自愿上下文切换的进程,需要进行适当优先,计算出的最优时间片也相对较短,根据计算出的最优时间片确定该进程下一次获得cpu使用权的时间间隔,在间隔该最优时间片后,将cpu使用权赋予该进程,由此保证该非自愿上下文切换的进程能够更快的占用cpu资源。
[0019]
如上所述的针对cpu上下文切换的性能提升方法,其中,非自愿上下文切换,指进程由于时间片已到原因,被系统强制调度,进而发生上下文切换。
[0020]
本技术还提供一种计算机存储介质,其特征在于,包括:至少一个存储器和至少一个处理器;
[0021]
存储器用于存储一个或多个程序指令;
[0022]
处理器,用于运行一个或多个程序指令,用以执行上述任一项所述的一种针对cpu上下文切换的性能提升方法。
[0023]
本技术实现的有益效果如下:采用本技术技术方案能够实时动态的调整进程的最优时间片,大幅减少cpu进行上下文切换的时间及频度,提升cpu的性能。
附图说明
[0024]
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
[0025]
图1是本技术实施例一提供的一种针对cpu上下文切换的性能提升方法流程图;
[0026]
图2是调优前的cpu时间片分配图;
[0027]
图3是调优后的cpu时间片分配图;
[0028]
图4是调优前的cpu使用率示意图;
[0029]
图5是调优后的cpu使用率示意图。
具体实施方式
[0030]
下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0031]
实施例一
[0032]
如图1所示,本技术实施例一提供一种针对cpu上下文切换的性能提升方法,包括:
[0033]
步骤110、对操作系统中运行的公共进程进行基线建模;
[0034]
具体地,对操作系统中运行的公共进程,即原生的操作系统依赖、使用的程序切换时间及切换频率进行记录,形成时间与频率的基线模型。
[0035]
步骤120、对当前关注的进程切换与基线模型进行数据分析,并对当前关注的进程切换进行冲突规避;
[0036]
在对当前关注的进程切换进行数据分析时,需要将当前关注的进程切换与基线模型进行对比,保证在进行数据分析时没有对原有进程的cpu时间片使用造成影响,也就是说在进行数据分析时的数据分析进程需要根据进程的不同进行实时调整,以不影响原有进程的cpu使用为原则;
[0037]
对所有第三方进程进行监控、统计,对不同的切换情况进行相应冲突规避,具体包括:
[0038]

自愿上下文切换(cswch),指进程无法获得所需的资源导致的上下文切换,比如i/o不足,内存不足等情况;
[0039]
对于频繁发生自愿上下文切换的进程进行“适当抑制”,因为这样的进程即使分配到宝贵的cpu时间片资源,也会由于没有资源继续进行而浪费cpu资源。
[0040]

非自愿上下文切换(nvcswch),指进程由于时间片已到等原因,被系统强制调度,进而发生上下文切换,比如大量进程在争抢cpu等情况;
[0041]
对于发生非自愿上下文切换的进程进行“适当优先”,因为这类进程可以顺畅地运行,不会因为没有资源而被挂起。
[0042]
步骤130、依据不影响公共进程基线模型原则,进行数据迭代,构建cpu上下文切换的优化调度算法,实时计算最优时间片,依据最优时间片实时调整cpu上下文切换;
[0043]
对于自愿上下文切换和非自愿上下文切换情况,相应进行“适当抑制”或“适当抑制”具体为进行时间片的优化分配,计算出的最优时间片即为当前关注进程重新获得cpu使用权的时间间隔;
[0044]
具体地,在保证不影响公共进程的基线模型的情况下,通过数据迭代,得出cpu上下文切换的优化调度算法为:
[0045][0046]
其中,time_slice为计算得到的最优时间片,k为公共进程的基线建模时间片,b
n
为当前关注进程第n次进行自愿上下文切换时的cpu时间片,b
n
‑1为当前关注进程第n

1次进
行自愿上下文切换时的cpu时间片。
[0047]
对于自愿上下文切换(cswch)的进程,需要将该进程挂起,存储该进程当前的运行状态数据,进行“适当抑制”,计算出的最优时间片相对较长,根据计算出的最优时间片确定该进程下一次获得cpu使用权的时间间隔,在间隔该最优时间片后,将cpu使用权赋予该进程,由此保证该自愿上下文切换的进程不会长时间的占用cpu资源;
[0048]
对于非自愿上下文切换(nvcswch)的进程,由于该进程能顺畅的运行,但若按照预设的以时钟周期的固定间隔所分配的时间片来执行,则该进程只能先挂起,使得能顺畅运行的进程不能及时使用cpu资源,因此需要进行“适当优先”,计算出的最优时间片也相对较短,即该进程等待的时间较短,根据计算出的最优时间片确定该进程下一次获得cpu使用权的时间间隔,在间隔该最优时间片后,将cpu使用权赋予该进程,由此保证该非自愿上下文切换的进程能够更快的占用cpu资源;
[0049]
因此采用本技术技术方案能够实时动态的调整进程的最优时间片,大幅减少cpu进行上下文切换的时间及频度,提升cpu的性能。
[0050]
图2~5示例性地展示了经本技术调优方案前后cpu的时间片分配和使用率;调优前时间片分配杂乱无章且cpu使用率在80%以上,浪费cpu资源;调优后时间片的分配使用趋于线性,降低性能消耗,且cpu使用率降低到65%以上,提升约15%。
[0051]
与上述实施例对应的,本发明实施例提供一种计算机存储介质,包括:至少一个存储器和至少一个处理器;
[0052]
存储器用于存储一个或多个程序指令;
[0053]
处理器,用于运行一个或多个程序指令,用以执行一种针对cpu上下文切换的性能提升方法。
[0054]
与上述实施例对应的,本发明实施例提供一种计算机可读存储介质,计算机存储介质中包含一个或多个程序指令,一个或多个程序指令用于被处理器执行一种针对cpu上下文切换的性能提升方法。
[0055]
本发明所公开的实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序指令,当所述计算机程序指令在计算机上运行时,使得计算机执行上述的方法。
[0056]
在本发明实施例中,处理器可以是一种集成电路芯片,具有信号的处理能力。处理器可以是通用处理器、数字信号处理器(digital signal processor,简称dsp)、专用集成电路(application specific integrated circuit,简称asic)、现场可编程门阵列(fieldprogrammable gate array,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
[0057]
可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。处理器读取存储介质中的信息,结合其硬件完成上述方法的步骤。
[0058]
存储介质可以是存储器,例如可以是易失性存储器或非易失性存储器,或可包括
易失性和非易失性存储器两者。
[0059]
其中,非易失性存储器可以是只读存储器(read

only memory,简称rom)、可编程只读存储器(programmable rom,简称prom)、可擦除可编程只读存储器(erasable prom,简称eprom)、电可擦除可编程只读存储器(electrically eprom,简称eeprom)或闪存。
[0060]
易失性存储器可以是随机存取存储器(random access memory,简称ram),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如静态随机存取存储器(static ram,简称sram)、动态随机存取存储器(dynamic ram,简称dram)、同步动态随机存取存储器(synchronous dram,简称sdram)、双倍数据速率同步动态随机存取存储器(double data ratesdram,简称ddrsdram)、增强型同步动态随机存取存储器(enhancedsdram,简称esdram)、同步连接动态随机存取存储器(synchlink dram,简称sldram)和直接内存总线随机存取存储器(directrambus ram,简称drram)。
[0061]
本发明实施例描述的存储介质旨在包括但不限于这些和任意其它适合类型的存储器。
[0062]
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件与软件组合来实现。当应用软件时,可以将相应功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
[0063]
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献