一种基于hsc的进程同步实现方法
技术领域
[0001]
本发明涉及集成电路及计算机技术领域,尤其指一种基于hsc的进程同步方法。
背景技术:[0002]“同步”是一个现实中的客观概念,即在客观世界必然存在的关于“时间”或者“时刻”的不同个体之间的关联概念。简单地说,是不同个体之间既存在可能的但并不完全确定的先后概念,也存在可能的但并不完全确定的同时概念。在现有计算机体系下,一切现实中的客观概念都只能被虚拟到依据顺序执行的软件指令中。换句话说,所有关于“时间”或“时刻”的同步概念都只能在逻辑上实现,而并非在物理上真实实现。在“同步”需求数量较少的应用场景中,在处理器主频相对于应用所需响应速度具有较大优势的情况下,现有背景技术条件下,可以以逻辑实现的同步概念得到物理上所需的同步需求。但代价是,所有的“同步”需求只能以处理器中运行的操作系统为中心,这势必极大地加大操作系统的负荷,并带来数据访问安全控制上的问题。
[0003]
事实上,在大多数的应用中,尤其是在多任务及多用户的应用中,“同步”需求的数量会非常巨大。以操作系统为中心的软件体系,会在“同步”需求的数量达到一定程度的时候,失去将逻辑“同步”效果等效于“物理”需求的同步效果。如果“同步”需求的数量继续增加,以操作系统为中心的软件体系,将会对所有具有“同步”需求的进程造成“卡顿”效果。当“同步”需求的数量继续增加,以操作系统为中心的软件系统会对“同步”需求实施拒绝,或者令系统崩溃。
[0004]
现有背景技术条件下,“同步”的实际实施者是操作系统的“守候程序”,换句话说,在“同步”的过程中,操作系统依然需要处于运行中,且需要完成复杂的关于进程的调度和数据查询的操作。这并不能在客观上实现在“同步”过程中,事实上是在应用程序可以处于睡眠状态的情况下,完全或者近似于完全令处理器停止消耗能源。因此,现有背景技术条件下的“同步”实现方法,不能给出一个合理的、高效率的功耗控制方案。
技术实现要素:[0005]
hsc是hardware synchronization control的缩写,很显然,本发明技术方案基于硬件而实现对于处理器内部进程间同步的控制。
[0006]
首先需要确定的是“同步”是系统概念。因此,在本发明技术方案中,就软件范畴而言,“同步”不属于某一进程的独立概念(包括操作系统在内),就硬件而言,“同步”不属于某一内核的独立概念。在本发明技术方案中,以硬件模块的方式,在“处理器内部总线控制器”的端口上实现“硬件同步控制器”,后文简写为hsc,hardware synchronization controller的缩写。hsc将接受来自“处理器内部总线控制器”与其它硬件模块连接的“matrix”模块的指令,完成“同步”的“阻塞”和“触发”等相关功能。
[0007]
本发明技术方案使用但并不包含一项关于进程调度的硬件实现方法,该实现方法以硬件的方式实现对于在多核系统中的进程调度及内核负荷均衡,从而使操作系统获得更
大的解放。在该实现进程调度的硬件实现方法中,进程将以“总线进程描述符”在具体硬件对于进程调度的过程中,在各硬件模块中传输。“总线进程描述符”简写为pdb,是process describer on bus的缩写。pdb所携带的信息包含可以恢复所描述进程的状态,以及恢复所描述进程的相关内存/缓存中的代码及数据。在整个处理器系统中,pdb被传输到任意内核,该内核都可以通过pdb将所描述的进程载入内核,且当该进程载出内核的时候,内核同样可以通过该pdb将进程重新反馈回“处理器内部总线控制器”再次进行调度。所以,当某一进程获得hsc的同步硬件资源后,如果该进程需要进入阻塞状态,只需要向hsc发送阻塞相关指令,该进程会被hsc记录并进行休眠及唤醒的操作,而并不需要向操作系统提交任何软中断或者其它形式的进程通信。当另一进程需要触发某一阻塞状态下的进程时,触发进程只需要向hsc发送触发相关指令,而不需要向操作系统提交任何软中断或其它形式的进程通信,hsc会依据触发相关指令及时唤醒处于休眠状态下的相关进程,并令该被唤醒的进程迅速进入“处理器内部总线控制器”进行队列调度。在整个进程间“同步”的过程中,对于操作系统而言完全是透明的,即操作系统不会受到任何“同步”操作的任何影响(当然处于“同步”控制中的相关进程也不会因受到操作系统负荷的影响而导致“同步”被延迟或者被拒绝处理)。
[0008]
很显然,对于进程而言,hsc也是一种硬件资源。与其它硬件资源一样,hsc同属于挂载在“处理器内部总线控制器”端口上的设备,或者说特殊设备。尽管在软件使用上,对于hsc的访问(发送hsc的相关指令)并不需要体现在“处理器内部总线控制器”上的硬件端口号(或者地址)。但是,在硬件具体实现上hsc依然是“处理器内部总线控制器”所连接的一个端口设备,即hsc拥有默认的端口号(或者地址),当软件执行hsc相关指令时,“处理器内部总线控制器”会默认连接hsc所在的端口。因此,从软件的角度看,hsc事实上可以认为是“处理器内部总线控制器”的一部分硬件模块。在硬件的实际实现中,本发明技术方案并不排除,可以认为hsc属于“处理器内部总线控制器”中的一部分硬件模块。在硬件的实际实现中,本发明技术方案不排除,硬件实现hsc功能但并不占用“处理器内部总线控制器”的端口号。
[0009]
在本发明技术方案中,hsc作为一种硬件资源,其使用权限依据软件中进程的不同角色,以及hsc资源本身所处的工作状态不同,实现具体的权限管理。在清晰地阐述关于hsc权限管理之前,首先针对软件中进程的角色做如下定义(定义所产生的名称或缩写仅代表对本发明技术方案所定义内容在本文中便于描述的符号,并不代表本发明技术方案所限定的特征条件):1、“触发宿主”,简写为mht,即master of hsc trigger的缩写。mht对于已获得使用权限的“hsc资源”具有最高的使用权限(后文将单个“hsc资源”简称为hru,即hsc resource unit的缩写)。在mht使用hru之前,mht首先需要向hsc发送hsc相关指令申请获取hru的使用权,获得使用许可后,mht即可获得被授权使用的相关hru的“资源标识号”(后文将hru的“资源标识号”简称为hrid,即hsc resource id的缩写)。mht对于hru使用权限的管理中,本身mht是作为hru使用中的“触发进程”,即mht自身并不能成为hru中所记录的处于阻塞状态的进程。能够使用hru并成为“阻塞进程”的进程,即能够使用hrid进入阻塞状态(即进程进入休眠状态)的,并被hru记录pdb信息的进程,该进程必须首先得到mht的许可,否则任何未被许可的进程试图使用hrid进入阻塞状态的hsc指令都会被拒绝。除此之外,作为对hru的“触
发进程”,mht具有天然的触发的权限,同时mht也可以授权其它进程能够触发hru。当mht授权某一进程拥有对hru触发的权限之后,该被授权进程可以通过hsc相关指令直接触发在hru中所记录的相关“阻塞进程”。当然任何没有获得mht授权的进程,对相关hru进行触发的hsc相关指令,都会被hsc拒绝;2、“操作系统”,简写为os,即operation system的缩写。作为对于hru具有使用和管理权限的mht,在其使用相关hsc指令获得该权限之前,相关进程必须首先获得os的许可,才能向hsc发送相关hsc指令成为mht。os许可某一进程具有成为mht的资格,是通过向该进程授予秘钥的方式来完成的。os是唯一具有向hsc发送相关指令,以该指令设置一个秘钥,该秘钥用于hsc认证某一进程是否具有成为mht的资格,该秘钥被称之为“hsc秘钥”,简写为“skh”,即security key of hsc的缩写。任何向hsc发送相关hsc指令申请成为mht的进程,在其发送的相关hsc指令的参数中必须携带正确的skh,否则指令会被hsc拒绝;3、“触发进程”,简写为pht,即process of hsc trigger的缩写,如关于mht阐述中所述的“触发进程”;4、“阻塞进程”,简写为bph,即blocking process of hsc的缩写,如关于mht阐述中所述的“阻塞进程”。
[0010]
在硬件实现方面,即关于上述hru,hsc控制的是一系列的hru,每个hru包含以下必要数据信息:1、“mht进程号”,后文简称为pidm,即process id of mht的缩写。pidm即为mht的进程号,当某一hru被hsc分配给mht时,表示该hru使用权限归mht所有,则hru的pidm会被hsc设置为mht的进程号。任何进程以mht的身份对hru发送指令时,hsc会以该进程的进程号作为安全认证的信息,如果该进程的进程号不等于pidm,则相关hsc指令会被拒绝;2、“触发秘钥”,后文简称为skt,即security key of trigger的缩写。当mht授权pht对于自己所辖hru具有触发权限时,是通过授予pht触发秘钥来完成的,该秘钥即为skt。pht触发hru所使用的相关hsc指令参数中需要提供正确的skt,其相关hsc指令才会被执行,否则会被hsc拒绝(mht可以使用进程号作为对hru触发的安全认证);3、“阻塞秘钥”,后文简称为skb,即security key of blocking的缩写。当mht授权bph对于自己所辖hru具有阻塞权限时,是通过授予bph阻塞秘钥来完成的,该秘钥即为skb。skb与skt对于一个hru而言,互为独立,并不存在任何关联,且在实际应用中应避免skb与skt相同。bph希望使用hru实行阻塞,其所使用的相关hsc指令参数中需要提供正确的skb,该相关hsc指令才会被执行,否则会被hsc拒绝;4、“阻塞进程项”,后文简称为bpe,即blocking process entry的缩写。当一个bph成功完成在hru中阻塞后,hsc会在hru中为该bph创建一个bpe,一个hru可以拥有1个或多个bpe。因此,对于一个hru而言可以支持多个阻塞进程(理论上并不限制所支持的阻塞进程的数量)。每个bpe包含两项数据内容:“pdb信息”和“触发掩码”,其中“触发掩码”在后文中简称为tmb,即trigger mask of bph的缩写。bph在向hsc发送相关hsc指令时,在指令参数中需要指定默认的tmb。mht或pht在向hsc发送相关hsc指令时,在指令参数中也需要指定所需触发的tmb,每次触发操作的相关hsc指令所指定的“所需触发tmb”会与保存于bpe中原有的tmb进行位或运算。只有当bpe的tmb在最后一次被触发后全部为1,相应的bph才会被真正触发,即hsc将bpe的pdb信息调度出,并令bph进入“处理器内部总线控制器”进行进程调度,否
侧每次触发操作的相关hsc指令只会将上述tmb位或运算的结果写回到bpe中相应位置。
[0011]
上述软件中进程的角色mht、os、pht、和bph通过向hsc发送hsc指令完成对hsc的具体应用,具体包括如下指令:1、“hsc秘钥”指令,该指令以字符“hscskh”作为指令符号,但不限制仅以“hscskh”作为指令符号。任何进程必须在得到os的许可后才能成为mht,拥有获得hru使用和管理的权限,os通过向申请使用和管理hru的进程一个秘钥(即skh)授权该进程成为mht。获得skh的mht在使用和管理hru的相关hsc指令中必须以正确的skh作为认证条件,相关指令才能被hsc执行。hscskh指令即为os向hsc所发出的指令,用于在hsc中设置,用于hsc对于mht进行认证的skh。因此,hscskh指令只能由os发出,并由hsc执行,hscskh指令包含以下必要参数:参数1、“os进程号”,即os的进程号。以便表述,本文默认os为进程号为0的进程,但并不限制os只能为0,仅仅表示在整个处理器软硬件环境中,os拥有固定的默认进程号。“os进程号”参数将被hsc用作为执行hscskh指令的安全认证条件,即只有指令参数中的“os进程号”等于系统默认的固定的os进程号,本指令才会被hsc执行,否则会被hsc拒绝执行;参数2、“hsc秘钥”,即hsc中的skh的具体值。在“os进程号”被hsc认证正确的情况下,参数“hsc秘钥”的值会被hsc写入到hsc硬件寄存器中,即为skh的具体值;2、“mht设置”指令,该指令以字符“hscsetm”为指令符号,但不限制仅以“hscsetm”为指令符号。hscsetm为mht在为获取hru,需要向hsc发送的指令。hsc为hscsetm指令的具体执行硬件模块,在执行hscsetm指令之后,hsc将mht的进程号与hru形成唯一关联,即将mht的进程号写入到hru的pidm,与此同时hsc向mht反馈回hsc所分配的hru的hrid。hscsetm指令包含以下必要参数:参数1、“hsc秘钥”,即skh。skh是hsc对于执行hscsetm指令的认证秘钥,只有当skh与由指令hscskh所设置的skh相等的情况下,hsc才会执行hscsetm指令,否则hsc会拒绝执行;参数2、“mht进程号”,即pidm。在参数“hsc秘钥”认证通过的条件下,hsc会将参数“mht进程号”写入到分配给mht的hru的pidm中(即令hru的pidm等于参数“mht进程号”);3、“触发秘钥”指令,该指令以字符“hscskt”为指令符号,但不限制仅以“hscskt”为指令符号。hscskt为mht授权给pht触发mht所辖hru的权限,而向hsc发送的指令,用于设置认证秘钥,即设置skt。hsc为hscskt指令的具体执行硬件模块,在执行hscskt指令之后,hsc会将hru的skt修改为本指令参数所指定的值。当pht使用相关hsc指令触发hru时,需要在相关hsc指令参数中提供正确的skt,只有指令参数中的skt与hru的skt相等的情况下,hsc才会执行pht所发送的用于触发hru的相关hsc指令。hscskt包含以下必要参数:参数1、“mht进程号”,即mht的进程号(亦即pidm)。“mht进程号”参数将被hsc用作为执行hscskt指令的安全认证条件,即只有指令中的“mht进程号”等于hru的pidm,本指令才会被hsc执行,否则会被hsc拒绝执行;参数2、“资源标识号”,即hrid。hrid指定本指令所操作的目标hru的资源标识号,即hru的hrid;参数3、“触发秘钥”,即skt。在参数“mht进程号”认证通过的条件下,hsc会将参数“触发秘钥”写入到由参数hrid所指定的hru的skt中(即令hru的skt等于参数“触发秘钥”);4、“阻塞秘钥”指令,该指令以字符“hscskb”为指令符号,但不限制仅以“hscskb”为指令符号。hscskb为mht向bph授权使用mht所辖hru进入阻塞状态,而向hsc发送的指令,用于
设置认证秘钥,即设置skb。hsc为hscskb指令的具体执行硬件模块,在执行hscskb指令之后,hsc会将hru的skb修改为本指令参数所指定的值。当bph试图使用相关hsc指令进入阻塞状态时,需要在相关hsc指令参数中提供正确的skb,只有在指令参数中的skb与hru的skb相等的情况下,hsc才会执行bph所发送的使用hru进入阻塞状态的相关hsc指令。hscskb包含以下必要参数:参数1、“mht进程号”,即mht的进程号(亦即pidm)。“mht进程号”参数将被hsc用作为执行hscskb指令的安全认证条件,即只有指令中的“mht进程号”等于hru的pidm,本指令才会被hsc执行,否则会被hsc拒绝执行;参数2、“资源标识号”,即hrid。hrid指定本指令所操作的目标hru的资源标识号,即hru的hrid;参数3、“阻塞秘钥”,即skb。在参数“mht进程号”认证通过的条件下,hsc会将参数“阻塞秘钥”写入到由参数hrid所指定的hru的skb中(即令hru的skb等于参数“阻塞秘钥”);5、“同步阻塞”指令,该指令以字符“hscblk”为指令符号,但不限制仅以“hscblk”为指令符号。hscblk为bph试图使用由指令参数所指定的hru,令指令参数所指定的进程进入阻塞状态的指令。hsc为hscblk指令的具体执行硬件模块,在执行hscblk指令之后,hsc会为bph新建一个bpe,并将bph在hscblk指令参数携带的pdb信息及初始tmb信息记录到该bpe中。hscblk包含以下必要参数:参数1、“阻塞秘钥”,即skb。skb是hsc对于执行hscblk指令的认证秘钥,只有当skb与由指令hscskb所设置的skb相等的情况下,hsc才会执行hscblk指令,否则hsc会拒绝执行;参数2、“hru资源号”,即hrid。hrid指定本指令所操作的目标hru的资源标识号,即hru的hrid;参数3、“pdb信息”,即bph的pdb。在参数“阻塞秘钥”认证通过的条件下,hsc会将参数“pdb信息”写入hsc在hrid指定的hru中为bph所新建的bpe中,令bpe中的pdb信息等于参数“pdb信息”;参数4、“初始tmb”,即tmb初始值。在参数“阻塞秘钥”认证通过的条件下,hsc会将参数“初始tmb”写入hsc在hrid指定hru中为bph所新建的bpe中,令bpe中的tmb等于“初始tmb”;6、“mht触发”指令,该指令以字符“hscmtrg”为指令符号,但不限制仅以“hscmtrg”为指令符号。hscmtrg是由mht向hsc发出的,用于触发由指令参数所指定的hru的指令。hsc为hscmtrg指令的具体执行硬件模块,在执行hscmtrg指令的过程中,hsc会依据指令参数指定的tmb与指令参数指定的hru中的所有bpe的tmb进行位或运算,并以该运算结果作为判断是否将相应bpe所记录的pdb从hru中调度出,并令其进入“处理器内部总线控制器”进行进程调度。如果该运算结构为全1,则将相应pdb从hru中调度出,并进行进程调度。如果该运算结果不为全1,则将该运算结果写回至bpe的tmb。hscmtrg包含以下参数:参数1、“mht进程号”,即mht的进程号(亦即pidm)。“mht进程号”参数将被hsc用作为执行hscmtrg指令的安全认证条件,即只有指令中的“mht进程号”等于hru的pidm,本指令才会被hsc执行,否则会被hsc拒绝执行;参数2、“hru资源号”,即hrid。hrid指定本指令所操作的目标hru的资源标识号,即hru的hrid;参数3、“触发掩码”,即tmb。本参数为对目标hru中所有bpe触发的“触发掩码”;
7、“pht触发”指令,该指令以字符“hscptrg”为指令符号,但不限制仅以“hscptrg”为指令符号。hscptrg是由pht向hsc发出的,用于触发由指令参数所指定的hru的指令。hsc是hscptrg指令的具体执行硬件模块,在执行hscptrg指令的过程中,hsc会依据指令参数指定的tmb与指令参数指定的hru中的所有bpe的tmb进行位或运算,并以该运算结果作为判断是否将相应bpe所记录的pdb从hru中调度出,并令其进入“处理器内部总线控制器”进行进程调度。如果该运算结构为全1,则将相应pdb从hru中调度出,并进行进程调度。如果该运算结果不为全1,则将该运算结果写回至bpe的tmb。hscmtrg包含以下参数:参数1、“触发秘钥”,即skt。skt是hsc对于执行hscptrg指令的认证秘钥,只有当skt与由指令hscskt所设置的skt相等的情况下,hsc才会执行hscptrg指令,否则hsc会拒绝执行;参数2、“hru资源号”,即hrid。hrid指定本指令所操作的目标hru的资源标识号,即hru的hrid;参数3、“触发掩码”,即tmb。本参数为对目标hru中所有bpe触发的“触发掩码”;8、“os触发”指令,该指令以字符“hscstrg”为指令符号,但不限制仅以“hscstrg”为指令符号。hscstrg是由os向hsc发出的,用于无条件触发所有hru的指令,hsc是hscstrg指令的具体执行硬件模块,在执行hscstrg指令的过程中,所有hru中保存的处于阻塞状态的pdb都会被无条件从hru中调度出,并令其进入“处理器内部总线控制器”进行进程调度。hscstrg包含以下参数:参数1、“os进程号”,即os的进程号。“os进程号”参数将被hsc用作为执行hscstrg指令的安全认证条件,即只有指令参数中的“os进程号”等于系统默认的固定的os进程号,本指令才会被hsc执行,否则会被hsc拒绝执行。
附图说明
[0012]
图1所示,为本发明技术方案的一种可能的硬件示意框图,图示为基础方案示意图,并不表示本发明技术方案需要固定为图示结构。图中示例了具有4个内核(分别为“内核0”至“内核3”)的简易结构,用以说明本发明技术方案所涉及的硬件在处理器中的位置,以及用于说明本发明技术方案所涉及指令从内核到hsc硬件模块的传输示意。在处理器硬件实际实现中,还应存在其它图中未绘示的模块。如图中所示,“处理器内部总线控制器”所示的并非在硬件实现上为一个特定模块,图中“处理器内核总线控制器”所示范围内的hss、hsc、以及matrix表示都在“处理器内部总线控制器”所控制范围之内,亦即表示在“处理器内部总线控制器”内的上述模块可以通过“处理器内部总线控制器”与图中所示4个内核中的任意一个建立相关指令传输的关联;图1所示,hsc即为本发明技术方案的硬件实现示意,hss是hardware synchronization stack的缩写,是由hsc所控制的,用于保存hru数据的专用内存/缓存。matrix是实现所有具有关联关系模块、以及内核之间的物理连接的模块。在实现本发明技术方案的过程中,可以通过构建一定形式的硬件线路,并在该硬件线路上实现一定形式的信号握手协议以及时序,用于实现在内核(“内核0”至“内核3”当中的任意一个)与hsc之间的指令传输及进程的pdb的传输及调度。图中所绘示及强调的是,软件中的进程在执行“同步”应用时,在内核中发出对于hsc操作的指令,经过图示硬件模块传达至hsc,并由hsc对进程所发出的hsc指令做出反馈、以及相应的硬件处理,以完成进程所需的“同步”应用。
[0013]
图2所示,为本发明技术方案所涉及进程的pdb在处理器内部传输或调度的逻辑示意图。图2所示“外设0”至“外设n”表示处理器内部直接或间接挂载在“处理器内部总线控制器”上的外部设备;图2所示“hsc”表示本发明技术所涉及的hsc所完成的关于“同步”应用中进程阻塞及被触发时,进程的pdb被寄存及被调度的示意;图2所示“pupq”、“prpq”分别表示在图1所示matrix中实现,或者在“处理器内部总线控制器”所连接并控制的其它模块所实现的关于进程的pdb调度的“公共调度队列”和“私有调度队列”。如图所示,“私有调度队列”针对每个内核进行进程的pdb的调度,而“公共调度队列”针对所有内核的“私有调度队列”进行进程的pdb的调度,以及进行内核负荷的均衡,如线f所示;图2所示,从任意内核调度出的进程可能是“新建进程”、“暂时调度出内核但非阻塞进程”、“因阻塞需求而调度出内核的进程”。如线a所示,从任意内核调度出的进程的pdb会被传输至pupq或者hsc,分别如线c和线b所示。其中被传输至hsc的pdb,表示该pdb相关进程因“阻塞需求”而调度出内核,即进程在内核中向hsc发送hsc相关指令,令进程进入阻塞状态;图2所示,由外设所发出的,如线e所示,并非指具体的进程,而是指外设向os发出的消息中断或者其它类型的中断,这些中断也可以被封装为pdb,然后被赋予一定优先级进入pupq进行调度。事实上,pupq和prpq均为具有优先级排序功能的调度队列,如图所示颜色更深的表示该pdb具有更高的优先级,具有更高优先级的pdb会被更优先调度至内核中;图2所示,由外设发出的,如线g所示,并非指具体的进程,而是指外设所发出的触发信号,用于触发与相应外设所对应的,处于休眠状态(即阻塞状态)的驱动进程。与从任何内核中的进程所发出的触发信号一样(如线h所示),它们表示外设或者内核中的进程向hsc发出了相关hsc指令用于触发在hsc中处于阻塞状态的相关进程。当hsc执行了这些相关触发指令后,相关进程的pdb会从hsc调度出,并进入pupq进行进程调度,如线d所示。
具体实施方式
[0014]
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图,并获得其它的实施方式。
[0015]
为了使图面简洁,各图中只示意性地表示了与本发明相关的部分,它们不代表其作为产品的实际结构或流程。另外,以使图面简洁便于理解,在有些图中具有相同结构或功能部件,仅示意性地绘示了其中的一个,或仅标出了其中的一个。在本文中,“一个”不仅表示“仅此一个”,也可以表示“多于一个”的情形。
[0016]
实施例1本发明的一个实施例,实现os授权mht使用并管理hsc中的hru,包括步骤:步骤1、在hsc未被设置skh的情况下,或者os需要更改hsc的skh的情况下,os向hsc发送hscskh指令。如果hsc已被设置skh,且os并不需要更改hsc的skh的情况下,直接执行步骤2;步骤2:、进程通过进程通信通道,或者通过其它中断的方式向os申请成为mht;步骤3、os确认授权进程可以成为mht,向进程提供skh;
步骤4、mht使用被os授予的skh,向hsc发送hscsetm指令;步骤5、hsc执行完hscsetm指令,向mht反馈回hru的hrid。
[0017]
实施例2本发明的一个实施例,实现mht为其所辖hru设置skt,包括步骤:步骤1、mht生成其私有的秘钥;步骤2、mht使用所生成的私有秘钥作为skt,向hsc发送hscskt指令;步骤3、hsc执行hscskt指令,将指令参数hrid所指的hru的skt修改为指令参数中的skt。
[0018]
实施例3本发明的一个实施例,实现mht为其所辖hru设置skb,包括步骤:步骤1、mht生成其私有的秘钥;步骤2、mht使用所生成的私有秘钥作为skb,向hsc发送hscskb指令;步骤3、hsc执行hscskb指令,将指令参数hrid所指的hru的skb修改为指令桉树中skb。
[0019]
实施例4本发明的一个实施例,在实施例1至实施例3的基础上,实现bph进入阻塞状态,包括步骤:步骤1、软件构建进程间的“同步”关系;步骤2、在bph未被mht授权使用hru的情况下,bph向mht申请使用hru进入阻塞状态的权限,mht将hrid及skb授予bph。如果bph已经获得mht使用hru进入阻塞状态的权限,则直接进入步骤3;步骤3、bph使用从mht获取的hrid和skb,向hsc发送hscblk指令;步骤4、hsc执行hscblk指令。
[0020]
实施例5本发明的一个实施例,在实施例4的基础上,实现mht触发指定hru中处于阻塞状态的进程,包括步骤:步骤1、mht向hsc发送hscmtrg指令;步骤2、hsc执行hscmtrg指令。
[0021]
实施例6本发明的一个实施例,在实施例4的基础上,实现pht触发指定hru中处于阻塞状态的进程,包括步骤:步骤1、在pht未获得mht授权触发hru的情况下,pht向mht申请获得触发指定hru的权限,mht将hrid即skt授予pht。如果pht已经获得触发hru的权限,则直接进入步骤2;步骤2、pht使用从mht获取的hrid和skt,向hsc发送hscptrg指令;步骤3、hsc执行hscptrg指令。
[0022]
应该说明的是,上述实施例均可根据需要自由组合。以上所述仅为本发明的优选实施方式,应该指出,对于本技术领域的普通技术人员来说,在不脱离发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。