在单核 CPU 上,每个进程都在操作系统中运行,并且 CPU 从一个进程跳到另一个进程以充分利用自身。一个进程可以有许多线程,在这种情况下,CPU 在相应进程上运行时会通过这些线程运行。
现在,在多核 CPU 上:
核心是在每个进程中一起运行,还是核心可以在一个特定时间点在不同进程中单独运行?例如,您有程序 A 运行两个线程。双核 CPU 可以运行这个程序的两个线程吗?如果我们使用类似OpenMP的东西,我认为答案应该是肯定的。但是,当内核在这个 OpenMP 嵌入式进程中运行时,其中一个内核可以简单地切换到另一个进程吗?
对于单核创建的程序,100%运行时,为什么每个核的CPU使用率是分布的?(例如,80% 和 20% 的双核 CPU。在这种情况下,所有内核的利用率总和为 100%。)内核是否通过运行每个线程、每个进程以某种方式相互帮助? ?