当前位置:首页 > 虚拟机 > 正文

虚拟机cpu单槽多核和多槽单核


一、CPU单核多核什么样的情况下需要单核或多核对于相同指标的多核CPU,每个核心的性能与相同指标的单核CPU相当。但协同工作时不可能实现100%的性能提升,因此相同指标的双核性能不可能是单核的两倍。
多任务处理时:
单核CPU一次只能处理一项任务。如果有多个任务,则必须以分时的方式处理这些任务。
双核CPU可以同时处理两个任务(每个核心一个,互不影响)。
单任务情况下:
如果软件没有设计支持多线程,即使使用多核处理器,它仍然只能使用一个核心。
如果软件设计为支持多线程,如果支持两线程,则双核可以达到最佳效率,如果支持四线程,则四核可以达到最佳效率。


二、单核和多核,单进程和多进程,单线程与多线程

之前对单进程、多进程、单线程、多线程、单核、多核、并发和并行没有详细的了解,所以愿意总结一下增强我的记忆力;(这里的并发不是网络并发,请区别对待)

让我们首先了解进程在处理器中是如何并行化的:

进程执行需要系统资源,但不同进程之间不能共享CPU。如何共享资源和CPU?线程的概念(在某些程序中称为协程)出现了。线程包含在进程中。同一进程的不同线程可以共享CPU和程序上下文(分配给进程的资源)

合二为一。-单CPU核心,如果同一进程中的不同线程想要使用CPU核心,它们将进行线程切换。不过,由于共享程序执行环境,这种线程切换会比进程切换便宜很多。注意:由于CPU是单核的,同一时刻只能有一个线程运行,所以这里还是并发。

如果我们的处理器是多核怎么办?这样进程的不同线程就可以同时运行,真正的并行就出现了。

文章开头我们提到了线程是调度和CPU分配的基本单位。这应该与进程是操作系统分配资源的最小单位这一事实区分开来;假设我是一个CPU,一旦操作系统调度程序为我分配了一个进程,获得该进程后我能看到什么?我只看到发生了什么?多个线程,所以我现在可以调度和分配的只是线程。如果我有4个核心,我将线程ABCD分配给核心1234,其他线程仍然需要等待分配。因此,线程是CPU调度和分配的基本单位。

单处理器中的进程只能并发,多处理器中的进程可以并行。
单CPU、单核线程不能并发,而单CPU、多核线程可以并行。

了解了上面的关系之后,我们来看看最全面的JS运行机制回顾,从浏览器多进程到单线程JS,思路会更清晰