Penjelasan Model Multithreading jelaskan dan perbedaan
Model Multithreading terdapat 3 jenis model, tuliskan & jelaskan perbedaan dari masing-masing model!. disini adalah penjelasan yang lengkapnya beserta perbedaan ketigaya.
Model Many-to-One
Model Many-to-One adalah Model ini memetakan beberapa thread tingkatan pengguna ke sebuah thread. tingkatan kernel. Pengaturan thread dilakukan dalam ruang pengguna sehingga efisien. Hanya satu thread pengguna yang dapat mengakses thread kernel pada satu saat. Jadi Multiple thread tidak dapat berjalan secara paralel pada multiprosesor. Contoh: Solaris Green Threads dan GNU Portable Threads.
Model One-to-One
Model One-to-One adalah Model ini memetakan setiap thread tingkatan pengguna ke setiap thread. Ia menyediakan lebih banyak concurrency dibandingkan model Many-to-One. Keuntungannya sama dengan keuntungan thread kernel. Kelemahan model ini ialah setiap pembuatan thread pengguna memerlukan
tambahan thread kernel. Karena itu, jika mengimplementasikan sistem ini maka akan menurunkan kinerja dari sebuah aplikasi sehingga biasanya jumlah thread dibatasi dalam sistem. Contoh: Windows NT/XP/2000 , Linux, Solaris 9.
Model Many-to-Many
Model ini memultipleks banyak thread tingkatan pengguna ke thread kernel yang jumlahnya sedikit atau sama dengan tingkatan pengguna. Mengizinkan developer membuat thread sebanyak yang ia mau tetapi concurrency tidak dapat diperoleh, karena hanya satu thread yang dapat dijadwalkan oleh kernel pada suatu waktu.
Keuntungan Multithreading
- kernel thread yang bersangkutan dapat berjalan secara paralel pada multiprosessor.
- Multithreading mengizinkan program untuk berjalan terus walau-pun pada bagian program tersebut di block atau sedang dalam keadaan menjalankan operasi yang lama/panjang. Sebagai contoh, multithread web browser dapat mengizinkan pengguna berinteraksi dengan suatu thread ketika suatu gambar sedang diload oleh thread yang lain.
- Pembagian sumber daya secara sederhana thread membagi memori dan sumber daya dari proses. Ketika thread berjalan pada data yang sama, thread tersebut bisa berbagi cache memory.
- Ekonomis, Mengalokasikan memori dan sumber daya untuk membuat proses adalah sangat mahal. Alternatifnya, karena thread membagi sumber daya dari proses, ini lebih ekonomis untuk membuat threads.
- Pemberdayaan arsitektur multiprosesor, Keuntungan dari multi-threading dapat ditingkatkan dengan arsitektur multiprosesor, dimana setiap thread dapat jalan secara paralel pada prosesor yang berbeda. Pada arsitektur prosesor tunggal, CPU biasanya berpindah-pindah antara setiap thread dengan cepat, sehingga terdapat ilusi paralelisme, tetapi pada kenyataannya hanya satu thread yang berjalan di setiap waktu.
Perbedaan model many-to-One ,One-to-One, many-to-Many
- Model One-to-One menyediakan lebih banyak concurrency dibandingkan model Many-to-One.
- Model Many to Many mengizinkan developer membuat thread sebanyak yang ia mau, tidak seperti pada Model One-to-One dan Many-to-One.
Thread dalam Sistem Operasi
- Sistem operasi telah mendukung proses multithreading.
- Setiap sistem operasi memiliki konsep tersendiri dalam pengimplementasiannya.
- Sistem operasi dapat mendukung thread pada tingkatan kernel maupun tingkatan
Thread cancellation adalah pemberhentian thread sebelum tugasnya selesai. Misalnya jika dalam program Java hendak mematikan Java Virtual Machine (JVM). Sebelum JVM dimatikan, maka seluruh thread yang berjalan harus dihentikan terlebih dahulu. Thread yang akan diberhentikan disebut sebagai target thread. Pembatalan
Thread terdiri dari 2 jenis yaitu Asynchronous cancellation Deffered cancellation.
- Asynchronous cancellation adalah suatu thread seketika itu juga memberhentikan target thread.
- Deffered cancellation adalah target thread secara perodik memeriksa apakah dia harus berhenti, cara ini memperbolehkan target thread untuk memberhentikan dirinya sendiri secara terurut.