Monitor adalah suatu tipe data abstrak yang dapat mengatur aktivitas serta penggunaan
resource
oleh beberapa
thread
. Ide monitor pertama kali diperkenalkan oleh C.A.R Hoare dan Per Brinch-Hansen pada awal 1970-an.Monitor terdiri atas data-data
private
dengan fungsi-fungsi
public
yang dapat mengakses data-datatersebut.
Method-method
dalam suatu monitor sudah dirancang sedemikian rupa agar hanya ada satu buah
method
yang dapat bekerja pada suatu saat. Hal ini bertujuan untuk menjaga agar semuaoperasi dalam monitor bersifat
mutual exclusion
.Monitor dapat dianalogikan sebagai sebuah bangunan dengan tiga buah ruangan yaitu satu buahruangan kontrol, satu buah ruang-tunggu-masuk, satu buah ruang-tunggu-dalam. Ketika suatu
thread
memasuki monitor, ia memasuki ruang-tunggu-masuk (enter). Ketika gilirannya tiba,
thread
memasuki ruang kontrol (acquire), di sini
thread
menyelesaikan tugasnya dengan
shared resource
yang berada di ruang kontrol (owning ). Jika tugas
thread
tersebut belum selesai tetapi alokasi waktuuntuknya sudah habis atau thread
tersebut menunggu pekerjaan
thread lain selesai,thread
melepaskan kendali atas monitor (release) dan dipindahkan ke ruang-tunggu-dalam (waiting queue).Ketika gilirannya tiba kembali,thread
memasuki ruang kontrol lagi (acquire). Jika tugasnya selesai,ia keluar dari monitor (release and exit).
Tidak ada komentar:
Posting Komentar