Selasa, 23 April 2013

Mutual Exclusion



Bab 6 . Mutual Exclusion
6.1 Pentingnya Mutual Exclusion
Mutual exclusion adalah jaminan hanya satu proses yang mengakses sumber daya pad satu interval  waktu tertentu . pentingnya mutual exclusion dapat dilihat pada ilustrasi berikut :
-          Ilustrasi ilustrasi eksekusi daemon printer
-          Ilustrasi aplikasi abungan
6.1.1 Ilustrasi Printer Daemon
Daemon printer adalah proses pendjadwalan dan pengendalian percetakan pada berkas-berkas di printer sehingga seolah-olah printer dapat digunakan secara simultan oleh proses-proses . Daemon printer mempunyai ruang disk (directory spooler)untuk mrnyimpan berkas-berkas yang dicetak . Direktori spooler membagi menjadi sejumlah slot. Slot diisi berkas yang dicetak .
6.1.2 Ilustrasi  Aplikasi Tabungan
Seluruh system yang melibatkan banyak proses mengakses satu sumber daya bersama selalu menimbulkan masalah mutual exclusion .
6.1.3 Kriteria Penyelesaian Mutual Exclusion
Fasilitas atau kemampuan dukungan mutual exclusion harus memenuhi kriteria berikut :
1.      Mutual exclusion harus dijamin
Hanya satu proses pada satu saat yang diijinkan masuk critical selection . Proses-proses ini lain dilarang masuk critical selection yang sama pada saat proses masuk .
2.      Prose yang berada di non critical selection , dilarang mem-blocked proses0proses lain , yang ingin masuk .
3.      Harus dijamin proses yang ingn masuk , tidak menunggu lama .
4.      Tidak harus menunggu waktu tunda .
5.      Tidak ada asumsi mengenai kecepatan asumtif .
Kriteria diatas merupakan kriteria pokok ynag mesti dipenuhi . Yang melanggar sama sekali tidak bias digunakan .
6.2 Metode-Metode Penjaminan Mutual Exclusion
Contoh metode yang digunakan :
1.      Metode naïf
Metode variable lock sederhana
2.      Metode untuk situasi tertentu
Bergantian secara kuat
3.      Metode menggunakan bussy waiting
Metode penyelesaian dekker
Metode penyelesaian Peterson
4.      Metode penyelesaian level tinggi
Metode semaphore
6.2.1 Metode Naif
Disebut naïf karena tidak menyelesaikan mutual exclusion .
6.2.1.1 Metode Variabel Lock Sederhana
Meniru mekanisme penguncian pintu dengan kunci pintu diganti variable lock . variable lock bernilai 0 berarti pintu tidak terkunci , bernilai 1 pintu terkunci . jika gagal apabila analogi tidak sepenuhnya sama .
6.2.2 Metode Untuk Situasi Tertentu
6.2.2.1 Metode Bergantian Secara Kuat
Dapat mengalir terus masuk critical selection secara bergantian terus .
-          Variabel turn (giliran)
Mencatat (nomor) proses yang masuk critical selection . variable variable turn diinisialisai 0
-          Busy Waiting
Kondisi memeriksa varabel terus-menerus , menunggu sampai sau nilai muncul .
6.3 Metode Dengan Busy Waiting
6.3.1 Metode Secara Perangkat Lunak
6.3.1.1 Metode Penyelesaian Dekker
Algoritma dekker menyelesaika mutual exclusion dengan kompleks . Algoritma Dekker mempunyai property-properti berikut :
-          Tidak memerlukan instruksi-instruksi khusus .
-          Proses yang beroprasi di luar critical selection tidak dapat mencegah proses lain masuk .
-          Proses yang ingin masuk critical selection dapat segera masuk apabila dimingkinkan .
6.3.2 Metode Dengan Dukungan  Perangkat Keras
6.3.2.1 Metode Pematian Interupsi
Proses ini mematiakn intrupsi ke pemroses dan segera memasuki critical selection . proses kembali megaktifkan interupsi segera setelah meninggalkan critical selection .
-          Proses tidak dapat beralih ke proses lain . karena interupsi clock dimatikan sehingga pendjadwalan tidak tidak dieksekusi .
-          Proses dapat memakai memori bersama tanpa takut intervensi proses lain .
Kelemahan Utama
-          Bila proses mematikan interupsi mengalami gangguan maka proses tak akan menghidupkan interupsi kembali .   
-          Jika terdapat dua proses atau lebih , mematiakan interupsi hanya berpengaruh pada pemroses yang meneksekusi instruksi itu .
6.3.2.2 Metode Dengan Instruksi  Test And Set Lock
Pemroses bertindak independent . intrupsi di satu pemroses tidak mempengaruhi pemroses-pemroses lain . Perancangan perangkat menyediakan instruksi-instruksi atomic yang dapat didintupsi , instruksi dilaksanakan sampai selesai . Instruksi-instruksi yang dirancang untuk menyelesaikan mutual exclusion antara lain :
-          Tsl (test and set lock).
-          Tas and ts (test and set).
-          Cs (compare and set).
-          Exchange (xchg)
6.3.2.3 Metode Dengan Instruksi Excange (XCHG)
Instruksi Excange
Intel menyediakan instruksi ini . instruksi ini saling menukarkan antara dua sisi memori .
6.2.3.4 Karakteristik Pendekatan Dengan Instruksi Mesin
Penggunaan karakter ini memiliki kelebihan dan kekurangan .
Kelebihan :
-          Sederhana dan mudah diverifikasi
-          Dapat diterapkan ke sembarang jumlah proses , baik tunggla maupun bersama .
-          Dapat digunakan untuk mendukung banyk critical selection .

