Marshalling (计算机科学)

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

相关

  • 厌恶疗法厌恶疗法(Aversion therapy)是以古典制约理论为基础的心理治疗疗法。治疗者利用某些非制约刺激(如反胃、呕吐),以古典制约的原理使某些中性刺激(如性行为)转变为制约刺激,使被治疗者
  • 台中市立图书馆台中市立图书馆(简称中市图)为台中市的市立公共图书馆系统,辖有台中市44个分馆,共392万册(件),台中市政府文化局为其主管机关。成立之初以原北屯四张犁分馆作为总馆,台中市立图书馆
  • 奥塔哥奥塔哥大区(毛利语:Ōtākou,英文:Otago),位于新西兰南岛东南部,面积约12,000平方公里,是全国第二大地区。奥塔哥首府是达尼丁。旅游名城皇后镇亦在此区内。位于区内的奥塔哥大学(
  • 民族学方法论民族学方法论(英语:Ethnomethodology),也叫“常人方法论”“民俗学方法论”、“本土方法论”、“俗民方法论”,是对一定社区社会成员在社会互动中所遵循之规则的社会学研究。美国
  • 合金弹头7/XX合金弹头7于2008年7月17日发售,为本系列第9作是系列中首作NDS游戏,不过本作却并不对应触控式萤幕,游戏的画面显示在上萤幕,而下萤幕则用来显示地图。由于是掌机游戏,操作性较低,大
  • 南阳站 (咸镜北道)南阳站(韩语:남양역)是朝鲜民主主义人民共和国咸镜北道稳城郡南阳劳动者区的一个铁路车站,属于咸北线和南阳国境线。咸北线南阳国境线
  • 纬来体育台纬来体育台是纬来电视网旗下的运动专业频道。本频道从1997年起开始转播中华职棒赛事而闻名,并开始转播大量本土运动赛事。在2014年因和MPS公司谈判未果,失去中华职棒转播权,旗
  • 宽仁亲王宽仁亲王(日语:ともひとしんのう,1946年1月5日-2012年6月6日)日本皇族,三笠宫崇仁亲王的长子,大正天皇之孙,生于日本神奈川县。他是上皇明仁的堂弟,生前是日本皇室里继承顺序第6名的
  • 诃黎王朝诃黎王朝(Haryanka dynasty),亦被译为“曷利昂伽王朝”,是古印度摩揭陀国在前7世纪至约前413年的王朝,由统治者为诃黎族人而得名。建立之初定都于王舍城,优陀夷时期迁都至华氏城。
  • 菊池政治菊池政治(10月13日-)是日本男性原画家、插图画家,血型A型。作品多为十八禁游戏的CG,于2006年下半年初次正式为轻小说绘画插图。亦不定时在Comic Market发售同人志。