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

一种数据访问方法、装置、设备及存储介质与流程

2022-03-09 01:05:19 来源:中国专利 TAG:


1.本技术涉及汽车电子技术领域,具体涉及一种数据访问方法、装置、设备及存储介质。


背景技术:

2.autosar(automotive open system architecture,汽车开放系统架构)是由全球汽车制造商、零部件供应商以及研究、服务机构共同参与的汽车开放系统架构联盟建立的一种汽车嵌入式系统软件架构。ap(adaptive platform,自适应性平台)是autosar推出的一种应用于高级驾驶辅助系统和自动驾驶等领域的自适应性平台。sm(state management,状态管理)是ap平台中的一个服务功能集群,负责管理设备状态功能组及根据业务需求所配置的其他功能组的功能组状态,其中,其他功能组中的每一功能组可以为车载终端设备上实现对应功能的一组进程,每个功能组至少有一个进程。
3.然而,如图1所示,当前sm对功能组的管理是通过单一化加锁技术来实现的,当sm内部的服务线程接收到外部应用发送的功能访问请求,想要去读取某个或某些功能组状态,或想要更改某个或某些功能组状态时,都需要先获得互斥锁后才能对相关的功能组进行访问操作,因此,在互斥锁被占用的情况下,一些对响应要求较高的外部应用可能会因为当前服务线程无法及时对功能组状态进行访问,而导致业务功能上的延迟。因此,需要提供更加有效的技术方案。


技术实现要素:

4.本技术提供了一种数据访问方法、装置、设备及存储介质,可以根据功能优先级对功能访问请求进行高效地调度执行,从而提升功能优先级较高的功能组的访问效率,减小访问时延。
5.本技术技术方案如下:
6.一方面,提供了一种数据访问方法,所述方法包括:
7.控制第一服务线程接收多个功能访问请求;
8.根据所述多个功能访问请求各自对应的功能优先级,控制所述第一服务线程将所述多个功能访问请求分别加入到多个对应不同执行优先级的任务队列,多个所述任务队列的执行优先级分别与所述多个功能访问请求对应的功能优先级一一对应;
9.根据所述多个任务队列的执行优先级,控制所述第一服务线程对所述多个任务队列中的功能访问请求进行任务调度,确定当前调度到的第一功能访问请求;
10.控制所述第一服务线程通过锁定目标功能优先级的目标读写锁,对所述第一功能访问请求对应的第一功能组进行访问操作,所述目标功能优先级为所述第一功能访问请求对应的功能优先级。
11.另一方面,提供了一种数据访问装置,所述装置包括:
12.功能访问请求接收模块,用于控制第一服务线程接收多个功能访问请求;
13.任务队列加入模块,用于根据所述多个功能访问请求各自对应的功能优先级,控制所述第一服务线程将所述多个功能访问请求分别加入到多个对应不同执行优先级的任务队列,多个所述任务队列的执行优先级分别与所述多个功能访问请求对应的功能优先级一一对应;
14.任务调度模块,用于根据所述多个任务队列的执行优先级,控制所述第一服务线程对所述多个任务队列中的功能访问请求进行任务调度,确定当前调度到的第一功能访问请求;
15.访问操作模块,用于控制所述第一服务线程通过锁定目标功能优先级的目标读写锁,对所述第一功能访问请求对应的第一功能组进行访问操作,所述目标功能优先级为所述第一功能访问请求对应的功能优先级。
16.另一方面,提供了一种数据访问设备,所述设备包括处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由所述处理器加载并执行以实现如上述的数据访问方法。
17.另一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现如上述的数据访问方法。
18.本技术提供的数据访问方法、装置、设备及存储介质,具有如下技术效果:
19.利用本技术提供的技术方案,一方面,在服务线程的内部设置有多个执行优先级的任务队列,根据多个功能访问请求各自对应的功能优先级,将所述多个功能访问请求分别加入到与各自的功能优先级对应的执行优先级的任务队列,并根据多个任务队列的执行优先级,控制服务线程对多个任务队列中的功能访问请求进行任务调度,确定当前调度到的第一功能访问请求,提升了不同功能优先级的功能访问请求的调度执行效率;另一方面,通过锁定第一功能访问请求的功能优先级对应的目标读写锁,对第一功能访问请求对应的第一功能组进行访问操作,提升了功能优先级高的功能组的访问效率,减小访问时延。
附图说明
20.为了更清楚地说明本技术实施例或现有技术中的技术方案和优点,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。
21.图1是一种数据访问操作的示意图;
22.图2是本技术实施例提供的一种数据访问方法的流程示意图;
23.图3是本技术实施例提供的一种根据上述多个任务队列的执行优先级,控制第一服务线程对上述多个任务队列中的功能访问请求进行任务调度,确定当前调度到的第一功能访问请求的流程示意图;
24.图4是本技术实施例提供的一种控制第一服务线程通过锁定目标功能优先级的目标读写锁,对第一功能访问请求对应的第一功能组进行访问操作的流程示意图;
25.图5是本技术实施例提供的另一种控制第一服务线程通过锁定目标功能优先级的目标读写锁,对第一功能访问请求对应的第一功能组进行访问操作的流程示意图;
26.图6是本技术实施例提供的一种数据访问操作的示意图;
27.图7是本技术实施例提供的一种数据访问装置示意图。
具体实施方式
28.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本技术保护的范围。
29.需要说明的是,本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
30.autosar(automotive open system architecture,汽车开放系统架构)是由全球汽车制造商、零部件供应商以及研究、服务机构共同参与的汽车开放系统架构联盟建立的一种汽车嵌入式系统软件架构。ap(adaptive platform,自适应性平台)是autosar推出的一种应用于高级驾驶辅助系统和自动驾驶等领域的自适应性平台。
31.sm(state management,状态管理)是ap平台中的一个服务功能集群,负责管理设备状态功能组及根据业务需求所配置的其他功能组的功能组状态,其中,其他功能组中的每一功能组可以为车载终端设备上实现对应功能的一组进程,每个功能组至少有一个进程,每个功能组对应的功能组状态定义了当sm请求相应功能组进入到对应状态时,配置在该状态下的哪些进程会被启动。
32.在实际应用中,sm可以对功能组进行状态初始化,对来自用户应用程序的各种输入事件进行评估和决策,以确定功能组的状态,同时请求ap平台中的em(execution management,执行管理)对功能组执行状态的切换。
33.以下介绍本技术实施例提供的一种数据访问方法,图2为本技术实施例提供的一种数据访问方法的流程示意图。需要说明的是,本说明书提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的系统或产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。具体的如图2所示,上述方法可以包括:
34.s201,控制第一服务线程接收多个功能访问请求。
35.在实际应用中,sm可以通过预设的服务端口与sm外部的多个应用程序进行交互,每个应用程序可以通过服务端口向sm发起功能访问请求,并由sm将功能访问请求分配给sm中的服务线程。
36.在本说明书实施例中,第一服务线程可以为sm的多个服务线程中的任一服务线程;每个功能访问请求可以携带有请求访问的功能组的标识信息,功能组可以为车载终端
设备上实现对应功能的一组进程。
37.s203,根据上述多个功能访问请求各自对应的功能优先级,控制第一服务线程将上述多个功能访问请求分别加入到多个对应不同执行优先级的任务队列,多个上述任务队列的执行优先级分别与上述多个功能访问请求对应的功能优先级一一对应。
38.在本说明书实施例中,可以预先根据实际应用中车载终端设备的业务运行与控制情况设置功能优先级的多个级别,sm的多个外部应用可以按照实际业务需求对自己所关联的各个功能组配置对应的功能优先级;相应的,sm的每个服务线程内部的多个任务队列可以分别配置与上述功能优先级的级别一一对应的执行优先级。
39.具体的,根据上述多个功能访问请求中的每个功能访问请求对应的目标功能组的功能优先级,控制第一服务线程分别将每个功能访问请求加入到与各自的功能优先级对应的执行优先级的任务队列中,由第一线程按照执行优先级对多个任务队列进行调度执行。
40.s205,根据上述多个任务队列的执行优先级,控制第一服务线程对上述多个任务队列中的功能访问请求进行任务调度,确定当前调度到的第一功能访问请求。
41.在一个具体的实施例中,如图3所示,上述根据上述多个任务队列的执行优先级,控制第一服务线程对上述多个任务队列中的功能访问请求进行任务调度,确定当前调度到的第一功能访问请求可以包括:
42.s301,根据上述多个任务队列的执行优先级,控制第一服务线程确定当前调度到的任务队列。
43.s303,控制第一服务线程将上述当前调度到的任务队列中的第一个功能访问请求作为第一功能访问请求。
44.由以上实施例可见,在服务线程的内部配置与多个功能优先级一一对应的多个执行优先级的队列,根据功能访问请求对应的功能优先级,将外部应用发起的功能访问请求放入相应的执行优先级的任务队列,并根据多个任务队列的执行优先级,对多个任务队列中的功能访问请求进行任务调度,能够根据功能优先级对功能访问请求进行高效地调度执行,从而提升功能优先级较高的功能组的访问效率,减小访问时延。
45.s207,控制第一服务线程通过锁定目标功能优先级的目标读写锁,对第一功能访问请求对应的第一功能组进行访问操作,上述目标功能优先级为第一功能访问请求对应的功能优先级。
46.在实际应用中,读写锁将操作分为读、写两种方式,多个服务线程可以同时占用读模式的读写锁,使得读写锁具有更高的并行性。
47.在一些实施例中,如图4所示,上述控制第一服务线程通过锁定目标功能优先级的目标读写锁,对第一功能访问请求对应的第一功能组进行访问操作可以包括:
48.s401,控制第一服务线程确定第一功能访问请求的访问操作类型。
49.具体的,访问操作类型可以包括读取功能组状态和更改功能组状态。
50.s403,在第一功能访问请求的访问操作类型为读取功能组状态的情况下,控制第一服务线程以读模式对目标读写锁进行锁定。
51.s405,控制第一服务线程读取第一功能组的状态信息。
52.在一个可选的实施例中,在上述控制第一服务线程以读模式对目标读写锁进行锁定之前,上述方法还可以包括:
53.在存在第二服务线程通过锁定目标读写锁的读模式,对上述目标功能优先级的任一功能组进行访问操作的情况下,执行上述控制第一服务线程以读模式对目标读写锁进行锁定的步骤。
54.具体的,由于以读模式锁定目标读写锁是一种共享锁定,因此第一服务线程和第二服务线程可以同时通过目标读写锁以读模式并发访问目标功能优先级下的功能组。
55.在另一个可选的实施例中,在上述控制第一服务线程以读模式对目标读写锁进行锁定之前,上述方法还可以包括:
56.在存在第二服务线程通过锁定目标读写锁的写模式,对上述目标功能优先级的任一功能组进行访问操作的情况下,控制第一服务线程进入阻塞状态直至第二服务线程对目标读写锁的写模式锁定解除;
57.在第二服务线程对目标读写锁的写模式锁定解除的情况下,执行上述控制第一服务线程以读模式对目标读写锁进行锁定的步骤。
58.具体的,由于以写模式锁定目标读写锁是一种独占锁定,因此在第二服务线程独占目标读写锁的情况下,第一服务线程进入阻塞状态等待第二服务线程解除锁定。
59.在另一些实施例中,如图5所示,在上述控制第一服务线程确定第一功能访问请求的访问操作类型之后,上述方法还可以包括:
60.s407,在第一功能访问请求的访问操作类型为更改功能组状态的情况下,控制第一服务线程以写模式对目标读写锁进行锁定。
61.s409,控制第一服务线程更改第一功能组的状态信息。
62.在一个具体的实施例中,在上述控制第一服务线程以写模式对目标读写锁进行锁定之前,上述方法还可以包括:
63.在存在第二服务线程通过锁定目标读写锁,对上述目标功能优先级的任一功能组进行访问操作的情况下,控制第一服务线程进入阻塞状态直至第二服务线程对目标读写锁的锁定解除;
64.在第二服务线程对目标读写锁的锁定解除的情况下,执行上述控制第一服务线程以写模式对目标读写锁进行锁定的步骤。
65.具体的,由于第一服务线程对目标读写锁的写模式锁定是一种独占锁定,因此,在第二服务线程已经锁定目标读写锁的情况下,第一服务线程无法独占目标读写锁,因此,第一服务线程进入阻塞状态等待第二服务线程解除锁定。
66.在另一些实施例中,在上述控制第一服务线程通过锁定目标功能优先级的目标读写锁,对第一功能访问请求对应的第一功能组进行访问操作之前,上述方法还可以包括:
67.在存在第二服务线程通过锁定其他功能优先级的读写锁对上述其他功能优先级的任一功能组进行访问操作的情况下,执行上述控制第一服务线程通过锁定目标功能优先级的目标读写锁,对第一功能访问请求对应的第一功能组进行访问操作的步骤,上述其他功能优先级为除目标功能优先级之外的任一功能优先级。
68.具体的,可以为每个功能优先级的组别分别配置对应的读写锁,以使第一服务线程与第二服务线程可以同时访问不同功能优先级下的功能组,提升了不同功能优先级的功能组的并发访问效率。
69.由以上实施例可见,对多个功能组按照功能优先级进行分组管理,每个功能优先
级下的多个功能组通过对应的读写锁进行管理,使得多个服务线程可以同时通过读写锁对同一功能优先级的功能组并发读操作访问,还可以同时访问不同功能优先级下的功能组,提升了功能组的并发访问效率从而提升了功能访问请求的响应速度。
70.在一个具体的实施例中,如图6所示,图6是本技术实施例提供的一种数据访问操作的示意图,以功能优先级的级别为功能优先级0、功能优先级1和功能优先级2为例,其中,功能优先级的数值越小,优先等级越高。sm中的功能组可以包括但不限于设备状态功能组、功能组1、功能组2、

