Pada pembahasan threads, kita mengenalkan thread untuk model proses, hal itu mengizinkan sebuah proses untuk mempunyai kontrol terhadap multiple threads. Lebih lanjut bisa membedakan antara user-level dan kernel level threads. User level threads diatur oleh thread library. Untuk menjalankan di CPU, user level threads dipetakan dengan asosiasi kernel level thread, walaupun mapping ini mungkin bisa indirect dan menggunakan lightweight.
Java Thread dan
Algoritma
Penjadwalan thread yang runnable oleh
Java Virtual Machine dilakukan dengan konsep preemptive dan mempunyai prioritas
tertinggi. Dalam algoritma, kriteria-kriteria evaluasi ditentukan terlebih
dahulu, seperti utilisasinya dilihat dar segi waktu tunggu yang digunakan dan
throughput yang disesuaikan dengan waktu turnaround-nya.
1.8.
Penjadwalan Java Thread
Java Virtual Machine menjadwalkan thread
menggunakan preemptive, berdasarkan prioritas algoritma penjadwalan. Semua Java
Thread diberikan sebuah prioritas dan Java Virtual Machine menjadwalkan thread
yang runnable dengan menggunakan prioritas tertinggi, Java Virtual Machine akan
menjadwalkan thread tersebut dengan menggunakan sebuah antrian secara FIFO.
Keunggulan
Penjadwalan Java Thread
1.
Java
Virtual Machine menggunakan prioritas preemptive berdasarkan algoritma
penjadwalan
2.
Semua
thread Java mempunyai prioritas dan thread dengan prioritas tertinggi
dijadwalkan untuk dieksekusi oleh Java Virtual Machine.
3.
Jika
terjadi dua thread dengan prioritas sama maka digunakan algoritma First In
First Out.
Thread
lain dijalankan bila terjadi hal-hal berikut ini:
·
Thread
yang sedang dieksekusi keluar dari status runnable, misalnya diblok atau
berakhir
·
Thread
dengan prioritas yang lebih tinggi dari thread yang sedang dieksekusi memasuki status
runnable. Maka thread dengan prioritas yang lebih rendah ditunda eksekusinya
dan digantikan oleh dengan prioritas lebih tinggi.
Time slicing bergantung pada
implementasinya. Sebuah thread dapat memberi kontrol pada yield() method. Saat
thread memberi sinyal pada CPU untuk mengontrol thread yang lain dengan
prioritas ynag sama, maka thread tersebut dijadwalkan untuk dieksekusi. Thread
yang memberi kontrol pada CPU disebut Cooperative Multitasking.
1.8.
1 comments:
KURANG LENGKAP
Post a Comment