Why does DOS use 100% CPU under Virtual PC?

Why does DOS use 100% CPU under Virtual PC?

From time to time someone notices that when they run DOS under Virtual PC it uses 100% of the host CPU to do absolutely nothing, and wonder why this is the case.  The answer is relatively simple - and it is: 'DOS is never actually doing nothing'.

 

Most modern operating systems are designed with the concept of being able to 'do nothing'.  That is - if the user is not actively providing input, and no programs are demanding attention - most operating systems will tell the CPU to 'do nothing' (usually through a HLT command - or through some more advanced power state commands).

 

DOS does not do this.

 

So when DOS is sitting at the command prompt 'doing nothing' it is actually in a very tight loop of code which is responsible for blinking the cursor and checking for new user input.  As we operate at a very low level - there is no way for us to tell if DOS is actually doing something productive with the CPU or just 'running around in circles'.  To help deal with this - there is a utility called 'IDLE.COM' that is part of the Virtual Machine Additions for DOS - which is able to send 'HLT' commands when it detects that DOS is 'doing nothing'.  However if you start any program (like EDIT) then your CPU usage will go up to 100% again.

 

So at the end of the day - if you are using DOS under Virtual PC you are pretty much going to have to learn to live with the fact that it will try to use as much CPU as possible at all times.

 

Cheers,
Ben

 
为什么虚拟机运行dos下的程序读COM不能获得数据,我想也是这样 VPC获得太多cpu资源,HOST system得不到cpu资源就没时间去处理COM的读写请求了把? 猜测
不过还好host跑在Dual Core上,我尝试的用SetProcessAffinityMask设置vpc process只用一个cpu, Bingo~~~ 一切都好了 :)
 
现在就是颜色显示不对了!!!! 奇怪的事情 VGA 640*480*4 就是不对?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值