Marshalling (计算机科学)

✍ dations ◷ 2025-11-26 06:28:23 #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特别处理远程对象。

相关

  • 宫润伯案佳木斯连环杀童案是2006年在中国黑龙江省佳木斯市向阳区松林社区发生的一起特大连环杀人案件,死者均为十六岁以下青少年。在3月6日召开的新闻发布会上,警方公布的儿童死亡数目
  • 中山 (地貌学)中山(地貌学)指绝对高度为1000-3500m,相对高度为500-1000m的山地。山坡的坡度平均为10°-25°。根据外貌又可以分为:具有缓和形体的中山;具有较陡峭形体的中山(如荒漠中一些中山);具
  • 李厚高李厚高(1926年10月21日-2006年3月13日)湖北省松滋县人 ,毕业于台湾省立行政专科学校及国立中兴大学法商学院(今国立台北大学) 财政科,系。经历过税监处处长、台湾省政府专员、财
  • 陈小艺陈小艺(1968年2月8日-),生于四川乐山,中国大陆女演员。毕业于中央戏剧学院学院表演系,1991年凭借电视连续剧《外来妹》一夜红遍中国,以电影《离婚》获百花奖最佳女配角。陈小艺12岁
  • 麻仓忧麻仓忧(日语:麻倉 憂,1989年12月24日-),出身于日本静冈县,日本AV女优,所属Sun Production事务所。出道前曾是当红传播妹。
  • 正珠尔扎布正珠尔扎布(1906年-1967年11月),汉名韩信宝、韩绍德,日本名川岛成信、田中正,蒙古族,卓索图盟土默特左旗人,生于苏鲁克(今辽宁省彰武县)。满洲国军事将领。正珠尔扎布生于苏鲁克大冷营
  • 驱魔少年角色列表日本漫画《驱魔少年》人物列表。被隐藏之物 / Apocryphos
  • 玛氏饮品玛氏饮品隶属于玛氏公司,玛氏公司是全球最大的食品生产商之一,拥有众多世界知名的品牌。在这些品牌中,价值超过十亿美元的品牌就包括德芙、玛氏、M&M'S、士力架、UNCLE BEN'S、傲白、宝路、皇家、伟嘉和特趣。玛氏公司在中国已有三个事业部,分别是德芙巧克力、箭牌口香糖和宠物护理,玛氏饮品是2014年进入中国的第四个事业部。玛氏饮品包括四个产品品牌,现磨咖啡爱特嘉,德芙热巧克力,时尚茶饮倍悠时和纷雅热饮系统,除此之外还有四列和六列两种型号的货架。爱特嘉是一个现磨咖啡品牌,起源于美国。分为轻、中、重三种烘焙
  • 罗宾·克纳罗宾·M·克纳(英语:Robin M. Canup,1968年11月20日-)是美国籍的天文物理学家。她于杜克大学取得理学学士的学位,并在科罗拉多大学波德分校取得博士学位。她主要的研究领域涉及行星和卫星的起源。在2003年,她获颁Harold C. Urey Prize。克纳为众所周知的研究是基于巨大撞击假说,并涉及有关建模测试,模拟行星实际上是如何的碰撞。克纳认为地球和月球形成于两个行星结构体的大规模碰撞,每个个体都大于火星,并且是再碰撞才形成现在我们所谓的地球;而且再碰撞之后,包围在地球附近的物质结合
  • 卢卡·博斯基卢卡·博斯基(Luca Boschi,1972年12月29日-), 圣马力诺政治人物,自2019年10月1日起与马里耶拉·穆拉罗尼同任圣马力诺执政官。博斯基出生在意大利,在米兰长大。从威尔士卡迪夫大学国际商务市场学毕业后,博斯基回到圣马力诺,在一家私营部门做自由职业者。博斯基加入了公民10运动,自2016年12月起担任大议会议员。