Sistem Komputer - 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. Pemogram tidak dapat bergantung pada sistem
operasi untuk memahami dan memaksakan batasan ini, karena maksud program
tidak dapat diketahu oleh sistem operasi.
Hanya saja, sistem operasi menyediakan layanan (system call) yang bertujuan
untuk mencegah proses lain masuk ke critical section yang sedang digunakan
proses tertentu. Pemograman harus menspesifikasikan bagian-bagian critical
section, sehingga sistem operasi akan menjaganya.
Pemaksaan atau pelanggaran mutual exclusion menimbulkan :
a. Deadlock
b. Startvation
Deadlock
Ilustasi deadlock, misalnya :
- Terdapat dua proses, yaitu P1 dan P2 dan dua sumber daya kritis, yaitu R1 dan
R2.
- Proses P1 dan P2 harus mengakses kedua sumber daya tersebut, dengan
kondisi ini terjadi : R1 diberikan ke P1, sedangkan R2 diberikan ke P2.
Karena untuk melanjutkan eksekusi memerlukan kedua sumber daya sekaligus
maka kedua proses akan saling menunggu sumber daya lain selamanya.
Tak ada proses yang dapat melepaskan sumber daya yang telah dipegangnya
karena menunggu sumber daya lain yang tak pernah diperolehnya.
Kedua proses dalam kondisi deadlock, yang tidak dapat membuat kemajuan
apapun dan deadlock merupakan kondisi terparah karena dapat melibatkan banyak
proses dan semuanya tidak dapat mengakhiri prosesnya secara benar.
Startvation
Ilustasi deadlock, misalnya : Terdapat tiga proses, yaitu P1, P2 dan P3. P1, P2 dan P3 memerlukan pengaksesan sumber daya R secara periodik
Skenario berikut terjadi : P1 sedang diberi sumber daya R sedangkan P2 dan P3 diblocked menunggu
sumber daya R.
Ketika P1 keluar dari critical section, maka P2 dan P3 diijinkan mengakses R.
Asumsi P3 diberi hak akses, kemudian setelah selesai, hak akses kembali
diberikan ke P1 yang saat itu kembali membutuhkan sumber daya R.
Jika pemberian hak akses bergantian terus-menerus antara P1 dan P3, maka P2
tidak pernah memperoleh pengaksesan sumber daya R. Dalam kondisi ini memang
tidak terjadi deadlock, hanya saja P2 mengalami starvation (tidak ada kesempatan
untuk dilayani).
Interaksi antar proses
Pada sistem dengan banyak proses kongkuren, terdapat tiga kategori interaksi,
yaitu:
a. Proses-proses saling tidak peduli (independen)
Proses-proses ini tidak dimaksudkan untuk bekerja bersama untuk mencapai
tujuan tertentu. Pada multiprogramming dengan proses-proses independen,
dapat berupa batch atau sesi interaktif, atau campuan keduanya.
Meski proses-proses tidak bekerja bersama, sistem operasi perlu mengatur
persaingan diantara proses-proses itu dalam memperoleh sumber daya yang
terbatas.
Contoh : Terdapat dua aplikasi yang berusaha mengakses printer yang sama,
bila kedua aplikasi benar-benar mengakses printer yang sama secara
bersamaan, maka kedua proses akan memperoleh hasil yang tak dikehendaki.
Sistem operasi harus mengatur pengaksesan-pengaksesan sumber daya agar
tidak menyebabkan hasil yang tidak dikehendaki.
b. Proses-proses saling mempedulikan secara tidak langsung
Dimana proses-proses tidak perlu saling mempedulikan identitas proses-proses
lain tapi sama-sama mengakses objek tertentu, seperti buffer masukan/keluaran.
Proses-proses itu perlu bekerja sama (cooperation) dalam memakai bersama
objek tertentu.
c. Proses-proses saling mempedulikan secara langsung.
Proses-proses dapat saling berkomunikasi dan dirancang bekerja sama untuk
suatu aktivitas.
Interaksi antara proses-proses dan masalah-masalah yang harus diatasi dapat
dilihat dalam tabel berikut :
|
Interaksi antara proses-proses dan permasalahan yang timbul |
Persaingan diantara proses-proses untuk sumber daya
Proses-proses kongkuren berkompetisi ketika proses-proses bersaing
menggunakan sumber daya yang sama. Dua proses atau lebih perlu mengakses
sumber daya yang sama pada suatu saat. Masing-masing proses tidak peduli
keberadaan proses-proses lain dan masing-masing proses tidak dipengaruhi
proses-proses lain.
Pada proses-proses berkompetisi ini, tidak ada pertukaran informasi antara proses-
proses itu. Eksekusi satu proses dapat berpengaruh terhadap kelakuan proses-
proses yang berkompetisi. Jika dua proses ingin mengakses satu sumber daya
tunggal maka sistem operasi mengalokasikan untuk salah satu proses dan
mengharuskan proses lain menunggu. Proses yang ditolak pengaksesan menjadi
melambat.
Kasus ekstrim yang dapat terjadi adalah proses di-blocked terus-menerus sehingga
tak pernah mengakses sumber daya. Proses tak pernah dapat berakhir dengan
suskses. Kondisi tidak pernah dapat kesempatan dialokasikan sumber daya disebut
startvation. Sistem operasi harus menghindarkan terjadinya kondisi ini.
Persaingan proses-proses untuk memperoleh sumber daya menimbulkan tiga
masalah :
1. Mutual exclusion
2. Deadlock
3. Startvation
Pengendalian persaingan melibatkan sistem operasi, yang bertugas
mengalokasikan sumber daya. Proses-proses itu sendiri harus menyatakan
keperluan mutual exclusion (diprogram oleh pemrogram menggunakan system call yang disediakan sistem operasi) dan sistem operasi menangani agar tidak
terlanggar kondisi mutual exclusion, serta tidak terjadi deadlock dan startvation.
Sistem Komputer - Mutual Exclusion, ayo klik sistem komputer untuk melanjutkan materi kita.