CN115599510A - 一种缺页异常的处理方法及相应装置 - Google Patents

一种缺页异常的处理方法及相应装置 Download PDF

Info

Publication number
CN115599510A
CN115599510A CN202110774711.4A CN202110774711A CN115599510A CN 115599510 A CN115599510 A CN 115599510A CN 202110774711 A CN202110774711 A CN 202110774711A CN 115599510 A CN115599510 A CN 115599510A
Authority
CN
China
Prior art keywords
coroutine
thread
context
page
shared memory
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
CN202110774711.4A
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202110774711.4A priority Critical patent/CN115599510A/zh
Priority to EP22836848.6A priority patent/EP4336359A1/en
Priority to PCT/CN2022/103611 priority patent/WO2023280097A1/zh
Publication of CN115599510A publication Critical patent/CN115599510A/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/461Saving or restoring of program or task context
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • 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/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • 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/54Interprogram communication
    • G06F9/545Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本申请公开了一种缺页异常的处理方法,应用于计算机系统。该方法包括:将触发缺页异常的第一协程的上下文保存到共享内存中,第一协程归属于第一线程,共享内存为第一线程在内核态和用户态均能访问的内存;从第一协程的上下文切换到第一线程的上下文,第一线程的上下文为第一线程初始化时配置到共享内存的;从内核态切换到用户态;通过运行第一线程从共享内存获取第一协程的上下文,以触发页面换入流程。本申请提供的方案,可以降低缺页异常的处理时延,从而降低了第一线程的IO时延,提高了业务吞吐量。

Description

