Apa itu utas, dan apa yang mereka lakukan pada prosesor?

27

Saya melihat statistik untuk Intel Pentium e5700 CPU.

Ia memiliki dua inti dan dua utas. Apa yang dilakukan utas untuk prosesor? Apakah ada hubungan antara jumlah inti dan jumlah utas? Tujuan apa yang diberikan utas untuk sistem secara keseluruhan?

tidak mungkin3
sumber
Baik jumlah utas yang dapat ditangani CPU pada suatu waktu atau statistik palsu yang diciptakan Intel.
digitxp
3
Memilih untuk menutup sebagai IMO ini terlalu umum - sementara saya selalu sangat ragu untuk mengatakan "hanya Google itu", tujuan Super User (dan situs serupa) adalah untuk menjawab pertanyaan nyata, bukan menjadi kamus untuk istilah teknis yang mudah dicari dalam sumber daya yang lebih tepat.
Shinrai
3
@ Shinrai Saya telah mengedit ini untuk membuatnya kurang umum
Simon Sheehan

Jawaban:

21

Hitungan inti adalah jumlah fisik inti pada CPU mati itu sendiri, sedangkan jumlah utas adalah jumlah utas aplikasi individual yang dapat dieksekusi secara bersamaan pada CPU itu sendiri. Tanpa perangkat keras tambahan atau khusus, ini sama dengan jumlah inti. Beberapa prosesor, bagaimanapun, akan memiliki lebih banyak utas daripada inti.

Beberapa Intel CPU memiliki fitur yang disebut hyperthreading , yang memungkinkan sistem operasi untuk melihat dua kali lipat jumlah inti logis per inti fisik. Ini memungkinkan sistem operasi untuk menjadwalkan dan menjalankan dua kali lipat jumlah utas secara bersamaan, jadi dalam kasus CPU yang saya tautkan di atas, ada empat inti fisik, tetapi delapan inti logis (sehingga Anda dapat menjalankan delapan utas secara bersamaan).

Setiap aplikasi individual yang berjalan dalam sistem operasi adalah single-threaded atau multi-threaded (anggap setiap thread sebagai "sub-aplikasi"). Aplikasi single-threaded membutuhkan hanya satu thread untuk dijalankan pada CPU, sedangkan aplikasi multi-threaded memiliki banyak sub-thread yang berjalan secara bersamaan. Core tambahan, atau hyper-threading, memungkinkan lebih banyak utas aplikasi berjalan secara bersamaan.

Ini memungkinkan aplikasi multi-threaded ( bukan single-threaded) untuk berjalan lebih cepat, karena lebih dari satu thread dapat berjalan sekaligus pada CPU.


Sebagai catatan terakhir, hyperthreading meningkatkan kinerja beberapa aplikasi multithreaded yang secara khusus dioptimalkan untuk itu (karena masih ada setengah jumlah core fisik karena ada logis). Dalam beberapa berbagai kasus, aplikasi dapat berjalan lebih cepat dengan HyperThreading dinonaktifkan (meskipun banyak aplikasi lakukan manfaat dari itu). Terlepas dari hyperthreading, peningkatan jumlah core fisik akan selalu menguntungkan aplikasi multithreaded.

