PEMBAHASAN
Konkurensi menjadi penting karena pada saat ini hampir seluruh sistem adalah
multiprograming ataupun multithereading, serta menuju pemerosesan tersebar yang
mengharuskan adanya proses-proses konkuren.
1. Mutual exclusion
2. Sinkronisasi
3. Deadlock
4. Starvation
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:
Mutual exclusion harus dijamin, bahwa tidak ada proses lain, kecuali dirinya sendiri. Di sini
terjadi proses tunggal.
Proses yang berada di noncritical section, dilarang mem-blocked proses-proses lain yang
ingin masuk critical section. Hal ini bisa terjadi startvation.
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.
Ketika tidak ada proses pada critical section, maka proses yang ingin masuk critical section
harus ijinkan masuk tanpa waktu tunda.
Tidak ada asumsi mengenai kecepatan relatif proses atau jumlah proses yang ada.
Proses hanya tinggal pada critical section selama satu waktu yang tidak terhingga.
2. 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.
1. Menggunakan suatu protokol untuk meyakinkan bahwa sistem tidak pernah mengalami
deadlock.
2. Mengijinkan sistem mengalami deadlock, namun kemudian harus segera dapat
memperbaikinya.
3. Mengabaikan semua masalah dan menganggap deadlock tidak akan pernah terjadi lagi di
dalam sistem.
Strategi untuk menghadapi deadlock dapat dibagi menjadi tiga pendekatan, yaitu:
2. Memastikan bahwa deadlock tidak akan pernah ada, baik dengan metode Pencegahan,
dengan mencegah empat kondisi deadlock agar tidak akan pernah terjadi.
3. 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
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.
Jika suatu proses minta ijin mengakses resource, sementara resource tersebut tidak
dapat dipenuhi secepatnya, maka proses tersebut harus membebaskan semua resourcenya
terlebih dahulu.
Memberi nomor pada setiap resource yang ada, dan setiap resource hanya boleh
mengakses resource secara berurutan.
Metode deteksi digunakan pada system yang mengijinkan terjadinya deadlock. Tujuan
metode ini adalah memeriksa apakah telah terjadi deadlock dan menentukan proses-proses
dan sumber daya-sumber daya yang terlibat deadlock secara presisi. Begitu telah dapat
ditentukan, system dipulihkan dari deadlock dengan metode pemulihan.
Metode pemulihan dari deadlock berupaya untuk menghilangkan deadlock dari
system sehingga system beroperasi kembali, bebas dari deadlock. Proses-proses yang terlibat
deadlock mungkin dapat menyelesaikan eksekusi dan membebaskan sumber daya-
sumberdayanya.
3. 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.
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.
- Aplikasi terstruktur.
Perluasan prinsip perancangan modular dan pemrograman terstruktur adalah suatu
aplikasi dapat secara efektif diimplementasikan sebagai sekumpulan proses. Dengan
sekumpulan proses, maka tiap proses menyediakan satu layanan spesifik tertentu.
Jika dua proses menggunakan variabel global yang sama, serta keduanya membaca dan
menulis variabel itu maka urutan terjadinya pembacaan dan penulisan terhadap variabel itu
menjadi kritis.
Proses seperti ini merupakan proses yang tidak dimaksudkan untuk bekerjasama. Pada
multiprogramming dengan proses-proses independen, dapat berupa batch atau sesi interaktif,
atau campuran keduanya. Walaupun proses saling tidak melakukan kerjasama, sistem operasi
perlu memperhatikan kompetisi sumber daya. Misalnya dua aplikasi independen dapat sama-
sama menginginkan akses ke disk, file , atau printer yang sama. Sistem operasi harus
mengatur akses tersebut.
Proses seperti ini adalah proses yang tidak harus saling mengetahui akan keberadaan
proses lainnya berdasarkan namanya namun memiliki akses berbagi ke beberapa objek,
misaslkan bufer I/O. Proses seperti itu menunjukkan adanya kooperasi dalam melakukan
berbagi pemakaian ojek.
Proses-proses seperti ini adalah proses yang dapat berkomunikasi satu dengan lainnya
berdasarkan nama dan merupakan proses yang dirancang untuk bekerja sama dalam
melakukan aktivitas-aktivitas tertentu. Demikian pula, proses seperti ini menunjukkan adanya
kooperasi.
2.6 Kerjasama Diantara Proses-Proses Dengan Pemakaian Bersama & Dengan Komunikasi
Dalam kasus kerjasama pemakaian sumber daya bersama meliputi proses-proses yang
saling berinteraksi tanpa dinyatakan secara eksplisit.
Contoh
Banyak proses mengakses variabel atau berkas yang dipakai bersama. Proses-proses dapat
menggunakan dan memperbaharui data yang dipakai bersama tanpa peduli proses-proses lain.
Proses mengetahui bahwa proses-proses lain dapat juga mengakses data yang sama. Proses-
proses harus bekerja sama untuk menjamin integritas data yang dipakai bersama tersebut.
Kerja sama di antara proses-proses dalam pemakaian bersama mempunyai masalah (Mutual
exclusion, Deadlock dan Starvation).
Sedangkan ketika proses-proses bekerja sama dengan komunikasi, beragam proses
berpartisipasi dalam suatu usaha dengan menghubungkan semua proses. Komunikasi
menyediakan cara untuk sinkronisasi atau koordinasi beragam aktivitas.
Komunikasi dicirikan dengan berisi pesan-pesan dengan suatu urutan. Primitif untuk
mengirim dan menerima pesan disediakan kernel sistem operasi. Karena tak ada sesuatu yang
di pakai bersama di antara proses-proses itu dalam melewatkan pesan-pesan, tak ada masalah
mutual exclusion. Tetapi masalah deadlock dan starvation dapat muncul.
Contoh
Deadlock adalah dua proses menjadi Blocked dalam hal ini masing-masing proses menjadi
Blocked karena menunggu komunikasi dari proses lain. Kedua proses saling menunggu
komunikasi dari lainnya dan tidak dapat beranjak dari kondisi ini.
3.1.Kesimpulan
Konkurensi merupakan landasan umum perancangan sistem operasi. Proses-proses
disebut konkuren jika proses-proses berada pada saat yang sama. Dikatakan sebagai landasan
umum perancangan sistem operasi karena dalam menciptakan suatu sistem operasi, sistem
operasi tersebut umumnya harus bisa menjalankan beberapa proses (lebih dari satu proses)
pada saat yang bersamaan.
Pada proses-proses yang konkuren atau berada pada saat yang bersamaan, terdapat
beberapa masalah yang harus diselesaikan yaitu ( Mutual exclusion, Sinkronisasi, Deadlock
dan Starvation ). Penyelesaian masalah kongkurensi terbagi menjadi 2 yaitu Mengasumsikan
adanya memori yang digunakan bersama dan tidak mengasumsikan adanya memori yang
digunakan bersama.
DAFTAR PUSTAKA
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://ka2forefer.blogspot.com/2013/04/konkurensi.html