I am confused, because when I see my mac about window, I see
That I have
1 Processor and
4 cores. But when I run
htop, I see
What am I missing?
Super User is a question and answer site for computer enthusiasts and power users. It only takes a minute to sign up.Sign up to join this community
What am I missing?
Hyperthreading. You have 4 physical cores, but 8 logical ones.
For each processor core that is physically present, the operating system addresses two virtual (logical) cores and shares the workload between them when possible.
# of Cores 4
Cores is a hardware term that describes the number of independent central processing units in a single computing component (die or chip).
# of Threads 8
A Thread, or thread of execution, is a software term for the basic ordered sequence of instructions that can be passed through or processed by a single CPU core.
What you see are so called
For each physical core there are two hyperthreaded (or logical) cores, you can read up more about hyperthreading here
It has 4 physical cores and 4 logical cores giving you the total of 8 cores.
This is called Hyper-threading
While most of the answers here are providing the link to Wikipedia (which is correct!), I just want to list a paragraph from the same article which helped me understand how can the logical processor work.
Hyper-threading works by duplicating certain sections of the processor—those that store the architectural state—but not duplicating the main execution resources. This allows a hyper-threading processor to appear as the usual "physical" processor and an extra "logical" processor to the host operating system (HTT-unaware operating systems see two "physical" processors), allowing the operating system to schedule two threads or processes simultaneously and appropriately. When execution resources would not be used by the current task in a processor without hyper-threading, and especially when the processor is stalled, a hyper-threading equipped processor can use those execution resources to execute another scheduled task. (The processor may stall due to a cache miss, branch misprediction, or data dependency.)
Source: can you guess?