作者PsMonkey (痞子军团团长)
看板java
标题[转录]Re: [问题] VM 的问题
时间Fri Jun 1 01:01:54 2007
/*
原文转录已经经过原作者同意
作者并附带希望加注:
: 「可以. 不过要提醒, 很多人可能会认为 使用 interpreter 或 just-intime
: compiler 的 Java 不是一种 Concurrent High Level Language, 也不知道
: 怎麽用, 用在何处(除了 OS 的范例习题) ! 」
*/
※ [本文转录自 Programming 看板]
作者: ggg12345 (ggg) 看板: Programming
标题: Re: [问题] VM 的问题
时间: Thu May 31 05:33:02 2007
※ 引述《huggie (huggie)》之铭言:
: ※ 引述《ggg12345 (ggg)》之铭言:
: : 这个比喻满有趣的 !
: : 1. 写在纸上需得有文字与符号.
: : 2. 人讲话的语言可以没有固定的书写文字.
: : 通常有文字符号的, 都能大声被念出来, 甚至可以有不同的念法.
: : 那麽, "中间码" 就相当於书写的文字与符号罗 ?
: : 可是使用 VM/Interpreter 的想法里, 似乎还有额外的功能与要
: : 求, 也就是 执行中能做指述的检视与结果检察, 程式保护与并行
: : 这两大项就可以不再透过 OS 来协助, 而是经由 VM 自备提供.
: 恩..可以解释详细一点吗?
: 你的意思是像 reflection 这类的东西吗?
: 透过 VM 来做有什麽好处呢?
Java 这个程式语言虽然也是 Object Oriented Programming Language
的一种, 可是她有一些额外特性就是具有 Distributed Concurrency.
如同多线程(Multiple Thread)的并行必须考量 Critical Region 的
同步/保护, Java 则提供类似 Monitor 的同步机制.
如果要支援 Concurrent Operation 的交错执行, 甚至是平行就要能
"随时按需要" 改变执行片段程式的 "轮流" 次序.
Binary Code Program 的执行(就是 Process) 是由 OS 控制的, 程式
本身只能受其控制, 但如果程式是中间码形式就得透过 VM/Interpreter
这个解译程式控制, 中间码写成的片段程式(通常就是个 Object) 就能
并行地执行.
把程式搬到某个机器执行, 最怕的就是 "误动作" , 变的如同 "病毒" .
防范的方法之一, 就如同并行的要求, 就是在要执行前需先检查後, 才能
放行, 中间码形式的程式就需要 interpreter 先辨识才会被执行.
: : 交响乐的演奏, 必须得经由乐谱的不同段落的 "同时可视性" 来
: : 同步进行吗 ? 合唱虽然可以不看乐谱, 但是否也得有同步的拍
: : 子 ? 而且还得听见对方唱到那里 ?
: : 执行层次的不同提供了跨平台性, 执行时可再度检视指述动作的
: : 安全性与次序的同步性, 这是原来使用 VM 的原因吧 !
: 你的意思是这是非 VM 不可才能做到的罗?
并行处理的进行与同步, 资源的隔离与保护, 通常都是由 OS 独断性
掌控与支援的, 要 "好像" "随时都能" "拥有这种能力" 通常得使用
VM.
简单的说就是:
要执行 "敏感性(sensitive)" 的动作, 需要能被先拦下(trap)就相关
部份审视通告後再配合地执行.
: 可能我经验不足..可以解释一下什麽是执行层次的不同
: 跟次序的同步性的意思吗?
--
侃侃长论鲜窒碍 首页:
http://www.psmonkey.idv.tw
众目睽睽无心颤 Blog:
http://ps-think.blogspot.com
茕居少聊常人事
杀头容易告白难 欢迎参观 Java 版(@ptt.cc) \囧/
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.228.193.68
※ 编辑: PsMonkey 来自: 61.228.193.68 (06/01 01:07)