Operating system 什么是“逻辑CPU核心”

Operating system 什么是“逻辑CPU核心”,operating-system,cpu,cpu-architecture,multicore,hyperthreading,Operating System,Cpu,Cpu Architecture,Multicore,Hyperthreading,我正在读一些操作系统材料。我把这句话弄糊涂了: 多核是指具有多个逻辑CPU核且可同时执行多条指令的计算机或处理器 什么是逻辑CPU核心,它是处理器吗?它是否对应于物理的东西,或者是操作系统看到了逻辑CPU核,但实际上物理处理器比逻辑CPU核少?我猜它指的是CPU的算术逻辑单元 任何处理器的ALU单元都是CPU负责执行所有算术和逻辑运算的部分。我猜它指的是CPU的算术逻辑单元 任何处理器的ALU单元都是CPU的一部分,负责执行所有算术和逻辑运算。逻辑CPU核心包含单处理器的完整体系结构上下文。这是

我正在读一些操作系统材料。我把这句话弄糊涂了: 多核是指具有多个逻辑CPU核且可同时执行多条指令的计算机或处理器

什么是逻辑CPU核心,它是处理器吗?它是否对应于物理的东西,或者是操作系统看到了逻辑CPU核,但实际上物理处理器比逻辑CPU核少?

我猜它指的是CPU的算术逻辑单元

任何处理器的ALU单元都是CPU负责执行所有算术和逻辑运算的部分。

我猜它指的是CPU的算术逻辑单元


任何处理器的ALU单元都是CPU的一部分,负责执行所有算术和逻辑运算。

逻辑CPU核心包含单处理器的完整体系结构上下文。这是操作系统可以进行调度和控制体系结构状态的单元,例如不硬连线的体系结构的异常地址

有两种常见情况下,它不会与物理核心一一对应。首先,一个物理内核可以实现多个虚拟处理器,例如Intel的超线程。在这种情况下,OS调度器应该意识到虚拟处理器可能共享各种资源,例如指令获取、指令调度硬件和执行单元,这通常意味着任务应该调度到不同的物理内核以最大化性能。这个问题在较小程度上也适用于共享二级缓存的不同内核。这些问题在某种程度上与多CPU计算机的NUMA优化有关

在第二种情况下,虚拟机监控程序的硬件虚拟化可以向操作系统提供任意数量的内核。虽然虚拟机监控程序通常会使来宾操作系统只看到硬件提供的逻辑处理器,即包括与硬件多线程相关联的虚拟处理器,理论上,虚拟机监控程序可以向操作系统提供任意数量的处理器,就像操作系统可以通过使用时间切片向应用层提供任意数量的处理器一样。在这样的软件虚拟化环境中,虚拟机监控程序可能不会向操作系统公开处理器的性质,因此操作系统只能将处理器作为抽象单元进行调度

这种划分有些复杂,硬件也可以实现多线程,而无需为每个线程提供完整的虚拟处理器。例如,MIPS多线程应用程序特定扩展区分了在体系结构状态方面作为不同处理器的虚拟处理元素和在同一VPE中的线程之间共享系统协处理器的线程上下文。更复杂的是,可能会在VPE之间迁移线程上下文。例如,一个物理处理器核心可能有两个VPE和五个线程上下文,并且允许操作系统将给定的TC分配给任一VPE,以便任一VPE可以有一到四个TC。此外,如果在FORK情况下有备用硬件线程可用,或者在YIELD情况下至少有一个线程仍处于活动状态,则非特权软件可以在没有操作系统参与的情况下FORK和YIELD线程


对于MIPS MT-ASE,操作系统通常只关注线程上下文,但是,如果对实际硬件配置有更全面的了解,则可以进行一些优化,如果将线程上下文视为虚拟处理元素,则可能会出现一些正确性问题。

逻辑CPU核心包含单处理器的完整体系结构上下文。这是操作系统可以进行调度和控制体系结构状态的单元,例如不硬连线的体系结构的异常地址

有两种常见情况下,它不会与物理核心一一对应。首先,一个物理内核可以实现多个虚拟处理器,例如Intel的超线程。在这种情况下,OS调度器应该意识到虚拟处理器可能共享各种资源,例如指令获取、指令调度硬件和执行单元,这通常意味着任务应该调度到不同的物理内核以最大化性能。这个问题在较小程度上也适用于共享二级缓存的不同内核。这些问题在某种程度上与多CPU计算机的NUMA优化有关

在第二种情况下,虚拟机监控程序的硬件虚拟化可以向操作系统提供任意数量的内核。虽然虚拟机监控程序通常不会让来宾操作系统看到比硬件提供的逻辑处理器更多的处理器,即包括与硬件多线程相关联的虚拟处理器,但从理论上讲,虚拟机监控程序可以提供任意数量的 处理器到操作系统就像操作系统可以通过使用时间切片向应用层呈现任意数量处理器的印象一样。在这样的软件虚拟化环境中,虚拟机监控程序可能不会向操作系统公开处理器的性质,因此操作系统只能将处理器作为抽象单元进行调度

