Mutual Exclusion
adalah suatu cara yang menjamin jika ada sebuah proses yang menggunakan variabel atau berkas yang sama (digunakan juga oleh proses lain), maka proses lain akan dikeluarkan dari pekerjaan yang sama. Jadi, Mutual Exclusive terjadi ketika hanya ada satu proses yang boleh memakai sumber daya, dan proses lain yang ingin memakai sumber daya tersebut harus menunggu hingga sumber daya tadi dilepaskan atau tidak ada proses yang memakai sumber daya tersebut. (http://manajementos.blogspot.com/2010/11/mutual-exclusion.html 25 april 2013 19.00 wib)
Pentingnya mutual exclusion dilihat pada ilustrasi :
1.Masalah printer Daemon
Daemon printer adalah proses penjadwalan & pengendalian pencetakan berkas2 di printer sehingga seolah2 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. (Buku Sistem Operasi hal 113-Bambang Hariyanto, Ir)
(NIKEN HERGARISTI/ KA D3 / 12.2.00010)
2. Ilustrasi aplikasi tabungan
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:
1. 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).
2. 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 skenario
pertama tetapi masih di bawah yang seharusnya yaitu Rp 10.000.000,-. ( Buku Sistem Operasi hal 115- Bambang Hariyanto)
Kriteria Penyelesaian Mutual-Exclusion
Kemampuan menjamin mutual-exclusion harus memenuhi kriteria-kriteria berikut:
1. Mutual-exclusion harus dijamin.
2. Hanya satu proses pada satu saat yang diizinkan masuk critical section yang sama pada
saat telah ada proses yang masuk critical section itu.
3. Proses yang berada di noncritical section, dilarang mem-block proses-proses lain yang
ingin masuk critical section.
4. Harus dijamin proses yang ingin masuk critical section tidak menunggu selama waktu
yang tak berhingga atau tidak boleh terjadi deadlock maupun startvation.
5. Ketika tidak ada proses di critical section, maka proses yang ingin masuk critical section
harus diizinkan segera masuk tanpa ada waktu tunda.
6. 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.(http://routeterritory.files.wordpress.com/2009/04/mutual-exclusion.pdf 25 april 2013 19.36 wib)
( PUJI RUSIANA/KA D3/12.2.00013)
Pemaksaan atau pelanggaran mutual exclusion menimbulkan :
• Deadlock
• Starvation
• Deadlock (buntu)
• Sinkronisasi
DEADLOCK
Deadlock adalah suatu kondisi dimana dua proses atau lebih saling menunggu proses untuk melepaskan seumber daya atau resources yang sedang dipakai. Mudahnya, ada proses A yang membutuhkan suatu resources, tetapi resources tersebut sedang dipakai oleh proses lain.
Untuk lebih paham tentang pengertian deadlock dan cara mengatasinya, anda dapat membandingkan dengan situasi berikut:
Dalam kehidupan, tentunya anda membutuhkan pekerjaan. Untuk memperoleh pekerjaan, anda harus punya pengalaman. Untuk punya pengalaman, anda harus bekerja.
( http://azuharu.net/sistem-operasi/pengertian-deadlock-dan-cara-mengatasinya/ 25 April 2013 19.45 wib)
SYARAT-SYARAT TERJADINYA DEADLOCK
Deadlock mungkin terjadi apabila keempat karakteristik terpenuhi.
Empat kondisi tersebut adalah:
1.Mutual Exclusion . Jadi, hanya ada satu proses yang menggunakan suatu sumber daya.
2.Hold and Wait . beberapa proses saling menunggu sambil menahan sumber daya yang dimilikinya.
3.No Preemption . Proses yang menginginkan sumber daya tersebut harus menunggu sampai sumber daya tersedia, tanpa bisa merebutnya dari proses yang memilikinya.
4.Circular Wait . Harus terdapat rantai circular dari dua proses atau lebih, masing-masing menunggu sumber daya yang digenggam oleh anggota berikutnya pada rantai itu ( Buku Sistem Operasi hal 135 – Bambang Hariyanto)
(NOVIANA ERNIS SAVITRI/KA D3/12.2.00012)
Terdapat beberapa metode mengatasi dadlock, secara umum dikelompokkan menjadi tiga yaitu:
1. Metode pencegahan terjadinya deadlock (deadlock prevention),
2. Metode penghindaran terjadinya deadlock (deadlock avoidance),
3. Metode deteksi dan pemulihan dari deadlock (deadlock detection and recovery). (Buku Sistem Operasi hal 135 - Bambang Hariyanto)
Penanganan Deadlock
erdapat beberapa cara dalam menangani deadlock, yang secara umumnya ada 4 cara untuk menangani keadaan deadlock, yaitu:
1. Pengabaian.
Maksud dari pengabaian dari kata tersebut yaitu sistem mengabaikan terjadinya deadlock dan berpura-pura tidak mengetahui jika deadlock telah terjadi. Dalam penanganan dengan cara ini dikenal dengan istilah ostrich algorithm. Pelaksanaan algoritma ini yaitu sistem tidak mendeteksi adanya deadlock dan secara otomatis mematikan proses atau program yang mengalami deadlock.
2. Pencegahan.
Penanganan ini dengan cara mencegah munculnya salah satu karakteristik deadlock. Penanganan ini dilaksanakan pada saat deadlock belum terjadi pada sistem. Yang terutama memastikan agar sistem tidak akan pernah berada pada kondisi deadlock.
3. Penghindaran.
Menghindari keadaan deadlock. Bagian yang perlu diperhatikan yaitu bahwa antara pencegahan dan penghindaran adalah berbeda. Pencegahan lebih mengarah kepada mencegah salah satu dari empat karakteristik terjadinya deadlock, sehingga deadlock pun tidak terjadi.
4. Pendeteksian dan Pemulihan.
Pada sistem yang sedang berada pada kondisi deadlock, tindakan yang harus diambil adalah tindakan yang bersifat represif. ( http://imaniawina.blogspot.com/2011/04/sistem-operasi-bab-terakhir-concurrency.html 25 april 2013 20.16 wib)
( ANA RIZKY P/KA D3/12.2.00003)
Tidak ada komentar:
Posting Komentar