Marshalling (计算机科学)

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

相关

  • 招潮招潮蟹属(学名:Uca),又名招潮属、提琴手蟹,是沙蟹科的一个属,包含95个种。其最大的特征是雄蟹拥有一大一小相差悬殊的一对螯。招潮蟹会做出舞动大螯的动作,像是在招唤潮水似的,所以
  • 佛蒙特州佛蒙特州(英语:State of Vermont,i/vərˈmɒnt/))是美国第14个州,以其美丽的景色、奶制品、枫糖浆和激进的政治而著称。佛蒙特总共拥有14个县。这14个县,辖下有255个政治单位或地
  • 李球南延君(朝鲜语:남연군/南延君,1788年-1836年),名李球(朝鲜语:이구/李球),朝鲜王朝的王族,朝鲜仁祖第三子麟坪大君的六世孙,为朝鲜王朝末年的政治实权者兴宣大院君李昰应的生父、朝鲜高宗的
  • 塞费里希萨尔塞费里希萨尔(土耳其语:Seferihisar)是位于土耳其伊兹密尔省沿海的城镇与行政区。塞费里希萨尔的市中心位于内陆,海拔高度28米,从市区向海边延伸,共由八个区所组成,其中一个名为瑟
  • 无国界译者无国界译者(英语:Translators without Borders)是一个非营利的协会,旨在提供无偿公益性(英语:pro bono)的人道非营利的翻译服务。创建于2010年,原是1993年由Lexcelera(前身为Eurotext
  • 南澳影业公司南澳影业公司(英语:South Australian Film Corporation,缩写:SAFC)是澳大利亚一个成立于1973年的南澳大利亚政府法定公司。前州长邓士腾也在扮演了重要角色的基础上再三参与了公
  • 佐佐木留恩佐佐木留恩(日语:佐々木 るん,1956年3月21日-),日本资深女性配音员。身高156cm。B型血。福岛县出生。法政大学英文科毕业。本名、旧艺名:佐佐木由美子(佐々木 由美子)。早年从电影幕
  • 陈再生陈再生(1946年-),男,陕西镇安人,中华人民共和国政治人物,曾任陕西省民政厅厅长、党组书记,陕西省人大常委会副主任。
  • 皇宫娱乐场皇宫娱乐场,是澳门博彩股份有限公司旗下的一家娱乐场,前身是珠江画舫(又称“皇宫号”),于1995年正式营运,至2007年10月25日早上起暂停营业。由于皇宫娱乐场是澳门唯一一艘在船上开设的娱乐场,因而有“赌船”、“贼船”的称号。珠江画舫是在珠江三角洲最有名气的画舫;画舫在20世纪60年代初已由澳门旅游娱乐租借使用,停泊在澳门内港14号码头,并以“皇宫号”为船名,作为旗下娱乐场,而在招牌则以“澳门皇宫”及“皇宫娱乐场”两个招牌为名作招来。澳门旅游娱乐于1995年正式把珠江画舫购入并耗资重金加以装饰,令画舫充
  • 佩妮拉·奥古斯特佩妮拉·奥古斯特(瑞典语:Pernilla August,1958年2月13日-),女,瑞典演员。曾获得1992年戛纳电影节最佳女演员奖。佩妮拉在瑞典Netflix青少年LGBT网络剧《王储的抉择》中饰演瑞典女王克里斯蒂娜(Queen Kristina of Sweden)。