Objective

Watch the ideas from this chapter (cores, threads, context switches, frequency scaling) happen live on your own PC. No special tools are needed. Windows already has everything.

What to Open

  1. Task Manager
    • Right-click the taskbar → Task Manager, or press Ctrl+Shift+Esc
  2. Resource Monitor
    • Open Task Manager → Performance tab → "Open Resource Monitor" link (at the bottom), or press Windows Key + R, type resmon, press Enter

Part 1: Task Manager — Processes Tab

  1. Click the CPU column header to sort processes by CPU use
  2. Start something demanding in the background (for example copy a large file, or open several browser tabs) and watch the CPU% numbers move
  3. Notice: the "CPU" percentage here is measured against all logical processors together. 100% means every logical processor is completely busy

Part 2: Task Manager — Performance Tab

  1. Click the CPU tile on the left
  2. Look at the main graph. It shows total CPU use over time
  3. Right-click inside the graph → Change graph to → Logical processors. Now you see one small graph per logical processor (per hardware thread)
  4. Write down the numbers at the bottom:
Utilization: __________%
Speed:       __________ GHz
Cores:       __________
Logical processors: __________

Connect it back to the chapter:

  • Is "Logical processors" the same as "Cores", or higher? If higher, that is Hyper-Threading/SMT (Section 2.5) at work.
  • Watch the "Speed" number while idle, then while running something demanding (like a video export or a benchmark). It should change. That is dynamic frequency scaling (Section 10.2) happening in real time.

Part 3: Task Manager — Details Tab (Threads)

  1. Go to the Details tab
  2. Right-click any column header → Select columns
  3. Turn on: Threads
  4. See how many threads a normal app (like your browser) has. It is often dozens, sometimes hundreds

Connect it back to the chapter: Every one of those threads is a candidate for the OS scheduler to place on a core. These are the software threads from Section 2.2. They are different from the hardware threads (logical processors) you saw in Part 2.

Part 4: Resource Monitor — CPU Tab

  1. Switch to the CPU tab in Resource Monitor
  2. Look at the Threads column for each process, and at the small graphs on the right that show use of each logical processor
  3. Find the "Maximum Frequency" percentage at the bottom right. It shows the current speed as a percentage of the CPU's rated maximum. It is a direct view of dynamic frequency scaling

Part 5: Observing Context Switches (Optional, Advanced)

  1. In Resource Monitor's CPU tab, right-click a column header in the process list and see if Context Switches/sec or a similar counter is available. (Or use Performance Monitor: run perfmon and add the counter Thread → Context Switches/sec.)
  2. Watch the number while the PC is mostly idle, then while you run several apps at once
  3. A high context-switch rate, with many runnable threads fighting for few cores, is a live example of Section 7.5–7.6 (context switching and its overhead)

What Should Happen

You should be able to see:

  • How many physical cores vs. logical processors your CPU has
  • CPU speed changing with workload
  • Single apps using many threads
  • Load spread unevenly across logical processors (some busier than others)

Interpretation Guide

What you seeWhat it means
Logical processors > CoresHyper-Threading / SMT is on (Section 2.5)
Speed jumps up under load, drops when idleDynamic frequency scaling (Section 10.2)
One process pinning one logical processor at 100% while others sit near 0%A single-threaded workload. It cannot use more than one core, however many you have (Section 2.4)
Many threads across processes, moderate CPU% overallNormal multitasking. The scheduler is context-switching between them (Section 7.5)

Follow-Up Questions

  1. How many physical cores and logical processors does your CPU have? Does the difference tell you whether SMT is on?
  2. What was your CPU's base speed compared with the highest speed you saw under load?
  3. Find one app using many threads and one using very few. What kind of app is each, and does that match what you expected?
  4. Did you ever see all logical processors near 100% at once? What were you doing?

Summary

Tool / placeWhat it showsChapter idea
Task Manager → Performance → CPUSpeed, cores, logical processorsSMT (2.5), frequency scaling (10.2)
Task Manager → Details → ThreadsThreads per appSoftware threads (2.2)
Resource Monitor → CPUPer-processor graphs, Maximum FrequencyFrequency scaling (10.2)
Performance Monitor counterContext Switches/secContext switching (7.5–7.6)