CN102436405A - 一种进程上下文保存、篡改检测方法及装置 - Google Patents
一种进程上下文保存、篡改检测方法及装置 Download PDFInfo
- Publication number
- CN102436405A CN102436405A CN2011102606991A CN201110260699A CN102436405A CN 102436405 A CN102436405 A CN 102436405A CN 2011102606991 A CN2011102606991 A CN 2011102606991A CN 201110260699 A CN201110260699 A CN 201110260699A CN 102436405 A CN102436405 A CN 102436405A
- Authority
- CN
- China
- Prior art keywords
- context
- appointment
- distorted
- preservation
- process context
- 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.)
- Granted
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种进程上下文保存、篡改检测方法及装置,包括:从为指定进程分配的至少两个上下文存储空间中的每个上下文存储空间中,分别获取保存的该指定进程的进程上下文;并当获取的至少两份该指定进程的进程上下文相同时,确定保存的该指定进程的进程上下文未被篡改;否则,确定保存的该指定进程的进程上下文被篡改。采用本发明实施例提供的方案,实现了对进程上下文是否被篡改的检测。
Description
技术领域
本发明涉及多进程操作系统技术领域,尤其涉及一种进程上下文保存、篡改检测方法及装置。
背景技术
目前,大部分操作系统都支持多进程调度,例如windows系统和linux系统,支持多进程调度的操作系统调度的优点是,从用户侧来看,操作系统可以同时执行用户发起的多个应用,比如在windows操作系统下,用户可以同时进行上网、下载电影以及进行word编辑等多种应用。
对于采用单核CPU的操作系统,在同一个时刻只能执行一个应用程序,为了让CPU能够同时运行多个应用程序,就必须让CPU在不同的时间段内,轮流的执行这多个应用程序,如图1所示,在linux操作系统中,每0.01秒从当前应用切换到另外一个应用,其中音乐播放、下载和word编辑三个应用轮流被CPU执行,由于切换时间足够快,用户感知不到当前执行的应用的切换,因此从用户角度看,这3个应用同时运行。
为了支持多进程的同时运行,操作系统必须支持多进程调度,调度的原理如图2所示,在时刻1,时刻2和时刻3需要由当前执行的进程A切换到进程B,在从进程A切换到进程B之前,操作系统需要将进程A的现场数据,即进程上下文进行保存,进程上下文保存完毕后,将当前执行的进程切换到进程B;当操作系统需要将当前执行的线程切换回进程A时,首先获得保存的进程A的进程上下文,并且恢复进程A的进程上下文,从而实现对进程A从切换前的进程上下文继续执行,如同进程A持续被执行一样。
一个进程的进程上下文包括进程的状态、有关变量和数据结构的值、机器寄存器的值、进程控制块PCB以及有关程序、数据等,这些信息都包含在进程上下文中,现有技术中,操作系统为每一个进程分配一个独立的上下文存储空间,进程上下文都保存在自身的上下文存储空间内。
然而,由于一些应用程序自身存在BUG,在执行的过程中将篡改其它进程的进程上下文的数据,导致其它进程在重新切换为当前执行的进程时,无法恢复到切换前的进程上下文,最终导致该进程运行异常,甚至可能导致整个系统异常。
现有技术中,为了防止进程上下文被篡改,一般采用将系统分成内核态和应用态,应用态的程序只能访问应用态的空间,无法直接访问内核态的空间,从而通过将进程上下文保存在内核态的空间中,使得其它应用程序无法直接访问内核态的空间,也就无法篡改进程上下文。
然而,这种方案只能防止应用态的程序篡改进程上下文,无法防止内核态的程序篡改进程上下文。并且,现有技术中,当进程上下文被篡改后,无法实现对进程上下文是否被篡改的检测。
发明内容
本发明实施例提供一种进程上下文保存、篡改检测方法及装置,用以解决现有技术中存在的无法检测进程上下文是否被篡改的问题。
本发明实施例提供一种进程上下文保存方法,包括:
当需要进行进程切换时,获取当前执行的进程的进程上下文;
将获取的所述进程上下文分别保存到为当前执行的所述进程分配的至少两个上下文存储空间中。
本发明实施例还提供一种进程上下文篡改检测方法,包括:
从为指定进程分配的至少两个上下文存储空间中的每个上下文存储空间中,分别获取保存的所述指定进程的进程上下文;
当获取的至少两份所述指定进程的进程上下文相同时,确定保存的所述指定进程的进程上下文未被篡改;
否则,确定保存的所述指定进程的进程上下文被篡改。
本发明实施例还提供一种进程上下文保存装置,包括:
第一获取单元,用于当需要进行进程切换时,获取当前执行的进程的进程上下文;
保存单元,用于将获取的所述进程上下文分别保存到为当前执行的所述进程分配的至少两个上下文存储空间中。
本发明实施例还提供一种进程上下文篡改检测装置,包括:
第二获取单元,用于从为指定进程分配的至少两个上下文存储空间中的每个上下文存储空间中,分别获取保存的所述指定进程的进程上下文;
检测单元,用于当获取的至少两份所述指定进程的进程上下文相同时,确定保存的所述指定进程的进程上下文未被篡改;否则,确定保存的所述指定进程的进程上下文被篡改。
本发明有益效果包括:
本发明实施例提供的方法中,为线程分配了至少两个上下文存储空间,在需要进行进程切换而对当前执行的进程的进程上下文进行保存时,是将获取的该进程的进程上下文分别保存到为该进程分配的至少两个上下文存储空间中;从而使得在进行进程上下文篡改检测时,通过从为该进程分配的至少两个上下文存储空间中的每个上下文存储空间中,分别获取保存的该进程的进程上下文,共计获取到至少两份该指定进程的进程上下文,并比较获取的至少两份该进程的进程上下文是否相同,如果相同,确定未被篡改,如果不同,确定被篡改,即实现了对进程上下文是否被篡改的检测。
附图说明
图1为支持多进程的操作系统中多个应用程序之间切换的示意图;
图2为支持多进程的操作系统中进行多进程调度的示意图;
图3为本发明实施例提供的进程上下文保存方法的流程图;
图4为本发明实施例提供的进程上下文篡改检测方法的流程图;
图5为本发明实施例1中提供的进程上下文篡改检测方法的流程图;
图6为现有技术中为进程分配的上下文存储空间的示意图;
图7为本发明实施例2中为进程分配的上下文存储空间的示意图;
图8为本发明实施例2中进程初始化的处理流程图;
图9为本发明实施例2中进程上下文保存的处理流程图;
图10为本发明实施例2中进程上下文篡改检测的处理流程图;
图11为本发明实施例3中提供的进程上下文保存装置的结构示意图;
图12为本发明实施例3中提供的进程上下文篡改检测装置的结构示意图。
具体实施方式
为了给出检测进程上下文是否被篡改的实现方案,本发明实施例提供了一种进程上下文保存、篡改检测方法及装置,以下结合说明书附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。并且在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
本发明实施例提供一种进程上下文保存方法,如图3所示,包括:
步骤S301、当需要进行进程切换时,获取当前执行的进程的进程上下文。
步骤S302、将获取的该进程上下文分别保存到为当前执行的该进程分配的至少两个上下文存储空间中。
较佳的,为了当进程上下文被篡改时,实现对进程上下文的恢复,可以为该进程分配至少三个上下文存储空间,并将获取的该进程上下文分别保存到分配的这至少三个上下文存储空间中。
相应的,基于上述图3所示的进程上下文保存方法,本发明实施例还提供一种进程上下文篡改检测方法,如图4所示,包括:
步骤S401、从为指定进程分配的至少两个上下文存储空间中的每个上下文存储空间中,分别获取保存的该指定进程的进程上下文。
步骤S402、当获取的至少两份该指定进程的进程上下文相同时,确定保存的该指定进程的进程上下文未被篡改;否则,确定保存的该指定进程的进程上下文被篡改。
较佳的,在上述篡改检测方法中,还可以通过进行篡改检测的时机的选择,实现当发生篡改时,确定是由哪一个进程的执行引起的该指定进程的进程上下文的篡改。
较佳的,还可以通过从分配的至少三个上下文存储空间中,获取的至少三份进程上下文是否相同的比较,当发生篡改时,确定哪一份进程上下文被篡改了,以及当需要将该指定进程切换为当前执行的进程时,选择哪一份进程上下文进行恢复。
本发明实施例中所描述的进程,包括了轻量进程(lightweight processes),即通常所述的线程,下面结合附图,用具体实施例对本发明提供的方法及装置进行详细描述。
实施例1:
本实施例1中以为指定进程分配三个上下文存储空间,保存该指定进程的上下文为例,对本发明实施例提出的进程上下文篡改检测方法进行详细描述,如图5所示,具体包括如下处理步骤:
步骤S501、确定出需要进行进程切换,即需要从当前执行的进程切换到下一个进程。
步骤S502、针对需要进行篡改检测的指定进程,从为该指定进程分配的三个上下文存储空间中的每个上下文存储空间中,分别获取保存的指定进程的进程上下文,共计获取三份该指定进程的进程上下文,为描述方便,分别将三个上下文存储空间称作第一上下文存储空间,第二上下文存储空间和第三上下文存储空间,将这三个上下文存储空间中保存的该指定进程的进程上下文,分别对应的称作第一进程上下文,第二进程上下文和第三进程上下文。
步骤S503、比较获取的三份该指定进程的进程上下文是否相同,即比较三份进程上下文是否两两均相同,如果相同,进入步骤S504,否则,进入步骤S505。
其它实施例中,如果是获取两份该指定进程的进程上下文,则仅比较这两份进程上下文是否相同即可。
步骤S504、确定在这三个进程上下文存储空间中分别保存的三份进程上下文未被篡改。
步骤S505、判断三份该指定进程的进程上下文中,是否存在两份进程上下文是相同的,且与第三份进程上下文不同,如果是,进入步骤S506,否则,即为三份进程上下文中每两份进程上下文均不相同,进入步骤S507。
步骤S506、确定保存的相同的两份该指定进程的进程上下文未被篡改,以及确定保存的第三份该指定进程的进程上下文被篡改。
例如,假设比较结果为,第一进程上下文与第二进程上下文相同,且第一进程上下文和第二进程上下文均与第三进程上下文不同,则确定第一进程上下文和第二进程上下文未被篡改,第三进程上下文被篡改。
并且,由于进程上下文是否被篡改的检测,是上述步骤S501中在每次确定需要进行进程切换时进行的,所以,当确定存在保存的进程上下文被篡改后,还可以进一步的确定被篡改的进程上下文是在当前执行的进程的执行过程中被篡改的,即是当前执行的进程引起了该指定进程的该进程上下文被篡改。
步骤S507、当这三份该指定进程的进程上下文中每两份进程上下文均不相同时,确定这三份进程上下文中存在被篡改的进程上下文,但本步骤中无法确定出具体是哪一个上下文存储空间中保存的进程上下文被篡改。
同上述步骤S506,由于进程上下文是否被篡改的检测,是上述步骤S501中在每次确定需要进行进程切换时进行的,所以,当确定存在保存的进程上下文被篡改后,还可以进一步的确定被篡改的进程上下文是在当前执行的进程的执行过程中被篡改的,即是当前执行的进程引起了该指定进程的该进程上下文被篡改。
步骤S508、进一步的,当进行检测的该指定线程,为即将需要切换为当前执行的进程时,需要在切换时恢复该指定进程的进程上下文。
当在该指定进程的上下文存储空间中保存的进程上下文均未被篡改时,即从上述步骤S504进入本步骤时,可以从这三份进程上下文中选择其中之一进行恢复。
当确定该指定进程的三个上下文存储空间中保存的三份进程上下文中,两份进程上下文未被篡改,第三份进程上下文被篡改时,即从上述步骤S506进入本步骤时,可以从相同的两份进程上下文中选择其中之一进行恢复。
当操作系统中轮流执行的多个进程至少三个时,在每次需要进行进程切换时,针对非当前执行的进程的其它各进程,均可以采用上述图5所示的篡改检测方法进行进程上下文是否被篡改的检测,以便及时的发现进程上下文是否被篡改,并且能够在发生篡改时确定出是由当前执行的进程引起的。
本发明实施例1中提供的进程上下文检测方法中,通过对保存的三份进程上下文的比较,实现对进程上下文是否被篡改的检测;并且,通过在确定需要进行进程切换时执行篡改检测的处理流程,还能够当进程上下文被篡改时,进一步的确定是在当前执行的进程的执行过程中被篡改的,从而能够进一步的基于这一检测结果对操作系统的性能进行进一步的完善;并且,当存在进程上下文被篡改,但还存在相同的两份进程上下文时,可以通过选择相同的两份进程上下文之一进行恢复。
实施例2:
在目前的操作系统中,如图6所示,针对一个进程,为其分配的上下文存储空间包括两部分:一个是进程控制块,用于保存进程上下文中的第一部分进程上下文,包括控制进程运行的一些控制信息,例如,进程标识符、进程当前运行状态和进程优先级等,通过在其中保存进程的这些外部特征,以描述进程的运动变化过程,从而使得系统利用进程控制块中保存的控制信息对进程进行控制和管理;另一个是进程堆栈,用于保存进程上下文中的第二部分进程上下文,即除进程控制块中保存的控制信息以外的其它进程上下文;并且,在进程控制块中还保存有一个指针,指向为该进程分配的进程堆栈,以便在保存进程上下文时获取到该进程堆栈。
本发明实施例2中,基于目前操作系统中为进程分配的上下文存储空间的方式,提出如图7所示的为进程分配的上下文存储空间的方式,即为每个进程分配至少两个进程控制块和两个进程堆栈,并且,至少两个进程控制块中一个为主进程控制块,其余为备份进程控制块,至少两个进程堆栈中一个为主进程堆栈,其余为备份进程堆栈,并且,在主进程控制块中保存有分别指向其它备份进程控制块、主进程堆栈和其它备份进程堆栈的指针,用于在保存和获取进程上下文时获取到对应的进程控制块和进程堆栈。图7中是以为一个进程分配三个进程块和三个进程堆栈为例。
基于图7所示的为进程分配的上下文存储空间的方式,提出如下进程初始化的处理流程,如图8所示,包括:
步骤S801、当启动一个新的进程时,为该进程分配一个主进程控制块和一个主进程堆栈,还分配至少一个备份进程控制块和至少一个备份进程堆栈,例如,分配两个备份进程控制块和两个备份进程堆栈。
步骤S802、初始化该主进程控制块中保存的控制信息,包括指向备份进程控制块和进程堆栈的指针信息,以及其它控制信息;并初始化主进程堆栈中的进程上下文。
步骤S803、将主进程控制块中保存的控制信息复制到备份进程控制块中,并将主进程堆栈中保存的进程上下文复制到备份进程堆栈中。
步骤S804、在完成该进程的上下文存储空间的初始化后,将该进程放入到操作系统可执行的进程队列中,等待操作系统的调度。
基于图7所示的为进程分配的上下文存储空间的方式,在完成图8所示的进程初始化后,提出如下进程上下文保存的处理流程,如图9所示,包括:
步骤S901、当需要进行进程切换时,获取当前执行的进程的进程上下文,同时还确定该进程对应的上下文存储空间,包括主进程控制块、备份进程控制块、主进程堆栈和备份进程堆栈。
步骤S902、将获取的该进程的进程上下文中需要保存到进程堆栈中的进程上下文,保存到主进程堆栈中。
步骤S903、根据进程的实际处理需要,修改主进程控制块中保存的控制信息。
步骤S904、将主进程控制块中保存的控制信息复制到备份进程控制块中,并将主进程堆栈中保存的进程上下文复制到备份进程堆栈中。
在完成图9所示的进程上下文保存的处理流程后,提出如下进程上下文篡改检测的处理流程,如图10所示,包括:
步骤S1001、确定出需要进行进程切换,即需要从当前执行的进程切换到下一个进程。
步骤S1002、针对需要进行篡改检测的指定进程,分别从为该指定进程分配的主进程控制块、两个备份进程控制块、主进程堆栈和两个备份进程堆栈中,获取保存的该指定进程的进程上下文,
步骤S1003、比较从三个进程控制块中获取的进程上下文是否相同,以及比较从三个进程堆栈中获取的进程上下文是否相同,如果均相同,进入步骤S1004,否则,进入步骤S1005。
步骤S1004、确定在主进程控制块、两个备份进程控制块、主进程堆栈和两个备份进程堆栈中分别保存的该指定进程的进程上下文未被篡改。
步骤S1005、本步骤具体执行如下三个处理流程之一:
第一个处理流程:当三个进程控制块中获取的进程上下文存在不同,而三个进程堆栈中获取的进程上下文相同时,本步骤中,判断三个进程控制块中获取的进程上下文中,是否存在两份进程上下文是相同的,且与第三份进程上下文不同,如果是,进入步骤S1006,否则,进入步骤S1007;
第二个处理流程:当三个进程控制块中获取的进程上下文相同,而三个进程堆栈中获取的进程上下文存在不同时,本步骤中,判断三个进程堆栈中获取的进程上下文中,是否存在两份进程上下文是相同的,且与第三份进程上下文不同,如果是,进入步骤S1006,否则,进入步骤S1007;
第三个处理流程:当三个进程控制块中获取的进程上下文存在不同,且三个进程堆栈中获取的进程上下文也存在不同时,本步骤中,第一次判断处理为,判断三个进程控制块中获取的进程上下文中,是否存在两份进程上下文是相同的,且与第三份进程上下文不同;还进行第二次判断处理,判断三个进程堆栈中获取的进程上下文中,是否存在两份进程上下文是相同的,且与第三份进程上下文不同,如果两个判断结果均为是,进入步骤S1006,否则,进入步骤S1007。
步骤S1006、当上述步骤S1005中执行第一个处理流程时,确定两个进程控制块中所保存的相同的进程上下文未被篡改,以及确定第三个进程控制块中保存的第三份进程上下文被篡改。
当上述步骤S1005中执行第二个处理流程时,确定两个进程堆栈中所保存的相同的进程上下文未被篡改,以及确定第三个进程堆栈中保存的第三份进程上下文被篡改。
当上述步骤S1005中执行第三个处理流程时,确定两个进程控制块中所保存的相同的进程上下文未被篡改,以及确定第三个进程控制块保存的第三份进程上下文被篡改;并确定两个进程堆栈中所保存的相同的进程上下文未被篡改,以及确定第三个进程堆栈中保存的第三份进程上下文被篡改。
步骤S1007、当上述步骤S1005中执行第一个处理流程时,确定三个进程控制块中保存的三份进程上下文中存在被篡改的进程上下文,但本步骤中无法确定出具体是哪一个进程控制块中保存的进程上下文被篡改。
当上述步骤S1005中执行第二个处理流程时,确定三个进程堆栈中保存的三份进程上下文中存在被篡改的进程上下文,但本步骤中无法确定出具体是哪一个进程堆栈中保存的进程上下文被篡改。
当上述步骤S1005中执行第三个处理流程时,如果第一次判断处理的判断结果为否,第二次判断处理的判断结果为是,则确定三个进程控制快中保存的三份进程上下文中存在被篡改的进程上下文,但本步骤中无法确定出具体是哪一个进程控制块中保存的进程上下文被篡改;
如果第一次判断处理的判断结果为是,第二次判断处理的判断结果为否,则确定三个进程堆栈中保存的三份进程上下文中存在被篡改的进程上下文,但本步骤中无法确定出具体是哪一个进程堆栈中保存的进程上下文被篡改;
如果第一次判断处理的判断结果为否,第二次判断处理的判断结果也为否,则确定三个进程控制快中保存的三份进程上下文中存在被篡改的进程上下文,但本步骤中无法确定出具体是哪一个进程控制块中保存的进程上下文被篡改,同时还确定三个进程控制快中保存的三份进程上下文中存在被篡改的进程上下文,但本步骤中无法确定出具体是哪一个进程控制块中保存的进程上下文被篡改。
步骤S1008、进一步的,当进行检测的该指定线程,为即将需要切换为当前执行的进程时,需要在切换时恢复该指定进程的进程上下文。
当在该指定进程的三个进程控制块和三个进程堆栈中保存的进程上下文均未被篡改时,即从上述步骤S1004进入本步骤时,可以从这三个进程控制块中选择其中之一保存的进程上下文进行恢复,并从这三个进程堆栈中选择其中之一保存的进程上下文进行恢复。
当从上述步骤S1006进入本步骤时,当上述步骤S1005中执行第一个处理流程时,可以从两个进程控制块中所保存的相同的两份进程上下文中选择其中之一进行恢复,并从三个进程堆栈中选择其中之一保存的进程上下文进行恢复;
当上述步骤S1005中执行第二个处理流程时,可以从两个进程堆栈中所保存的相同的两份进程上下文中选择其中之一进行恢复,并从三个进程控制块中选择其中之一保存的进程上下文进行恢复;
当上述步骤S1005中执行第三个处理流程时,可以从两个进程控制块中所保存的相同的两份进程上下文中选择其中之一进行恢复,并从两个进程堆栈中所保存的相同的两份进程上下文中选择其中之一进行恢复。
实施例3:
基于同一发明构思,根据本发明上述实施例提供的进程上下文保存方法,相应地,本发明实施例3还提供了一种进程上下文保存装置,其结构示意图如图11所示,具体包括:
第一获取单元1101,用于当需要进行进程切换时,获取当前执行的进程的进程上下文;
保存单元1102,用于将获取的所述进程上下文分别保存到为当前执行的所述进程分配的至少两个上下文存储空间中。
较佳的,保存单元1102,具体用于将获取的所述进程上下文中的第一部分进程上下文,分别保存到为当前执行的所述进程分配的主进程控制块和备份进程控制块中,以及将获取的所述进程上下文中的第二部分进程上下文,分别保存到为当前执行的所述进程分配的主进程堆栈和备份进程堆栈中。
实施例4:
基于同一发明构思,根据本发明上述实施例提供的进程上下文篡改检测方法,相应地,本发明实施例4还提供了一种进程上下文篡改检测装置,其结构示意图如图12所示,具体包括:
第二获取单元1201,用于分别从为指定进程分配的至少两个上下文存储空间中,获取保存的至少两份所述指定进程的进程上下文;
检测单元1202,用于当获取的至少两份所述指定进程的进程上下文相同时,确定保存的所述指定进程的进程上下文未被篡改;否则,确定保存的所述指定进程的进程上下文被篡改。
较佳的,还包括:
确定单元1203,用于在所述第二获取单元获取保存的所述指定进程的进程上下文之前,确定需要进行进程切换;
检测单元1202,具体用于确定保存的所述指定进程的进程上下文是在当前执行的进程的执行过程中被篡改。
较佳的,第二获取单元1201,具体用于分别从为指定进程分配的至少三个上下文存储空间中,获取保存的至少三份所述指定进程的进程上下文;
检测单元1202,具体用于当获取的至少三份所述指定进程的进程上下文中,两份进程上下文相同,且与第三份进程上下文不同时,确定保存的第三份所述指定进程的进程上下文被篡改。
较佳的,还包括:
恢复单元1204,用于当获取的至少三份所述指定进程的进程上下文中,两份进程上下文相同,且与第三份进程上下文不同时,且当需要将所述指定进程切换为当前执行的进程时,选择相同的两份进程上下文之一进行恢复。
较佳的,第二获取单元1201,具体用于从为指定进程分配的主进程控制块和备份进程控制块中,分别获取保存的所述指定进程的第一部分进程上下文,以及从为指定进程分配的主进程堆栈和备份进程堆栈中,获取保存的所述指定进程的第二部分进程上下文;
检测单元1202,具体用于当获取的至少两份所述指定进程的所述第一部分进程上下文相同时,确定保存的所述指定进程的所述第一部分进程上下文未被篡改;否则,确定保存的所述指定进程的所述第一部分进程上下文被篡改;以及
当获取的至少两份所述指定进程的所述第二部分进程上下文相同时,确定保存的所述指定进程的所述第二部分进程上下文未被篡改;否则,确定保存的所述指定进程的所述第二部分进程上下文被篡改。
综上所述,本发明实施例提供的方案,包括:分别从为指定进程分配的至少两个上下文存储空间中的每个上下文存储空间中,分别获取保存的该指定进程的进程上下文;并当获取的至少两份该指定进程的进程上下文相同时,确定保存的该指定进程的进程上下文未被篡改;否则,确定保存的该指定进程的进程上下文被篡改。采用本发明实施例提供的方案,实现了对进程上下文是否被篡改的检测。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (14)
1.一种进程上下文保存方法,其特征在于,包括:
当需要进行进程切换时,获取当前执行的进程的进程上下文;
将获取的所述进程上下文分别保存到为当前执行的所述进程分配的至少两个上下文存储空间中。
2.如权利要求1所述的方法,其特征在于,将获取的所述进程上下文分别保存到为当前执行的所述进程分配的至少两个上下文存储空间中,具体包括:
将获取的所述进程上下文中的第一部分进程上下文,分别保存到为当前执行的所述进程分配的主进程控制块和备份进程控制块中,以及将获取的所述进程上下文中的第二部分进程上下文,分别保存到为当前执行的所述进程分配的主进程堆栈和备份进程堆栈中。
3.一种进程上下文篡改检测方法,其特征在于,包括:
从为指定进程分配的至少两个上下文存储空间中的每个上下文存储空间中,分别获取保存的所述指定进程的进程上下文;
当获取的至少两份所述指定进程的进程上下文相同时,确定保存的所述指定进程的进程上下文未被篡改;
否则,确定保存的所述指定进程的进程上下文被篡改。
4.如权利要求3所述的方法,其特征在于,在获取保存的所述指定进程的进程上下文之前,还包括:
确定需要进行进程切换;
确定保存的所述指定进程的进程上下文被篡改,具体为:
确定保存的所述指定进程的进程上下文是在当前执行的进程的执行过程中被篡改。
5.如权利要求3所述的方法,其特征在于,从为指定进程分配的至少两个上下文存储空间中的每个上下文存储空间中,分别获取保存的所述指定进程的进程上下文,具体为:
从为指定进程分配的至少三个上下文存储空间中的每个上下文存储空间中,分别获取保存的所述指定进程的进程上下文;
确定保存的所述指定进程的进程上下文被篡改,具体为:
当获取的至少三份所述指定进程的进程上下文中,两份进程上下文相同,且与第三份进程上下文不同时,确定保存的第三份所述指定进程的进程上下文被篡改。
6.如权利要求5所述的方法,其特征在于,当获取的至少三份所述指定进程的进程上下文中,两份进程上下文相同,且与第三份进程上下文不同时,还包括:
当需要将所述指定进程切换为当前执行的进程时,选择相同的两份进程上下文之一进行恢复。
7.如权利要求3所述的方法,其特征在于,从为指定进程分配的至少两个上下文存储空间中的每个上下文存储空间中,分别获取保存的所述指定进程的进程上下文,具体包括:
从为指定进程分配的主进程控制块和备份进程控制块中,分别获取保存的所述指定进程的第一部分进程上下文,以及从为指定进程分配的主进程堆栈和备份进程堆栈中,获取保存的所述指定进程的第二部分进程上下文;
当获取的至少两份所述指定进程的进程上下文相同时,确定保存的所述指定进程的进程上下文未被篡改;否则,确定保存的所述指定进程的进程上下文被篡改,具体包括:
当获取的至少两份所述指定进程的所述第一部分进程上下文相同时,确定保存的所述指定进程的所述第一部分进程上下文未被篡改;否则,确定保存的所述指定进程的所述第一部分进程上下文被篡改;以及
当获取的至少两份所述指定进程的所述第二部分进程上下文相同时,确定保存的所述指定进程的所述第二部分进程上下文未被篡改;否则,确定保存的所述指定进程的所述第二部分进程上下文被篡改。
8.一种进程上下文保存装置,其特征在于,包括:
第一获取单元,用于当需要进行进程切换时,获取当前执行的进程的进程上下文;
保存单元,用于将获取的所述进程上下文分别保存到为当前执行的所述进程分配的至少两个上下文存储空间中。
9.如权利要求8所述的装置,其特征在于,所述保存单元,具体用于将获取的所述进程上下文中的第一部分进程上下文,分别保存到为当前执行的所述进程分配的主进程控制块和备份进程控制块中,以及将获取的所述进程上下文中的第二部分进程上下文,分别保存到为当前执行的所述进程分配的主进程堆栈和备份进程堆栈中。
10.一种进程上下文篡改检测装置,其特征在于,包括:
第二获取单元,用于从为指定进程分配的至少两个上下文存储空间中的每个上下文存储空间中,分别获取保存的所述指定进程的进程上下文;
检测单元,用于当获取的至少两份所述指定进程的进程上下文相同时,确定保存的所述指定进程的进程上下文未被篡改;否则,确定保存的所述指定进程的进程上下文被篡改。
11.如权利要求10所述的装置,其特征在于,还包括:
确定单元,用于在所述第二获取单元获取保存的所述指定进程的进程上下文之前,确定需要进行进程切换;
所述检测单元,具体用于确定保存的所述指定进程的进程上下文是在当前执行的进程的执行过程中被篡改。
12.如权利要求10所述的装置,其特征在于,所述第二获取单元,具体用于从为指定进程分配的至少三个上下文存储空间中的每个上下文存储空间中,分别获取保存的所述指定进程的进程上下文;
所述检测单元,具体用于当获取的至少三份所述指定进程的进程上下文中,两份进程上下文相同,且与第三份进程上下文不同时,确定保存的第三份所述指定进程的进程上下文被篡改。
13.如权利要求12所述的装置,其特征在于,还包括:
恢复单元,用于当获取的至少三份所述指定进程的进程上下文中,两份进程上下文相同,且与第三份进程上下文不同时,且当需要将所述指定进程切换为当前执行的进程时,选择相同的两份进程上下文之一进行恢复。
14.如权利要求10所述的装置,其特征在于,所述第二获取单元,具体用于从为指定进程分配的主进程控制块和备份进程控制块中,分别获取保存的所述指定进程的第一部分进程上下文,以及从为指定进程分配的主进程堆栈和备份进程堆栈中,获取保存的所述指定进程的第二部分进程上下文;
所述检测单元,具体用于当获取的至少两份所述指定进程的所述第一部分进程上下文相同时,确定保存的所述指定进程的所述第一部分进程上下文未被篡改;否则,确定保存的所述指定进程的所述第一部分进程上下文被篡改;以及
当获取的至少两份所述指定进程的所述第二部分进程上下文相同时,确定保存的所述指定进程的所述第二部分进程上下文未被篡改;否则,确定保存的所述指定进程的所述第二部分进程上下文被篡改。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110260699.1A CN102436405B (zh) | 2011-09-05 | 2011-09-05 | 一种进程上下文保存、篡改检测方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110260699.1A CN102436405B (zh) | 2011-09-05 | 2011-09-05 | 一种进程上下文保存、篡改检测方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102436405A true CN102436405A (zh) | 2012-05-02 |
CN102436405B CN102436405B (zh) | 2016-03-30 |
Family
ID=45984484
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110260699.1A Expired - Fee Related CN102436405B (zh) | 2011-09-05 | 2011-09-05 | 一种进程上下文保存、篡改检测方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102436405B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103297245A (zh) * | 2013-06-21 | 2013-09-11 | 苏州鼎富软件科技有限公司 | 网络服务器 |
CN107194249A (zh) * | 2017-05-22 | 2017-09-22 | 福州汇思博信息技术有限公司 | 系统攻击检测方法及其系统 |
CN113407368A (zh) * | 2020-03-16 | 2021-09-17 | 广东龙芯中科电子科技有限公司 | 进程管理方法、装置和电子设备 |
CN114756355A (zh) * | 2022-06-14 | 2022-07-15 | 之江实验室 | 一种计算机操作系统的进程自动快速恢复的方法和装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1155698A (zh) * | 1995-09-25 | 1997-07-30 | 西门子公司 | 实施由一个实时操作系统控制的实时计算机系统的方法 |
CN1801096A (zh) * | 2005-01-05 | 2006-07-12 | 国际商业机器公司 | 在计算机系统中用于对进程进行休眠的方法和系统 |
CN1825286A (zh) * | 2006-03-31 | 2006-08-30 | 浙江大学 | 嵌入式sram操作系统线程实现和线程状态转换的方法 |
CN101091166A (zh) * | 2004-12-30 | 2007-12-19 | 英特尔公司 | 保存多个执行上下文的方法和装置 |
CN101261593A (zh) * | 2007-03-07 | 2008-09-10 | 国际商业机器公司 | 启用状态保存的方法和系统 |
CN101646270A (zh) * | 2008-08-06 | 2010-02-10 | 华为技术有限公司 | 保持业务连续的方法、系统、移动性管理实体和存储设备 |
US7996371B1 (en) * | 2008-06-10 | 2011-08-09 | Netapp, Inc. | Combining context-aware and context-independent data deduplication for optimal space savings |
-
2011
- 2011-09-05 CN CN201110260699.1A patent/CN102436405B/zh not_active Expired - Fee Related
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1155698A (zh) * | 1995-09-25 | 1997-07-30 | 西门子公司 | 实施由一个实时操作系统控制的实时计算机系统的方法 |
CN101091166A (zh) * | 2004-12-30 | 2007-12-19 | 英特尔公司 | 保存多个执行上下文的方法和装置 |
CN1801096A (zh) * | 2005-01-05 | 2006-07-12 | 国际商业机器公司 | 在计算机系统中用于对进程进行休眠的方法和系统 |
CN1825286A (zh) * | 2006-03-31 | 2006-08-30 | 浙江大学 | 嵌入式sram操作系统线程实现和线程状态转换的方法 |
CN101261593A (zh) * | 2007-03-07 | 2008-09-10 | 国际商业机器公司 | 启用状态保存的方法和系统 |
US7996371B1 (en) * | 2008-06-10 | 2011-08-09 | Netapp, Inc. | Combining context-aware and context-independent data deduplication for optimal space savings |
CN101646270A (zh) * | 2008-08-06 | 2010-02-10 | 华为技术有限公司 | 保持业务连续的方法、系统、移动性管理实体和存储设备 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103297245A (zh) * | 2013-06-21 | 2013-09-11 | 苏州鼎富软件科技有限公司 | 网络服务器 |
CN107194249A (zh) * | 2017-05-22 | 2017-09-22 | 福州汇思博信息技术有限公司 | 系统攻击检测方法及其系统 |
CN113407368A (zh) * | 2020-03-16 | 2021-09-17 | 广东龙芯中科电子科技有限公司 | 进程管理方法、装置和电子设备 |
CN113407368B (zh) * | 2020-03-16 | 2023-03-21 | 广东龙芯中科电子科技有限公司 | 进程管理方法、装置和电子设备 |
CN114756355A (zh) * | 2022-06-14 | 2022-07-15 | 之江实验室 | 一种计算机操作系统的进程自动快速恢复的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN102436405B (zh) | 2016-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102266606B1 (ko) | 복수의 스레드를 처리하는 데이터 처리 장치 및 방법 | |
KR102333341B1 (ko) | 마이크로프로세서 시스템에서의 예외 처리 | |
US8190864B1 (en) | APIC implementation for a highly-threaded x86 processor | |
US10754558B2 (en) | Vehicular device | |
EP3128415B1 (en) | Computing device, process control method, and process control program | |
WO2013165450A1 (en) | Process scheduling using scheduling graph to minimize managed elements | |
CN105094084B (zh) | 支持多核控制器上的相干数据访问的服务和系统 | |
CN111831410A (zh) | 任务处理方法、装置、存储介质及电子设备 | |
US9898287B2 (en) | Dynamic wavefront creation for processing units using a hybrid compactor | |
CN102436405A (zh) | 一种进程上下文保存、篡改检测方法及装置 | |
CN102314368A (zh) | 更新服务器程序的配置数据的方法及设备 | |
US20130036426A1 (en) | Information processing device and task switching method | |
JPH06250928A (ja) | 情報処理装置 | |
CN103366386A (zh) | 基于多进程和多线程的并行图像解压缩系统 | |
EP1760581A1 (en) | Processing operations management systems and methods | |
US20080133899A1 (en) | Context switching method, medium, and system for reconfigurable processors | |
CN103365926A (zh) | 在文件系统中用于保存快照的方法和装置 | |
KR101996641B1 (ko) | 메모리 오버레이 장치 및 방법 | |
JP2007334403A (ja) | 計算機システム障害対応方式及び計算機システム障害対応方法 | |
KR20180015730A (ko) | 스토리지 디바이스를 관리하는 방법 및 장치 | |
WO2017020762A1 (en) | Apparatus, method, and computer program for utilizing secondary threads to assist primary threads in performing application tasks | |
CN103593606B (zh) | 上下文信息管理方法及系统 | |
JP2005071161A (ja) | タスク管理プログラムおよびタスク制御装置 | |
JP6442947B2 (ja) | 情報処理装置、情報処理方法及びそのプログラム | |
US20140317627A1 (en) | Scheduling apparatus and method of dynamically setting the size of a rotating register |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160330 Termination date: 20210905 |