并行与分布式系统技术解析
1. 系统接口与代码可移植性
在计算机系统中,存在着不同层次的接口,它们在软件与硬件的交互中起着关键作用。首先是指令集架构(ISA),它处于硬件和软件的边界,定义了硬件能够执行的指令集合。接着是应用二进制接口(ABI),它允许应用程序和库模块访问硬件,但不包含特权系统指令,而是通过调用系统调用来实现。最后是应用程序接口(API),它为高级语言程序提供了访问 ISA 的途径,其中包含了高级语言库调用,这些调用常常会触发系统调用。
从代码的角度来看,高级语言(HLL)程序经过编译后生成的二进制文件通常是针对特定硬件架构和操作系统的,这就导致了这些代码缺乏可移植性。也就是说,这些代码无法在不同 ISA 的计算机上运行,甚至在相同 ISA 但不同操作系统的计算机上也无法运行。不过,我们可以将 HLL 程序编译为虚拟机(VM)环境下的可移植代码。这种可移植代码在生成和分发后,会通过二进制翻译器转换为主机系统的 ISA。动态二进制翻译技术能够将可移植代码中的来宾指令块转换为主机指令,并且由于这些指令块会被缓存和重用,从而显著提高了性能。
| 接口类型 | 作用 | 是否包含特权指令 |
|---|---|---|
| ISA | 硬件和软件边界,定义硬件执行指令集 | 是 |
| ABI | 允许应用和库模块访问硬件 | 否,调用系统调用 |
超级会员免费看
订阅专栏 解锁全文
1623

被折叠的 条评论
为什么被折叠?



