Які потоки процесора? відмінності з ядрами

Зміст:
- Які ядра процесора
- Що таке обробка потоків?
- Програми, процеси та потоки
- Процеси програми
- Нитки процесу
- Чи можемо ми побачити ці нитки або нитки в системі?
У цій статті ми знайдемо мить, щоб пояснити, що таке потоки процесора або також називаються потоками англійською мовою або потоками програмування, щоб виявити принципові відмінності між цими та ядрами процесора. Серед менш експертних і навіть більш просунутих користувачів все ще існує досить велика плутанина щодо цієї теми. Ось чому ми поставили собі за мету роз’яснити ці терміни.
Цю концепцію обробки потоків не важливо знати, купуючи процесор для звичайного користувача. У більшості випадків краще більше, ніж менше, це майже завжди так. Де нам потрібно знати, що це за теми, - це робота з розробки програми. Залежно від способу програмування та компіляції програми, воно матиме більш оптимізоване виконання для процесорів з більшою кількістю потоків, ніж ядер. І саме тут ми спробуємо вникнути у своє пояснення.
Зміст індексу
Які ядра процесора
Ми почнемо з пояснення того, що є ядрами нашого процесора, тому ми матимемо ці попередні знання, щоб не заплутатися.
Ми знаємо, що процесор відповідає за виконання та виконання вказівок програм, завантажених в оперативну пам'ять нашого комп'ютера. Через нього проходять практично всі інструкції, необхідні для виконання типових завдань на нашому ПК, навігації, написанні, перегляді фотографій тощо. У фізичному розділі процесор являє собою інтегральну схему, що складається з мільйонів транзисторів, які формують логічні ворота для передачі або не передачі бітів даних у вигляді енергії, без подальшої зміни.
Ну, цей маленький чіп містить різні модулі, які ми можемо назвати ядрами, крім інших елементів, які нас зараз не цікавлять. Процесори кілька років тому мали лише одне з цих ядер, і вони могли обробляти одну інструкцію за цикл. Ці цикли вимірюються в Мегагерц (МГц), чим більше МГц, тим більше інструкцій ми можемо виконувати щосекунди.
Зараз у нас є не одне ядро, а кілька. Кожне ядро являє собою підпроцесор, тобто кожен з цих підпроцесорів виконує одну з цих інструкцій, таким чином, зможе виконати кілька з них у кожному тактовому циклі за допомогою багатоядерного процесора. Якщо у нас є 4-ядерний процесор, ми можемо виконувати 4 інструкції одночасно, а не одну. Тож покращення продуктивності вчетверо збільшується. Якщо у нас 6, то одночасно 6 інструкцій. Ось як поточні процесори значно потужніші, ніж старіші.
І пам’ятайте, ці ядра фізично присутні в нашому процесорі, це не щось віртуальне або створене за кодом.
Що таке обробка потоків?
Нитки, нитки або нитки не є фізичною частиною процесора, принаймні, якщо мова йде про більше ядер чи щось подібне.
Ми можемо визначити потік обробки як потік управління даними програми. Це засіб, що дозволяє більш ефективно керувати завданнями процесора та його різних ядер. Завдяки потокам мінімальні одиниці розподілу, які є завданнями або процесами програми, можна розділити на шматки для оптимізації часу очікування кожної інструкції в черзі процесів. Ці шматки називають нитками або нитками.
Іншими словами, кожен обробний потік містить частину завдання, яке потрібно виконати, щось простіше виконати, ніж якщо ми введемо повне завдання у фізичне ядро. Таким чином процесор здатний обробляти кілька завдань одночасно і одночасно, насправді він зможе виконати стільки завдань, скільки має потоки, і зазвичай є одне або два для кожного ядра. У процесорах, які мають, наприклад, 6 ядер і 12 потоків, вони зможуть розділити процеси на 12 різних завдань, а не лише на 6.
Такий спосіб роботи забезпечує управління ресурсами системи більш справедливим та ефективним. Ви знаєте… він ділиться, і ви переможете все життя. Ці процесори називаються багатопотоковими. Поки що нам повинно бути зрозуміло, що процесор з 12 потоками не матиме 12 ядер, ядра - це щось фізичне, а потоки - щось логічне.
Це, безумовно, було дещо абстрактним і важким для розуміння, тому давайте подивимося, як це перекладається, якщо говорити про архітектуру програми на нашому комп’ютері.
Програми, процеси та потоки
Ми всі знаємо, що таке програма, це код, який зберігається в нашому комп’ютері і призначений для виконання конкретного завдання. Додаток - це програма, драйвер - це також програма і навіть операційна система - це програма, здатна виконувати інші програми всередині неї. Усі вони зберігаються у двійковій формі, оскільки процесор розуміє лише одиниці та нулі, поточні / непоточні.
Процеси програми
Для запуску програми вона завантажується в оперативну пам'ять. Ця програма завантажується процесами, які несуть пов'язаний з нею двійковий код та ресурси, необхідні для роботи, які оперативно буде призначена оперативно.
Основні ресурси, необхідні процесу, - лічильник програм і стек записів.
- Програмний лічильник (CP): його називають вказівником інструкції, і він відслідковує послідовність інструкцій, які обробляються. Реєстри: це склад, розташований в процесорі, де можуть зберігатися інструкція, адреса зберігання або будь-які інші дані. Стек: це структура даних, яка зберігає інформацію, пов'язану з екземплярами, якими програма активна в комп'ютері.
Потім кожна програма поділяється на процеси, і зберігається в певному місці в пам'яті. Крім того, кожен процес працює незалежно, і це дуже важливо для розуміння, оскільки саме так процесор і система здатні виконувати одночасно кілька завдань, що ми називаємо багатозадачною системою. Ця система обробки є винуватцем того, що ми можемо продовжувати працювати на своєму ПК, навіть якщо програма була заблокована.
Нитки процесу
Тут з’являються потоки обробки, звані потоками в операційних системах. Нитка - це одиниця виконання процесу. Ми можемо розділити процес на нитки, і кожна з них буде ниткою виконання.
Якщо програма не є багатопотоковою, процеси в ній матимуть лише один потік, тому вони можуть бути оброблені лише за один раз. Навпаки, якщо у нас є багатопотокові процеси, їх можна розділити на кілька частин, і кожна з цих потоків ділиться ресурсами, призначеними для процесу. Тож ми сказали, що багатопоточна більш ефективна.
Крім того, кожен потік має власний стек записів, так що два або більше з них можуть бути оброблені одночасно, на відміну від одного процесу, який доведеться запускати всі відразу. Нитки - це більш прості завдання, які дозволяють запускати процес розбитим способом. І це в основному кінцева функція обробки ниток. Чим більше ниток, тим більший поділ процесів і тим більший обсяг одночасних обчислень і, отже, більша ефективність.
Ми ще не закінчили, у нас все ще залишається питання, що відбувається тоді з серцевиною з подвійною ниткою ? Ми вже говорили, що кожне ядро здатне виконувати одну інструкцію за один раз. ЦП має складний алгоритм, який розподіляє час виконання найбільш ефективним способом, тим самим призначаючи кожній задачі певний інтервал виконання. Зміна між завданнями настільки швидка, що дасть відчуття, що ядро виконує завдання паралельно.
Чи можемо ми побачити ці нитки або нитки в системі?
Не надто детально, але так, ми можемо бачити їх як у Windows, так і на Mac.
У випадку з Windows нам залишиться лише відкрити диспетчер завдань і перейти до " продуктивності ". Тоді ми натиснемо на посилання “ монітор ресурсів ” нижче. У цьому новому вікні ми матимемо кожен процес, поділений на споживання процесора та потоки, це будуть потоки.
У моніторі активності Mac у нас будуть безпосередньо потоки, вказані на головному екрані.
На цьому ми закінчуємо нашу статтю про те, що таке потоки обробки процесора. Це, безумовно, дещо складна тема для пояснення і досить абстрактна, особливо для користувачів, які не повністю розуміють, як працює процесор. Але в цьому випадку у нас є хороші новини, тому що у нас є досить гарна стаття, яка розповідає про те, як працює процесор і як виконується весь цикл інструкцій.
Відвідайте наші статті про:
Ми сподіваємось, що все було більш-менш зрозуміло, і ми цінуємо, що ви обрали нас, щоб дізнатися більше про цю тему.
Відмінності між фізичними та логічними ядрами (smt або гіпертретування) на процесорі

Ядра, сердечники, потоки, сокети, логічне ядро та віртуальне ядро. Ми пояснюємо дуже просто всі ці поняття процесорів.
Золото Intel pentium золото проти срібла: які відмінності є і які вибрати?

Існує велика кількість моделей процесорів від гігантського Intel, але тут ми поговоримо про їх варіанти Pentium Gold vs Silver
Amd вирішить відмінності між "найкращими" та "бажаними" ядрами

В даний час існують розбіжності між найкращими ядрами та бажаними ядрами, якими керують Windows та AMD Ryzen Master.