|
现在的机器已经普及双核(或多核)了,相应地使用双核PE也许有好处。例如更好的性能(只理论想象,未实际比较过)。
当然,有人说,PE主要用来搞维护,单核PE兼容性好,够用了,用不着弄什么双核PE。那么,以下内容就不必看了。
=======================================================================
双核PE与单核PE一个直观上的差异是,在任务管理器中前者可以看到两个CPU的状态图:
而后者只看到一个:
双核PE早些年已经有人做过。其不足之处是兼容性比单核PE差。主要表现在把双核PE用于单核机器时,不加载网络还好,一加载网络就死机没商量。
而单核PE,用于双核机器没问题,顶多把双核当单核用,没发挥双核性能而已。
所以,以往大家PE都不采用双核。即使提供双核PE,一般也同时提供单核PE,由用户手工选择使用哪个。
本贴讨论单双核自适应问题,无需手选。具体思路是先检测CPU是单核还是多核,然后根据结果选择启动单核PE还是双核PE。
这里提供一个检测工具:CPUID。它作为grub4dos外部命令。
参考菜单:
title 启动单双核自适应PE
#假定CPUID在启动分区根目录
(bd)/CPUID || echo -n
set cores=1
checkrange 1:-1 read 0x60000 && set cores=2
#核心数现已存放在变量cores。其值1表示单核,2表示双核(及多核)。
#显示检测结果
if “%cores%”==“1” echo 检测到单核cpu
if “%cores%”==“2” echo 检测到多核cpu
#以下根据cores值分别启动单双核PE。
#假定单核、双核pe的引导文件分别是peldr1.bin和peldr2.bin
if “%cores%”==“1” chainload (bd)/peldr1.bin
if “%cores%”==“2” chainload (bd)/peldr2.bin
附件里有简化的0PE用于测试单双核自适应效果。
其中
0PE\XP\NTKRNLMP.EX_
是可剪裁外置双核组件。
当有此组件时,在双核机器上会自动启用双核心PE,在单核机器上会自动启用单核心PE。
当无此组件时,无论单双核机器,一律启用单核心PE。
0PE是动态核心PE,单双核合一、组件化了。其它PE一般是静态核心PE,要准备两个不同内核。
目前,PE双核化条件已经成熟。
已知问题:目前这个CPUID工具在vm虚拟机上测不出双核。但不影响使用PE。
[ 本帖最后由 pseudo 于 2011-8-12 21:41 编辑 ] |
|