一种IO设备的高速存储方法及系统技术方案

技术编号:7612035 阅读:234 留言:0更新日期:2012-07-26 18:35
本发明专利技术公开了一种IO设备的高速存储方法,包括:利用实时模块获取外部系统发送的数据,并将该数据发送至共享内存中;判断共享内存中是否存在数据;当共享内存中存在数据时,则将共享内存中存储的数据依次发送至IO设备中。在本发明专利技术提供的方案中,当实时模块获取到外部系统的数据时,可以马上将该数据发送至共享内存中,然后再将共享内存中的数据依次发送至IO设备中,与现有技术相比,本发明专利技术中的实时模块不存在等待的情况,能够满足实时传送数据的要求,而且,本发明专利技术的每个实时模块都不需要单独的IO缓存,而是直接将数据发送至共享内存中,所以节省了大量的内存空间。因此,本发明专利技术提供的方案不仅能够高速的存储数据,而且节约内存空间。

【技术实现步骤摘要】

本专利技术涉及IO设备
,更具体的说,涉及IO设备的高速存储方法及系统
技术介绍
实时系统是一种对外部系统请求做出快速响应的系统,当实时系统超出一定时间没有响应,则认为实时系统超时,请求失败。实时系统应用在众多领域中,例如,应用在电信计费系统或银行系统等。实时系统中可以有非实时模块和实时模块。非实时模块对一些没有纳入响应内容中的数据进行处理,并没有规定响应时间。而实时模块是实时系统中处理请求生成响应的核心。在实时系统中,对请求响应时间有很严格要求,若系统响应超时,则会严重影响用户体验。在电信计费系统中,超时会使通话中断;在银行系统中,超时会使交易失败。所以提闻实时系统的响应时间,对服务提供商提闻服务品质有极大帮助。当大量数据输出到IO设备时,可能会造成一定的延时甚至阻塞。请参见图I所示, 例如外部系统2同时向实时系统I的多个实时模块11发送数据,每个实时模块11将获取到的数据放入IO缓存12中排队,等待向IO设备13发送数据。由于IO设备13同一时间只能接收一个实时模块11发送的数据,所以如果同一时间有很多个实时模块11都向IO设备13发送数据,那么很多个实时模块11都需要排队等候,如果实时模块11的排队时间过长,则严重影响了实时模块11的性能。在现有技术中,采取增大IO缓存12的方法,使得数据在内存里能先多堆积一点, 再一次过输出到IO设备。这种方法可减少输出次数,对提高效率有一定作用。在对现有技术的研究和实践过程中,本专利技术的专利技术人发现现有技术存在以下问题I、当IO缓存12满了时,实时模块11需要将数据从IO缓存12输出到IO设备13 上。但是,当实时系统I的IO设备13处于繁忙时,则实时模块11很多时间放在等待IO资源上。2、当设置较大的IO缓存12时,意味着实时模块11隔一段较长的时间才真正执行输出到IO设备13的动作。若实时系统I是需要数据能实时输出到IO设备13,则此总方法是不能满足的。3、由于每个进程的IO缓存12是独立的,当每个实时模块11都设置比较大的IO 缓存12时,可能会造成大量内存浪费。因此,如何制作一种解决上述问题的方法,成为目前最需要解决的问题。
技术实现思路
有鉴于此,本专利技术的设计目的在于,提供了一种IO设备的高速存储方法及系统, 以实现实时系统中的实时模块能够快速存储数据,无需等待,而且能够避免内存的浪费。本专利技术实施例是这样实现的一种IO设备的高速存储方法,包括利用实时模块获取外部系统发送的数据,并将该数据发送至共享内存中;判断所述共享内存中是否存在数据;当所述共享内存中存在数据时,则将所述共享内存中存储的数据依次发送至所述 IO设备中。优选地,在上述的IO设备的高速存储方法中,通过计数器的数值来判断所述共享内存中是否存在数据。优选地,在上述的IO设备的高速存储方法中,所述计数器的初始数值为零。优选地,在上述的IO设备的高速存储方法中,在所述实时模块向所述共享内存发送一份数据以后,则在所述计数器中加I;在将所述共享内存中存储的数据发送至所述IO设备中以后,则在所述计数器中减I ;当所述计数器的数值大于零时,则继续获取所述共享内存中存储的数据并将该数据发送至IO设备中。一种IO设备的高速存储系统,包括实时模块、共享内存、IO模块、计数器和IO设备;其中,所述实时模块、所述共享内存、所述IO模块和所述IO设备依次连接,所述计数器分别与所述实时模块和所述IO模块相连接;所述实时模块,用于获取外部系统发送的数据,并将该数据发送至所述共享内存中;所述共享内存,用于存储所述数据;所述IO模块,用于判断所述共享内存中是否存在数据,当所述共享内存中存在数据时,则将所述共享内存中存储的数据发送至所述IO设备中。与现有技术相比,本实施例提供的技术方案具有以下优点和特点在本专利技术提供的方案中,当实时模块获取到外部系统的数据时,可以马上将该数据发送至共享内存中,然后再将共享内存中的数据依次发送至IO设备中,与现有技术相比,本专利技术中的实时模块不存在等待的情况,能够满足实时传送数据的要求,而且,本专利技术的每个实时模块都不需要单独的IO缓存,而是直接将数据发送至共享内存中,所以节省了大量的内存空间。因此,本专利技术提供的方案不仅能够高速的存储数据,而且节约内存空间。附图说明为了更清楚地说明本专利技术或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图I为本专利技术所提供的现有实时系统的模块图;图2为本专利技术所提供的IO设备的高速存储方法的流程图;图3为本专利技术所提供的IO设备的高速存储系统的模块图。具体实施例方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本专利技术实施例提供了一种IO设备的高速存储方法,以实现高速存储数据,并且节约内存空间。该方法包括利用实时模块获取外部系统发送的数据,并将该数据发送至共享内存中;判断所述共享内存中是否存在数据;当所述共享内存中存在数据时,则将所述共享内存中存储的数据依次发送至所述IO设备中。由于上述IO设备的高速存储方法的具体实现存在多种方式,下面通过具体实施例进行详细说明请参见图2所示,图2所示的为本专利技术提供的一种IO设备的高速存储方法,该方法包括步骤S11、利用实时模块获取外部系统发送的数据,并将该数据发送至共享内存中;步骤S12、判断所述共享内存中是否存在数据;步骤S13、当所述共享内存中存在数据时,则将所述共享内存中存储的数据依次发送至所述IO设备中。在图2所示的实施例中,当实时模块获取到外部系统的数据时,可以马上将该数据发送至共享内存中,然后再将共享内存中的数据依次发送至IO设备中,与现有技术相比,本专利技术中的实时模块不存在等待的情况,能够满足实时传送数据的要求,而且,本专利技术的每个实时模块都不需要单独的IO缓存,而是直接将数据发送至共享内存中,所以节省了大量的内存空间。因此,本专利技术提供的方案不仅能够高速的存储数据,而且节约内存空间。下面通过具体事例来详细阐述本专利技术提供的IO设备的高速存储方法首先,利用实时模块获取外部系统发送的数据,实时模块将该数据发送至共享内存中,实时模块每发一份数据都要在计数器中加1,计数器的初始值为O。其中,实时系统大部分都是有多个实时模块组成的,所以有可能出现多个实时模块同一时间向共享内存发送数据的情况,但每个实时模块在向共享内存发送一份数据以后,都要在计数器中执行加I 操作。假设,有三个实时模块向共享内存发送数据,且每个实时模块均发送一份数据,那么就在计数器中执行加3操作。其次,通过计数器的数值来判断所述共享内存中是否存在数据,如果计数器的数值为零时,则不做任何操作,那么说明共享内存中已经没有需要传送的数据。如果所述计数器的数值大于零时,则继续获取所述共享内存中存储的数据并将该数据发送至IO设备中, 每向IO设备中发送一个数据以后,均需要在计数器中执行本文档来自技高网
...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:崔启文周文广
申请(专利权)人:广州从兴电子开发有限公司
类型:发明
国别省市:

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

1
相关领域技术