Proses-proses disebut mengalami kongkurensi jika proses-proses (lebih dari satu proses) berada pada saat yang sama
Kongkurensi dapat terjadi pada single processor (melalui multiprogramming) maupun multiple processor (melalui multiprocessing atau distributed processing)
Kongkurensi dapat timbul pada tiga kasus berikut
Multiple application : Terjadi pergantian sejumlah job atau aplikasi secara dinamik
Structured application : sebagai penerapan disain modular, beberapa aplikasi dapat diterapkan sebagai kumpulan dari proses-proses kongkuren
Operating-system structure: sistem operasi diterapkan sebagai kumpulan dari proses-proses kongkuren
Proses Kongkurensi:
Pada single processor proses-proses dieksekusi secara interleaved untuk mewujudkan eksekusi yang simultan
Sedangkan pada multiple processor proses-proses dapat dieksekusi selain secara interleaved juga dapat secara overlap
Prinsip-prinsip Kongkurensi:
Kongkurensi meliputi alokasi waktu prosesor untuk proses-proses
Pemakaian bersama (sharing) dan persaingan (competition) untuk mendapatkan sumber daya
Komunikasi antar proses
Sinkronisasi aktivitas banyak proses
Masalah akibat kongkurensi : karena kecepatan eksekusi tidak dapat diprediksi
Masalah kongkurensi pada single processor.
Pemakaian bersama sumber daya global.
Sistem operasi sulit mengoptimalkan alokasi sumber daya.
Sulitnya mencari kesalahan program.
Contoh pemakaian bersama sumber daya global
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 (race condition)
Contoh sistem operasi sulit mengoptimalkan alokasi sumber daya
Jika proses A meminta suatu chanel I/O tertentu dan kemudian disuspend sebelum menggunakan channel tersebut. Jika sistem operasi mengunci channel tersebut dan mencegahnya digunakan oleh proses lain maka tindakan ini merupakan ketidakefisienan
Kepedulian Sistem Operasi
Disain dan bentuk manajemen sistem operasi yang bagaimana yang timbul akibat kongkurensi?
1. Sistem operasi harus mampu menyimpan jejak dari proses-proses yang aktif (menggunakan PCB)
2. Sistem operasi harus mengalokasi dan mengdealokasi beragam sumber daya untuk setiap proses yang aktif. Sumber daya meliputi : - Processor time - Memory - Files - I/O devices
3. Sistem operasi harus mampu memproteksi data dan sumber daya fisik dari suatu proses agar tidak diganggu oleh proses yang lain
4. Hasil dari proses harus independen terhadap kecepatan, kecepatan eksekusi tergantung dari proses kongkuren yang lain
Beberapa istilah pada kongkurensi
-Mutual Exclusion
-Deadlock
-Starvation
Mutual Exclusion
Terdapat sumber daya yang tidak dapat dipakai bersama pada saat bersamaan, misalnya printer.
Sumber daya yang tidak dapat dipakai bersama ini disebut sumber daya kritis. Bagian program yang menggunakan sumber kritis ini disebut memasuki critical section.
Hanya satu program yang diijinkan masuk critical region. Sistem operasi menyediakan system call untuk hal ini
Deadlock
Ilustrasi Deadlock Misalnya
-Dua proses, P1 dan P2
-Dua sumber daya kritis, R1 dan R2
-Proses P1 dan P2 harus mengakses kedua sumber daya
-Kondisi yang terjadi R1 diberikan ke P1, sedang R2 diberikan ke P2.
Karena untuk melanjutkan eksekusi memerlukan 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 keadaan deadlock, tidak dapat membuat kemajuan apapun
Starvation
Misalnya
Terdapat tiga proses P1, P2 dan P3
P1, P2, 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 mengkakses 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 pergantian terus menerus antara P1 dan P3, maka P2 tidak pernah memperoleh pengaksesan sumber daya R, meski tidak ada deadlock. Pada situasi ini P2 disebut mengalami starvation.
Materi lengkap [PPT]Kongkurensi
Sumber : Selvia Lorena Br. Ginting, S.Si., MT, Unikom
0 komentar:
Posting Komentar