五千年(敝帚自珍)

主题:【原创】云里雾里的云计算 [1] -- 邓侃

共:💬620 🌺1262
全看分页树展 · 主题 跟帖
家园 俺试着乱弹12.

俺当年自己闭门练过X386的“童子功”。首先声明俺没有看过邓侃说的那些文章,俺试着乱侃几下,献丑献丑。

X386的体系结构将指令分为4个特权级,分别是RING0,RING1,2,3。如果是Windows NT的话,分别使用RING0,RING3,即OS的内核运行在RING0,应用程序在RING3。俺有很多年不玩这些了,WINDOWS 5.0(2000),5.1(XP),5.2(2003),6.0(VISTA).6.1(2008),用了几个RING就不清楚了,但估计不会用到全部的4个Ring,因为特权指令只能在ring 0运行。除了特权级,指令系统的另外一个重要特性是“中断”级别,从高到低分别是异常,硬中断,软中断。

1.如果在低特权级运行特权指令(RING0以下)将产生异常,异常直接将导致RING0级别的中断向量对应的“程序”执行,异常处理保护“现场”,然后“计算结果”,然后恢复“现场”,将低特权级进程的指令计数器值设置为导致异常指令的下一条指令地址值,然后恢复低特权级进程运行。具体到虚拟机,按虚拟机应用程序 ---》虚拟机异常 ---》物理机异常的次序执行。

2.虚拟RAM和OS的地址分配的取决于OS初始化时GDT和LDT表的加载,虚拟机加载时从HOST机hold住一块物理内存(比如1GB),从此这块物理内存在HOST机上将不再分配给其他进程。然后虚拟机根据这块物理内存的地址计算生产相应的GDT和LDT。当进程上的虚拟机进程产生缺页“异常”时由虚拟机异常处理程序在虚拟机已经分配的物理内存中调度。

全看分页树展 · 主题 跟帖


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河