Penerobosan
sumber
1
Bisakah Anda menjelaskan apa yang dilakukan thread untuk prosesor? +1 untuk menyebutkan hyperthreading, seperti yang sangat umum sekarang (Sepertinya berada di semua i3's)
Simon Sheehan
Setiap proses memiliki setidaknya satu utas. Ketika proses mendapat giliran pada CPU, utas utama berjalan sampai giliran CPU-nya naik. Suatu proses dapat memunculkan thread lain, dan sekarang dua bagian dari proses yang sama akan berjalan dan meminta giliran CPU. Semua proses adalah program, dan dengan mekanisme ini, dua hal dalam program yang sama dapat berjalan sekaligus. Ini lebih cepat daripada membuat proses baru (yaitu forking atau memuat program baru) tetapi kurang aman. Proses terisolasi satu sama lain, untaian proses tidak.
LawrenceC
Bagaimana jika saya telah membuat program java multithreaded dengan mengeksekusi 50 thread bersamaan, dan saya menjalankannya pada Intel i7-4790K, yang memiliki 4 core dan 8 thread. Apakah ini berarti bahwa hanya 8 dari 50 utas dalam aplikasi java yang benar-benar mengeksekusi secara bersamaan dan sisanya berada dalam antrian? Bagaimana cara kerjanya
Donato
@ Donato sistem operasi memotong semua thread yang sedang berjalan untuk memungkinkan yang lain beberapa saat menyelesaikan pekerjaan mereka. Pada saat tertentu hanya 8 utas yang berjalan pada CPU, dan setiap inti terus-menerus beralih di antara utas yang berbeda; akan membantu jika menganggap mereka sebagai "pekerjaan" (mengingat pekerjaan juga dapat ditetapkan sebagai prioritas). Setiap inti akan melakukan beberapa pekerjaan untuk thread tertentu, dan kemudian terganggu oleh sistem operasi scheduler tugas untuk pindah ke pekerjaan yang berbeda, melakukan beberapa pekerjaan pada pekerjaan itu, dan seterusnya dan keempat, sampai pekerjaan selesai.
Terobosan
@Breakthrough, Re " sehingga Anda dapat menjalankan delapan utas secara bersamaan ", Apa batasan simultanitas seperti itu jika dibandingkan dengan simultanitas sejati yang ditawarkan oleh masing-masing inti nyata? Juga, bagaimana mungkin " aplikasi dapat berjalan lebih cepat dengan hipertransmisi dinonaktifkan "?
Pacerier
9

"Core" mewakili subset fisik aktual dari prosesor yang dapat dengan sendirinya menangani pemrosesan, sedangkan "utas" adalah berapa banyak proses aktual yang dapat ditangani oleh prosesor secara bersamaan. Intel telah mengembangkan teknologi yang mereka beri label "hyper-threading" teknik ini memungkinkan satu inti fisik (yang biasanya hanya dapat menangani satu utas pada satu waktu) untuk sekarang dapat menangani dua utas secara bersamaan.

Utas adalah tugas yang harus ditangani prosesor, untuk penjelasan sederhana, Anda dapat mengasumsikan bahwa setiap aplikasi yang Anda buka (seperti cat, notepad, pemutar media) memiliki utas sendiri ... sekarang ini tidak berarti Anda hanya dapat membuka 2 aplikasi sekaligus, hanya karena prosesor dan OS bekerja sangat cepat di 'switching threads' untuk menangani kebutuhan setiap aplikasi yang Anda buka. Anda hanya akan mengalami kinerja yang lebih baik dengan lebih banyak core karena sekarang Anda dapat membagikan semua pekerjaan ke lebih banyak prosesor inti.

Sebagai contoh, komputer kerja saya memiliki i7 di dalamnya. I7 memiliki 4 inti fisik, tetapi masing-masing inti dapat melakukan 'hyper-threading' yang memungkinkan prosesor ini menangani 8 utas sekaligus. Jadi jika saya membuka task manager, saya akan melihat 8 kotak untuk skala kinerja prosesor.

Secara umum, lebih banyak inti fisik lebih baik daripada lebih banyak utas. Jadi jika Anda membandingkan prosesor yang memiliki 4 inti dan 4 utas, akan lebih baik daripada 2 inti 4 utas. Tetapi semakin banyak thread yang dapat ditangani prosesor Anda, semakin baik kinerjanya saat melakukan banyak tugas dan untuk beberapa aplikasi yang sangat intensif (pengeditan video, CAD, CAM, Kompresi, Enkripsi, dll.) Dengan sendirinya akan menggunakan lebih dari satu inti pada satu waktu.

CenterOrbit
sumber
Apa yang Anda maksud dengan "kotak"?
Pacerier
google.com/…
CenterOrbit
-1

mengklik tautan dalam sebuah artikel di IE atau chrome ,, setiap kali Anda mengklik Anda membuat utas. semakin Anda mengklik tautan, semakin banyak utas. memiliki CPU 4 inti Anda memiliki hingga 8 utas Anda dapat membuka 8 tautan sebelum Anda mulai mengalami masalah. mengabaikan koneksi internet Anda. jadi setiap inti mencakup dua tautan (utas) yang telah Anda buka. itulah ide IMO. apakah ini masuk akal bagi siapa pun.

marc g.
sumber
Tidak, ini bukan topik yang ada dalam konteks CPU atau pertanyaan yang diajukan.
music2myear