A. Penjelasan Mutual Exclusion
Pada
system computer terdapat sumber daya yang tidak dapat dipakai bersama pada saat
yang bersamaan seperti pada penggunaan printer, Sumber daya seperti
hanya dapat menjalankan satu proses pada suatu saat, sumber daya ini disebut
sumber daya kritis. Program yang menggunakan sumber daya kritis disebut sedang
memasuki critical region / section . Critical Section merupakan bagian
program yang sedang mengakses memori atau sumber daya yang dipakai bersama.
Sistem
operasi memberikan fasilitas untuk pemrogram dapat memberikan indikasi
keberadaan critical region. Sistem operasi menyediakan layanan ( berupa system
call ) untuk mencagah suatu proses masuk kedalam critical region akan tetapi di
dalam critical region terdapat proses lain yang sedang berjalan.
Mutual
exclusion merupakan solusi bagi masalah pada critical region / section, mutual
exclusion adalah persoalan untuk menjamin hanya satu proses saja yang berjalan
dalam suatu critical region / section. Mutual exclusion juga dapat diartikan
sebagai jaminan hanya sebuah proses yang mengakses sumber daya pada suatu
interval waktu tertentu. Proses proses yang lain dilarang mengerjakan hal yang
sama.
B. Ilustrasi Mutual Exclusion
Seluruh
sistem yang melibatkan banyak proses mengakses satu sumber daya bersama selalu
menimbulkan persoalan mutual-exclusion. Contohnya adalah sebagai berikut.
·
Pada aplikasi
tabungan, misalnya rekening A berisi Rp 1.000.000,- yang terdaftar di kantor
cabang bandung.
·
Kemudian pada
suatu saat program aplikasi kantor cabang di Jakarta melayani penyetoran Rp
3.000.000,- ke rekening A. lalu program aplikasi membaca saldo akhir rekening A
Persoalan
di atas dapat tidak terjamin mutual-exclusion jika:
·
Program aplikasi
bandung menulis ke rekening A secara cepat sehingga di hasilkan saldo Rp
6.000.000. Setelah itu, program aplikasi kantor cabang Jakarta menimpa hasil
itu dengan saldo Rp 4.000.000,- . Dalam kasus ini saldo akhir yang diperoleh
adalah Rp 4.000.000,- bukan Rp 10.000.000,- (yang seharusnya).
·
Program aplikasi
Jakarta dilakukan menulis ke rekening A secara cepat sehingga dihasilkan saldo
Rp 4.000.000,-. Setelah itu program aplikasi di kantor bandung menimpa hasil
itu dengan saldo Rp 6.000.000,-. Hasil yang lebih baik dibanding skenari pertama
tetapi masih di bawah yang seharusnya yaitu Rp 10.000.000,-.
C. Kriteria Penyelesaian Mutual Exclusion
Kemampuan
menjamin mutual-exclusion harus memenuhi kriteria-kriteria berikut:
§ Mutual-exclusion
harus dijamin.
§ Hanya
satu proses pada satu saat yang diizinkan masuk critical section yang sama pada
saat telah ada proses yang masuk critical section itu.
§ Proses
yang berada di noncritical section, dilarang mem-block proses-proses lain yang ingin
masuk critical section.
§ Harus
dijamin proses yang ingin masuk critical section tidak menunggu selama waktu yang
tak berhingga atau tidak boleh terjadi deadlock maupun startvation.
§ Ketika
tidak ada proses di critical section, maka proses yang ingin masuk critical
section harus diizinkan segera masuk tanpa ada waktu tunda.
·
Tidak ada asumsi
mengenai kecepatan relatif proses atau jumlah proses yang ada.
Kriteria
pada nomor satu merupakan kriteria pokok yang harus dipenuhi. Metode yang melanggar
kriteria nomor satu sama sekali tidak dapat di gunakan. Pelanggaran
kriteria-kriteria lain berarti metode masih bisa digunakan pada situasi-situasi
tertentu tapi harus dilakukan secara hati-hati.
D. Metode-Metode Penjamin Mutual Exclusion
1) Metode
Naif
Metode ini tidak menyelesaikan
mutual exclusion, karena masih terdapat scenario proses yang membuat situasi
kacau. Metode ini sering disebut metode variable lock sederhana. Ketika proses
hendak masuk critical section, proses lebih dulu memeriksa variable lock dengan
ketentuan :
·
Jika variable
lock bernilai 0, proses mengeset variable lock menjadi 1 dan segera masuk
critical section.
·
Jika variable
lock bernilai 1, proses menunggu sampai nilai variabel lock menjadi 0.
2) Metode
untuk situasi tertentu
Metode ini sering disebut metode
bergantian secara ketat yang mengasumsikan proses-proses yang hendak masuk
critical section secara bergantian terus menerus. Proses memeriksa terus
menerus sehingga kondisi siap untuk diproses. Kondisi ini tidak dapat
ditentukan lamanya waktu sehingga menyia-nyiakan waktu pemroses. Suatu saat
kondisi akan crash ketika ada proses yang harus segera masuk sementara ada
proses lain yang masih berjalan.
3) Metode
Busy Waiting
·
Metode
Penyelesaian Dekker
Algoritma Dekker mempunyai
property-property berikut : Tidak memerlukan instruksi-instruksi perangkat
keras khusus, Proses yang beroperasi di
luar critical section tidak dapat mencegah proses lain memasuki critical
section, dan Proses yang ingin masuk critical section akan segera masuk bila
dimungkinkan.
·
Metode
Penyelesaian Peterson
Sebelum masuk critical section,
proses memanggil enter_critical_section, namun sebelumnya proses memeriksa
sampai kondisi aman. Terjadi busy waiting, setelah selesai proses menandai
pekerjaan dan mengijinkan proses lain masuk.
Keadaan awal tidak ada proses di
critical section. Proses 0 akan masuk critical section. Proses menandai elemen
arraynya dan mengeset turn ke 0. Proses memeriksa kondisi, dan prosedur
enter_critical_section dilaksanakan. Jika kemudian, proses 1 akan masuk, proses
akan menunggu sampai interest(0) menjadi FALSE. Kondisi ini hanya terjadi jika
proses 0 mengeset elemen itu dan keluar dari critical section.
·
Metode Pematian
Interupsi
Proses mematikan interupsi ke
pemroses dan segera masuk ke critical section. Proses kembali mengaktifkan
interupsi segera setelah meninggalkan critical section. Metode ini
mengakibatkan :
Ø Pemroses
tidak dapat beralih ke proses lain karena interupsi clock dimatikan sehingga
penjadual pun tidak dieksekusi. Karena penjadual tidak beroperasi maka tidak
terjadi alih proses.
Ø Proses
dapat memakai memori bersama tanpa takut terinvensi proses lain karena memang
tidak ada proses lain yang dieksekusi saat itu.
Kelemahan utama :
Ø Bila
proses yang mematikan interupsi mengalami gangguan maka proses tidak akan
pernah menghidupkan interupsi kembali. Kejadian ini mengakibatkan kematian
seluruh system.
Ø Jika
terdapat dua pemroses atau lebih, mematikan interupsi hanya berpengaruh pada
pemroses yang sedang mengeksekusi intruksi itu. Proses lain masih dapat
memasuki critical section.
·
Metode Test and
Set Lock (TSL)
Metode ini membaca isi memori ke
register dan kemudian menyimpan nilai bukan 0
ke alamat memori. Pemroses yang mengeksekusi instruksi tsl mengunci bus
memori, mencegah pemroses lain mengkases memori.
·
Metode Exchange
(XCHG)
Metode ini menggunakan instruksi
exchange (xchg). Instruksi xchg menukarkan dua isi memori.
·
Metode Instruksi
Mesin
Keunggulan :
Ø Sederhana
dan mudah diverifikasi
Ø Dapat
diterapkan ke sembarang jumlah proses
Ø Dapat
digunakan untuk mendukung banyak critical region
Kelemahan :
Ø Merupakan
metode dengan busy waiting, sangat tidak efisien.
Ø Adanya
busy waiting memungkinkan terjadi deadlock dan starvation.
E. Kriteria Penyelesaian Mutual Exclusion
Daemon
printer adalah proses penjadwalan & pengendalian pencetakan berkas-berkas
di printer sehingga seolah-olah printer dapat digunakan secara simultan oleh
proses-proses. Daemon printer mempunyai ruang disk (disebut direktori spooler)
untuk menyimpan berkas-berkas yang akan dicetak. Direktori spooler membagi disk
menjadi sejumlah slot. Slot-slot diisi berkas yang akan dicetak. Terdapat
variable in menunjuk slot bebas di ruang disk yang kan dipakai menyimpan berkas
yang ingin dijadwalkan untuk dicetak.
F. Contoh Algortima Program
Berikut
adalah algoritma program Mutual Exclusion :
Program
Give_File_to_spooler;
Var
in :
Integer;
berkasA,
berkasB: File;
ProcedureStore
(Berkas: File, next_slot: Integer);
{Untukmenyimpanberkaspadaslot
kenext_slot}
Procedure
ProsesA;
Var
next_free_slot:
Integer;
Begin
next_free_slot:=in;
store(BerkasA,
next_free_slot);
in:=next_free_slot+1;
End;
ProcedureProsesB;
Var
next_free_slot:Integer;
Begin
next_free_slot:=in;
store(BerkasB,
next_free_slot);
in:=next_free_slot+1;
End;
Begin
in:=0;
Repeat
Parbegin
ProsesA;
ProsesB;
Parend
Forever
End.
G. Daftar Pustaka
0 komentar:
Posting Komentar