Marshalling (计算机科学)

✍ dations ◷ 2025-09-15 13:50:16 #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特别处理远程对象。

相关

  • 西黑文坐标:41°16′26″N 72°58′04″W / 41.27389°N 72.96778°W / 41.27389; -72.96778西黑文(英语:West Haven),旧译“西海汶”,是美国康涅狄格州纽黑文县的一个城市,南临长岛海湾
  • 马里奥·西图姆马里奥·西图姆(克罗地亚语:Mario Šitum;1992年4月4日-)是一位克罗地亚足球运动员。在场上的位置是边锋或前锋。他现在效力于意大利足球乙级联赛球队斯佩齐亚足球俱乐部。他也代
  • 卡维恩县坐标:2°34′18″S 150°48′17″E / 2.5718°S 150.8048°E / -2.5718; 150.8048卡维恩县(英语:Kavieng District),是巴布亚新几内亚的县份之一,位于新爱尔兰岛、新汉诺威岛和圣
  • 李满住李满住(李瞒咄)(?-1467年),是明朝初年女真首领,首任建州卫首领阿哈出的孙子,释迦奴(汉名李显忠)的儿子。1426年,袭封建州卫都督佥事。李满住的舅舅为猛哥帖木儿(猛哥帖木儿或为努尔哈赤的
  • 恩斯特·詹池恩斯特·詹池(德语:Ernst Jentsch,1867年-1919年)是德国的精神科医师。 他撰写关于心理学和病理学的作品,最出名的是他的论文《恐怖谷心理学》(1906)。除此,他还创作关于情绪与音乐心
  • 熊勇者熊行者()是一部由一群英国作家以笔名艾琳·亨特(Erin Hunter)共同写作的一系列奇幻文学和动物小说,由于艾琳·亨特的另一作品《猫武士》广受好评,于是出此作品。主轴环绕着北极熊
  • 中华人民共和国疫苗管理法中华人民共和国疫苗管理法为中华人民共和国的一部法律,是针对疫苗管理的专门立法。2019年6月29日于第十三届全国人民代表大会常务委员会第十一次会议通过疫苗管理法草案,由中华人民共和国主席令第三十号发布。疫苗管理法将于2019年12月1日起正式施行。2018年,吉林长春长生公司的疫苗事件爆发,这一事件引起了社会的关注。长生公司经过审判被罚超过90亿人民币,这些法律责任是主要基于《中华人民共和国药品管理法》及其他相关规定而裁定的。因此,为加强疫苗监管、加快完善疫苗药品监管,中华人民共和国政府需要出台一部专门针
  • 大久保刚志大久保刚志(Goshi Okubo,1986年6月14日-)是日本的职业足球运动员,司职前锋,现效力于泰国超级足球联赛曼谷玻璃。
  • 张冰 (天体物理学家)张冰(1968年-),男,陕西人,中国天体物理学家,美国物理学会会士,北京大学长江学者讲座教授。现任内华达大学拉斯维加斯分校教授。
  • 小行星列表/49001-50000以下是微型行星列表,依序号列出从49001至50000号微型行星的名称、临时编号、发现日期、发现地点及发现者。若要查看其它小行星列表,请参见小行星列表。