Does the CPU is run at 100% or near full capacity when the computer is booted into MS-DOS? Will the CPU temperature become higher even though we are not running any program in DOS mode?

In Windows, we can see the CPU usage in % of utilization in Task Manager. From what I heard, CPU is running at near 100% capacity in DOS OS or in the BIOS MAIN screen.

Is this caused by lack of CPU optimization in DOS OS?

link|improve this question
3  
... "DOS mode"? – Ignacio Vazquez-Abrams Dec 18 '11 at 5:14
1  
Do you mean if you actually boot to MS-DOS 6.22, in its full native 16-bit glory? – Mark Henderson Dec 18 '11 at 5:42
Dear Mark, I would like to apologize for the vague question. I mean when it's boot to DOS (FreeDOS or MS-DOS). Thank you! – Kevin H Dec 18 '11 at 20:47
I re-edited the question. Thank you so much! – Kevin H Dec 18 '11 at 20:54
thats... impressive? – John Riselvato Dec 19 '11 at 5:34
show 1 more comment
feedback

migrated from serverfault.com Dec 19 '11 at 5:21

This question came from our site for system administrators and desktop support professionals.

2 Answers

DOS (at least any MS-DOS) doesn't idle the CPU with the x86 HLT instruction like most modern operating systems when it is not doing anything.

Not sure of the specific MS-DOS function that waits for a keypress, but that would probably be where the the CPU is effectively "spinlocking" in a loop when it is doing nothing, under MS-DOS. It is still fetching instructions and running, just not being productive.

Looks like newer versions of FreeDOS will do this, though.

You may find this helpful.

link|improve this answer
1  
Actually, it's using all that extra processor power to figure out ways to take over the world from what I understand. – Jeff F. yesterday
feedback

CPU is always running at 100% capacity if it's running at all. In some cases it may be shut down to save power.

Modern operating systems have things like task schedulers which rotate programs which are executing on the CPU so some percent of the time CPU may not be doing any productive work (for example executing NOPs, jumping in place or whatever the system idle process does). So what task manager shows when showing you the CPU load is actually the percentage of time during which the system idle process is not executing. That is completely normal because some processes simply have no need for extra CPU time as they could be waiting for something else.

On older operating systems, like various versions of DOS, there is only one process running at a time and we don't have "task manager" because there's no need for it since you can run only one program at a time*. Even when you think that you're not running any program, you're running OS shell which is actually taking up all CPU resources available. In practice this does not lead to higher CPU temperatures. To put it simply different instructions use different parts of the CPU and instructions used for waiting for input don't heat up the CPU much.

As for lack of optimization, well that's a really big topic which mainly depends of what you consider as optimal. As I said, the CPU is always under load and it can't work on say 50% power (if you for example lower the frequency, it's still running at 100% but now each instruction takes longer). In some cases it is a requirement for computer to focus only on one single program and in that case if your CPU is executing something else, it's wasting time. If you want illusion of having 50 different programs running at the same time, then you cold say that the CPU usage is suboptimal. Do keep in mind that the task switching itself which happens in modern operating systems is taking some CPU resources and back when DOS was new, you simply didn't have enough resources for multiple programs (and the task scheduler) to be running on a home computer at the same time.

*Yes, there were things like terminate and stay resident programs, but they weren't real multi-program experience. Of course there are thing like interrupt handlers which change what is executing on the CPU, but since they don't have their own stack, I wouldn't call them real processes.

link|improve this answer
I also very vaguely recall dos lacks idle state support, but can't seem to find any information on it to post another answer – Journeyman Geek Dec 19 '11 at 9:42
Multi-tasking (what modern single-user desktop OSes do) and multi-programming, aka timesharing - running multiple interactive users' programs on one computer - preceded the IBM-PC and DOS by about 20 years, and on computers with considerably fewer resources. In 1980, the 5 MHz Intel 8088 had more than enough memory and speed to multi-task. 1970s-era mini-computers commonly ran laboratory experiments and were embedded in industrial equipment as controllers, and MIT's CTSS time-sharing system in the early 60s ran on an IBM 7094 clocked at 5KHz with 2 banks of 32K 36-bit words. – JRobert yesterday
feedback

Your Answer

 
or
required, but never shown

Not the answer you're looking for? Browse other questions tagged or ask your own question.