Home Start Back Next End
  
34
melepaskan penguncinya, thread peminta bisa mengakusisi pengunci
tersebut (tentunya bisa saja terdapat
beberapa
thread
men-spin,
dalam
kasus
ini
hanya
satu thread akan
mendapatkan penguncinya). Jika thread
pemilik tidak sedang berjalan di prosesor, thread peminta tidur. Dalam
kasus   dimana   beberapa   thread   peminta   tidur   untuk   mendapatkan
pengunci, thread-thread seperti ini
mengakusisi
pengunci
berdasarka
prioritas urutan FIFO.
b. 
Mutex spin bekerja sebagai berikut :
Thread  peminta  me-mask  interupsi  di  tingkat  yang  ditentukan
oleh
sebuah
argumen
dari
mutex_init(9f).  Thread peminta mencoba
mengakusisi 
pengunci. 
Jika 
pengunci 
telah 
ada 
pemiliknya, 
thread
peminta men-spin dengan interrupts masked hingga pengunci dilepaskan
dan thread peminta dijamin memperoleh penguncinya. Ketika pengunci
tidak ada pemiliknya, thread peminta mengakusisi pengunci dan
melanjutkan pemrosesanya dengan  interrupts masked. Interupsi di-
unmasked ketika pengunci dilepaskan. Dalam kasus dimana beberapa
thread
men-spin
(di
prosesor
yang
berbeda,
tentunya),
salah
satu
thread
ini akan mengakusisi pengunci ketika pengunci dilepaskan. Siapa yang
akan mengakusisi pengunci tergantun siapa yang lebih dulu
mendapatkannya.
Penggunaan
mutex
bersifat
“sukarela” (voluntary). Penggunaan
mutex
terlalu
banyak
menimbulkan
resiko kinerja buruk. Hindari
penggunaan mutex karena menimbulkan resiko data tak-konsisten.
Word to PDF Converter | Word to HTML Converter