Kekurangan :
-          Sangat tidak efisien .
-          Memungkinkan terjadinya dead lock dan startvation .
6.3.3 Dampak Adanya Busy Waiting
Tidak dapat diterapkan pada saat system dengn pendjadwalan berprioritas . Aturan pendjadwalan berprioritas selalu mendjadwalkan proses-proses berprioritas lebih tinggi di antrian proses ready .
6.4 Metode Dengan Semaphore
Karenat terdapat kelemahan-kelemahan yang tak dapat diterima dari metode-metode busy waiting , maka perlu dicari metoe-metode lain .


6.4.1 Deskripsi Semaphore
Semaphore adalah Dua proses atau lebih dapat bekerjasama dengan menggunakan penanda-penanda sederhana . proses dipaksa berhenti sampaI proses memperoleh penanda tertentu . Sembarang kebutuhan koordiansi kompleks dapat dipenuhi dengan struktur penanda yang sesuai kebutuhannya .
6.4.2 Mutual Exclusion dengan Semamphore
Adanya semaphore mempermudah persoalalan mutual exclusion .
6.4.3 Implementasi Semaphore
Beragam skema dapat diterapkan untuk implementasi Up dan Down . Esensi  masalah implementasi adalah menjamin mutual exclusion variable semaphore , yaitu hanya mengijinkan satu proses pada saat yang boleh memanipulasi semaphore , salah stu dari Up dan Down .
Bab 7 . Deadlock   
Proses disebut dead lock jika proses menunggu suatu kejadian tertentu yang tak akan pernah terjadi . sekumpulan proses berkondisi dead lock bila setiap proses yang ada di kumpulan itu menunggu kejadian yang hanya dilakukan proses lain yang juga berada di kumpulan itu .
Deadlock terjadi ketika proses mengakses secara eksklusif sumber daya . Semua deadlock yang terjadi melibatkan persaingan memperoleh sumber daya ekslusif oleh dua proses atau lebih .
7.1 Model Deadlock
- Meminta (request).
- Memakai (user).
- Melepaskan (release).
7.1.1 Syarat-syarat Perlu Bagi Terjadinya Deadlock
1. Mutual Exclusion
2. Kondisi genggam dan tunggu
3. Kondisi non-preemtion
4. Kondisi menunggu secara sirkuler
Mutual Exclusion
Tiap sumber daya saat itu diberikan tepat pada satu proses.
Kondisi Genggam dan Tunggu
            Proses yang menggenggam sumber daya , menunggu sumber daya baru.
Kondisi Non-Preemption
Sumber daya yang diberikan sebelumnya diberikan tidak dpat diambill paksa dari proses itu . harus secara eksplisi dilepaskan dari proses yang menggenggamnya .
Kondisi Menunggu Secara Sirkuler
            Harus terdapat rantai sirkuler dari dua proses atau lebih .



7.2 Metode-Metode Mengatasi Deadlock
1. Deadlock Prevention
2. Deadlock Avoidance
3. Deadlock Detection
7.3 Pencegahan Deadlock
- Tiap proses harus meminta semua sumber daya yang diperlukan sekaligus .
- Harus melepas sumber daya apabila proses telah memegang sumber daya tertentu .
7.4 Penghidaran Deadlock  (Deadlock Avoidence)
Memberikan akses kepada sumber daya yang menjamin tidak terjadi deadlock. Dengan strategi ini, selalu dihidarkan pengalokasian sumber daya yang  dapat beresiko deadlock.
7.5 Deteksi dan Pemulihan Deadlock (Deadlock Detection & Recovery)
Membiarkan deadlock terjadi, jika kemudian terjadi lakukan upaya peneyelesaian. Terdiri dari dua langkah pokok :
-          Deteksi adanya deadlock
Pemulihan Deadlock
-          Jika diketahui terjadi deadlock, maka deadlock harus diputuskan dengan menghilangkan salah satu atau lebih sarat perlu terjadinya deadlock.
Hal-hal yang merumitkan pemulihan deadlock :
-          Belum dapat memutuskan apakah deadlock benar terjadi
-          Tidak dimilki mekanisme suspend proses yang memadai.
-          Diperlukan kemampuan operator yang memadai untuk suspend secara efektif
Hal-hal yang terjadi dalam mendeteksi adanya deadlock adalah:
-          Permintaan sumber daya dikabulkan selama memungkinkan.
-          Sistem operasi memeriksa adakah kondisi circular wait secara periodik.
-          Pemeriksaan adanya deadlock dapat dilakukan setiap ada sumber daya yang hendak digunakan oleh sebuah proses.
-          Memeriksa dengan algoritma tertentu.


Tidak ada komentar:

Posting Komentar