用于选择同步或异步进程间通信机制的系统和方法_2

文档序号:8361293阅读:来源:国知局
户。在用户计算机上运行的第二进程150可以持续等待来自在股市服务器上工作 的进程的数据的发送,并且一旦这类数据自第一进程110到达,就立刻将其显示在用户的 浏览器中,所述数据诸如关于证券的价格报价的信息。套接字和信道可以用作上述进程之 间的进程间通彳目方法。
[0022] 用于提供进程间通信的模块120可以接收来自第一进程110的、传输数据给第二 进程150的请求。随后,用于提供进程间通信的模块120可以将请求的数据特性(诸如第 一和第二进程的标识符、被传输的数据的类型和数量(volume)、进程将利用其工作的资源 的标识符等等)发送给分析模块130,用于就将同步或异步中哪种类型的进程间通信用于 从第一进程110到第二进程150的数据传输做出决定。随后,在分析模块130完成其工作 之后,可以从后者获得关于从第一进程110到第二进程150的数据传输中所需使用的进程 间通信的类型的信息。随后根据所获得的结果,可以以所选择类型的进程间通信的方式实 施数据到第二进程150的传输。
[0023] 分析模块130可以配置为接收来自用于提供进程间通信的模块120的请求以确 定用于当前任务的进程间通信的最佳类型,进行分析以确定将以最高效率实施从第一进程 110到第二进程150的数据传输任务的同步或异步类型,所述最高效率例如执行请求的时 间最短、资源(诸如工作存储器、处理器时间、网络吞吐量、文件、信息介质等等)的停滞时 间最短、和对于操作系统的其他进程来说这些特性的增加最小,以及将分析的结果呈现给 用于提供进程间通信的模块120。
[0024] 分析模块130可以从用于提供进程间通信的模块120接收请求,以实施分析来确 定第一进程110向第二进程150传输数据将采用的进程间通信的类型,并且就同步或异步 中哪种类型对于数据传输效率会更高做出决定,其中效率意味着执行请求的时间最短、资 源(诸如硬盘、工作存储器等)的停滞时间最短、和对于操作系统的其他进程来说这些特征 的增加最小。之后,基于在来自用于提供进程间通信的模块120的请求中所获得的数据(诸 如第一进程110和第二进程150的标识符、被传输的数据的类型和数量、进程将利用其工作 的资源的标识符等),分析模块130可以从用于获得关于所利用的资源的数据的模块140接 收关于要由进程110和150所使用的资源的状态的数据,其取决于资源的类型而包括这样 的参数,诸如之前放置于高速缓存中的信息的存在(为了减轻资源的工作负载并加快利用 其工作的速度,最近的或经常调用的、利用资源的操作的结果被保留在工作存储器中或硬 盘上并在下一次从资源请求这样的数据时立即取出给客户,所述结果诸如所请求文件的内 容或者已执行的SQL请求的结果)、资源访问队列的状态即繁忙或空闲等。基于对所获得 的数据的分析,分析模块130可以就同步或异步中哪种类型的进程间通信是优选的做出决 定。随后可以将该分析结果发送给用于提供进程间通信的模块120用于进一步工作。
[0025] 用于获得关于所利用的资源的数据的模块140可以配置为根据请求和基于由分 析模块130所提供的数据来输出关于资源的状态及性质(诸如使用资源的进程队列的大 小、之前放置于高速缓存中的所需信息的存在、空闲工作存储器的数量、硬盘上的空闲空间 的数量等)的数据(诸如第一进程110和第二进程150的标识符、被传输的数据的类型和 数量、进程将利用其工作的资源的标识符等),该数据从资源获得或从服务于资源的工作存 储器模块(诸如硬盘驱动器)获得。
[0026] 作为用于选择进程间通信的系统的工作的示例,可能存在一个进程希望从硬盘读 取文件的情形。因为磁盘可能被来自其他进程的调用所占用,且在磁盘上找到文件也可能 耗费时间等,所以该操作需要花费多少时间事先难以知晓。故此,开发者可以使用异步类型 的、从磁盘对数据进行的读取,用于执行其算法。当分析模块130从用于提供进程间通信的 模块120接收确定同步或异步类型的进程间通信中使用哪种更加优选的请求时,其可以从 用于获得关于所利用的资源的数据的模块140(此例中为硬盘)请求关于其负载状况(利 用资源工作的进程队列的大小)及在高速缓存中是否存在所需数据(即所需数据是否已经 读入并保存于存储器的任一点处)的信息。如果在存储器中已经存在所需信息或者硬盘处 于空闲,则分析模块130可以向用于提供进程间通信的模块120报告从硬盘读取文件的操 作可以同步进行(因为其相比异步读取操作更快),否则操作可以异步实施。
[0027] 作为在同步和异步进程间通信之间进行抉择的另一个示例,可以考虑SQL请求在 数据库中的执行。进程可以向数据库发送提供关于某一标准的数据的SQL请求。因为用于 该操作的时间可能相当长,所以开发者可以使用异步类型的请求。分析模块130可以从用 于获得关于所利用的资源的数据的模块140(此例中为数据库)请求关于缓存的信息(即 是否相似的SQL请求之前已经执行以及是否已经为其保存数据)。如果已经进行了缓存,即 数据可以快速获得,则SQL请求可以被同步执行。
[0028] 图2示出了用于选择同步或异步进程间通信的示范性方法的流程图。在步骤210, 来自第一进程110的、用于通过进程间通信方法之一传输数据的请求可以到达分析模块 130的输入端处。随后,在步骤220,可以确定数据传输方法-同步或异步。如果请求的进程 间通信方法为同步,则在步骤250第二进程可以通过同步进程间通信方法从第一进程接收 数据。如果请求的进程间通信方法为异步,则在步骤230可以确定是否存在通过同步类型 的进程间通信的给定请求的实现方案。如果对于用于进程间通信的异步请求来说不存在同 步版本,则在步骤260中第二进程可以通过异步进程间通信方法从第一进程接收数据。如 果对于用于进程间通信的异步请求来说存在同步版本,则在步骤240中可以基于要利用的 资源的轮询结果来对利用进程间通信的同步版本的可能性进行计算。如果发现用于进程间 通信的请求的同步版本是可取的,则在步骤250中第二进程可以通过同步进程间通信方法 从第一进程接收数据,否则在步骤260中第二进程可以通过异步进程间通信方法从第一进 程接收数据。
[0029] 图3描绘了可以用来实现所公开的用于选择同步或异步进程间通信的系统和方 法的计算机系统5的一个示范性方面。计算机系统5可以包括但不限于个人计算机、笔记 本、平板计算机、智能电话、网络服务器、路由器或其他类型的处理设备。如所示的,计算机 系统5可以包括通过系统总线10连接的一个或多个硬件处理器15、存储器20、一个或多个 硬盘驱动器30、光驱35、串行端口 40、图形卡45、音频卡50和网卡55。系统总线10可以是 数种类型的总线结构中的任何一种,包括使用各种已知总线架构中的任何一个的存储器总 线或存储器控制器、外围总线和局部总线。处理器15可以包括一个或多个英特尔?酷睿 2四核2. 33GHz处理器或其他类型的微处理器。
[0030] 系统存储器20可以包括只读存储器(ROM) 21和随机存取存储器(RAM) 23。存储 器20可以以DRAM(动态RAM)、EPROM、EEPR0M、闪存或其他类型的存储器架构来实现。ROM 21存储基本输入/输出系统22 (BIOS),包含有助于诸如在启动期间在计算机系统5的模块 之间转移信息的基本例程。RAM23存储操作系统24 (OS),诸如Windows_?
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1