代码控制方法和装置制造方法及图纸

技术编号:13591729 阅读:52 留言:0更新日期:2016-08-26 01:06
本发明专利技术公开了一种代码控制方法和装置。该代码控制方法包括:获取设备的硬件信息;以及根据硬件信息调用设备上的操作系统的特定应用程序编程接口,所述特定应用程序编程接口用于控制通过编译特定源代码所获得的特定目标代码在设备上的执行以使得特定目标代码的执行顺序与特定源代码所指示的执行顺序一致。上述代码控制方法和装置,通过调用设备上的特定应用程序编程接口来控制特定目标代码的执行顺序与特定源代码所指示的执行顺序一致,这有助于避免由于设备对目标代码的执行顺序的自动调整而导致的锁功能失效的问题。

【技术实现步骤摘要】

本专利技术涉及计算机
,具体涉及一种代码控制方法和装置
技术介绍
某些数据存储系统(例如数据库)是多用户使用的共享资源。下面以数据库为例进行说明。当多个用户并发地存取数据库中的数据时,可能会发生多个进程同时存取同一数据的情况。若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性。例如,假设数据库中存储了某种商品的库存数据。当数据库接收到用户购买该商品的请求时,可以查询库存数据,如果发现此时尚有库存,则可以更新库存数据并返回可以购买的指示。假设当前的库存数据为1,并且在同一时间有两个用户请求购买该商品,数据库中会存在两个进程同时对库存数据进行查询,均发现尚有库存并对库存数据进行更新,这样,库存数据将变为-1。也就是说,虽然商品的库存仅剩一件,但是该商品却被卖给了两个用户。因此在某一进程对数据进行更新的时候,需要锁定这条数据。进程在对某个数据对象进行操作前,可以首先对该数据对象进行锁定。锁定后进程就对该数据对象具有一定的控制权,在解锁之前,其他进程不能对此数据对象进行更新。可以将针对数据库的操作编写为源代码,并且可以利用编译程序将源代码编译为目标代码。目标代码是机器可识别的,可以由诸如计算机的设备执行,从而实现针对数据库的操作。虽然按照实现锁定和解锁功能(可称为锁功能)的顺序编写源代码,但是由于硬件和软件设计原因,在编译源代码和执行目标代码的过程中,设备有可能对代码的执行顺序进行优化和调整,使得用于实现锁定和解锁功能的目标代码的执行顺序发生变化,从而无法实现对数据的锁定和解锁,导致可
能出现多个进程同时对数据进行更新的情况。也就是说,即使在编写源代码时加入了锁功能,其也有可能由于设备自身进行的代码优化而无法发挥作用。
技术实现思路
鉴于上述问题,提出了本专利技术以便提供一种至少部分地解决上述问题的代码控制方法和装置。根据本专利技术的一个方面,提供一种代码控制方法,包括:获取设备的硬件信息;以及根据所述硬件信息调用所述设备上的操作系统的特定应用程序编程接口,所述特定应用程序编程接口用于控制通过编译特定源代码所获得的特定目标代码在所述设备上的执行以使得所述特定目标代码的执行顺序与所述特定源代码所指示的执行顺序一致。根据本专利技术的另一个方面,提供一种代码控制装置。该代码控制装置包括获取模块和调用模块。获取模块用于获取设备的硬件信息。调用模块用于根据所述硬件信息调用所述设备上的操作系统的特定应用程序编程接口,所述特定应用程序编程接口用于控制通过编译特定源代码所获得的特定目标代码在所述设备上的执行以使得所述特定目标代码的执行顺序与所述特定源代码所指示的执行顺序一致。根据本专利技术实施例的代码控制方法和装置,通过调用设备上的特定应用程序编程接口来控制特定目标代码的执行顺序与特定源代码所指示的执行顺序一致,这有助于避免由于设备对目标代码的执行顺序的自动调整而导致的锁功能失效的问题。上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,而可依照说明书的内容予以实施,并且为了让本专利技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本专利技术的具体实施方式。附图说明通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,
而并不认为是对本专利技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:图1示出示例性的源代码所代表的操作的示意图;图2示出根据本专利技术一个实施例的代码控制方法的流程示意图;图3示出根据本专利技术一个实施例的源代码所代表的操作的示意图;以及图4示出根据本专利技术一个实施例的代码控制装置的示意性框图。具体实施方式下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。如上文所述,可以将针对数据库的操作编写为源代码,并且可以利用编译程序将源代码编译为目标代码。目标代码是机器可识别的,可以由诸如计算机的设备执行,从而实现针对数据库的操作。图1示出示例性的源代码所代表的操作的示意图。在图1中,块110中的源代码代表并发操作,块120中的源代码代表锁定操作,块130中的源代码代表串行操作,块140中的源代码代表解锁操作,块150中的源代码代表并发操作。假设按照图1所示的顺序编写源代码,并相应地期望按照如下顺序执行操作:首先执行并发操作,然后执行锁定操作、串行操作和解锁操作,最后执行并发操作。这样,根据源代码所指示的执行顺序,在锁定操作之前及解锁操作之后,可以实施针对数据库的并发操作,而在锁定操作之后及解锁操作之前的时段内,应当实施串行操作。这段串行操作可以是如上文所述的更新库存数据的操作。锁定和解锁可以使得在同一时间仅有一个进程能够对库存数据进行更新。并发操作可以是诸如数据查询操作,例如查询库存数据,这类操作可以是并行执行的,也就是可以由多个进程(可对应于多个用户)并行执行。串
行操作可以是诸如数据更新操作,例如更新库存数据,这类操作可以串行执行,即可以在同一时间仅由一个进程执行。如上文所述,虽然按照图1所示的顺序编写源代码,但是由于硬件和软件设计原因,在编译源代码和执行目标代码的过程中,设备有可能对代码的执行顺序进行优化和调整,例如,有可能在执行目标代码时实际上已经将块130中的源代码所代表的串行操作调整到了块120中的源代码所代表的锁定操作前面或者调整到了块140中的源代码所代表的解锁操作后面。这样,锁定操作和解锁操作将无法控制块130中的源代码所代表的串行操作的执行,导致可能出现多个进程同时对数据进行更新的并行处理情况,使得数据的读取和存储出现错误。也就是说,即使在编写源代码时加入了锁功能,其也有可能由于设备自身进行的代码优化而无法发挥作用。为了解决上述问题,根据本专利技术的一个方面,提供一种代码控制方法。图2示出根据本专利技术一个实施例的代码控制方法200的流程示意图。如图2所示,代码控制方法200包括以下步骤。在步骤S210,获取设备的硬件信息。设备可以是特定目标代码要在其上执行的硬件设备。硬件信息可以是与该设备相关的各种配置信息,包括但不限于以下项中的一项或多项:所述设备上的操作系统的内核版本、所述设备的处理器架构。操作系统的内核版本可以包括但不限于:磁盘操作系统(DOS操作系统)、Windows系列操作系统(例如Windows 95、Windows XP、Windows Vista、Windows 7、Windows 8等)、Unix操作系统、Linux操作系统等。处理器架构可以包括但不限于:x86架构、x86_64架构等。本领域技术人员可以理解,以上硬件信息的类型仅是示例而非对本专利技术的限制,可以针对任何其他合适的现有或未来可能出现的硬件信息实现本专利技术实施例提供的代码控制方法。获取设备的硬件信息可以是利用编译器程序读取设备的硬件信息。在步骤S220,根据硬件信息调用设备上的操作系统的特定应用程序编程接口(API),所述特定应用程序编程接口用于控制通过编译特定源代码所获...

