一种io设备的高速存储方法及系统的制作方法

文档序号:6363229阅读:223来源:国知局
专利名称:一种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设备中发送一个数据以后,均需要在计数器中执行减I操作。在上述步骤中,如果计数器中的值大于零,则说明共享内存中还有数据需要发送至IO设备中。另外,计数器可以是操作系统提供的信号量、管道、套接字、消息队列等。在本实施例中,实时模块进程不受IO设备的速度影响,当IO设备资源超负荷时, 实时模块都能顺畅的运行,并且,实时模块可以获得更大的内存作为缓存;而且,内存分配的更加合理,多个实时模块进程统一在一块共享内存中申请资源,当某个进程数据突然增大时,将动态的获得多内存空间备用,数据输出减少时,将动态减少占用的内存空间。,样可以按需分配,使得整个系统占用更少的内存资源。因为实时模块没有采用IO缓存,每次读取到数据后都立即输出到IO设备,这一过程可以视为一个实时的,即能提高数据真正输出 IO设备的速度。另外,本实施例是通过计数器的方式来判断共享内存中是否存在数据,当然,还可以通过其他方式来实现此过程,在此不再一一赘述。请参见图3所不,图3所不的为一种IO设备的闻速存储系统3,该闻速存储系统3 包括实时模块31、共享内存32、IO模块34、计数器33和IO设备35 ;其中,所述实时模块 31、所述共享内存32、所述IO模块34和所述IO设备35依次连接,所述计数器33分别与所述实时模块31和所述IO模块34相连接;所述实时模块31,用于获取外部系统4发送的数据,并将该数据发送至所述共享内存32中;所述共享内存32,用于存储所述数据;所述IO 模块34,用于判断所述共享内存32中是否存在数据,当所述共享内存32中存在数据时,则将所述共享内存32中存储的数据发送至所述IO设备35中。需要说明的是,图2至图3所示的实施例只是本发明所介绍的优选实施例,本领域技术人员在此基础上,完全可以设计出更多的实施例,因此不在此处赘述。本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。本领域技术人员可以理解,可以使用许多不同的工艺和技术中的任意一种来表示信息、消息和信号。例如,上述说明中提到过的消息、信息都可以表示为电压、电流、电磁波、 磁场或磁性粒子、光场或以上任意组合。专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
权利要求
1.一种IO设备的高速存储方法,其特征在于,包括利用实时模块获取外部系统发送的数据,并将该数据发送至共享内存中;判断所述共享内存中是否存在数据;当所述共享内存中存在数据时,则将所述共享内存中存储的数据依次发送至所述IO 设备中。
2.根据权利要求I所述的IO设备的高速存储方法,其特征在于,通过计数器的数值来判断所述共享内存中是否存在数据。
3.根据权利要求2所述的IO设备的高速存储方法,其特征在于,所述计数器的初始数值为零。
4.根据权利要求3所述的IO设备的高速存储方法,其特征在于,在所述实时模块向所述共享内存发送一份数据以后,则在所述计数器中加I ;在将所述共享内存中存储的数据发送至所述IO设备中以后,则在所述计数器中减I ;当所述计数器的数值大于零时,则继续获取所述共享内存中存储的数据并将该数据发送至IO设备中。
5.一种IO设备的高速存储系统,其特征在于,包括实时模块、共享内存、IO模块、计数器和IO设备;其中,所述实时模块、所述共享内存、所述IO模块和所述IO设备依次连接,所述计数器分别与所述实时模块和所述IO模块相连接;所述实时模块,用于获取外部系统发送的数据,并将该数据发送至所述共享内存中;所述共享内存,用于存储所述数据;所述IO模块,用于判断所述共享内存中是否存在数据,当所述共享内存中存在数据时,则将所述共享内存中存储的数据发送至所述IO设备中。
全文摘要
本发明公开了一种IO设备的高速存储方法,包括利用实时模块获取外部系统发送的数据,并将该数据发送至共享内存中;判断共享内存中是否存在数据;当共享内存中存在数据时,则将共享内存中存储的数据依次发送至IO设备中。在本发明提供的方案中,当实时模块获取到外部系统的数据时,可以马上将该数据发送至共享内存中,然后再将共享内存中的数据依次发送至IO设备中,与现有技术相比,本发明中的实时模块不存在等待的情况,能够满足实时传送数据的要求,而且,本发明的每个实时模块都不需要单独的IO缓存,而是直接将数据发送至共享内存中,所以节省了大量的内存空间。因此,本发明提供的方案不仅能够高速的存储数据,而且节约内存空间。
文档编号G06F3/06GK102609217SQ20121001170
公开日2012年7月25日 申请日期2012年1月13日 优先权日2012年1月13日
发明者周文广, 崔启文 申请人:广州从兴电子开发有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1