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
- Ide :
Ø
Mencakup pemakaian secara “exclusive” dari shared
variable tersebut
Ø
Menjamin proses lain dapat menggunakan shared variable
tersebut
- 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.
- 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 :
- 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