Лекція 12. CPU — виконавець команд
Лекція 12. CPU — виконавець команд
Section titled “Лекція 12. CPU — виконавець команд”Рівень 3: Дослідник заліза
Марко, сьогодні ми не просто вивчимо новий термін — ми відкриємо ще один шар того, як насправді працює комп’ютер.
Що ми сьогодні розкриємо
Section titled “Що ми сьогодні розкриємо”- розуміти базову роль процесора
- знати, що таке ядра та частота на простому рівні
- знайти модель CPU своєї Linux-системи
Зв’язок з попередніми лекціями
Section titled “Зв’язок з попередніми лекціями”У цій лекції ми використаємо поняття CPU з лекції 11, щоб заглибитись у те, як процесор виконує інструкції.
CPU читає й виконує інструкції
Section titled “CPU читає й виконує інструкції”Процесор можна уявити як неймовірно швидкого виконавця дуже маленьких команд: взяти значення, додати, порівняти, перейти до іншої інструкції, перемістити дані.
Python-код не виконується процесором буквально як текст print(...). Між твоїм кодом і апаратними інструкціями є інтерпретатор Python, операційна система та інші шари. Але внизу ланцюжка роботу все одно виконує CPU.
Робота CPU — це постійний цикл із трьох кроків:
graph LR
A["1. Взяти інструкцію
(fetch)"] --> B["2. Зрозуміти, що робити
(decode)"]
B --> C["3. Виконати
(execute)"]
C --> A
style A fill:#e1f5fe
style B fill:#fff3e0
style C fill:#e8f5e9
Його повторюють мільярди разів на секунду.
Ядра — кілька виконавців усередині одного процесора
Section titled “Ядра — кілька виконавців усередині одного процесора”Сучасний CPU має кілька ядер. Це дозволяє системі виконувати більше роботи паралельно. Але 8 ядер не означає, що будь-яка програма автоматично стане рівно у 8 разів швидшою: не кожне завдання можна ідеально поділити.
GHz — частота, але не «бал сили»
Section titled “GHz — частота, але не «бал сили»”Гігагерц описує частоту тактового сигналу. Це важлива характеристика, але не універсальний рейтинг швидкості. Два різні процесори з однаковими GHz можуть виконувати різну кількість корисної роботи за той самий час через архітектуру, кеш, кількість ядер та інші особливості.
Приклади
Section titled “Приклади”Приклад 1
Section titled “Приклад 1”Якщо програма рахує суму мільйона чисел, CPU багато разів виконує операції завантаження, додавання та керування циклом.
Приклад 2
Section titled “Приклад 2”Під час гри одне ядро може працювати над частиною логіки, інші — над фоновими задачами ОС; реальний розподіл складний і керується планувальником.
Приклад 3
Section titled “Приклад 3”Назва x86_64 або aarch64 описує сімейство архітектури/набору інструкцій, а не бренд комп’ютера.
Linux-лабораторія: паспорт процесора
Section titled “Linux-лабораторія: паспорт процесора”lscpuЗнайди рядки на кшталт:
Architecture:CPU(s):Model name:Для короткого перегляду можна використати:
lscpu | grep -E 'Model name|CPU\(s\)|Architecture'Місія для Марка
Section titled “Місія для Марка”Виконай місію по черзі. Якщо щось не виходить — спочатку перечитай приклад вище й спробуй знайти, на якому кроці результат відрізняється.
- виконай
lscpuі запиши модель процесора - знайди архітектуру
- знайди число логічних CPU, яке показує система
- створи
cpu_note.txtіз трьома знайденими фактами будь-яким знайомим способом - поясни, чому не можна порівнювати процесори лише за GHz
Перевір себе
Section titled “Перевір себе”- Що виконує CPU?
- Що таке ядро?
- Чи гарантують удвічі більше ядер удвічі більшу швидкість будь-якої програми?
- Що приблизно описують GHz?
- Яка Linux-команда показує інформацію про CPU?
Терміни однією фразою
Section titled “Терміни однією фразою”- Інструкція — одна крихітна команда для процесора (взяти, додати, порівняти).
- Ядро (core) — один «виконавець» усередині процесора; кілька ядер працюють паралельно.
- Частота (GHz) — скільки тактів за секунду; важлива, але не єдиний показник швидкості.
- Архітектура (набір інструкцій) — «мова», якою розмовляє процесор (наприклад
x86_64). - Інтерпретатор — програма, яка читає і виконує твій код крок за кроком (Python).
- Планувальник — частина ОС, що вирішує, якому процесу коли дати CPU.
Чек-лист перед наступною лекцією
Section titled “Чек-лист перед наступною лекцією”- Чи можеш ти пояснити, що таке ядра процесора та як вони працюють?
- Чи знаєш ти, що таке GHz і як він пов’язаний з швидкістю процесора?
- Чи розумієш ти різницю між інтерпретатором та компілятором?
Що потрібно винести з лекції
Section titled “Що потрібно винести з лекції”- CPU виконує інструкції над даними
- ядра дозволяють системі виконувати більше роботи паралельно
- характеристики процесора треба читати разом, а не зводити до одного числа
Хакерський принцип: не запам’ятовуй магічні слова. Намагайся пояснити своїми словами, що відбулося і чому.