用于访问共享存储器中的数据的机制和方法_3

文档序号:9826154阅读:来源:国知局
在客户端40请求事务时提供执行主题32的可访问的数据上的事务的每个客户端40访问最新数据48。如果最新数据在现有客户端40事务期间被识另IJ,则那个客户端40将在所请求事务时完成最新数据48上的事务。以另一种方式陈述,最新数据48仅可在事务的请求时被确认或保证,不在事务完成时或在其期间。
[0057]上述机制可仅使用机器汇编语言事务来操作,无需复制超过机器汇编语言的设计等级的数据,例如无需复制操作系统等级的数据(例如“零复制”)。上述实施例的技术效果是零复制操作通过使用主动访问指针42、52将客户端40和/或服务器50指引到包含最新数据48的相应的缓冲器36来实现,使得最新数据48从通过其他客户端40和/或服务器50的访问从未“锁定”或“阻塞”。另外,机器汇编语言的使用考虑指针的“原子交换”操作,其中在操作的单个原子循环中完成更新,并且因此,由于其他更新不能比原子交换短的操作循环中完成,不能被对主动访问指针的其他更新中断。
[0058]通过利用机器汇编语言指令和基础数据结构(例如单链接列表。基础指针),机制在共享存储器22中使用零复制数据交换提供至少一个服务器50和至少一个客户端40之间的异步过程间数据通信,从而考虑用于可访问数据的“锁定解除”或“阻塞解除”访问,无需过程优先权的复杂配置或“优先权逆转”现象,其中预访问更低优先权过程锁定数据,并且即使在更高优先权过程请求访问时也不“释放”它用于访问。实际上,由于使用机器指令的操作倾向“到数据的第一个获胜”,所以更高优先权过程可常常首先执行其操作。
[0059]本发明的实施例可通过提供将应用编程接口(API)编程以经由API访问操作系统等级(或应用等级等)的机制来进一步利用上述机制。技术效果是上述实施例提供零复制方法以防止数据锁定、数据阻塞和/或优先权逆转。
[0060]可在上面的实施例中实现的附加优点是上述实施例防止由非机器语言等级的数据复制尝试引起的不良的系统性能。数据复制尝试可使大文件的读取和/或写入请求花费很长一段时间。通过利用指针和指针交换,在提供对所有需要对数据的访问的组成部分的访问时,能够避免附加的复制。上述实施例的另一个优点包含用于过写缓冲器中旧数据的内置机制,并且因此无需任何类型的“垃圾收集”数据管理方案。此外,从一个服务器到一个或多个客户端的典型数据共享可以通过创建全局数据存储并且使用例如操作系统等级的信号(即,访问控制值,例如锁定/未锁定指示符)、任何其他的互斥或锁定数据保护(例如,数据中断等)来保护它、并且随后复制数据来实现,其依照处理时间可以是非常昂贵,特别是数据存储大时。如本文所描述,这考虑更有效以及更快、锁定释放访问操作。
[0061]可在上述实施例中实现的其他优点包含主题设计具有保持过程松散耦合的灵活性、几乎无需协调并且无需“分级启动”(即,任何时候过程、客户端和/或服务器都能够在线)。另外,与不同的复制方法相比较,上述API的实现可导致系统开发的开发成本减少,以及类似硬件的性能容限增加。
[0062]在还未描述的范围内,各种实施例的不同特征及结构如需要可彼此结合使用。不意味着将实施例的全部中可能未图示的那一个特征解释为其可能没有,只是为描述简洁而这样做。因此,不同实施例的各种特征如需要可混和以及匹配,以形成新的实施例,无论是否明确描述新的实施例。本公开涵盖了本文所描述的特征的全部组合或置换。
[0063]本书面描述使用示例公开本发明,包含最佳模式,并且还使本领域技术人员能够实施本发明,包含制作和使用任何装置或系统,并且执行任何合并的方法。本发明可取得专利的范围由权利要求限定,并且可包含本领域技术人员想到的其它示例。如果这类其他的示例具有与权利要求的文字语言没有区别的结构元件,或如果它们包含与权利要求的文字语言无实质差异的等同结构元件,则其旨在处于权利要求的范围内。
[0064]附图标记说明
[0065]18线路替换单元(LRU)
[0066]20服务器
[0067]22存储器
[0068]24数据通信网络
[0069]26 LRU过程
[0070]28服务器过程
[0071]30数据分配
[0072]32 主题
[0073]34固定地址
[0074]36多个缓冲器
[0075]38主动访问指针导向器
[0076]40客户端
[0077]42主动访问指针
[0078]44占用的缓冲器
[0079]46未占用的缓冲器
[0080]48最新数据缓冲器[0081 ]50服务器
[0082]52主动访问指针
[0083]54第一客户端
[0084]56第二客户端
[0085]58第一缓冲器
[0086]60第二缓冲器
[0087]62第三客户端
[0088]64第一通信
[0089]66第三缓冲器
[0090]68第二通信
[0091]70第四缓冲器
[0092]72第三通信
[0093]74第四通信。
【主权项】
1.一种用于由至少一个客户端(40)访问共享存储器(22)中的数据的机制,包括: 所述共享存储器(22)中的数据到至少一个主题(32)中的分配,所述分配通过预定的固定地址(34)是可访问的; 所述至少一个主题(32)具有多个缓冲器(36),缓冲器(36)的数量等于访问所述至少一个主题(32)的客户端(40)的数量再针对访问所述至少一个主题(32)的每个服务器(50)加-* * 每个客户端(40)和每个服务器(50)具有主动访问指针(42,52);以及 主动访问指针导向器(38),基于来自客户端(40)或服务器(50)的事务请求,将主动访问指针(42,52)指引到缓冲器(36); 其中,一个缓冲器(36)常常包含所述共享存储器(22)中的最新数据(48),并且至少一个缓冲器(36)常常可用来访问所述共享存储器(22)中数据;以及 其中由所述主动访问指针导向器(38)仅使用机器汇编语言事务在缓冲器(36)之间分配所述主动访问指针(42,52),而无需复制在操作系统级别的所述数据。2.如权利要求1所述的机制,其中多个主题(32)排列在所述共享存储器(22)中。3.如权利要求1所述的机制,其中在所述共享存储器(22)的初始化期间,预定义所述至少一个主题(32)以及缓冲器(36)的数量。4.如权利要求1所述的机制,其中依据访问所述至少一个主题(32)的客户端(40)和服务器(50)的集体的数量,在运行时间期间限定所述至少一个主题(32)或缓冲器(36)的所述数量中的至少一个。5.—种用于由至少一个客户端(40)访问共享存储器(22)中数据的方法,所述方法包括: 将所述共享存储器(22)中的数据分配到至少一个主题(32); 指派单个预定地址(34)以访问每个至少一个主题(32); 为每个至少一个主题(32)分配多个缓冲器(36),其等于访问所述至少一个主题(32)的客户端(40)的数量再针对访问所述至少一个主题(32)的每个服务器(50)加二;以及 通过将用于每个相应的客户端(40)或服务器(50)的主动访问指针(42,52)分配给缓冲器(36)来响应来自客户端(40)或服务器(50)中至少一个的事务请求; 其中,经由所述缓冲器(36)访问所述数据,而无需复制在操作系统等级的所述数据。6.如权利要求5所述的方法,其中经由所述缓冲器(36)访问所述数据防止数据锁定。7.如权利要求5所述的方法,其中,所述将所述数据分配到至少一个主题(32)中、所述指派单个预定地址(34)以及所述为每个至少一个主题(32)分配所述多个缓冲器(36)发生在所述共享存储器(22)的初始化期间。8.如权利要求5所述的方法,其中所述将所述数据分配到至少一个主题(32)中或所述为每个至少一个主题(32)分配所述多个缓冲器(36)中的至少一个基于访问所述至少一个主题(32)的客户端(40)和服务器(50)的所述集体的数量在运行时间期间发生。9.如权利要求5所述的方法,其中所述响应事务请求进一步包括将用于每个相应的客户端(40)的所述主动访问指针(42)指引到包括所述共享存储器(22)中的最新数据(48)的缓冲器(36)。10.如权利要求9所述的方法,进一步包括,响应于完成的事务请求,更新将用于每个相应的客户端(40)或服务器(50)的所述主动访问指针(42,52)指引到包括所述最新数据(48)的不同的缓冲器(36)。
【专利摘要】本发明题为用于访问共享存储器中的数据的机制和方法。一种用于由至少一个客户端(40)访问共享存储器(22)中数据的机制和方法,包含所述共享存储器(22)中的数据的分配,存储器(22)配置在多个缓冲器(36),并且由客户端(40)或服务器(50)访问数据,而无需锁定或限制对数据的访问。
【IPC分类】G06F9/54
【公开号】CN105589754
【申请号】CN201510917065
【发明人】G·R·赛克斯, C·R·德克
【申请人】通用电气航空系统有限责任公司
【公开日】2016年5月18日
【申请日】2015年9月15日
【公告号】CA2902844A1, US20160080491
当前第3页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1