Senin, 29 April 2013

MUTUAL EXCLUSION DAN DEADLOCK

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