以单任务模式(而非多任务模式)运行的操作系统是否会利用双核处理器中的两个核心?
编辑:回复第一条评论:是的,但计算机启动时只有一个任务在运行;引导加载程序。我的问题是:此时,两个内核是否运行相同的任务,或者只能在多任务模式下使用。
答案1
如果你说的是标准的 x86/amd64 PC 平台,那么当系统启动时,硬件层面会发生以下情况(从这里):
在多核系统中,引导处理器是选择用于启动系统固件的 CPU 核心(或线程),通常是单线程的。
在 RESET 时,所有处理器都会争夺芯片组中的信号量标志位,第一个处理器发现该标志位已清除,并在读取过程中设置标志;其他处理器发现标志位已设置,并进入等待 SIPI(启动处理器间中断)或停止状态。
第一个处理器初始化主内存和应用程序处理器(AP),然后继续其余的启动过程。(http://www.drdobbs.com/go-parallel/article/print?articleId=232300699)
因此,除了上面“赢得”竞争的处理器之外,所有处理器都将处于停止状态,等待 SIPI。如果“引导处理器”从未向其他 CPU 发出 SIPI(读作这),这就是它们将保持的状态(例如,如果您启动 DOS,它对多核、APIC 或 SIPI 一无所知)。
因此,回答您的问题,其他核心将处于空闲状态。