Marshalling (计算机科学)

✍ dations ◷ 2025-12-09 16:53:04 #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特别处理远程对象。

相关

  • 依法韦仑CADN通用名:依法韦仑依法韦仑(英文:Efavirenz)是一种抵抗人类免疫缺乏病毒的特效药物。依法韦仑的商业名称为Sustiva® 或Stocrin®,它是一种属于非核苷逆转录酶抑制物(NNRTI—non
  • 美式中国菜美式中国菜(英语:American Chinese cuisine)是在美利坚合众国创造的中国菜。其中,美式中国菜与中国菜最大的不同是烹饪和调味方式的改变。在19世纪,有中国人在美国在小村庄里开设
  • 山田浅右卫门山田浅右卫门又叫山田朝右卫门(日文浅与朝同音),是日本江户时代公家御用的刀剑试斩者,此为山田家当家代代继承的工作与名字。因为兼任刽子手的缘故,又被人家叫做斩首浅右卫门。“
  • 肉桂Cinnamomum aromaticum Nees肉桂(学名:Cinnamomum cassia,英语:Chinese Cinnamon),又称作官桂、桂心、简桂、玉桂、牡桂,为樟科常绿乔木,台湾分布于海拔0~1800米,而海拔500~1000米尤
  • 皇室蓝皇室蓝(英语:Royal blue),又称品蓝色,即略带红色的深蓝色。在宗教上,皇室蓝是皇族欢迎来临皇帝的颜色。皇室蓝可能象征宣布耶稣诞生的繁星夜空。
  • 李俊民李俊民可以指:
  • 皆大欢喜 (话剧)皆大欢喜(As You Like It)是英国剧作家威廉·莎士比亚于1599年创作的一套喜剧。话剧背景是一个森林,而男女主角最后有一个皆大欢喜的结局。已故的罗兰爵士有三个儿子,大儿子奥利
  • 段友兰段友兰,江西省吉安府永新县人,清朝政治人物、进士出身。光绪十五年(1889年),参加光绪己丑科殿试,登进士二甲69名。同年五月,改翰林院庶吉士。光绪十六年四月,散馆,授翰林院编修。
  • 李偲菘李偲菘(英语:Peter Lee Shih Shiong,1966年7月24日-),新加坡音乐制作人、作曲家、歌手,与其双生儿兄长李伟菘合作制作多张专辑,创作了许多脍炙人口的歌曲。多次合作过的著名歌手包括叶蒨文、张学友、陈慧娴、那英、梁咏琪、郭富城、李克勤、梁汉文、苏永康、彭羚、彭佳慧、陈晓东、蔡依林、孙燕姿、黄义达、萧敬腾、李佳薇等。1995 向云 2001 李伟菘、李偲菘1996 白言 2002 陈澍承1997 黄文永 2003 谢韶光1998 郑惠玉 2018 陈建彬1999 梁智强 20
  • 克劳斯·巴尔肯霍尔克劳斯·巴尔肯霍尔(德语:Klaus Balkenhol,1939年12月6日-),德国男子马术运动员。他曾代表德国参加1992年和1996年夏季奥林匹克运动会马术比赛,共获得二枚金牌和一枚铜牌。