【发布时间】:2011-08-15 22:31:40
【问题描述】:
我正在阅读有关 CIL 的内容,并且不断看到对“虚拟执行堆栈”的引用(例如,在创建局部变量并为其赋值时)。
但我不明白虚拟执行堆栈到底是什么。是不是“调用栈”,就是我们说结构加载到栈上时总是指的那个栈?
【问题讨论】:
我正在阅读有关 CIL 的内容,并且不断看到对“虚拟执行堆栈”的引用(例如,在创建局部变量并为其赋值时)。
但我不明白虚拟执行堆栈到底是什么。是不是“调用栈”,就是我们说结构加载到栈上时总是指的那个栈?
【问题讨论】:
堆栈指令集直接在硬件中执行。另一方面,虚拟堆栈指令在软件中解释。虚拟化与使用 VM(虚拟机)处于同一条线上,您将在 VM 内部获得模拟的操作系统。在虚拟堆栈中,所有硬件堆栈都被抽象(隔离)远离您。
例如机器语言(010001)由硬件(CPU)直接处理。另一方面,虚拟指令由软件处理,模拟和隔离底层硬件的复杂行为。见:http://en.wikipedia.org/wiki/Stack_machine#Virtual_stack_machines
阅读一些有关“Java 虚拟机”的信息,这可能是虚拟堆栈机最流行的实现。
【讨论】: