Materi Sistem Operasi, Thread
- MDA14
- Oct 20, 2022
- 3 min read
Updated: May 14, 2023
Thread adalah aliran sekuensial tunggal pelaksanaan tugas dari suatu proses sehingga juga dikenal sebagai thread of execution atau thread of control. Ada cara eksekusi Thread di dalam proses sistem operasi apa pun. Terlepas dari ini, bisa ada lebih dari satu Thread di dalam suatu proses. Setiap Thread dari proses yang sama menggunakan penghitung program terpisah dan setumpuk catatan aktivasi dan blok kontrol. Thread sering disebut sebagai proses yang ringan.

Prosesnya dapat dipecah menjadi begitu banyak Thread. Misalnya, di browser, banyak tab dapat dilihat sebagai Thread. MS Word menggunakan banyak Thread - memformat teks dari satu Thread, memproses input dari Thread lain, dll.
Kebutuhan Thread:
Dibutuhkan jauh lebih sedikit waktu untuk membuat thread baru dalam proses yang ada daripada membuat proses baru.
Thread dapat berbagi data umum, mereka tidak perlu menggunakan komunikasi Antar Proses.
Pergantian konteks lebih cepat saat bekerja dengan Thread.
Dibutuhkan lebih sedikit waktu untuk mengakhiri Thread daripada proses.
Jenis Thread
Dalam sistem operasi, ada dua jenis Thread.
Kernel level thread.
User-level thread.
User-level thread
Sistem operasi tidak mengenali Thread tingkat pengguna. Thread pengguna dapat dengan mudah diimplementasikan dan diimplementasikan oleh pengguna. Jika pengguna melakukan operasi pemblokiran Thread tingkat pengguna, seluruh proses diblokir. Thread tingkat kernel tidak tahu apa-apa tentang Thread tingkat pengguna. Thread tingkat kernel mengelola Thread tingkat pengguna seolah-olah itu adalah proses Thread tunggal? Contoh: Thread Java, Thread POSIX, dll.
Keuntungan dari User-Level Thread
Thread pengguna dapat dengan mudah diimplementasikan daripada Thread kernel.
Thread tingkat pengguna dapat diterapkan ke jenis sistem operasi yang tidak mendukung Thread di tingkat kernel.
Lebih cepat dan efisien.
Waktu sakelar konteks lebih pendek daripada Thread tingkat kernel.
Tidak memerlukan modifikasi sistem operasi.
Representasi Thread tingkat pengguna sangat sederhana. Blok kontrol register, PC, stack, dan mini thread disimpan di ruang alamat proses tingkat pengguna.
Sangat mudah untuk membuat, mengganti, dan menyinkronkan Thread tanpa campur tangan proses.
Kekurangan Thread tingkat pengguna
Thread tingkat pengguna tidak memiliki koordinasi antara Thread dan kernel.
Jika Thread menyebabkan kesalahan halaman, seluruh proses diblokir.

Kernel level thread
Thread kernel mengenali sistem operasi. Ada blok kontrol Thread dan blok kontrol proses dalam sistem untuk setiap Thread dan proses di Thread tingkat kernel. Thread tingkat kernel diimplementasikan oleh sistem operasi. Kernel mengetahui semua Thread dan mengelolanya. Thread tingkat kernel menawarkan panggilan sistem untuk membuat dan mengelola Thread dari ruang pengguna. Implementasi Thread kernel lebih sulit daripada Thread pengguna. Waktu peralihan konteks lebih lama di Thread kernel. Jika Thread kernel melakukan operasi pemblokiran, eksekusi Thread Banky dapat dilanjutkan. Contoh: Windows Solaris.

Keuntungan dari Thread tingkat kernel
Thread tingkat kernel sepenuhnya mengetahui semua Thread.
Penjadwal dapat memutuskan untuk menghabiskan lebih banyak waktu CPU dalam proses thread menjadi numerik besar.
Thread tingkat kernel bagus untuk aplikasi yang memblokir frekuensi.
Kekurangan Thread tingkat Kernel
Thread kernel mengelola dan menjadwalkan semua Thread.
Implementasi Thread kernel lebih sulit daripada Thread pengguna.
Thread tingkat kernel lebih lambat dari Thread tingkat pengguna.
Komponen Thread
Setiap Thread memiliki komponen berikut.
Penghitung program
Daftar set
Tumpuk ruang
Manfaat Thread
Peningkatan throughput sistem: Ketika proses dipecah menjadi banyak Thread, dan setiap Thread diperlakukan sebagai pekerjaan, jumlah pekerjaan yang dilakukan dalam satuan waktu meningkat. Itu sebabnya throughput sistem juga meningkat.
Pemanfaatan Sistem Multiprosesor yang Efektif: Bila Anda memiliki lebih dari satu Thread dalam satu proses, Anda dapat menjadwalkan lebih dari satu Thread di lebih dari satu prosesor.
Peralihan konteks yang lebih cepat: Periode peralihan konteks antar Thread lebih sedikit daripada peralihan konteks proses. Switch konteks proses berarti lebih banyak overhead untuk CPU.
Responsiveness: Ketika proses dipecah menjadi beberapa thread, dan ketika sebuah thread menyelesaikan eksekusinya, proses tersebut dapat ditanggapi sesegera mungkin.
Komunikasi: Komunikasi multi-Thread sederhana karena Thread berbagi ruang alamat yang sama, sementara dalam proses, kami hanya mengadopsi beberapa strategi komunikasi eksklusif untuk komunikasi antara dua proses.
Resource sharing: Sumber daya dapat dibagi di antara semua Thread dalam suatu proses, seperti kode, data, dan file. Catatan: Tumpukan dan register tidak dapat dibagi antar Thread. Ada tumpukan dan register untuk setiap Thread.
Sumber Referensi yang di translasikan dari :



Comments