Marshalling (计算机科学)

✍ dations ◷ 2025-11-29 07:10:38 #Marshalling (计算机科学)

marshalling可译作集结、结集、编码、编组、编集、安整、数据打包、列集等,是计算机科学中把一个对象的内存表示变换为适合存储或发送的数据格式的过程。典型用于数据必须在一个程序的两个部分之间移动,或者必须从一个程序移动到另一个程序。Marshalling类似于序列化,可用于一个对象与一个远程对象通信。逆过程被称作unmarshalling。

Marshalling被用于实现不同的远程过程调用(RPC)机制,这必须用到进程间的数据传输。stub必须把程序内存空间的本地格式的数据转换为网络数据表示(英语:Network Data Representation)格式(NDR,常称为数据的线上格式),这种转换被称为marshaling数据。当客户端或服务器接受数据,必须从NDR格式把数据转换为程序的本地格式,这称为unmarshaling数据。

Microsoft的组件对象模型(COM)中,当跨COM的套间(apartment)传递接口指针时,接口指针必须被marshalled。在.NET Framework下,在非受管(unmanaged)类型与CLR类型间,例如P/Invoke过程,必须做marshalling。例如,C#程序调用C语言写的DLL,其中函数参数使用字符串,就需要做marshalling。

使用Mozilla应用程序框架的XPCOM的脚本或应用程序,广泛使用marshalling。

Microsoft Windows系列操作系统,Direct3D设备驱动程序是内核态驱动程序。DirectX运行时处理用户态API。用户态执行系统调用来执行内核态操作,需要CPU切换为内核态,这将耗费微秒级的时间来完成。在此期间,CPU不能执行任何操作。为优化性能,必须极小化CPU这种模式切换。 Linux OpenGL驱动程序分为两部分:内核驱动与用户空间驱动。用户空间驱动把所有OpenGL命令翻译为机器码提交给GPU。为减少系统调用,用户空间驱动实现marshalling。当GPU的命令缓冲区(command buffer)装满了绘图数据,API简单地把请求绘制的调用存放在一个临时缓冲区;当命令缓冲区接近为空,执行内核模式切换一次性增加被存储的命令。

序列化一个对象意味着把它的状态转化为字节流,使这个字节流能反向转化为该对象的一个副本。

术语“marshal”被Python标准库认为与“序列化”同义。 但与Java相关的RFC 2713不认为二者是同义:

"marshal"一个对象意味着记录下它的状态与codebase(s)在这种方式,以便当这个marshal对象在被"unmarshalled"时,可以获得最初代码的一个副本,可能会自动装入这个对象的类定义。可以marshal任何能被序列化或远程(即实现java.rmi.Remote接口)。Marshalling类似序列化,除了marshalling也记录codebases。Marshalling不同于序列化是marshalling特别处理远程对象。

相关

  • 来苏糖来苏糖是一种戊醛糖,在自然界罕见。例如,细菌糖脂质的成分就含有来苏糖。果聚糖:菊粉 · 果聚糖β2→6甘露聚糖:低聚木糖:半乳聚糖:
  • 伊拉克总统伊拉克总统是伊拉克的国家元首。1958年伊拉克推翻君主立宪制后建立共和国,并开始设立总统一职。在绝大多数历史时期,伊拉克的总统职权都被专制独裁者所垄断,没有一个明确的宪政
  • 花东纵谷平原花东纵谷是位于台湾东部的一个纵谷,因横跨花莲、台东两县而得名,也是上述两县的精华地带所在。有时因地理位置而另称东台纵谷,在台湾日治时期也被称为中仙道平野或中仙道。其由
  • 豸部豸部,为汉字索引中的部首之一,康熙字典214个部首中的第一百五十三个(七划的则为第七个)。就繁体和简体中文中,豸部归于七划部首。豸部只以左方为部字。且无其他部首可用者将部首
  • 加拿大奥运广播媒体联盟加拿大奥运广播媒体联盟(英语:Canada's Olympic Broadcast Media Consortium)于2007年由加拿大广播媒体集团贝尔传媒和罗杰斯传媒成立,为两家集团旗下的广播媒体制作2010温哥华
  • 长葛市中医院长葛市中医院是一家位于河南长葛市的二级甲等中医院,1986年9月在原城关镇卫生院的基础上改建而成,地址处于长葛市建设路南段。医院占地面积1.02万平米,建筑面积7793平米(其中业
  • 史蒂芬·艾弗里史蒂芬·艾弗里(英语:Steven Avery,1962年7月9日-)是一位出身自威斯康辛州马尼托沃克郡的美国人,曾因被怀疑为性侵犯案件被定罪并入监服刑18年,但DNA分析结果显示嫌犯另有他人,让此
  • 中央军委后勤保障部采购管理局中国人民解放军军徽中央军委后勤保障部采购管理局,位于北京市,是中央军委后勤保障部下属局,负责该部采购管理工作。在深化国防和军队改革中,2016年1月中国人民解放军总后勤部撤
  • 柴田良树柴田良树(日语:柴田よしき ,1959年10月14日-),是一名日本推理小说作家。柴田良树于青山学院大学毕业,曾于医院及服装公司工作,长期居住于京都,近年搬到神奈川居住。柴田良树于1995年以《RIKO—女神之永远》夺得第15届横沟正史奖而出道,该作品更被改编成电影于日本上映。RIKOシリーズの登场人物・山内练が络むスピンオフ作品猫探侦正太郎シリーズの登场人物・浅间寺龙之介の教え子が主人公のスピンオフ作品RIKOシリーズの登场人物・麻生が主人公のスピンオフ作品
  • 贝杰拉克战役贝杰拉克战役(英语:Battle of Bergerac)是英法百年战争期间的一场战役,发生在1345年8月下旬,由英格兰─加斯科涅联军对上防守贝杰拉克的法军。1345年英王爱德华三世发动三路军队进攻法兰西王国,加斯科涅战线指挥官德比伯爵葛洛斯蒙的亨利在8月抵达加斯科涅地区领导加斯科涅战役,在这场战役突袭法军指挥官亨利·德·蒙蒂尼(英语:Henri de Montigny)并击败大批法军。法军伤亡惨重,并失去贝杰拉克这一重要战略城镇。这也是百年战争开战以来英军第一场陆上重大胜利,与不久后发生的欧贝罗什战役