【技术保护点】
一种代码控制方法,包括:获取设备的硬件信息;以及根据所述硬件信息调用所述设备上的操作系统的特定应用程序编程接口,所述特定应用程序编程接口用于控制通过编译特定源代码所获得的特定目标代码在所述设备上的执行以使得所述特定目标代码的执行顺序与所述特定源代码所指示的执行顺序一致。

【技术特征摘要】
1.一种代码控制方法,包括:获取设备的硬件信息;以及根据所述硬件信息调用所述设备上的操作系统的特定应用程序编程接口,所述特定应用程序编程接口用于控制通过编译特定源代码所获得的特定目标代码在所述设备上的执行以使得所述特定目标代码的执行顺序与所述特定源代码所指示的执行顺序一致。2.如权利要求1所述的代码控制方法,其特征在于,所述特定应用程序编程接口包括第一应用程序编程接口,所述根据所述硬件信息调用所述设备上的操作系统的特定应用程序编程接口进一步包括:在编译所述特定源代码之前,根据所述硬件信息调用所述第一应用程序编程接口以控制所述特定目标代码的执行顺序不被向前调整。3.如权利要求2所述的代码控制方法,其特征在于,在所述根据所述硬件信息调用所述第一应用程序编程接口以控制所述特定目标代码的执行顺序不被向前调整之前,所述代码控制方法进一步包括:确定存在用于指示所述第一应用程序编程接口的第一标识。4.如权利要求2或3所述的代码控制方法,其特征在于,在所述根据所述硬件信息调用所述第一应用程序编程接口以控制所述特定目标代码的执行顺序不被向前调整之前,所述代码控制方法进一步包括编译用于代表锁定操作的源代码,所述锁定操作包括:设置令牌;以及按照时间顺序向最早请求期望数据的进程分配所述令牌,其中,所述特定源代码所代表的操作由占有所述令牌的进程执行。5.如权利要求1-4中任一项所述的代码控制方法,其特征在于,所述特
\t定应用程序编程接口包括第二应用程序编程接口,所述根据所述硬件信息调用所...

【专利技术属性】
技术研发人员:郭军
申请(专利权)人:北京奇虎科技有限公司奇智软件北京有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1