当计算机启动到 MS-DOS 时,CPU 是否以 100% 或接近满负荷运行?即使我们没有在DOS模式下运行任何程序,CPU温度也会变高吗?
在 Windows 中,我们可以在任务管理器中以利用率百分比的形式查看 CPU 使用率。据我所知,CPU 在 DOS 操作系统或 BIOS 主屏幕中以接近 100% 的容量运行。
这是由于 DOS OS 中缺乏 CPU 优化造成的吗?
DOS(至少任何 MS-DOS)不会HLT像大多数现代操作系统一样使用 x86指令使 CPU 闲置,当它不做任何事情时。
不确定等待按键的特定 MS-DOS 功能,但这可能是 CPU 在 MS-DOS 下什么都不做时有效地在循环中“自旋锁定”的地方。它仍在获取指令并运行,只是效率不高。
不过,看起来较新版本的 FreeDOS可以做到这一点。
您可能会发现这很有帮助。
如果 CPU 正在运行,则它始终以 100% 的容量运行。在某些情况下,它可能会被关闭以节省电量。
现代操作系统具有诸如任务调度程序之类的功能,它轮换在 CPU 上执行的程序,因此 CPU 可能有一定比例的时间不执行任何生产性工作(例如执行 NOP、原地跳转或系统空闲进程执行的任何操作)。因此,任务管理器在显示 CPU 负载时显示的实际上是系统空闲进程未执行的时间百分比。这是完全正常的,因为某些进程根本不需要额外的 CPU 时间,因为它们可能正在等待其他事情。
在较旧的操作系统上,例如各种版本的 DOS,一次只能运行一个进程,并且我们没有“任务管理器”,因为不需要它,因为一次只能运行一个程序*。即使您认为自己没有运行任何程序,您实际上也在运行 OS shell,它实际上占用了所有可用的 CPU 资源。实际上,这不会导致 CPU 温度升高。简而言之,不同的指令使用 CPU 的不同部分,并且用于等待输入的指令不会使 CPU 发热太多。
至于缺乏优化,这是一个非常大的话题,主要取决于您认为最佳的是什么。正如我所说,CPU 始终处于负载状态,并且无法在 50% 的功率下工作(例如,如果您降低频率,它仍然以 100% 的速度运行,但现在每条指令需要更长的时间)。在某些情况下,计算机需要只专注于一个程序,在这种情况下,如果您的 CPU 正在执行其他事情,那就是浪费时间。如果您想要同时运行 50 个不同程序的错觉,那么您可以说 CPU 使用率不是最佳的。请记住,现代操作系统中发生的任务切换本身会占用一些 CPU 资源,而当 DOS 刚刚出现时,您根本没有足够的资源来让多个程序(和任务调度程序)在家庭上运行电脑同时。
*是的,有诸如终止和保留居民计划之类的事情,但它们并不是真正的多计划体验。当然,像中断处理程序这样的东西会改变 CPU 上正在执行的内容,但由于它们没有自己的堆栈,所以我不会将它们称为真正的进程。
| 归档时间: |
|
| 查看次数: |
3208 次 |
| 最近记录: |