Marshalling (计算机科学)

✍ dations ◷ 2025-07-02 09:50:44 #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特别处理远程对象。

相关

  • 维管束植物维管植物(或作维管束植物)是指具有维管组织的植物,这些组织中可将液体作快速的流动,在体内运输水分和养分,它包括蕨类植物和种子植物。种子植物又分为裸子植物和被子植物。维管植
  • 皮耶罗二世·德·美第奇皮耶罗·迪·洛伦佐·德·美第奇(意大利语:Piero di Lorenzo de' Medici;1472年2月15日-1503年12月28日)被称为“不幸者”,1492年当选佛罗伦萨正义旗手,直到1494年流亡。生于佛罗伦
  • 浮梁县浮梁县是中国江西省景德镇市的所辖的一个县,总面积为2867平方公里,2010年常住人口为303563人。唐武德四年(621年)析鄱阳县东域置新平县,后省入鄱阳县。开元四年(716年)以新平故地置
  • 单声《单声》是由马来西亚歌手蔡忆雯的首张迷你专辑(Ep),于2011年11月10日发行
  • 劳卡劳卡(芬兰语:Laukaa)是芬兰中芬兰区的市镇,位于该国中南部,始建于1593年,面积826平方公里,该镇有129座湖泊,2013年人口18,478,人口密度为每平方公里28.49人。坐标:62°25′N 25°57′E
  • 高姗高姗(1991年11月30日-),汉族,中国独立创作歌手,毕业于北京大学,及后赴美国纽约大学继续深造。
  • 火狐狸 (电影)火狐狸,是一部于1982年上映的美国科幻惊悚片,由克林·伊斯威特执导及主演。内容改编自克瑞格·汤玛士Craig Thomas撰写的同名小说。尽管电影背景设定在俄国,但因冷战环境下不可
  • 在日越南人在日越南人(日语:在日ベトナム人 ;越南语:Người Việt tại Nhật Bản/.mw-parser-output .han-nom{font-family:"Nom Na Tong","Han-Nom Gothic","Han-Nom Ming","HAN NOM A
  • .moe域名 .moe 是互联网域名系统中的一个顶级域名(TLD)。它的名称来自于日语俚语“萌え”(萌),扎根于日本御宅族文化,意味着这个顶级域名主要为御宅族、动画爱好者、工作者、创作者、商务等服务。Interlink是这个域名的域名注册局。2012年,日本Interlink开始探讨 .mw-parser-output .monospaced{font-family:"Menlo","Consolas","Liberation Mono","Courier New",monospace}.moe 作为顶级域名的可
  • 快乐男声快乐男声是中国大陆湖南卫视举办的歌手选秀大赛,参赛者必须是成年男性。其前身是超级男声。早在2003年,湖南电视台娱乐频道(以下简称湖南娱乐)为中和星姐选举仅针对女性而举办了一个针对男性的歌唱比赛,最早的名字为“湖南大众歌会 - 情歌王子选拔赛”,后因“情歌王子”这个名字惹来了一些争议,遂改为超级男声,2003年的超级男声仅在湖南境内举办,赛程赛制、徽标图案均与后来的超级女声类似,冠军为何东林。2004年的超级男声在长沙、长春、济南、郑州4个城市举办海选,由河南卫视和湖南娱乐频道直播,冠亚季军分别为余铭轩、