这种划分有些复杂,硬件也可以实现多线程,而无需为每个线程提供完整的虚拟处理器。例如,MIPS多线程应用程序特定扩展区分了在体系结构状态方面作为不同处理器的虚拟处理元素和在同一VPE中的线程之间共享系统协处理器的线程上下文。更复杂的是,可能会在VPE之间迁移线程上下文。例如,一个物理处理器核心可能有两个VPE和五个线程上下文,并且允许操作系统将给定的TC分配给任一VPE,以便任一VPE可以有一到四个TC。此外,如果在FORK情况下有备用硬件线程可用,或者在YIELD情况下至少有一个线程仍处于活动状态,则非特权软件可以在没有操作系统参与的情况下FORK和YIELD线程


对于MIPS MT-ASE,操作系统通常只关注线程上下文,但是,如果对实际硬件配置有更全面的了解,则可以进行一些优化,如果将线程上下文视为虚拟处理元素,则可能会出现一些正确性问题。

了解一些背景知识可能会有所帮助:

加工机 处理器可以描述单个执行核或单个物理多核芯片。使用上下文将定义术语的含义。e、 g普通PC计算机应只有一个处理器

炸薯条 芯片是指计算机上的物理集成电路IC。芯片通常是指执行单元,可以是单核或多核技术

插座 插座是指计算机主板上的一个物理连接器,它接受单个物理芯片。许多主板可以有多个插座,从而可以接受多核芯片

核心 自从多核技术的出现,如双核和四核。本质上,核心包括包含一级缓存和功能单元的逻辑执行单元。内核能够独立执行程序或线程。超级计算机被列为拥有数千个核心

超线程 超线程是一种英特尔技术,最初先于多核系统,用于使单核逻辑上显示为同一芯片上的多核。超线程通过尽可能在多个内核之间共享计算工作负载来提高性能,从而允许操作系统一次调度多个进程。有关更多信息,请参阅英特尔超线程技术

物理/逻辑内核
如图所示,您有2个套接字,每个套接字有4个内核,由于超线程,每个内核当前可以执行4个线程。在这种情况下,如果在Linux上使用命令lscpu,您可能会看到您有32个CPU。实际上,从Linux的角度来看,您有1个芯片、2个插槽、8个内核和32个CPU。了解一些背景知识可能会有所帮助:

加工机 处理器可以描述单个执行核或单个物理多核芯片。使用上下文将定义术语的含义。e、 g普通PC计算机应只有一个处理器

炸薯条 芯片是指计算机上的物理集成电路IC。芯片通常是指执行单元,可以是单核或多核技术

插座 插座是指计算机主板上的一个物理连接器,它接受单个物理芯片。许多主板可以有多个插座,从而可以接受多核芯片

核心 自从多核技术的出现,如双核和四核。本质上,核心包括包含一级缓存和功能单元的逻辑执行单元。内核能够独立执行程序或线程。超级计算机被列为拥有数千个核心

超线程 超线程是一种英特尔技术,最初先于多核系统,用于使单核逻辑上显示为同一芯片上的多核。超线程通过尽可能在多个内核之间共享计算工作负载来提高性能,从而允许操作系统一次调度多个进程。有关更多信息,请参阅英特尔超线程技术

物理/逻辑内核 如图所示,您有2个套接字,每个套接字有4个内核,由于超线程,每个内核当前可以执行4个线程。在这种情况下,如果在Linux上使用命令lscpu,您可能会看到您有32个CPU。实际上,你有一个芯片,两个s
从Linux的角度来看,ockets、8核和32个CPU

了解更多上下文可能会有所帮助。你有找到这个短语的文档的链接吗?这里没有更多的上下文,它取自Avi Silberschatz et.al.第9版的主要操作系统参考操作系统概念的官方演示。,以下是演示的链接:您可以在题为“多核和多线程”的幻灯片中找到短语您接受了错误的答案。在同一物理核上拥有多个逻辑核可以最大限度地利用一组固定的ALU和管道。请参阅的SMT/Hyperreading部分。拥有更多的ALU或更宽的管道是完全不同的。无论是否有多个物理核,逻辑核总数都要多,这意味着您需要一个支持SMP的操作系统来利用这一优势。您需要多个执行线程才能使用它。了解更多上下文可能会有所帮助。你有找到这个短语的文档的链接吗?这里没有更多的上下文,它取自Avi Silberschatz et.al.第9版的主要操作系统参考操作系统概念的官方演示。,以下是演示的链接:您可以在题为“多核和多线程”的幻灯片中找到短语您接受了错误的答案。在同一物理核上拥有多个逻辑核可以最大限度地利用一组固定的ALU和管道。请参阅的SMT/Hyperreading部分。拥有更多的ALU或更宽的管道是完全不同的。无论是否有多个物理核,逻辑核总数都要多,这意味着您需要一个支持SMP的操作系统来利用这一优势。您需要多个执行线程才能使用它。顺便说一下,文本应该说可以同时执行多个指令流,甚至需要一个限定符,因为提供开启事件多线程或甚至交错/细粒度MT的硬件不会同时执行多个流,但它们在操作系统级别上是并发的顺便说一下,文本应该说可以同时执行多个指令流,甚至需要一个限定符,因为提供开启事件多线程或甚至交错/细粒度MT的硬件不会同时执行多个流,但它们在操作系统级别上是并发的勾选。ALU是cpu本身的一个组件,它实际上不受操作系统的控制。我认为@paul-a-clayton是正确的。ALU是cpu本身的一个组件,它实际上不受操作系统的控制。我认为@paul-a-clayton是正确的。