Senin, 15 Juli 2013

PAPER MUTUAL EXCLUSION

PAPER MUTUAL EXCLUSION
Oleh : Yusuf Machsar
NRP : 100411100026



















ABSTRAK
Mutual exclusion dapat mencegah proses kongkurensi (concurrency) dikerjakan bersamaan oleh resource (sumber daya). Sehingga dibutuhkan penanganan proses kongkurensi tersebut agar dapat dikerjakan oleh resource. Metode penyelesaian masalah mutual exclusion ini adalah mengatur proses yang akan memasuki critical section. Jika proses yang sedang mengerjakan critical section, maka proses lain tidak boleh memasuki critical section. Ada beberapa metode yang dapat meyelesaikan permasalahan ini. Prinsip kerja antara satu metode dengan metode lainnya didalam mengatur penanganan mutual exclusion adalah berbeda. Dalam bahasan ini akan membahas bagaimana kinerja beberapa metode tersebut dalam menangani masalah mutual exclusion jika terjadi proses kongkurensi.















PENDAHULUAN
Perkembangan sistem komputer mendatang adalah menuju ke sistem multiprocessing, multip rogramming, terdistribus i dan paralel yang mengharuskan adanya proses-proses yang berjalan bersama dalam waktu yang bersamaan. Hal demikian merupakan masalah yang perlu perhatian dari perancang sistem operasi. Kondisi dimana pada saat yang bersamaan terdapat lebih dari satu proses disebut dengan kongkurensi (concurrency) atau proses-proses yang kongkuren. Proses-proses yang mengalami kongkuren dapat berdiri sendiri (independen) atau dapat saling berinteraksi, sehingga membutuhkan sinkronisasi atau koordinasi proses yang baik. Untuk penanganan kongkuren, bahasa pemograman saat ini telah memiliki mekanisme kongkurensi dimana dalam penerapannya perlu dukungan sistem operasi dimana bahasa berada.















PEMBAHASAN

1.1 MUTUAL EXCLUSION
Merupakan kondisi dimana terdapat sumber daya yang tidak dapat dipakai bersama pada waktu yang bersamaan (misalnya : printer, disk drive). Kondisi demikian disebut sumber daya kritis, dan bagian program yang menggunakan sumber daya kritis disebut critical region / section. Hanya satu program pada satu saat yang diijinkan masuk ke critical region. Pemrogram tidak dapat bergantung pada sistem operasi untuk memahami dan memaksakan batasan ini, karena maksud program tidak dapat diketahui oleh sistem operasi. Hanya saja, system operasi menyediakan layanan (system call) yang bertujuan untuk mencegah proses lain masuk ke critical section yang sedang digunakan proses tertentu. Pemrograman harus menspesifikasikan bagian-bagian critical section, sehingga sistem operasi akan menjaganya. Pentingnya mutual exclusion adalah jaminan hanya satu proses yang mengakses sumber daya pada suatu interval waktu.
Pemaksaan atau pelanggaran mutual exclusion menimbulkan :
Ø  Deadlock
Ø  Starvation
Critical Section
Segmen kode yang mengakses data yang digunakan secara bersama-sama itu disebut critical section. Bagaimana menghindari race conditions? Kunci untuk mencegah masalah ini da situasi yang lain yang melibatkan shared memory, shared file, and shared sumber daya yang lain dalah menemukan beberapa jalan untuk mencegah lebih dari satu proses untuk melakukan proses writing dan reading kepada shared data pada saat yang sama. Dengan kata lain kita membutuhkan mutual exclusion, sebuah jalan yang menjamin jika sebuah proses sefang menggunakan shared files, proses lain dikeluarkan dari pekerjaan yang sama. Kesulitan yang terjadi karena proses 2 menggunakan shared variabel sebelum proses 1 menyelesaikan tugasnya.
Walaupun dapat mencegah race conditions, tapi tidak cukup untuk melakukan kerjasama antar proses secara paralel dengan baik dan efisien dalam menggunakan shared data. Kita butuh 4 kondisi untuk menghasilkan solusi yang baik :
Ø  Tidak ada dua proses secara bersamaan masuk kedalam critical section.
Ø  Tidak ada asumsi mengenai kecepatan atau jumlah cpu.
Ø  Tidak ada proses yang berjalan diluar critical section yang dapat mengeblok proses lain.
Ø  Tidak ada proses yang menunggu selamanya untuk masuk critical section.
Tiga kondisi untuk menentukan mutual exclusion  :
Ø  Tidak ada dua proses yang pada saat bersamaan berada di critical section.
Ø  Tidak ada proses yang berjalan diluar critical region yang bisa menghambat proses lain.
Ø  Tidak ada proses yang tidak bisa masuk ke critical region.
Solusi masalah critical section
  1. Ide :
Ø  Mencakup pemakaian secara “exclusive” dari shared variable tersebut
Ø  Menjamin proses lain dapat menggunakan shared variable tersebut
  1. Solusi “critical section problem” harus memenuhi:
Ø  Mutual Exclusion: Jika proses Pi sedang “eksekusi” pada bagian “critical section” (dari proses Pi) maka tidak ada proses proses lain dapat “eksekusi” pada bagian critical section dari proses-proses tersebut.
Ø  Progress: Jika tidak ada proses sedang eksekusi pada critical section-nya dan jika terdapat lebih dari satu proses lain yang ingin masuk ke critical section, maka pemilihan siapa yang berhak masuk ke critical section tidak dapat ditunda tanpa terbatas.
  1. Bounded Waiting: Terdapat batasan berapa lama  suatu proses harus menunggu giliran untuk mengakses “critical section” – jika seandainya proses lain yang diberikan hak akses ke critical section.
Ø  Menjamin proses dapat mengakses ke “critical section” (tidak mengalami starvation: proses se-olah berhenti menunggu request akses ke critical section diperbolehkan).
Ø  Tidak ada asumsi mengenai kecepatan eksekusi  proses proses n tersebut.

1.2  Metode Penyelesaian Masalah Mutual Exclusion.
Ada beberapa metode penyelesaian masalah mutual exclusion, antara lain :
  1. a. Sinkronisasi.
Algoritma 1
Pada bagian ini akan dibatasi pada aplikasi ke 2 proses yaitu Pi dan Pj , atau P0dan P1
Secara umum, jika ada proses Pimaka akan digunakan proses Pj sebagai proses lainnya, dengan j=1-i. Ada beberapa algoritma penyelesaian mutual exclusion dengan  menggunakan sinkronisasi, yakni
Kedua proses akan berbagi suatu variabel bertipe integer yaitu turn yang diinisialisaikan dengan 0 (atau 1). Jika turn=0, maka proses P0 diijinkan untuk



1.3  Mencegah Mutual Exclusion
Mutual exclusion benar-benar tak dapat dihindari. Hal ini dikarenakan tidak ada
sumber daya yang dapat digunakan bersama-sama, jadi sistem harus membawa
sumber daya yang tidak dapat digunakan bersama-sama.



























DAFTAR PUSTAKA

1. Hariyanto, Bambang. Sistem Operasi. Edisi 2. Bandung. Informatika. 1999.
2. Kusumadewi, Sri. Sistem Operasi. Yogyakarta, J & J Learning, 2000
3. Tenembaum, Andrew S., “Modern Operating System”, Englewood Cliffs, New Jersey :
    Prentice-Hall Inc., 1992.
4. stalling, William, “Operating System”, 2nd Englewood Cliffs, New Jersey : Prentice-Hall
    Inc., 1995.



Tidak ada komentar:

Posting Komentar