Java Thread dan Algoritmanya dalam Sistem Operasi

Penjadwalan Java Thread

Penjadwalan thread yang Runnable oleh Java Virtual Machine dilakukan dengan konsep preemptive dan mempunyai prioritas tertinggi. Dalam algoritma evaluasi ditentukan terlebih dahulu kriteria-kriterianya seperti utilisasinya dilihat dari segi waktu tunggu yang digunakan dan throughput yang disesuaikan dengan waktu turnaroundnya.

Keunggulan 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 saat eksekusi. Jika ada dua atau lebih thread yang Runnable yang mempunyai prioritas tertinggi, Java Virtual Machine akan menjadwalkan thread tersebut menggunakan sebuah antrian secara FIFO.

Prioritas Thread

image by https://avaldes.com/
Java Virtual Machine memilih thread yang runnable dengan prioritas tertinggi. Semua thread java mempunyai prioritas dari 1 sampai 10. Prioritas tertinggi 10 dan berakhir dengan 1 sebagai prioritas terendah. Sedangkan prioritas normal adalah 5.
Thread.MIN_PRIORITY = thread dengan prioritas terendah
Thread.MAX_PRIORITY = thread dengan prioritas tertinggi
Thread.NORM_PRIORITY = thread dengan prioritas normal

Saat thread baru dibuat ia mempunyai prioritas yang sama dengan thread yang menciptakannya. Prioritas thread dapat diubah dengan menggunakan setpriority () method.

Penjadwalan Round-Robin dengan Java

Evaluasi Algoritma

Bagaimana kita memilih sebuah algoritma penjadwalan CPU untuk sistem-sistem tertentu. Yang menjadi pokok masalah adalah kriteria seperti apa yang digunakan untuk memilih sebuah algoritma. Untuk memilih suatu algoritma, pertama yang harus kita lakukan adalah menentukan ukuran dari suatu kriteria berdasarkan :
1. Memaksimalkan penggunaan CPU dibawah maksimum waktu responnya yaitu 1 detik.
2. Memaksimalkan throughput karena waktu turnaroundnya bergerak secara linier pada saat eksekusi proses.

Sinkronisasi dalam Java

Setiap objek dalam java mempunyai kunci yang unik yang tidak digunakan biasanya. Saat method dinyatakan sinkron, maka method dipanggil untuk mendapatkan kunci untuk objek tersebut. Saat kunci tersebut dipunyai thread yang lain maka thread tersebut diblok dan dimasukkan kedalam kumpulan kunciobjek, misalnya :
 

Metoda Wait() dan Notify()

Thread akan memanggil method wait() saat :
1. Thread melepaskan kunci untuk objek
2. Status thread diblok
3. Thread yang berada dalam status wait menunggu objek

Thread akan memanggil method notify() saat: Thread yang dipilih diambil dari thread yang ada pada himpunan wait. Dengan cara:
1. Pindahkan thread yang dipilih dari wait set ke entry set.
2. Atur status dari thread yang dipilih dari blocked menjadi runnable.

Contoh Metoda Wait() dan Notify()
 

Sumber

http://opensource.telkomspeedy.com/repo/abba/v06/Kuliah/SistemOperasi/2003/21/produk/SistemOperasi/threadjava.html
Java Thread dan Algoritmanya dalam Sistem Operasi Java Thread dan Algoritmanya dalam Sistem Operasi Reviewed by Syafriansyah Muhammad on 7/25/2018 Rating: 5

Tidak ada komentar:

Diberdayakan oleh Blogger.