一种缺页异常的处理方法及相应装置
技术领域
本申请涉及计算机技术领域,具体涉及一种缺页异常的处理方法及相应装置。
背景技术
主流存储的调度主要采用轻量级线程(lightweight thread,LWT),该LWT也称为协程。当LWT访问的内存被换出(swap out)时会触发缺页异常(page fault,PF),需要换入(swap in)页面。由于每个处理器只绑定一个线程,每个线程上执行多个LWT任务,当某个LWT任务触发缺页异常后,需要通过缺页异常处理机制将缺页异常事件通知给用户态,并等待用户态换入页面后才能继续执行该LWT任务。
当前这种缺页异常的处理方式,会导致发生缺页的LWT任务阻塞整个线程,从而导致业务吞吐量下降以及造成该线程的长尾时延。
发明内容
本申请实施例提供一种缺页异常的处理方法,用于降低缺页异常处理的时延以及提高业务吞吐量。本申请实施例还提供了相应的装置、计算机设备、计算机可读存储介质和计算机程序产品等。
本申请第一方面提供一种缺页异常的处理方法,该方法应用于计算机系统,该计算机系统可以为服务器、终端设备、虚拟机(virtual machine,VM)或容器(container)等。该方法包括:将触发缺页异常的第一协程的上下文保存到共享内存中,第一协程归属于第一线程,共享内存为第一线程在内核态和用户态均能访问的内存;从第一协程的上下文切换到第一线程的上下文,第一线程的上下文为第一线程初始化时配置到共享内存的;从内核态切换到用户态;通过运行第一线程从共享内存获取第一协程的上下文,以触发页面换入流程。
本申请中,缺页异常(page fault,PF)也可以称为缺页,通常发生在操作系统(operating system,OS)的内核态,缺页异常发生后,需要对缺页异常进行处理,该处理过程会涉及到内核态和用户态。内核态和用户态是OS的两种模式或两种状态,内核态通常也称为特权状态,用户态通常也称为非特权状态。线程是操作系统调度(处理器调度)的最小单位。协程是一种轻量级线程。一个线程可以包括多个协程,每个协程可以对应一个任务,有时也将协程称为协程任务。
本申请中,第一线程中的“第一”没有实质含义,只是一个在运行时发生了缺页异常的线程,该第一线程也可以被称为业务线程或应用线程。
本申请中,第一协程的上下文包括运行第一协程时处理器的寄存器中的数据。第一线程的上下文包括从共享内存中读出写入到寄存器中的数据。从第一协程的上下文切换到第一线程的上下文指的是将第一线程的上下文写入处理器的寄存器中。以上寄存器可以包括通用寄存器、程序计数器(program counter,PC)、程序状态寄存器(program state,PS)等任意一个或多个。
该第一方面中,在内核态将第一协程的上下文保存到共享内存中,在从内核态返回用户态后,通过运行第一线程就可以从共享内存中获取该第一协程的上下文,然后依据该第一协程的上下文执行页面换入流程,相比于现有技术中当线程的某一协程触发缺页异常后,要在内核态通知监控(monitor)线程,然后线程进入睡眠状态,直到monitor线程通过页面换入(swap in)线程完成页面换入后,再发通知消息给内核态,唤醒该线程,再继续执行该协程相比,本申请的缺页异常处理过程可以缩短缺页异常处理的时延,从而降低了该第一线程的长尾时延,缩短了时延相应的也提高了业务吞吐量。
本申请中,长尾时延指的是:在计算机系统中,运行线程的过程中,总会有少量该线程所对应的操作的响应的时延高于计算机系统的时延平均值,这些少量响应的时延被称为长尾时延。如:计算机系统中有100个响应,这100个响应的时延平均值为10微秒,其中,有一个响应的时延是50毫秒,那么,这个响应的时延就是长尾时延。另外,业务关于延迟有个常用的P99标准,该P99标准中对长尾时延的定义是:计算机系统中99%响应的延迟要控制在一定耗时以内,只能允许1%响应的延迟超过该一定耗时,超过该一定耗时的响应的时延被称为长尾时延。
本申请中,线程的长尾时延可以理解为是该线程执行输入/输出(input/output,IO)操作时的长尾时延,如果该线程运行过程中没有发生缺页异常,则完成一次IO操作可能需要10微秒,若发生缺页异常,按照现有技术的方案需要几百微秒来处理缺页异常,这就造成了该线程执行本次IO的长尾时延,如果按照本申请所提供的方案来处理缺页异常,通常只需要几微秒就可以处理完缺页异常,这样,极大的降低了该线程的长尾时延。
在第一方面的一种可能的实现方式中,该方法还包括:在执行页面换入流程时,运行归属于第一线程的第二协程以执行第二协程对应的任务。
应理解的是,在执行所述页面换入流程时运行所述第二协程可以理解为在执行所述页面换入流程的过程中运行所述第二协程,即:页面换入流程的执行和第二协程的运行存在时间交叠,但是第二协程开始运行的开始时间点并不做限定,第二协程可以与页面换入流程同时开始,也可以在页面换入流程开始之后再开始。
该种可能的实现方式中,在执行页面换入流程时,还可以异步运行第二协程,这样可以进一步提高业务吞吐量。
在第一方面的一种可能的实现方式中,上述步骤:从第一协程的上下文切换到第一线程的上下文,包括:通过钩子函数将第一线程的上下文写入计算机系统的寄存器中,以替换寄存器中的第一协程的上下文。
该种可能的实现方式中,操作系统可以通过钩子(hook)函数进行上下文切换,将第一线程的上下文写入计算机系统的寄存器中,从而覆盖寄存器中原来存储的第一协程的上下文。
在第一方面的一种可能的实现方式中,上述步骤:通过运行第一线程从共享内存获取第一协程的上下文,以触发页面换入流程,包括:通过运行第一线程从共享内存获取第一协程的上下文,并从第一协程的上下文中获取目的地址,目的地址为第一协程触发缺页异常时所要访问的物理页的地址;根据目的地址,执行对应物理页的换入流程。
该种可能的实现方式中,第一协程的上下文中包含第一协程触发缺页异常时所要访问的物理页的地址,也就是目的地址,这样,计算机系统就可以从磁盘中换入该目的地址对应的物理页。该种通过目的地址直接换入物理页的方式,可以提高物理页的换入速度,从而进一步减小了缺页异常处理的时延。
在第一方面的一种可能的实现方式中,该方法还包括:当物理页换入内存后,将第一协程添加到协程等待队列,协程等待队列中的协程处于待调度状态。
该种可能的实现方式中,物理页换入后,就可以再重新执行第一协程了,执行顺序可以是将该第一协程放入协程等待队列中等待调度。协程等待队列中按顺序放置有一个或多个协程,计算机系统会按照协程等待队列中的顺序依次调度其中的协程并执行。
在第一方面的一种可能的实现方式中,共享内存是第一线程初始化时为第一线程配置的。
在第一方面的一种可能的实现方式中,缺页异常是通过运行第一协程访问内存中被换出的物理页时触发的。
在第一方面的一种可能的实现方式中,共享内存通过内核虚拟机(extendedberkeley packet filter,ebpf)配置。当然,本申请不限于通过ebpf配置,也可以是通过其他方式配置该共享内存。
本申请中,ebpf是内核(kernel)3.15中引入的全新设计,将原先的BPF发展成一个指令集更复杂、应用范围更广泛的“内核虚拟机”。
本申请第二方面提供一种缺页异常的处理装置,该缺页异常的处理装置具有实现上述第一方面或第一方面任意一种可能实现方式的方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块,例如:第一处理单元、第二处理单元、第三处理单元和第四处理单元,这四个处理单元可以通过一个处理单元或多个处理单元来实现。
本申请第三方面提供一种计算机设备,该计算机设备包括至少一个处理器、存储器、输入/输出(input/output,I/O)接口以及存储在存储器中并可在处理器上运行的计算机执行指令,当计算机执行指令被处理器执行时,处理器执行如上述第一方面或第一方面任意一种可能的实现方式的方法。
本申请第四方面提供一种存储一个或多个计算机执行指令的计算机可读存储介质,当计算机执行指令被处理器执行时,一个或多个处理器执行如上述第一方面或第一方面任意一种可能的实现方式的方法。
本申请第五方面提供一种存储一个或多个计算机执行指令的计算机程序产品,当计算机执行指令被一个或多个处理器执行时,一个或多个处理器执行如上述第一方面或第一方面任意一种可能的实现方式的方法。
本申请第六方面提供了一种芯片系统,该芯片系统包括至少一个处理器,至少一个处理器用于支持缺页异常的处理装置实现上述第一方面或第一方面任意一种可能的实现方式中所涉及的功能。在一种可能的设计中,芯片系统还可以包括存储器,存储器,用于保存缺页异常的处理装置必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包含芯片和其他分立器件。
本申请实施例中,在第一协程触发缺页异常后,在内核态将第一协程的上下文保存到共享内存中,OS从内核态返回用户态后,通过运行第一线程就可以从共享内存中获取该第一协程的上下文,然后依据该第一协程的上下文执行页面换入流程,相比于现有技术中要在内核态通知监控(monitor)线程,然后第一线程进入睡眠状态,直到monitor线程通过页面换入(swap in)线程完成页面换入后,再发通知消息给内核,唤醒第一线程,再继续执行该第一线程的缺页异常处理过程可以缩短缺页异常处理的时延,缩短了时延相应的也提高了业务吞吐量。
附图说明
图1是本申请实施例提供的计算机系统的一实施例示意图;
图2是本申请实施例提供的缺页异常处理架构的一示意图;
图3是本申请实施例提供的缺页异常的处理方法的一实施例示意图;
图4是本申请实施例提供的缺页异常的处理方法的另一实施例示意图;
图5是本申请实施例提供的缺页异常的处理方法的另一实施例示意图;
图6是本申请实施例提供的缺页异常的处理方法的另一实施例示意图;
图7是本申请实施例提供的缺页异常的处理方法的另一实施例示意图;
图8是本申请实施例提供的缺页异常的处理方法的另一实施例示意图;
图9是本申请实施例提供的缺页异常的处理装置的一实施例示意图;
图10是本申请实施例提供的计算机设备的一结构示意图。
具体实施方式
下面结合附图,对本申请的实施例进行描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。本领域普通技术人员可知,随着技术发展和新场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本申请实施例提供一种缺页异常的处理方法,用于降低缺页异常处理的时延以及提高业务吞吐量。本申请实施例还提供了相应的装置、计算机设备、计算机可读存储介质和计算机程序产品等。以下分别进行详细说明。
本申请实施例提供的缺页异常处理的方法应用于计算机系统,该计算机系统可以为服务器、终端设备或虚拟机(virtual machine,VM)。
终端设备(也可以称为用户设备(user equipment,UE))是一种具有无线收发功能的设备,可以部署在陆地上,包括室内或室外、手持或车载;也可以部署在水面上(如轮船等);还可以部署在空中(例如飞机、气球和卫星上等)。所述终端可以是手机(mobilephone)、平板电脑(pad)、带无线收发功能的电脑、虚拟现实(virtual reality,VR)终端、增强现实(augmented reality,AR)终端、工业控制(industrial control)中的无线终端、无人驾驶(self driving)中的无线终端、远程医疗(remote medical)中的无线终端、智能电网(smart grid)中的无线终端、运输安全(transportation safety)中的无线终端、智慧城市(smart city)中的无线终端、智慧家庭(smart home)中的无线终端等。
该计算机系统的架构可以参阅图1进行理解。图1为计算机系统的一架构示意图。
如图1所示,该计算机系统的架构包括用户层10、内核20和硬件层30。
该用户层10包括多个应用,每个应用都会对应一个线程,线程是操作系统(operating system,OS)调度的最小单位。一个线程可以包括多个协程,协程是一种轻量级线程。每个协程可以对应一个任务,有时也将协程称为协程任务。本申请中,线程也可以称为业务线程或应用线程等。
内核20是OS负责管理关键资源,并为用户态的线程提供OS调用入口进而在内核提供服务,如:缺页异常(page fault,PF)处理,页表管理以及中断控制等服务。另外,内核20还会处理OS发生的缺页异常(page fault,PF)。缺页异常(page fault,PF)也可以称为缺页,通常发生在操作系统的内核态,缺页异常发生后,需要对缺页异常进行处理,该处理过程会涉及到内核态和用户态。内核态和用户态是OS的两种模式或两种状态,内核态通常也称为特权状态,用户态通常也称为非特权状态。
硬件层30包括内核20运行所依赖的硬件资源,如:处理器、内存(该内存中包括为线程配置的共享内存,本申请中,共享内存指的是为线程在内核态和用户态均能访问的内存)、内存管理单元(memory management unit,MMU),以及输入/输出(input/output,I/O)设备和磁盘(disk)等。处理器中可以包括寄存器组,该寄存器组可以包括多种类型的寄存器,如:栈帧寄存器、通用寄存器,以及非易失性(callee-saved)寄存器等。寄存器中用于存储线程的上下文或该线程的协程的上下文。
在线程访问内存时若发生缺页异常,则可以通过缺页异常处理机制从磁盘换入(swap in)相应的物理页,从而解决该缺页异常问题。
MMU是一种负责处理中央处理器(central processing unit,CPU)的内存访问请求的计算机硬件。它的功能包括虚拟地址到物理地址的转换、内存保护、CPU高速缓存的控制等。
在计算机系统中,通常一个应用就绑定一个线程,一个线程上会包括多个轻量级线程(lightweight thread,LWT),该LWT也称为协程。这一个线程会执行所包括的多个协程对应的任务,协程对应的任务也可以称为协程任务。
线程会逐个执行协程任务,当执行任一协程任务时,若发生缺页异常,则当前的缺页异常处理方案会在内核态通知监控(monitor)线程,然后线程进入睡眠状态,直到monitor线程通过页面换入(swap in)线程完成页面换入后,再发通知消息给内核态,唤醒线程,再继续执行该协程任务。当前这种缺页异常处理的方案在缺页异常发生后,该触发缺页异常的协程任务会阻塞整个线程,从而导致业务吞吐量下降以及造成该线程的长尾时延。
本申请中,长尾时延指的是:在计算机系统中,运行线程的过程中,总会有少量该线程所对应的操作的响应的时延高于计算机系统的时延平均值,这些少量响应的时延被称为长尾时延。如:计算机系统中有100个响应,这100个响应的时延平均值为10微秒,其中,有一个响应的时延是50毫秒,那么,这个响应的时延就是长尾时延。另外,业务关于延迟有个常用的P99标准,该P99标准中对长尾时延的定义是:计算机系统中99%响应的延迟要控制在一定耗时以内,只能允许1%响应的延迟超过该一定耗时,超过该一定耗时的响应的时延被称为长尾时延。
本申请中,线程的长尾时延可以理解为是该线程执行输入/输出(input/output,IO)操作时的长尾时延,如果该线程运行过程中没有发生缺页异常,则完成一次IO操作可能需要10微秒,若发生缺页异常,按照现有技术的方案需要几百微秒来处理缺页异常,这就造成了该线程执行本次IO的长尾时延,如果按照本申请所提供的方案来处理缺页异常,通常只需要几微秒就可以处理完缺页异常,这样,极大的降低了该线程的长尾时延。
为了加快缺页异常处理的速度,本申请实施例提供一种如图2所示的缺页异常处理架构,如图2所示,该缺页异常处理架构包括:
多个线程,如线程1至线程N,每个线程中都可以包括多个协程,如:线程1包括协程1、协程2至协程M,线程N包括协程1、协程2至协程P,其中,N、M和P都为正整数,可以相等,也可以不相等。其中,每个协程对应一个任务。每个线程中都可以配置一个缺页异常响应任务。该缺页异常响应任务用于实现产生缺页异常的协程上下文的保存以及页面换入线程的调度。
内核态内存缺页处理机制,用于在内核态发生缺页异常时,触发内核缺页通知机制。
内核缺页通知机制,用于实现在内核态缺页异常处理流程中快速切换到产生缺页的协程所在的用户态的线程的上下文。
页面换入线程,用于基于缺页异常响应任务,从磁盘换入相应的物理页到内存。
基于上述图1的计算机系统和图2所示的缺页异常处理架构,下面结合附图介绍本申请实施例提供的缺页异常的处理方法。
如图3所示,本申请实施例提供的缺页异常的处理方法的一实施例包括:
101.计算机系统将触发缺页异常的第一协程的上下文保存到共享内存中,第一协程归属于第一线程,共享内存为第一线程在内核态和用户态均能访问的内存。
第一协程的上下文指的是运行第一协程时处理器的寄存器中的数据。
第一协程与第一线程的关系可以参阅图2中线程1与协程1、协程2…协程M进行理解,第一协程可以是第一线程所包含的多个协程中的任意一个。
每个线程都可以有一块专用的共享内存。
可选地,该共享内存可以是第一线程初始化时为第一线程配置的。
可选地,缺页异常可以是通过运行第一协程访问内存中被换出的物理页时触发的。
102.计算机系统从第一协程的上下文切换到第一线程的上下文,第一线程的上下文为第一线程初始化时配置到共享内存的。
第一线程的上下文包括从共享内存中读出然后写入到寄存器中的数据。从第一协程的上下文切换到第一线程的上下文指的是将第一线程的上下文写入处理器的寄存器中。以上寄存器可以包括通用寄存器、程序计数器(program counter,PC)、程序状态寄存器(program state,PS)等任意一个或多个。
103.计算机系统从内核态切换到用户态。
104.计算机系统通过运行第一线程从共享内存获取第一协程的上下文,以触发页面换入流程。
因为第一协程触发了缺页异常,所以,在用户态通过运行第一线程从共享内存获取该第一协程的上下文后,就可以根据该第一协程的上下文,执行后续的页面换入流程。
本申请实施例提供的方案,在内核态将第一协程的上下文保存到共享内存中,在从内核态返回用户态后,通过运行第一线程就可以从共享内存中获取该第一协程的上下文,然后依据该第一协程的上下文执行页面换入流程,相比于现有技术中当某一协程触发缺页异常后,要在内核态通知监控(monitor)线程,然后第一线程进入睡眠状态,直到monitor线程通过页面换入(swap in)线程完成页面换入后,再发通知消息给内核态,唤醒第一线程,再继续执行该协程相比,本申请的缺页异常处理过程可以缩短缺页异常处理的时延,从而降低了该第一线程的输入/输出(input/output,IO)长尾时延,缩短了时延相应的也提高了业务吞吐量。
可选地,本申请实施例所提供的缺页异常的处理方法还可以包括:在执行页面换入流程时,运行归属于第一线程的第二协程以执行第二协程对应的任务。
应理解的是,在执行所述页面换入流程时运行所述第二协程可以理解为在执行所述页面换入流程的过程中运行所述第二协程,即:页面换入流程的执行和第二协程的运行存在时间交叠,但是第二协程开始运行的开始时间点并不做限定,第二协程可以与页面换入流程同时开始,也可以在页面换入流程开始之后再开始。
本申请实施例提供的这种在执行页面换入流程时,异步运行第二协程的方案,可以进一步提高业务吞吐量。
总体上来说,本申请实施例提供的缺页异常的处理方法可以参阅图4进行理解。
如图4所示,第一线程初始化后,会执行第一协程对应的任务,该第一协程在运行过程中触发缺页异常,然后会执行缺页异常的处理流程,并在处理缺页异常时还会执行第二协程的任务。
图4所描述的内容可以包括三个阶段,分别为:1.初始化阶段;2.内核态处理缺页异常;3.用户态处理缺页异常。下面分别结合附图进行介绍。
1.初始化阶段。
如图5所示,运行第一线程的主函数,执行如下步骤:
201.初始化共享内存,也就是为该第一线程分配共享内存。
202.通过上下文获取函数(getcontext)获取初始化时该第一线程的上下文。
203.将初始化时第一线程的上下文设置到共享内存中。
2.内核态处理缺页异常。
如图6所示,该过程包括如下步骤:
301.在内核态,运行第一协程访问内存中不存在的物理页触发缺页异常。
302.通过钩子(hook)函数,保存第一协程的上下文到共享内存中。
303.通过钩子(hook)函数进行上下文切换,将共享内存中的第一线程的上下文写入到计算机系统的寄存器中。
也就是:通过钩子函数将第一线程的上下文写入计算机系统的寄存器中,以替换寄存器中的第一协程的上下文。
304.从内核态返回用户态。
3.用户态处理缺页异常。
如图7所示,该过程包括如下步骤:
由上述图6的过程描述可知,内核态缺页异常处理结束后,会返回用户态,从而在用户态执行缺页异常处理。
401.在用户态,通过运行第一线程从共享内存中获取其中保存的第一协程的上下文。
402.在第一线程上保存该第一协程的上下文。
403.根据该第一协程的上下文,触发页面换入流程。
该过程可以是:从第一协程的上下文中获取目的地址,目的地址为第一协程触发缺页异常时所要访问的物理页的地址;根据目的地址,执行对应物理页的换入流程。
也就是说:第一协程的上下文中包含第一协程触发缺页异常时所要访问的物理页的地址,也就是目的地址,这样,计算机系统就可以从磁盘中换入该目的地址对应的物理页。该种通过目的地址直接换入物理页的方式,可以提高物理页的换入速度,从而进一步减小了缺页异常处理的时延。
另外,执行页面换入流程时,还可以调度该第一线程的第二协程,并执行该第二协程对应的任务,这样可以进一步提高业务吞吐量。
页面换入流程结束后,也就是当物理页换入内存后,将第一协程添加到协程等待队列,协程等待队列中的协程处于待调度状态。
也就是说,物理页换入后,就可以再重新执行第一协程了,执行顺序可以是将该第一协程放入协程等待队列中等待调度。协程等待队列中按顺序放置有一个或多个协程,计算机系统会按照协程等待队列中的顺序依次调度其中的协程并执行。
本申请实施例提供的缺页异常的处理过程可以通过内核虚拟机(extendedberkeley packet filter,ebpf)机制来实现,通过ebpf机制创建的共享内存可以称为ebpfmap。
本申请中,ebpf是内核(kernel)3.15中引入的全新设计,将原先的BPF发展成一个指令集更复杂、应用范围更广泛的“内核虚拟机”。
通过ebpf机制来实现时,该缺页异常的处理过程可以参阅图8进行理解。
如图8所示,该过程包括如下步骤:
501.在第一线程中注入ebpf执行函数,创建ebpf map。
该ebpf map包括用于存储第一线程的上下文的map和用于存储触发缺页异常的协程的上下文的map。
502.获取第一线程的上下文。
503.将第一线程的上下文保存到用于存储第一线程的上下文的map。
504.第一线程在内核态执行过程中触发缺页异常。
505.在内核的Page fault处理流程中,会执行步骤501注入的ebpf执行函数,保存触发缺页异常的协程的上下文到用于存储触发缺页异常的协程的上下文的map,并将ebpf执行函数中的上下文修改为步骤503中保存的第一线程的上下文。
506.内核态缺页异常处理完成,返回用户态,程序跳转到缺页异常处理函数处执行。
507.用户态接收到内核缺页异常通知,从用于存储触发缺页异常的协程的上下文的map中获取触发缺页异常的协程的上下文,执行页面换入流程,并调度其他协程执行。
页面换入流程完成后,触发缺页异常的协程重新入队等待调度。
本申请实施例提供的缺页异常的处理方法,对于多个并发产生缺页异常的场景效果尤为明显,即使上百核同时触发缺页异常,在几个微秒(us)也可以完成缺页异常的处理,相对于当前多核并发缺页异常的场景下要几百微秒才能完成缺页异常的处理过程相比,本申请的方案的处理速度提高了很多,极大的降低了时延,提高了吞吐量,从而也提高了计算机系统的性能。
为了便于说明本申请的效果,以144核并发产生缺页异常的场景为例,下面通过表1来介绍采用现有的缺页异常处理机制和本申请提供的缺页异常处理机制在缺页异常处理和线程阻塞方面的时延。
表1:时延对比
Figure BDA0003154313430000091
由表1第二列和第三列的对比可知,本申请提供的方案,在缺页异常处理和线程阻塞方面的时延相对于现有技术都缩短了很多。在大规格高并发的环境下,现有的Userfaultfd中,缺页异常通知到用户态的时延已经超过600微秒,对于业务根本无法接受。通过分析可知,缺页异常通知到用户态的时延在高并发的场景下,对文件句柄的竞争异常激烈,并且随着核数的增加,竞争会愈发激烈。Userfaultfd的同步swap in特性也使得其基础时延不低于210+us(即SSD介质换入物理页面的时延)。而通过使用本申请,可以在上百核并发产生缺页异常的场景下,仍能达到微秒级的通知时延。随着主机核数的增加,收益越明显。
以上介绍了缺页异常的处理方法,下面结合附图介绍本申请实施例提供的缺页异常的处理装置。
如图9所示,本申请实施例提供的缺页异常的处理装置60的一实施例包括:
第一处理单元601,用于将触发缺页异常的第一协程的上下文保存到共享内存中,第一协程归属于第一线程,共享内存为第一线程在内核态和用户态均能访问的内存;该第一处理单元601可执行上述方法实施例中的步骤101。
第二处理单元602,用于在第一处理单元601将第一协程的上下文保存到共享内存后,从第一协程的上下文切换到第一线程的上下文,第一线程的上下文为第一线程初始化时配置到共享内存的;该第二处理单元602可执行上述方法实施例中的步骤102。
第三处理单元603,用于在第二处理单元602切换上下文后,从内核态切换到用户态;该第三处理单元603可执行上述方法实施例中的步骤103。
第四处理单元604,用于在第三处理单元603从内核态切换到用户态后,通过运行第一线程从共享内存获取第一协程的上下文,以触发页面换入流程。该第四处理单元604可执行上述方法实施例中的步骤104。
本申请实施例提供的方案,在内核态将第一协程的上下文保存到共享内存中,在从内核态返回用户态后,通过运行第一线程就可以从共享内存中获取该第一协程的上下文,然后依据该第一协程的上下文执行页面换入流程,相比于现有技术中当某一协程触发缺页异常后,要在内核态通知监控(monitor)线程,然后第一线程进入睡眠状态,直到monitor线程通过页面换入(swap in)线程完成页面换入后,再发通知消息给内核态,唤醒第一线程,再继续执行该协程相比,本申请的缺页异常处理过程可以缩短缺页异常处理的时延,从而降低了该第一线程的输入/输出(input/output,IO)长尾时延,缩短了时延相应的也提高了业务吞吐量。
可选地,第四处理单元604,还用于在执行页面换入流程时,运行归属于第一线程的第二协程以执行第二协程对应的任务。
可选地,第二处理单元602,用于通过钩子函数将第一线程的上下文写入计算机系统的寄存器中,以替换寄存器中的第一协程的上下文。
可选地,第四处理单元604,用于通过运行第一线程从共享内存获取第一协程的上下文,并从第一协程的上下文中获取目的地址,目的地址为第一协程触发缺页异常时所要访问的物理页的地址;根据目的地址,执行对应物理页的换入流程。
可选地,第四处理单元604,还用于当物理页换入内存后,将第一协程添加到协程等待队列,协程等待队列中的协程处于待调度状态。
可选地,共享内存是第一线程初始化时为第一线程配置的。
可选地,缺页异常是通过运行第一协程访问内存中被换出的物理页时触发的。
可选地,共享内存通过内核虚拟机ebpf配置。
以上,本申请实施例所提供的缺页异常的处理装置60的相关内容可以参阅前述方法实施例部分的相应内容进行理解,此处不再重复赘述。
图10所示,为本申请的实施例提供的计算机设备70的一种可能的逻辑结构示意图。计算机设备70包括:处理器701、通信接口702、内存703、磁盘704以及总线705。处理器701、通信接口702、内存703以及磁盘704通过总线705相互连接。在本申请的实施例中,处理器701用于对计算机设备70的动作进行控制管理,例如,处理器701用于执行图3至图8的方法实施例中的步骤。通信接口702用于支持计算机设备70进行通信。内存703,用于存储计算机设备70的程序代码和数据,并为线程提供内存空间,内存中还包括共享内存,共享内存的作用可以参阅前述方法实施例部分共享内存进行理解。磁盘用户存储从内存换出的物理页。
其中,处理器701可以是中央处理器单元,通用处理器,数字信号处理器,专用集成电路,现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器701也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,数字信号处理器和微处理器的组合等等。总线705可以是外设部件互连标准(PeripheralComponent Interconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图10中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
在本申请的另一实施例中,还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当设备的处理器执行该计算机执行指令时,设备执行上述图3至图8中处理器所执行的步骤。
在本申请的另一实施例中,还提供一种计算机程序产品,该计算机程序产品包括计算机执行指令,该计算机执行指令存储在计算机可读存储介质中;当设备的处理器执行该计算机执行指令时,设备执行上述图3至图8中处理器所执行的步骤。
在本申请的另一实施例中,还提供一种芯片系统,该芯片系统包括处理器,该处理器用于支持缺页异常的处理装置实现上述图3至图8中处理器所执行的步骤。在一种可能的设计中,芯片系统还可以包括存储器,存储器,用于保存数据写入的装置必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包含芯片和其他分立器件。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请实施例的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请实施例所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请实施例各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请实施例各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

Claims (17)

1.一种缺页异常的处理方法,所述方法应用于计算机系统,其特征在于,所述方法包括:
将触发缺页异常的第一协程的上下文保存到共享内存中,所述第一协程归属于第一线程,所述共享内存为所述第一线程在内核态和用户态均能访问的内存;
从所述第一协程的上下文切换到第一线程的上下文,所述第一线程的上下文为所述第一线程初始化时配置到所述共享内存的;
从所述内核态切换到所述用户态;
通过运行所述第一线程从所述共享内存获取所述第一协程的上下文,以触发页面换入流程。
2.根据权利要求1所述的处理方法,其特征在于,所述方法还包括:
在执行所述页面换入流程时,运行归属于所述第一线程的第二协程以执行所述第二协程对应的任务。
3.根据权利要求1或2所述的处理方法,其特征在于,所述从所述第一协程的上下文切换到第一线程的上下文,包括:
通过钩子函数将所述第一线程的上下文写入所述计算机系统的寄存器中,以替换所述寄存器中的所述第一协程的上下文。
4.根据权利要求1-3任一项所述的处理方法,其特征在于,所述通过运行所述第一线程从所述共享内存获取所述第一协程的上下文,以触发页面换入流程,包括:
通过运行所述第一线程从所述共享内存获取所述第一协程的上下文,并从所述第一协程的上下文中获取目的地址,所述目的地址为所述第一协程触发所述缺页异常时所要访问的物理页的地址;
根据所述目的地址,执行对应物理页的换入流程。
5.根据权利要求4所述的处理方法,其特征在于,所述方法还包括:
当所述物理页换入内存后,将所述第一协程添加到协程等待队列,所述协程等待队列中的协程处于待调度状态。
6.根据权利要求1-5任一项所述的处理方法,其特征在于,所述共享内存是所述第一线程初始化时为所述第一线程配置的。
7.根据权利要求1-6任一项所述的处理方法,其特征在于,所述缺页异常是通过运行所述第一协程访问内存中被换出的物理页时触发的。
8.根据权利要求1-7任一项所述的处理方法,其特征在于,
所述共享内存通过内核虚拟机ebpf配置。
9.一种缺页异常的处理装置,其特征在于,包括:
第一处理单元,用于将触发缺页异常的第一协程的上下文保存到共享内存中,所述第一协程归属于第一线程,所述共享内存为所述第一线程在内核态和用户态均能访问的内存;
第二处理单元,用于在所述第一处理单元将所述第一协程的上下文保存到共享内存后,从所述第一协程的上下文切换到第一线程的上下文,所述第一线程的上下文为所述第一线程初始化时配置到所述共享内存的;
第三处理单元,用于在第二处理单元切换上下文后,从所述内核态切换到所述用户态;
第四处理单元,用于在第三处理单元从所述内核态切换到所述用户态后,通过运行所述第一线程从所述共享内存获取所述第一协程的上下文,以触发页面换入流程。
10.根据权利要求9所述的处理装置,其特征在于,
所述第四处理单元,还用于在执行所述页面换入流程时,运行归属于所述第一线程的第二协程以执行所述第二协程对应的任务。
11.根据权利要求9或10所述的处理装置,其特征在于,
所述第二处理单元,用于通过钩子函数将所述第一线程的上下文写入所述计算机系统的寄存器中,以替换所述寄存器中的所述第一协程的上下文。
12.根据权利要求9-11任一项所述的处理装置,其特征在于,
所述第四处理单元,用于通过运行所述第一线程从所述共享内存获取所述第一协程的上下文,并从所述第一协程的上下文中获取目的地址,所述目的地址为所述第一协程触发所述缺页异常时所要访问的物理页的地址;根据所述目的地址,执行对应物理页的换入流程。
13.根据权利要求12所述的处理装置,其特征在于,
所述第四处理单元,还用于当所述物理页换入内存后,将所述第一协程添加到协程等待队列,所述协程等待队列中的协程处于待调度状态。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被一个或多个处理器执行时实现如权利要求1-8任一项所述的方法。
15.一种计算设备,其特征在于,包括一个或多个处理器和存储有计算机程序的计算机可读存储介质;
所述计算机程序被所述一个或多个处理器执行时实现如权利要求1-8任一项所述的方法。
16.一种芯片系统,其特征在于,包括一个或多个处理器,所述一个或多个处理器被调用用于执行如权利要求1-8任一项所述的方法。
17.一种计算机程序产品,其特征在于,包括计算机程序,所述计算机程序当被一个或多个处理器执行时用于实现如权利要求1-8任一项所述的方法。
CN202110774711.4A 2021-07-08 2021-07-08 一种缺页异常的处理方法及相应装置 Pending CN115599510A (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202110774711.4A CN115599510A (zh) 2021-07-08 2021-07-08 一种缺页异常的处理方法及相应装置
EP22836848.6A EP4336359A1 (en) 2021-07-08 2022-07-04 Method for processing page faults and corresponding apparatus
PCT/CN2022/103611 WO2023280097A1 (zh) 2021-07-08 2022-07-04 一种缺页异常的处理方法及相应装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110774711.4A CN115599510A (zh) 2021-07-08 2021-07-08 一种缺页异常的处理方法及相应装置

Publications (1)

Publication Number Publication Date
CN115599510A true CN115599510A (zh) 2023-01-13

Family

ID=84801057

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110774711.4A Pending CN115599510A (zh) 2021-07-08 2021-07-08 一种缺页异常的处理方法及相应装置

Country Status (3)

Country Link
EP (1) EP4336359A1 (zh)
CN (1) CN115599510A (zh)
WO (1) WO2023280097A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116069638A (zh) * 2023-01-19 2023-05-05 蔷薇大树科技有限公司 一种基于内核态模拟分布式异常状态的方法
CN117573419A (zh) * 2024-01-16 2024-02-20 上海芯联芯智能科技有限公司 一种页面异常处理方法及装置
CN117573418A (zh) * 2024-01-15 2024-02-20 北京趋动智能科技有限公司 针对显存访问异常的处理方法、系统、介质及设备
CN118093202A (zh) * 2024-04-23 2024-05-28 上海芯联芯智能科技有限公司 一种访存异常的处理方法、计算设备、存储介质及程序产品

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116321276B (zh) * 2023-05-19 2023-10-31 阿里巴巴(中国)有限公司 时延确定方法、通信网络、设备和存储介质

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102402487B (zh) * 2011-11-15 2014-10-22 北京天融信科技股份有限公司 一种零拷贝接收报文的方法和系统
GB2546343A (en) * 2016-01-15 2017-07-19 Stmicroelectronics (Grenoble2) Sas Apparatus and methods implementing dispatch mechanisms for offloading executable functions
CN107168801A (zh) * 2017-05-12 2017-09-15 南京大学 基于多内核页表的内核动态数据隔离以及保护技术
CN109298922A (zh) * 2018-08-30 2019-02-01 百度在线网络技术(北京)有限公司 并行任务处理方法、协程框架、设备、介质和无人车
CN111338831B (zh) * 2020-02-10 2023-06-09 北京字节跳动网络技术有限公司 一种多线程运行性能的处理方法、装置、介质和电子设备
CN111767159B (zh) * 2020-06-24 2024-10-08 浙江大学 一种基于协程的异步系统调用系统
CN112613276B (zh) * 2020-12-28 2024-06-18 南京中孚信息技术有限公司 一种流式文档解析的并行执行方法及系统

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116069638A (zh) * 2023-01-19 2023-05-05 蔷薇大树科技有限公司 一种基于内核态模拟分布式异常状态的方法
CN116069638B (zh) * 2023-01-19 2023-09-01 蔷薇大树科技有限公司 一种基于内核态模拟分布式异常状态的方法
CN117573418A (zh) * 2024-01-15 2024-02-20 北京趋动智能科技有限公司 针对显存访问异常的处理方法、系统、介质及设备
CN117573418B (zh) * 2024-01-15 2024-04-23 北京趋动智能科技有限公司 针对显存访问异常的处理方法、系统、介质及设备
CN117573419A (zh) * 2024-01-16 2024-02-20 上海芯联芯智能科技有限公司 一种页面异常处理方法及装置
CN117573419B (zh) * 2024-01-16 2024-04-26 上海芯联芯智能科技有限公司 一种页面异常处理方法及装置
CN118093202A (zh) * 2024-04-23 2024-05-28 上海芯联芯智能科技有限公司 一种访存异常的处理方法、计算设备、存储介质及程序产品

Also Published As

Publication number Publication date
EP4336359A1 (en) 2024-03-13
WO2023280097A1 (zh) 2023-01-12

Similar Documents

Publication Publication Date Title
CN115599510A (zh) 一种缺页异常的处理方法及相应装置
EP3185128B1 (en) Gpu virtualisation
EP3039540B1 (en) Virtual machine monitor configured to support latency sensitive virtual machines
US9176763B2 (en) Apparatus and method thereof for efficient execution of a guest in a virtualized environment
EP2602964A1 (en) Method, device and equipment for service management
JP7538950B2 (ja) コンピュータデバイス、例外処理方法および割り込み処理方法
JP5673672B2 (ja) マルチコアプロセッサシステム、制御プログラム、および制御方法
CA2395645A1 (en) Dual-mode processor
CN114168271B (zh) 一种任务调度方法、电子设备及存储介质
US20240345879A1 (en) Task processing method and apparatus
US20070283138A1 (en) Method and apparatus for EFI BIOS time-slicing at OS runtime
CN110858164B (zh) 进程间通信方法、装置及计算机可读介质
EP1987430B1 (en) Virtual cores and hardware-supported hypervisor integrated circuits, systems, methods and processes of manufacture
Bruns et al. Virtualization for safety-critical, deeply-embedded devices
JP2001216172A (ja) マルチos構成方法
US11526358B2 (en) Deterministic execution replay for multicore systems
US8424013B1 (en) Methods and systems for handling interrupts across software instances and context switching between instances having interrupt service routine registered to handle the interrupt
JP2001236237A (ja) マルチos構成方法
US20080072009A1 (en) Apparatus and method for handling interrupt disabled section and page pinning apparatus and method
US8533696B1 (en) Methods and systems for allocating hardware resources to instances of software images
JP2011138401A (ja) プロセッサシステム、プロセッサシステムの制御方法、及び制御回路
GB2579721A (en) GPU virtualisation
CN111459620A (zh) 安全容器操作系统到虚拟机监控器的信息调度方法
US20230409321A1 (en) Security vulnerability mitigation using address space co-execution
CN117311833B (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