Apa itu utas pengguna dan utas kernel?

13

Saya tahu apa itu thread, dan saya tahu cara kerjanya, tapi saya cukup bingung untuk apa thread pengguna dan thread kernel dalam hal apa yang diizinkan untuk mereka lakukan.

Bisakah Anda mengklarifikasi apa yang dapat dilakukan thread pengguna dan apa yang bisa dilakukan thread kernel?

Fasih Khatib
sumber
1
Pertanyaan ini sudah dijawab pada SO: stackoverflow.com/questions/5957570/kernel-space-vs-user-space
Shadok
Nah pertanyaannya sudah ditanyakan tetapi belum dijawab dengan baik. Semua yang dijawab dari 5 atau 6 hal yang ditanyakan orang tersebut adalah tentang ruang pengguna dan ruang kernel.
Fasih Khatib
1
Saya pikir definisi dari Dave Rager ringkas dan tepat: "Ruang kernel dan ruang pengguna adalah pemisahan fungsi sistem operasi istimewa dan aplikasi pengguna terbatas."
Shadok

Jawaban:

13

Utas kernel, kadang-kadang disebut LWP (Proses Ringan) dibuat dan dijadwalkan oleh kernel. Utas kernel seringkali lebih mahal untuk dibuat daripada utas pengguna dan panggilan sistem untuk secara langsung membuat utas kernel sangat spesifik untuk platform.

Utas pengguna biasanya dibuat oleh pustaka threading dan penjadwalan dikelola oleh pustaka threading itu sendiri (Yang berjalan dalam mode pengguna). Semua utas pengguna milik proses yang membuatnya. Keuntungan dari utas pengguna adalah mereka yang portabel. Perbedaan utama dapat dilihat ketika menggunakan sistem multiprosesor, utas pengguna yang sepenuhnya dikelola oleh pustaka threading tidak dapat dijalankan secara paralel pada CPU yang berbeda, meskipun ini berarti mereka akan berjalan dengan baik pada sistem uniprosesor. Karena utas kernel menggunakan penjadwal kernel, utas kernel yang berbeda dapat berjalan pada CPU yang berbeda. Banyak sistem menerapkan threading secara berbeda,

Model threading banyak-ke-satu memetakan banyak proses pengguna secara langsung ke satu utas kernel, utas kernel dapat dianggap sebagai proses utama. Model threading satu-ke-satu memetakan setiap utas pengguna langsung ke satu utas kernel, model ini memungkinkan pemrosesan paralel pada sistem multiprosesor. Setiap utas kernel dapat dianggap sebagai VP (Proses Virtual) yang dikelola oleh penjadwal.

Sumber: Jawaban

Anda juga dapat menemukan info di wikipedia bab 3 - 3 Proses, utas kernel, utas pengguna, dan serat:

Benang

Jason Paddle
sumber
Saya pikir itu bukan ide yang baik untuk ditiru dengan tampaknya tidak tahu persis apa sebenarnya argumen itu dan tanpa mengetahui sepenuhnya jawabannya. Bukankah LWP biasanya dibuat di atas utas kernel sebagai jembatan antara ini terakhir dan utas pengguna? Juga, jawaban ini sangat membingungkan karena ia terus beralih terminologi, dan pada akhirnya Anda tidak mengerti jika misalnya thread kernel adalah sebuah proses, dll.
nbro