Marshalling (计算机科学)

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

相关

  • 神经外科学人体解剖学 - 人体生理学 组织学 - 胚胎学 人体寄生虫学 - 免疫学 病理学 - 病理生理学 细胞学 - 营养学 流行病学 - 药理学 - 毒理学神经外科,也常称作脑外科,是外科的一个
  • 西巴丹岛坐标:4°6′52.86″N 118°37′43.52″E / 4.1146833°N 118.6287556°E / 4.1146833; 118.6287556西巴丹岛(马来语:Pulau Sipadan)是马来西亚沙巴州著名岛屿,以优美的的自然景观
  • 下面站下面站(韩语:하면역)是朝鲜民主主义人民共和国咸镜北道庆源郡训戎里的一个铁路车站,属于咸北线。咸北线
  • 霓股箭毒蛙霓股箭毒蛙()是一种箭毒蛙。它们分布在玻利维亚、巴西、哥伦比亚、厄瓜多尔、法属圭亚那、圭亚那、秘鲁及苏里南。它们栖息在亚热带或热带低地的潮湿森林、淡水沼泽及严重破坏
  • 沃兹沃思·多尼索普沃兹沃思·多尼索普(英语:Wordsworth Donisthorpe,1847年4月24日-1914年1月30日),出生于英国里兹,逝世于黑斯尔米尔,是一位英国个人无政府主义者 、发明家、电影艺术先驱以及国际象
  • 埼玉县知事列表埼玉县知事列表(日语:さいたまけんちじいちらん)为埼玉县担任知事人物之列表。Template:选挙结果 (日本首长)Template:选挙结果 (日本首长)Template:选举结果 (日本首长)Templa
  • 彬子女王彬子女王(日语:彬子 女王/あきこ じょおう ,1981年12月20日-),日本皇族。宽仁亲王与宽仁亲王妃信子的长女,有一妹瑶子女王。她是作为大正天皇直系3代之外的女性皇族而受封女王。使
  • 2-戊炔2-戊炔,是一种非链端炔烃。它的同分异构体为1-戊炔。
  • 浅井正浅井正(日语:浅井 正/あさい ただし ,1935年11月28日-1990年1月6日),日本男子摔跤运动员。他曾代表日本参加1962年亚洲运动会摔跤比赛,获得一枚金牌。他也曾参加1956年和1960年夏季奥林匹克运动会。
  • 避税避税可以指: