Thread pada Sistem Operasi: Difference between revisions
| (One intermediate revision by the same user not shown) | |||
| Line 52: | Line 52: | ||
===Model One to One=== | ===Model One to One=== | ||
[[File:Thread3.jpg| | [[File:Thread3.jpg|thumb]] | ||
Model ini dimana setiap user thread memilki relasi dengan hanya satu kernel thread. sehinggal user thread memiliki jumlah yang sama dengan jumlah kernel thread. dengan ini jika salah satu thread kernel sedang di block, thread lain bisa berjalan secara parallel. Namun kekurangan dari model ini adalah sistem akan menanggung beban yang berat jika jumlah kernel thread terlalu banyak. Model ini banyak digunakan oleh sistem operasi Microsoft Windows, Linux/GNU, dan Apple MacOS. | Model ini dimana setiap user thread memilki relasi dengan hanya satu kernel thread. sehinggal user thread memiliki jumlah yang sama dengan jumlah kernel thread. dengan ini jika salah satu thread kernel sedang di block, thread lain bisa berjalan secara parallel. Namun kekurangan dari model ini adalah sistem akan menanggung beban yang berat jika jumlah kernel thread terlalu banyak. Model ini banyak digunakan oleh sistem operasi Microsoft Windows, Linux/GNU, dan Apple MacOS. | ||
====Kelebihan==== | ====Kelebihan==== | ||
| Line 58: | Line 58: | ||
====Kekurangan==== | ====Kekurangan==== | ||
*Dalam pembuatan user thread diperlukan pembuatan korespondensi thread pengguna. Karena dalam proses pembuatan kernel thread dapat mempengaruhi kinerja dari aplikasi, maka kebanyakan dari implementasi model ini membatasi jumlah thread yang didukung oleh sistem. Model ini ada pada Windows NT dan OS/2. | *Dalam pembuatan user thread diperlukan pembuatan korespondensi thread pengguna. Karena dalam proses pembuatan kernel thread dapat mempengaruhi kinerja dari aplikasi, maka kebanyakan dari implementasi model ini membatasi jumlah thread yang didukung oleh sistem. Model ini ada pada Windows NT dan OS/2. | ||
===Model Many to Many=== | ===Model Many to Many=== | ||
[[File:Thread4.jpg| | [[File:Thread4.jpg|thumb]] | ||
Model ini dimana terdapat banyak user thread dan setiap threadnya dapat dijalankan oleh salah satu thread yang di kernel space. Kernel thread memilki jumlah yang sama atau lebih sedikit dari jumlah user thread. dalam model ini sangat flexible dibandingkan dengan model sebelumnya namun untuk programmer untuk mengimplementasikannya lebih sulit. | Model ini dimana terdapat banyak user thread dan setiap threadnya dapat dijalankan oleh salah satu thread yang di kernel space. Kernel thread memilki jumlah yang sama atau lebih sedikit dari jumlah user thread. dalam model ini sangat flexible dibandingkan dengan model sebelumnya namun untuk programmer untuk mengimplementasikannya lebih sulit. | ||
====Kelebihan==== | ====Kelebihan==== | ||
| Line 66: | Line 67: | ||
====Kekurangan==== | ====Kekurangan==== | ||
*Developer dapat membuat user thread sebanyak mungkin, tetapi konkurensi tidak dapat diperoleh karena hanya satu thread yang dapat dijadwalkan oleh kernel pada suatu waktu. Model ini ada pada Solaris, IRIX, dan Digital UNIX. | *Developer dapat membuat user thread sebanyak mungkin, tetapi konkurensi tidak dapat diperoleh karena hanya satu thread yang dapat dijadwalkan oleh kernel pada suatu waktu. Model ini ada pada Solaris, IRIX, dan Digital UNIX. | ||
===Cancellation=== | ===Cancellation=== | ||
Thread cancellation ialah pemberhentian thread sebelum tugasnya selesai. Umpama, 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 biasa disebut target thread.Pemberhentian target thread dapat terjadi melalui dua cara yang berbeda:Asynchronous cancellation: suatu thread seketika itu juga memberhentikan target thread. | Thread cancellation ialah pemberhentian thread sebelum tugasnya selesai. Umpama, 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 biasa disebut target thread.Pemberhentian target thread dapat terjadi melalui dua cara yang berbeda:Asynchronous cancellation: suatu thread seketika itu juga memberhentikan target thread. | ||