Pengertian Kongkurensi
Kongkurensi merupakan landasan umum perancangan sistem operasi. Proses-proses disebut kongkurensi jika proses-proses (lebih dari satu proses) berada pada saat yang sama. Saat yang sama maksudnya adalah beberapa proses berlangsung pada waktu yang sama dan menggunakan sumber daya yang sama. Sebagai contoh pada system operasi windows, jika kita menjalankan Microsoft Word bersamaan dengan winamp maka itu adalah kongkurensi. 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 pemrograman saat ini telah memiliki mekanisme kongkurensi dimana dalam penerapannya perlu dukungaan sistem operasi dimana bahasa berada.
Masalah-masalah akibat Kongkurensi
Proses-proses yang kongkuren akan menyebabkan beberapa kemungkinan masalah muncul. Masalah ini muncul pada saat atau setelah proses berlangsung. Kemungkinan beberapa masalah tersebut adalah :
1. Mutual Exclusion (Pengeluaran Timbal Balik)
Merupakan kondisi dimana terdapat sumber daya yang tidak dapat dipakai bersama pada waktu yang bersamaan (misalnya printer dll). Kondisi demikian disebut sumber daya kritis, dan bagian program yang menggunakan sumber daya kritis disebut critical region / section. Pemaksaan atau pelanggaran mutual exclusion menimbulkan :
– Deadlock
– Startvation
2. Deadlock (buntu)
Deadlock merupakan kondisi terparah karena banyak proses dapat terlibat dan semuanya tidak dapat mengakiri prosesnya secara benar.
3. Startvation (kelaparan)
Startvation adalah keadaan dimana pemberian akses bergantian terus-menerus dan ada suatu proses yang tidak mendapatkan gilirannya.
Prinsip-prinsip kongkurensi
Kongkurensi merupakan kegiatan yang berhubungan dengan :
- Alokasi waktu pemroses untuk proses-proses yng aktif
- Pemakaian bersama dan persaingan untuk mendapatkan sumber daya
- Komunikasi antar proses
Sistem Berbagi Memori
Sistem berbagi memori atau yang disebut juga sebagai shared Memory System merupakan salah satu cara komunikasi antar proses dengan cara mengalokasikan suatu alamat memori untuk dipakai berkomunikasi antar proses. Alamat dan besar alokasi memori yang digunakan biasanya ditentukan oleh pembuat program. Pada metode ini, sistem akan mengatur proses mana yang akan memakai memori pada waktu tertentu sehingga pekerjaan dapat dilakukan secara efektif.
Sistem berkirim pesan
Sistem berkirim pesan adalah proses komunikasi antar bagian sistem untuk membagi variabel yang dibutuhkan. Proses ini menyediakan dua operasi yaitu mengirim pesan dan menerima pesan. Ketika dua bagian sistem ingin berkomunikasi satu sama lain, yang harus dilakukan pertama kali adalah membuat sebuah link komunikasi antara keduanya. Setelah itu, kedua bagian itu dapat saling bertukar pesan melalui link komunikasi tersebut. Sistem berkirim pesan sangat penting dalam sistem operasi karena dapat diimplementasikan dalam banyak hal seperti pembagian memori, pembagian bus dan melaksanakan proses yang membutuhkan pengerjaan bersama antara beberapa bagian sistem operasi.
Terdapat dua macam cara berkomunikasi, yaitu :
- Komunikasi langsung. Dalam komunikasi langsung, setiap proses yang ingin berkirim pesan harus mengetahui secara jelas dengan siapa mereka berkirim pesan. Hal ini dapat mencegah pesan salah terkirim ke proses yang lain.
- Komunikasi tidak langsung. Berbeda dengan komunikasi langsung, jenis komunikasi ini menggunakan sejenis kotak surat atau port yang mempunyai ID unik untuk menerima pesan. Proses dapat berhubungan satu sama lalin jika mereka membagi port mereka.
Kerjasama diantara Proses
Kerjasama diantara proses terbagi kedalam 2 bagian, diantaranya :
1. Kerjasama diantara proses dengan pemakaian bersama
Dalam kasus kerjasama pemakaian sumber daya bersama meliputi proses-proses yang saling berinteraksi tanpa dinyatakan secara eksplisit. Contoh : banyak proses yang mengakses variabel atau berkas yang dipakai bersama. Proses-proses dapat menggunakan sdan memperbarui 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.
Kerjasama diantara proses-proses dalam pemakaian bersama mempunyai masalah :
- Mutual exclusion
- Deadlock
- Startvation
Karena data disimpan pada suatu sumber daya (peralatan, memori), maka terdapat masalah pengendalian mutual exclusion, deadlock dan startvation. Perbedaannya adalah item-item data dapat diakses dengan dua mode, yaitu:
- Operasi pembacaan dan penulisan harus mutually exclusive (yaitu benar-benar hanya satu proses yang berada di critical section.
- Operasi penulisan saja yang harus mutually exclusive.
2. Kerjasama diantara proses dengan komunikasi
Pada kasus persaingan, proses-proses memakai sumber daya tanpa pedulli proses-proses lain. Pada kasus kedua, proses-proses memakai bersama nilai dan meski masing-masing proses tidak secara eksplisit peduli proses-proses lain. Tapi proses-proses peduli untuk menjaga integritas data.

