Process 口译员:他们如何管理系统资源?与虚拟机的区别

Process 口译员:他们如何管理系统资源?与虚拟机的区别,process,operating-system,virtual-machine,interpreter,Process,Operating System,Virtual Machine,Interpreter,我想知道解释语言是如何管理系统资源的 解释器是否只有一个进程,它向操作系统请求资源,并决定如何将这些资源分配给执行中的脚本?或者他们是否创建了一个直接对操作系统进行系统调用的其他进程 我希望只有一个过程专门用于我的程序;另一方面,解释器的进程必须存在,并且在我的程序开始执行时,我不知道我的进程应该有多大(我还没有将所有代码翻译成操作代码)。因此,如果我的程序运行时使用的是操作系统提供给解释器进程的资源,那么在这种情况下,解释器的行为就像虚拟机一样 那么,我错在哪里呢?为了执行除计算以外的任何操作

我想知道解释语言是如何管理系统资源的

解释器是否只有一个进程,它向操作系统请求资源,并决定如何将这些资源分配给执行中的脚本?或者他们是否创建了一个直接对操作系统进行系统调用的其他进程

我希望只有一个过程专门用于我的程序;另一方面,解释器的进程必须存在,并且在我的程序开始执行时,我不知道我的进程应该有多大(我还没有将所有代码翻译成操作代码)。因此,如果我的程序运行时使用的是操作系统提供给解释器进程的资源,那么在这种情况下,解释器的行为就像虚拟机一样


那么,我错在哪里呢?

为了执行除计算以外的任何操作,如读或写文件、与用户交互、分配内存等,进程必须向操作系统发出请求

解释器必须在需要使用更多内存、执行输入/输出等时向操作系统发出请求


在这个过程中,解释器计算出被解释程序想要做什么,然后向操作系统发送请求,要求操作系统做被解释程序要求做的事情。

那么,解释器和虚拟机(如JVM)之间的区别是什么?正式定义与单词实际使用方式:如今,我们倾向于对任何同时读取和执行源代码的系统使用“解释器”,即使它在内部进行一些翻译/编译。Python被编译成字节码,然后由虚拟机执行,但我们通常称之为“解释器”,因为这些步骤是组合在一起的。对于Java,它们是两个独立的进程。“javac”将Java编译成JVM字节码,“Java”解释这些字节码。“java”使用系统调用与外部世界(用户界面、文件、网络等)进行交互。