、功能组n。设备状态功能组为对整个设备平台进行管理的功能组,因此,将设备状态功能组的功能优先级配置为最高等级的功能优先级0,将用于服务高优先级需求的自动驾驶应用的功能组1和功能组2的功能优先级配置为功能优先级1,而将分别用于服务其他应用的功能组3至功能组n的功能优先级配置为功能优先级2,例如,其他应用可以为智能座舱功能或娱乐功能相关的应用。
71.sm内的服务线程可以包括服务线程a、b、

、m,具体的,服务线程的数量可以根据设备的业务应用运行情况及设备所包含的核数来设置,每个服务线程依据外部应用发起的功能访问请求的功能优先级将功能访问请求放入与该功能优先级对应的执行优先级的任务队列,功能访问请求由服务线程中的调度任务按照任务队列的执行优先级进行统一调度。
72.对于同一功能优先级的功能组采用读写锁进行读操作并发访问,例如,在服务线程a通过读写锁1对功能优先级1的功能组1进行读操作访问的同时,服务线程b也可以通过读写锁1对功能优先级1的功能组2进行读操作访问;不同功能优先级的功能组可以通过各自优先级的对应的读写锁并发访问,例如,在服务线程a通过读写锁1对功能优先级1的功能组2进行访问的同时,服务线程b也可以通过读写锁2对功能优先级2的功能组3进行访问。
73.由以上说明书实施例提供的技术方案可见,一方面,在服务线程的内部设置有多个执行优先级的任务队列,根据多个功能访问请求各自对应的功能优先级,将所述多个功能访问请求分别加入到与各自的功能优先级对应的执行优先级的任务队列,并根据多个任务队列的执行优先级,控制服务线程对多个任务队列中的功能访问请求进行任务调度,能够根据功能优先级对功能访问请求进行高效地调度执行,从而提升功能优先级较高的功能组的访问效率,减小访问时延;另一方面,每个功能优先级下的多个功能组通过对应的读写锁进行管理,使得多个服务线程可以同时通过读写锁对同一功能优先级的功能组并发读操作访问,还可以同时访问不同功能优先级下的功能组,提升了功能组的并发访问效率从而提升了功能访问请求的响应速度。
74.本技术实施例提供了一种数据访问装置,如图7所示,上述装置可以包括:
75.功能访问请求接收模块710,用于控制第一服务线程接收多个功能访问请求;
76.任务队列加入模块720,用于根据上述多个功能访问请求各自对应的功能优先级,控制上述第一服务线程将上述多个功能访问请求分别加入到多个对应不同执行优先级的任务队列,多个上述任务队列的执行优先级分别与上述多个功能访问请求对应的功能优先级一一对应;
77.任务调度模块730,用于根据上述多个任务队列的执行优先级,控制上述第一服务线程对上述多个任务队列中的功能访问请求进行任务调度,确定当前调度到的第一功能访问请求;
78.访问操作模块740,用于控制上述第一服务线程通过锁定目标功能优先级的目标读写锁,对上述第一功能访问请求对应的第一功能组进行访问操作,上述目标功能优先级为上述第一功能访问请求对应的功能优先级。
79.在一个具体的实施例中,上述任务调度模块730可以包括:
80.任务队列调度单元,用于根据上述多个任务队列的执行优先级,控制第一服务线程确定当前调度到的任务队列;
81.第一功能访问请求单元,用于控制第一服务线程将上述当前调度到的任务队列中的第一个功能访问请求作为第一功能访问请求。
82.在一些实施例中,上述访问操作模块740可以包括:
83.访问操作类型确定单元,用于控制第一服务线程确定第一功能访问请求的访问操作类型;
84.读模式锁定单元,用于在第一功能访问请求的访问操作类型为读取功能组状态的情况下,控制第一服务线程以读模式对目标读写锁进行锁定;
85.状态信息读取单元,用于控制第一服务线程读取第一功能组的状态信息。
86.在另一些实施例中,上述访问操作模块740还可以包括:
87.写模式锁定单元,用于在第一功能访问请求的访问操作类型为更改功能组状态的情况下,控制第一服务线程以写模式对目标读写锁进行锁定;
88.状态信息更改单元,用于控制第一服务线程更改第一功能组的状态信息。
89.本技术实施例提供了一种数据访问设备,该数据访问设备包括处理器和存储器,该存储器中存储有至少一条指令或至少一段程序,该至少一条指令或该至少一段程序由该处理器加载并执行以实现如上述方法实施例所提供的数据访问方法。
90.存储器可用于存储软件程序以及模块,处理器通过运行存储在存储器的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、功能所需的应用程序等;存储数据区可存储根据上述设备的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器还可以包括存储器控制器,以提供处理器对存储器的访问。
91.本技术实施例所提供的方法实施例可以在车载终端或者类似的运算装置中执行,即上述数据访问设备可以包括车载终端或者类似的运算装置。
92.本技术实施例还提供了一种存储介质,上述存储介质可设置于车载终端之中以保存用于实现方法实施例中一种的数据访问方法相关的至少一条指令或至少一段程序,该至少一条指令或该至少一段程序由该处理器加载并执行以实现上述方法实施例提供的数据访问方法。
93.可选地,在本实施例中,上述存储介质可以包括但不限于:u盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
94.由上述本技术提供数据访问方法、装置、设备或存储介质的实施例可见,利用本说明书实施例提供的技术方案,一方面,在服务线程的内部设置有多个执行优先级的任务队列,根据多个功能访问请求各自对应的功能优先级,将所述多个功能访问请求分别加入到
与各自的功能优先级对应的执行优先级的任务队列,并根据多个任务队列的执行优先级,控制服务线程对多个任务队列中的功能访问请求进行任务调度,能够根据功能优先级对功能访问请求进行高效地调度执行,从而提升功能优先级较高的功能组的访问效率,减小访问时延;另一方面,每个功能优先级下的多个功能组通过对应的读写锁进行管理,使得多个服务线程可以同时通过读写锁对同一功能优先级的功能组并发读操作访问,还可以同时访问不同功能优先级下的功能组,提升了功能组的并发访问效率从而提升了功能访问请求的响应速度。
95.需要说明的是:上述本技术实施例先后顺序仅仅为了描述,不代表实施例的优劣。且上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
96.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、设备和存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
97.本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指示相关的硬件完成,上述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
98.以上所述仅为本技术的较佳实施例,并不用以限制本技术,凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
再多了解一些

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

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

相关文献