IO请求处理方法、装置、电子设备和存储介质制造方法及图纸

技术编号:37559618 阅读:14 留言:0更新日期:2023-05-15 07:42
本申请实施例提供一种IO请求处理方法、装置、电子设备和存储介质,涉及信息处理技术领域,包括:接收客户端通过进程间通信IPC发送的IO请求;将IO请求写入IO请求的类型对应的工作队列;向IPC发送通知消息,通知消息用于指示服务端接收到IO请求;从工作队列中依次获取IO请求,并根据设备标识执行IO请求。在字符设备服务端设置处理IO请求的工作队列,通过异步的方式执行IO请求接收流程和IO请求处理流程,可以使得字符设备服务端接收IPC消息不受读写阻塞的影响,提升字符设备服务端的响应效率。提升字符设备服务端的响应效率。提升字符设备服务端的响应效率。

【技术实现步骤摘要】
IO请求处理方法、装置、电子设备和存储介质


[0001]本申请涉及信息处理
,特别涉及一种IO请求处理方法、装置、电子设备和存储介质。

技术介绍

[0002]字符设备是操作系统的重要组成部分,控制台终端、串口设备、显示设备等都属于字符设备,用户与操作系统的交互主要依靠字符设备完成。
[0003]在微内核操作系统中,各服务都是以独立进程的方式运行,用户的应用程序称为客户端,服务进程称为服务端。当用户需要对字符设备进行读写时,客户端将对应的IO请求以进程间通信(inter

process communication,IPC)的方式发送至对应的字符设备服务端。字符设备服务端接收到IPC消息后,执行对应的IO请求。在字符设备服务端完成IO请求后,对客户端进行IPC消息回复,客户端接收到IPC消息回复后完成IO请求。
[0004]当存在多个客户端对同一字符设备进行读写时,若字符设备服务端正在执行某一IO请求,则无法及时响应其他客户端的请求。

技术实现思路

