1运行时系统与虚拟机
计算机本身就是一个运行时系统,运行时系统是很多计算机程序赖以执行的一个环境。运行时系统提供了程序在执行时所需要的所有条件。比如运行时系统为程序分配内存、加载应用程序、执行程序中的指令、处理服务请求等等。运行时系统的种类可以按不同的分类方式分为很多种。按执行程序指令的基本方式可以把运行时系统分为两大类。一类是以处理器本身的机器码为指令编写程序,另一类是用机器指令编写程序。以处理器本身的机器码为指令编写程序是指由计算机的操作系统和处理器构成运行时系统,操作系统负责总体筹划,而处理器用来执行程序的指令。也就是说操作系统定义了一套完整的规范,而由CPU来执行这套规范。虚拟机实际上是一整套规则,而不是单一用软件就能够简单实现的,虚拟机的实现完全是按照一套严谨的规范来定义的。虚拟机可以由任意一种程序设计语言来实现,它可以实现在任意一种硬件平台上,但前提必须是遵守它的规范。只要是遵守同一套规范的运行时系统,你就可以不需要对它进行编译而直接能在其上运行各种指令代码,这和它是一套软件模拟系统还是一台真正的计算机没有关系。
2虚拟机的栈实现
2.1虚拟机数据栈的运行机制
堆栈有很多优点,例如高效率的函数调用,清晰的递归调用,较小的上下文切换等。可以将虚拟机地址空间最顶部的那个内存段空间设置为堆栈段,用来支持以后所有的操作,所以建立一个堆栈是可行的。AVM虚拟机启动运行,进行系统初始化的设置,首先为堆栈类型的数据动态申请几段内存空间,这段空间是虚拟机最核心的数据结构,它是由代码区、数据栈、计算栈、函数运行栈等组成的一个系统。在虚拟机中用来描述栈顶的一个元素是由计算栈和参照栈结合起来完成的,计算栈和参照栈主要实现计算功能,而数据栈则负责函数的局部变量和函数调用的运行环境。数据栈(data--Stk)是用来实现过程调用的上下文记录和切换,它的功能类似于活动记录,数据栈对任何一个过程的调用都一样,都是分配该数据栈的一个区域给该过程。每当有函数调用时,首先是压入一帧,其次当函数调用结束后,该帧出栈,最后恢复虚拟机的程序计数器。数据栈如果按区域划分可分为父过程运行环境保存区、本过程局部变量区以及传入实参区三个区域。AVM虚拟机在运行时,会启动一个虚拟机实例,首先向宿主操作系统申请分配内存,然后用分配到的内存组成一个人工地址空间,这个空间用来提供给单个应用程序来使用。这段地址空间在内存中可被划分成堆栈段和代码段两个部分。首先,在虚拟机的初始化过程中,为数据段和进程代码段建立映射,然后将数据段和代码段的内容读入内存,这一工作是由虚拟机系统的过程加载处理函数负责的。此外,凡是未被赋初值的局部变量初始值都为零,这是因为虚拟机的初始化会将数据堆栈段清零。代码段分为只读数据和运行代码两个部分,在内存中,代码段的类型是只读的,所以代码段绝对不会被改写,任何企图修改代码段的指令都将会引发严重的错误。程序在执行过程中除了有数据段和代码段的支持外,还要有动态环境的支持,堆栈就是其中重要的一个动态环境。在计算机领域中,数据堆栈是一种非常重要而且会被经常用到的抽象数据类型。堆栈有两个非常重要的操作,即是Push操作和Pop操作,也就是压入和弹出操作。数据堆栈的特点是最后进入数据堆栈的对象最先被弹出,即它是LIFO(Lastin,firstout)后进先出。从操作层面上来讲,数据堆栈是一个后进先出的队列,它的方向与内存的方向正好相反。从物理层面上来讲,数据堆栈其实就是一段连续分配的内存地址空间。它是由一系列堆栈帧组成的。栈帧的定义是将一个过程调用在堆栈中存放的父过程运行环境保存区、本过程的局部变量区以及传入实参数区域总称为一个栈帧(StackFralne)。当调用过程时逻辑堆栈帧被压入栈中,当过程返回时逻辑堆栈帧被从栈中弹出。在虚拟机执行过程中,有时虚拟机会根据中间字节码的一些指令把这些数据存入堆栈,有时也会用寄存器来传递一些指令。
2.2虚拟机计算栈和参照栈的运行机制
计算栈的作用是主要用来进行各种算数运算和逻辑运算,还有保存计算式中的子函数的返回值以及运算数、运算符等,计算栈经常在自动转换字符类型时使用。计算栈也是一组普通的字节数组,它在进行PUSH压入和POP弹出操作的时候必须要依靠参照栈来执行。参照栈主要用来描述像每次出栈入栈的长度还有出入栈的数据类型等在计算栈中存放的信息的属性。在计算栈中进行push或pop操作和其相互关联的栈中元素是保持参照关系的。虚拟机可以完成很多功能,例如模拟不同类型的操作系统,模拟网卡、硬盘等硬件设备,进行一些病毒试验,模拟组建大型网络和各种计算机软件相关试验等。一些通用型的大型机需要占用大量的资源,如对软件授权的要求,对存储器的要求,对中央处理器的要求等等,在资源相对紧张的嵌入式领域中并不能得到广泛的认同。只有掌握了虚拟机技术,才可以为大型应用软件的开发提供了一个功能更加强大、扩展性更加良好的应用平台。
作者:李静 单位:辽宁职业学院
相关专题:常熟理工学院 固定资产投资审计报告