Puji Syukur kepada Tuhan Yang Maha Esa, karena berkat pertolonganNya saya
berhasil menyelesaikan makalah “Konkurensi” ini. Adapun makalah ini disusun untuk
memenuhi tugas mata kuliah Sistem Operasi. Dalam makalah ini terkandung definisi serta
semua pembahasan tentang Konkurensi. Makalah ini di susun juga agar supaya para pembaca
bisa mengerti dan memahami tentang apa itu Konkurensi.
Dalam penyusunan makalah ini ada banyak pihak yang membantu, untuk itu saya
berterimakasih yang sebesar-besarnya kepada semua pihak yang membantu dalam
penyusunan makalah ini. Makalah ini masih belum bisa di katakan sempurna karena masih
banyak yang masih perlu untuk di perbaiki untuk itu saya harap para pembaca bisa
memahami serta memberi saran yang baik. Semoga makalah ini dapat berguna bagi para
pembaca dan bagi Dosen mata kuliah Sistem Operasi yang akan memeriksa serta
membacanya.
BAB I
PENDAHULUAN
1.3 Tujuan
1. Setelah mahasiswa mengetahui mutual exclusion dan deadlock diharapkan
mereka bisa mengetahui tanda-tandanya.
2. Diharapkan juga setelah itu mahasiswa dapat mencari dan memahami dengan
baik cara-cara mengindarinya.
3. Diharapkan juga mahasiswa dapat memahami sinkronisasi sebagai solusi untuk
mengatasi masalah- masalah pada sistem operasi.
BAB II
PEMBAHASAN
Dengan kata lain, masalah-masalah diatas akan timbul apabila sistem operasi
menjalankan beberapa proses pada saat yang bersamaan.
1. Mutual Exclusion
Mutual exclusion adalah jaminan hanya satu proses yang mengakses sumber daya
pada satu interval waktu tertentu. Sumber daya yang tidak dapat dipakai bersama
pada saat bersamaan. Fasilitas atau kemampuan menyediakan dukungan mutual
exclusion harus memenuhi kriteria sbb:
a. Mutual exclusion harus dijamin, bahwa tidak ada proses lain, kecuali
dirinya sendiri. Di sini terjadi proses tunggal.
b. Proses yang berada di noncritical section, dilarang mem-blocked proses-
proses lain yang ingin masuk critical section. Hal ini bisa terjadi startvation.
c. Harus dijamin bahwa proses yang ingin masuk critical section tidak
menunggu selama waktu yang tak terhingga. Ini bisa mengakibatkan
masalah deadlock dan antrian proses bertambah panjang.
d. Ketika tidak ada proses pada critical section, maka proses yang ingin masuk
critical section harus ijinkan masuk tanpa waktu tunda.
e. Tidak ada asumsi mengenai kecepatan relatif proses atau jumlah proses
yang ada.
f. Proses hanya tinggal pada critical section selama satu waktu yang tidak
terhingga
2. Sinkronisasi
Sinkronisasi merupakan akses bersama yang mengakibatkan inkosistensi data
yang memerlukan mekanisme untuk memastikan eksekusi dari proses kerjasama.
Sinkronisasi diperlukan untuk menghindari terjadinya ketidak-konsistenan data
akibat adanya akses data secara konkuren. Proses-proses disebut konkuren jika
proses-proses itu ada dan berjalan pada waktu yang sama, proses-proses konkuren
ini bisa bersifat independen atau bisa juga saling berinteraksi. Proses-proses
konkuren yang saling berinteraksi memerlukan sinkronisasi agar terkendali dan
juga menghasilkan output yang benar. Solusi masalah bounded-buffer ini adalah
shared memory yang mengijinkan maksimum n-1 materi dalam buffer pada waktu
yang sama. Bila semua N buffer digunakan tidak sederhana, misal untuk
memodifikasi producer-consumer code dengan menambah suatu variable counter
dimulai dari 0 dan masing-masing waktu tambahan dari suatu item baru diberikan
kepada buffer.
Tujuan utama dari sinkronisasi ini 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 sistem komputer menuju ke sistem
multiprocessing, terdistribusi dan paralel yang mengharuskan adanya proses-proses
kongkuren.
Sinkronisasi sederhananya adalah saling bertukar data agar memiliki jumlah
data yang sama. Tujuan utama mungkin lebih condong ke arah back-up (membuat
cadangan) tapi ada pula sinkronisasi jadwal kerja (kalender) untuk menciptakan
suatu event yang tepat secara bersamaan diantara pelaku sinkronisasi. Sinkronisasi
umumnya dilakukan dengan bantuan perangkat sinkronisasi. Nilai akhir counter
akan mengikuti eksekusi terakhir yang dilakukan komputer. Untuk itu dibutuhkan
sinkronisasi yang merupakan salah satu upaya yang dilakukan agar proses salimg
bekerja sama dieksekusi secara beraturan untuk mencegah keadaan race condition
(situasi dimana beberpapa proses mengakses dan memanipulasi data pada waktu
yang bersamaan).
Ada tiga hal yang selalu menjadi masalah klasik pada proses sinkronisasi, yaitu :
a. Problem Bounded buffer : merupakan suatu struktur data yang mampu
untuk menyimpan beberapa nilai dan mengeluarkannya kembali ketika
diperlukan
b. Problem Reades and Writer :merupakan salah satu masalah sinkronisasi
klasik yang sering digunakan untuk mendiskusikan dan membandingkan
berbagai cara untuk menyelesaikan masalah sinkronisasi
c. Problem Dining Philosophers : Masalah ini memodelkan masalah
enkapsulasi dari ketergantungan mesin dan masalah portabilitas. Dalam
masalah Dining Philosophers, diketahui sejumlah (N) filusuf yang hanya
memiliki tiga status, berpikir, lapar, dan makan. Semua filusuf berada di
sebuah meja makan bundar yang ditata sehingga di depan setiap filusuf ada
sebuah piring berisi mie dan di antara dua piring yang bersebelahan
terdapat sebuah sumpit.Salah satu solusi yang mungkin langsung terlihat
adalah dengan menggunakan semafor. Setiap sumpit mewakili sebuah
semafor. Kemudian, ketika seorang filusuf lapar, maka dia akan mencoba
mengambil sumpit di kiri dan di kanannya, atau dengan kata lain dia akan
menunggu sampai kedua sumpit tersebut dapat ia gunakan. Setelah selesai
makan, sumpit diletakkan kembali dan sinyal diberikan ke semafor
sehingga filusuf lain yang membutuhkan dapat menggunakan sumpitnya.
3. Deadlock
Deadlock adalah suatu kondisi dimana dua proses atau lebih tidak dapat
meneruskan eksekusinya oleh pemroses. Pada umumnya deadlock terjadi karena
proses mengalami startvation, yaitu suatu job yang sedang dieksekusi dan eksekusi
job tersebut tidak ada hentinya, tidak diketahui kapan berhentinya proses tersebut
atau bahkan job yang antri bisa dikatakan mempunyai status mati, padahal proses-
proses lain sedang menunggu sumber daya proses. Kondisi Deadlock merupakan
kondisi terparah karena banyak proses dapat terlibat dan semuanya tidak dapat
mengakhiri prosesnya secara benar.
Metode Mengendalikan Deadlock
a. Menggunakan suatu protokol untuk meyakinkan bahwa sistem tidak akan
pernah mengalami deadlock.
b. Mengijinkan sistem mengalami deadlock, namun kemudian harus segera
dapat memperbaikinya.
c. Mengabaikan semua masalah dan menganggap deadlock tidak akan pernah
terjadi lagi di dalam sistem.
Strategi untuk menghadapi deadlock dapat dibagi menjadi tiga pendekatan, yaitu:
a. Mengabaikan adanya deadlock.
b. 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.
c. Membiarkan deadlock untuk terjadi, pendekatan ini membutuhkan dua
metode yang saling mendukung, yaitu:
Pendeteksian deadlock, untuk mengidentifikasi ketika deadlock terjadi.
Pemulihan deadlock, mengembalikan kembali sumber daya yang
dibutuhkan pada proses yang memintanya.
Pencegahan Deadlock
a. Meniadakan Mutual exclusion.
Harus tetap menjaga resource-resource yang bersifat non-shareable. Yaitu,
proses menahan sebuah resource, proses lain yang meminta resource tsb
harus menunggu sampai proses melepaskannya. Jika terjadi pada perangkat
I/O dan berkas, maka sulit untuk menghindari mutual exclusion pada
sumber daya non shareable.
b. Meniadakan Syarat Hold & Wait.
Apabila suatu proses minta ijin untuk mengakses suatu resource, maka
proses tersebut tidak boleh membawa resource yang lainnya. Sebleum
proses meminta resource, maka harus melepas semua resource yang
dibawa.
c. Meniadakan Non Preemption.
Jika suatu proses minta ijin mengakses resource, sementara resource
tersebut tidak dapat dipenuhi secepatnya, maka proses tersebut harus
membebaskan semua resourcenya terlebih dahulu.
d. Meniadakan Circular Wait.
Memberi nomor pada setiap resource yang ada, dan setiap resource hanya
boleh mengakses resource secara berurutan.
4. Startvation
Startvation adalah keadaan dimana pemberian akses bergantian terus menerus,
dan ada suatu proses yang tidak mendapatkan gilirannya. Juga dapat dimaksudkan
bahwa kondisi bila beberapa proses-proses menunggu alokasi sumber daya sampai
tak berhingga, sementara proses-proses lain dapat memperoleh alokasi sumber
daya.
Hal ini disebabkan bias pada kebijaksanaan atau strategi alokasi sumber daya.
Kondisi seperti ini harus dihindari pada sistem operasi karena tidak adil, tapi
dikehendaki penghindaran dilakukan seefisien mungkin. Penanganan ini
merupakan persoalan yang sulit untuk menemukan kriteria yang benar, adil dan
efesien dalam suatu strategi Sistem Operasi.
Perhatikan contoh berikut:
a. Terdapat tiga proses, P1, P2, dan P3.
P1, P2 dam P3 memerlukan pengaksesan sumber daya R secara periodik.
Skenario berikut terjadi:
P1 sedang diberi sumber daya R, P2 dan P3 blocked menunggu
sumber daya R.
Ketika P1 keluar dari critical section, P2 dan P3 diijinkan
mengakses R.
Asumsi P3 diberi hak akses. Kemudian setelah selesai, hak akses
kembali diberikan ke P1 yang satu 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,
meski tidak ada deadlock. Pada situasi ini, P2 mengalami situasi
yang disebut dengan startvation.
http://catatanharianboy.blogspot.com/2012/05/konkurensi-adalah-pengertian-tentang.html
http://jeleeeee.blogspot.com/2013/04/pengertian-konkurensi.html
http://marieyanalian.blogspot.com/2012/11/konkurensi-konkurensi-merupakan.html
http://nur-walendah-fst13.web.unair.ac.id/artikel_detail-103351-Sistem%20Operasi-
Sinkronisasi%20&%20Deadlock.html
http://ka2forefer.blogspot.com/2013/04/konkurensi.html