Marshalling (计算机科学)

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

相关

  • 疱疹病毒性脑炎单纯疱疹病毒脑炎(英文:herpesviral encephalitis、herpes simplex encephalitis、HSE)是由单纯疱疹病毒造成的脑炎。什么时候都可以发病,40岁以上多见,急性起见病, 潜伏期为2=21
  • 抗逆转录病毒药物抗逆转录病毒药(management of HIV/AIDS)是一类于治疗逆转录病毒(例如HIV、冠状病毒等)感染的药物。联合使用几种(通常是三种或四种)抗逆转录病毒药物被称为高效抗逆转录病毒治
  • 悲伤悲伤是种情绪反应,多数高等哺乳动物均有此反应,其中,人类对此反应最为显著。人类的悲伤通常来自经历上的挫折失败,如:无法抗拒的住所改变,亲友死亡、离婚、毕业或失业。另外,这类生
  • 18141814年逝世人物列表:1月 - 2月 - 3月 - 4月 - 5月 - 6月 - 7月 - 8月 - 9月 - 10月 - 11月 - 12月
  • 过氧化锶过氧化锶 (SrO2),一种白色化合物,是锶的过氧化物,因有氧化性而被用作漂白剂,其CAS号为。
  • 公合公合,亦称分升,是容量计量单位。符号为 dL。1公合=0.1升=100毫升。立方尧米、立方佑米(Ym3) 立方泽米、立方皆米(Zm3) 立方艾米(Em3) 立方拍米(Pm3) 立方垓米、立方太米(Tm3)立
  • 弘晌福州将军 绥远城将军 署理盛京将军弘晌(满语:ᡥᡡᠩ ᡧᠠᠩ,穆麟德:,1718年-1781年),爱新觉罗氏,直郡王胤禔第十二子,母妾高氏,高登科之女。乾隆三十五年正月(1770年2月)授福州将军,乾隆
  • 老井 (电影)《老井》是一部1986年由西安电影制片厂拍摄的中国电影,描述中国西北地区老井村的农民为打井而不懈努力的故事。导演是吴天明,主演为张艺谋和吕丽萍。该影片获得了1987年东京国
  • 六脉渠六脉渠是宋朝时在广东省城(今广州市)修建的排水系统。它既使广州城里可通舟船,也有利于防火和排涝。历史上大致呈南北走向,水自北向南流,通过城壕流入珠江。明清两代,城区东北、西
  • 孟加拉国-美国关系孟加拉国-美国关系(英语:Bangladesh–United States relations,孟加拉语:বাংলাদেশ-যুক্তরাষ্ট্র সম্পর্ক)是指孟加拉国和美国之间的双边关系。孟加拉国在华府设有大使馆,在纽约和洛杉矶设有总领事馆。美国在达卡设有大使馆,在吉大港、杰索尔市、拉杰沙希市和锡尔赫特设有资讯中心。美国驻孟加拉国大使馆还经营著阿彻·K·布拉德美国图书馆和达卡的爱德华·M·肯尼迪中心。这两个国家都是联合国会员国。2014年,76%的孟加拉人对美国表示赞同,这是南亚受访国家中评级