TUGAS
ARTIKEL
NAMA : RUSADI
NIM : 13130032
KELAS : 13.4C.02
KONKURENSI
Mutual
Exclusion dan Deadlock
Sistem
operasi merupakan sebuah penghubung antara pengguna dari komputer dengan
perangkat keras komputer. Sebelum ada sistem operasi, orang hanya mengunakan
komputer dengan menggunakan sinyal analog dan sinyal digital. Seiring dengan
berkembangnya pengetahuan dan teknologi, pada saat ini terdapat berbagai sistem
operasi dengan keunggulan masing-masing. Pengertian sistem operasi secara umum
ialah pengelola seluruh sumberdaya yang terdapat pada sistem komputer dan
menyediakan sekumpulan layanan (system calls) ke pemakai sehingga memudahkan
dan menyamankan penggunaan serta pemanfaatan sumber-daya sistem komputer. Dalam
sistem operasi terdapat istilan Sinkronisasi. Sinkronisasi adalah proses
pengaturan jalannya beberapa proses pada saat yang bersamaan. Akses berbarengan
untuk berbagi dua atau bersamaan dapat mengakibatkan inkosistensi data.
Pemeliharaan konsistensi data memerlukan mekanisme untuk memastikan eksekusi
dari proses kerjasama. Shared memory merupakan solusi ke masalah bounded-butter
yang mengijinkan paling banyak n-1 materi dalam buffer pada waktu yang sama.
Suatu solusi, jika semua N buffer digunakan
tidaklah sederhana. Dimisalkan kita memodifikasi producer-consumer code dengan
menambahkan suatu variable counter, dimulai dari 0 dan masing-masing waktu
tambahan dari suatu item baru diberikan kepada buffer. Tujuan utama
sinkronisasi adalah untuk menghindari terjadinya inkonsitensi data karena
pengaksesan oleh beberapa proses yang berbeda (mutual exclusion) serta untuk
mengatur urutan jalannya proses-proses sehingga dapat berjalan dengan lancar
dan terhindar dari deadlock dan starvation. Sinkronisasi umumnya dilakukan
dengan bantuan perangkat sinkronisasi. Penyelesaian terhadap masalah ini sangat
penting karena perkembangan teknologi system komputer menuju ke sistem
multiprocessing, terdistribusi dan paralel yang mengharuskan adanya
proses-proses kongkuren. Untuk dapat mengatasi masalah tersebut maka kita harus
Untuk dapat mengatasi masalah tersebut maka kita harus memahami dahulu tentang
proses dari Mutual Exclusion, deadlock dan starvation tersesebut
Konkurensi merupakan
landasan unum perancangan sistem operasi. Proses-proses disebut konkuren jika
proses-proses berada pada saat yang sama. Proses-proses yang mengalami
kongkuren dapat sepenuhnya tak bergantung dengan proses yang lainnya
(independent) namun dapat juga saling berinteraksi, sehingga membutuhkan
sinkronisasi atau koordinasi proses agar terkendali dengan baik. 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
A. Mutual
Exclusion
Merupakan kondisi dimana terdapat
sumber daya yang tidak dapat dipakai bersama pada waktu yang bersamaan
(misalnya: printer, disk drive) maka terdapat. jaminan hanya satu proses yang
mengakses sumber daya pada satu interval tertentu. Syarat penting solusi
penjaminan mutual-exclusion adalah :
-
Bebas dari deadlock
-
Bebas dari startvation
-
Fairness
-
Fault-tolerance
Pendekatan penjaminan mutual-exclusion
tersebar :
1. Algoritma terpusat
-
Satu proses merupakan coordinator
-
Waktu proses-proses lain ingin masuk
critical region proses mengirim pesan ke koordinator memberitahu critical
region yang ingin dimasukinya dan meminta ijin.
-
Jika tidak ada proses lain di critical
region koordinator mengirim balik jawaban pemberian ijin
-
Ketika ijin tiba, proses yang meminta
segera memasuki critical region
-
Jika da proses lain di critical region
koordinaror menolak ijin
2. Klasifikasi algoritma tersebar :
-
Nontoken-bassed algorithms
-
Token based algorithms
a. Nontoken-based
algorithm
-
Lamport’s algorithm
-
Richart-agrawala algorithm
-
Maekawa algorithm
b. Beberapa
pendekatan token based algorithm:
-
Token-ring algorirthm
-
Suzuki-kasami’s broadcast algorirthm
-
Singhal’s heuristic algorirthm
-
Raymond’s tree-based algorirthm
B.
Deadlock
Deadlock adalah suatu kondisi dimana
dua proses atau lebih saling menunggu proses untuk melepaskan seumber daya atau
resources yang sedang dipakai. Deadlock yang mungkin dapat terjadi pada suatu
proses disebabkan proses itu menunggu suatu kejadian tertentu yang tidak akan
pernah terjadi. Dua atau lebih proses dikatakan berada dalam kondisi deadlock,
bila setiap proses yang ada menunggu suatu kejadian yang hanya dapat dilakukan
oleh proses lain dalam himpunan tersebut. Terdapat kaitan antara overhead dari
mekanisme koreksi dan manfaat dari koreksi deadlock itu sendiri. Pada beberapa
kasus, overhead atau ongkos yang harus dibayar untuk membuat sistem bebas deadlock
menjadi hal yang terlalu mahal dibandingkan jika mengabaikannya. Sementara pada
kasus lain, seperti pada real-time process control, mengizinkan deadlock akan
membuat sistem menjadi kacau dan membuat sistem tersebut tidak berguna. Contoh
ilustrasi, terjadi pada sebuah persimpangan jalan. Beberapa hal yang dapat
membuat deadlock pada suatu persimpangan, misalnya:
Terdapat satu jalur
pada jalan. Mobil digambarkan sebagai proses yang sedang menuju sumber daya.
Untuk mengatasinya beberapa mobil harus preempt (mundur). Sangat memungkinkan
untuk terjadinya starvation (kondisi proses tak akan mendapatkan sumber
daya).
a) Syarat terjadinya Deadlock
Menurut
Coffman dalam bukunya "Operating System" menyebutkan empat syarat
bagi terjadinya deadlock, yaitu:
1. Mutual
Exclusion : Suatu kondisi dimana setiap
sumber daya diberikan tepat pada satu proses pada suatu waktu.
2. Hold
and Wait : Kondisi yang menyatakan proses-proses yang sedang memakai suatu
sumber daya dapat meminta sumber daya yang lain.
3. Non-pre-emptive
: Kondisi dimana suatu sumber daya yang sedang berada pada suatu proses tidak dapat
diambil secara paksa dari proses tersebut,sampai proses itu melepaskannya.
4. Circular
Wait : Kondisi yang menyatakan bahwa adanya rantai saling meminta sumber daya
yang dimiliki oleh suatu proses oleh proses lainnya.
b) Strategi menghadapi Deadlock
Strategi untuk menghadapi deadlock dapat
dibagi menjadi tiga pendekatan, yaitu:
1. Mengabaikan
adanya deadlock : Memastikan bahwa deadlock tidak akan pernah ada, baik dengan
metode Pencegahan, dengan mencegah empat kondisi deadlock agar tidak akan
pernah terjadi. Metode Menghindari deadlock, yaitu mengizinkan empat kondisi deadlock,
tetapi menghentikan setiap proses yang kemungkinan mencapai deadlock.
2. Membiarkan
deadlock untuk terjadi, pendekatan ini membutuhkan dua metode yang saling
mendukung, yaitu:
a. Pendeteksian
deadlock, untuk mengidentifikasi ketika deadlock terjadi.
b. Pemulihan
deadlock, mengembalikan kembali sumber daya yang dibutuhkan pada proses yang
memintanya.
c)
Mencegah Deadlock
Metode
ini merupakan metode yang paling sering digunakan. Metode Pencegahan dianggap
sebagai solusi yang bersih dipandang dari sudut tercegahnya deadlock. Tetapi
pencegahan akan mengakibatkan kinerja utilisasi sumber daya yang buruk. Metode
pencegahan menggunakan pendekatan dengan cara meniadakan empat syarat yang
dapat menyebabkan deadlock terjadi pada saat eksekusi Coffman (1971). Secara
ringkas pendekatan yang digunakan pada metode pencegahan deadlock dan
masalah-masalah yang menghambatnya, terangkum dalam tabel dibawah ini.
d) Menghindari Deadlock
Pendekatan metode ini
adalah dengan hanya memberi kesempatan ke permintaan sumber daya yang tidak
mungkin akan menyebabkan deadlock. Metode ini memeriksa dampak pemberian akses
pada suatu proses, jika pemberian akses tidak mungkin menuju kepada deadlock,
maka sumber daya akan diberikan pada proses yang meminta. Jika tidak aman,
proses yang meminta akan disuspend sampai suatu waktu permintaannya aman untuk
diberikan. Kondisi ini terjadi ketika setelah sumber daya yang sebelumnya
dipegang oleh proses lain telah dilepaskan. Kondisi aman yang dimaksudkan
selanjutnya disebut sebagai safe-state, sedangkan keadaan yang tidak
memungkinkan untuk diberikan sumber daya yang diminta disebut unsafe-state.
e) Mendeteksi Deadlock dan Memulihkan
Deadlock
Metode ini mengunakan
pendekatan dengan teknik untuk menentukan apakah deadlock sedang terjadi serta
proses-proses dan sumber daya yang terlibat dalam deadlock tersebut. Setelah
kondisi deadlock dapat dideteksi, maka langkah pemulihan dari kondisi deadlock
dapat segera dilakukan. Langkah pemulihan tersebut adalah dengan memperoleh
sumber daya yang diperlukan oleh prosesproses yang membutuhkannya. Beberapa
cara digunakan untuk mendapatkan sumber daya yang diperlukan, yaitu dengan
terminasi proses dan pre-emption (mundur) suatu proses. Metode ini banyak
digunakan pada komputer mainframe berukuran besar.
0 Comments