随着计算机技术的发展,人们已积累了大量成熟的系统软件和应用软件。因此,就希望软件具有可兼容性,即可移植性(软件兼容是指一个软件可不经修改或只需少量修改便可由一台机器移植到另一台机器上去运行,即同一软件可应用于不同的环境)。一般采用如下三种方法:
1. \r\n采用系列机方法
所谓系列机是指在一个厂家内生产的具有相同的系统结构,但具有不同组成和实现的一系列不同型号的机器。如IBM370系列机有370/115、125、135、145、158、168等一系列从低速到高速的各种型号。
注:系列机一般具有相同的系统结构,而采用不同的组成和实现技术,有相同的指令系统,但在低档机上指令的分析和指令的执行是顺序进行,而在高档机上采用重迭、流水和其它并行处理方式。
2. \r\n采用模拟与仿真方法
模拟方法是指用软件方法在一台现有的计算机上实现另一台计算机的指令系统。 \r\n如果主机A本身是采用微程序控制,则对B机器指令系统每条指令的解释执行可直接由A机器的一段微程序解释执行。这种用微程序直接解释另一种机器指令系统的方法称为仿真。
注:仿真的运行速度要比模拟方法快,模拟方法中模拟程序存放在主存中,而仿真方法中仿真微程序存在控存中,用仿真方法时,由于微程序机器级结构更依赖计算机的系统结构,因此对于系统结构差别较大的机器难于完全用仿真方法来实现软件移植,所以通常将模拟和仿真这两种方法混合使用,对于使用频率较高的指令,尽可能用仿真方法以提高运算速度,而对使用频率低且难于用仿真实现的指令则用模拟方法来实现。
3. \r\n采用统一高级语言方法
如果能采用一种可以满足各种应用需要的通用高级语言,那么用这种语言编写的应用软件可移植问题就解决了。如果操作系统的全部或一部分是用这种高级语言编写,则系统软件中的这部分也可以移植,所以采用统一高级语言来编写应用软件和系统软件是实现软件移植的一种方法。这种方法可以解决结构相同或完全不同的各种机器上的软件移植。要统一高级语言,语言的标准化很重要,但难以在短期内解决。