[0005]本申请实施例提供一种IO请求处理方法、装置、电子设备和存储介质,可以提高字符设备服务端的响应效率。
[0006]第一方面,本申请实施例提供一种IO请求处理方法,包括:
[0007]异步执行IO请求接收流程和IO请求处理流程;
[0008]所述IO请求接收流程包括:
[0009]接收客户端通过进程间通信IPC发送的IO请求,所述IO请求中包括所述IO请求的类型和所述IO请求访问的目标字符设备的设备标识;
[0010]将所述IO请求写入所述IO请求的类型对应的工作队列,所述工作队列中的所述IO请求是服务端接收到根据所述IO请求的时间的先后顺序排列的;
[0011]向所述IPC发送通知消息,所述通知消息用于指示所述服务端接收到所述IO请求;
[0012]所述IO请求处理流程包括:
[0013]从所述工作队列中依次获取所述IO请求,并根据所述设备标识执行所述IO请求。
[0014]可选的,所述IO请求的类型包括读请求和写请求;
[0015]所述将所述IO请求写入所述IO请求的类型对应的工作队列,包括:
[0016]若所述IO请求为读请求,则将所述IO请求写入读工作队列;
[0017]若所述IO请求为写请求,则将所述IO请求写入写工作队列。
[0018]可选的,若所述IO请求为写请求,所述根据所述设备标识执行所述IO请求,包括:
[0019]获取所述写请求对应的写入数据;
[0020]根据所述设备标识将所述写入数据发送至所述目标字符设备驱动端,并调用所述目标字符设备驱动端将所述写入数据写入所述目标字符设备的硬件寄存器中;
[0021]向所述客户端回复第一IPC消息,所述第一IPC消息用于指示所述写请求写入完成。
[0022]可选的,所述写请求中还包括所述写入数据的数据量,所述方法还包括:
[0023]获取所述目标字符设备的硬件寄存器的空闲缓存容量;
[0024]若所述空闲缓存容量大于或等于所述写入数据的数据量,则将所述写入数据写入所述硬件寄存器中;
[0025]若所述空闲缓存容量小于所述写入数据的数据量,则在所述硬件寄存器的缓存释放后,将所述写入数据写入所述硬件寄存器中。
[0026]可选的,若所述IO请求为读请求,所述根据所述设备标识执行所述IO请求,包括:
[0027]获取所述读请求中包括的需要读取的数据量;
[0028]根据所述设备标识和所述数据量从数据缓冲区获取所述目标字符设备的数据;
[0029]向所述客户端回复第二IPC消息,所述第二IPC消息用于指示所述客户端读取所述目标字符设备的数据。
[0030]可选的,所述根据所述设备标识和所述数据量从数据缓冲区获取所述目标字符设备的数据之前,所述方法还包括:
[0031]判断所述数据缓冲区中所述目标字符设备的数据是否满足所述需要读取的数据量;
[0032]若否,休眠所述读请求,等待所述目标字符设备向所述数据缓冲区写入数据。
[0033]可选的,所述等待所述目标字符设备向所述数据缓冲区写入数据之后,所述方法还包括:
[0034]若检测到所述目标字符设备在所述硬件寄存器中输入数据时,调用所述目标字符设备驱动端获取所述输入数据;
[0035]将所述输入数据写入所述数据缓冲区,并唤醒所述读请求;
[0036]若所述数据缓冲区中所述目标字符设备的数据仍然不满足所述需要读取的数据量,则再次休眠所述读请求,直至所述数据缓冲区中所述目标字符设备的数据满足所述需要读取的数据量。
[0037]第二方面,本申请实施例提供一种IO请求处理装置,包括:
[0038]执行模块,用于异步执行IO请求接收流程和IO请求处理流程;
[0039]所述IO请求接收流程包括:
[0040]通过接收模块接收客户端发送的IO请求,所述IO请求中包括所述IO请求的类型和所述IO请求访问的目标字符设备的设备标识,所述IO请求是通过进程间通信IPC发送至服务端;
[0041]将所述IO请求写入所述IO请求的类型对应的工作队列,所述工作队列中的所述IO请求是服务端接收到根据所述IO请求的时间的先后顺序排列的;
[0042]向所述IPC发送通知消息,所述通知消息用于指示所述服务端接收到所述IO请求;
[0043]所述IO请求处理流程包括:
[0044]通过获取模块从所述工作队列中依次获取所述IO请求,并根据所述设备标识执行所述IO请求。
[0045]第三方面,本申请实施例提供一种电子设备,包括:存储器和处理器;
[0046]存储器用于存储计算机指令;处理器用于运行存储器存储的计算机指令实现第一方面中任一项的方法。
[0047]第四方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行以实现第一方面中任一项的方法。
[0048]第五方面,本申请实施例提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现第一方面中任一项的方法。
[0049]本申请实施例提供的IO请求处理方法、装置、电子设备和存储介质,通过接收客户端通过进程间通信IPC发送的IO请求,IO请求中包括IO请求的类型和IO请求访问的目标字符设备的设备标识;将IO请求写入IO请求的类型对应的工作队列,工作队列中的IO请求是根据服务端接收到IO请求的时间的先后顺序排列的;向IPC发送通知消息,通知消息用于指示服务端接收到IO请求;从工作队列中依次获取IO请求,并根据设备标识执行IO请求。在字符设备服务端设置处理IO请求的工作队列,通过异步的方式执行IO请求接收流程和IO请求处理流程,可以使得字符设备服务端接收IPC消息不受读写阻塞的影响,提升字符设备服务端的响应效率。
附图说明
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种IO请求处理方法,其特征在于,包括:异步执行IO请求接收流程和IO请求处理流程;所述IO请求接收流程包括:接收客户端通过进程间通信IPC发送的IO请求,所述IO请求中包括所述IO请求的类型和所述IO请求访问的目标字符设备的设备标识;将所述IO请求写入所述IO请求的类型对应的工作队列,所述工作队列中的所述IO请求是根据服务端接收到所述IO请求的时间的先后顺序排列的;向所述IPC发送通知消息,所述通知消息用于指示所述服务端接收到所述IO请求;所述IO请求处理流程包括:从所述工作队列中依次获取所述IO请求,并根据所述设备标识执行所述IO请求。2.根据权利要求1所述的方法,其特征在于,所述IO请求的类型包括读请求和写请求;所述将所述IO请求写入所述IO请求的类型对应的工作队列,包括:若所述IO请求为读请求,则将所述IO请求写入读工作队列;若所述IO请求为写请求,则将所述IO请求写入写工作队列。3.根据权利要求2所述的方法,其特征在于,若所述IO请求为写请求,所述根据所述设备标识执行所述IO请求,包括:获取所述写请求对应的写入数据;根据所述设备标识将所述写入数据发送至所述目标字符设备驱动端,并调用所述目标字符设备驱动端将所述写入数据写入所述目标字符设备的硬件寄存器中;向所述客户端回复第一IPC消息,所述第一IPC消息用于指示所述写请求写入完成。4.根据权利要求3所述的方法,其特征在于,所述写请求中还包括所述写入数据的数据量,所述方法还包括:获取所述目标字符设备的硬件寄存器的空闲缓存容量;若所述空闲缓存容量大于或等于所述写入数据的数据量,则将所述写入数据写入所述硬件寄存器中;若所述空闲缓存容量小于所述写入数据的数据量,则在所述硬件寄存器的缓存释放后,将所述写入数据写入所述硬件寄存器中。5.根据权利要求4所述的方法,其特征在于,若所述IO请求为读请求,所述根据所述设备标识执行所述IO请求,包括:获取所述读请求中包括的需要读取的数据量;根据所述设备标识和所述数据量从数据缓冲区获取所述目标字符设备的数据;向所述...

【专利技术属性】
技术研发人员:刘阳张明杰宁胜坤
申请(专利权)人:斑马网络技术有限公司
类型:发明
国别省市:

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

1