TEGUH IMAN HERMANTO, M.Kom Introduction KONKURENSI TEGUH IMAN HERMANTO, M.Kom
Reference Andrew S. Tanembaum. “Modern Operating Systems”. Pearson Education, Inc. 2015 Bambang Hariyanto. “Sistem Operasi”. Informatika. 2012 Avi Silberschatz, Peter B Galvin, Greg Gegne. “Operating System Concepts”. John Wiley & Sons, Inc. 2012
Pendahuluan Proses-proses dikatakan konkuren jika lebih dari satu proses ada pada saat yang sama. Proses yang konkuren dapat sepenuhnya tak bergantung dengan proses lain namun dapat juga saling berinteraksi. Proses yang berinteraksi memerlukan sinkronisasi agar terkendali dengan baik. Menjadi penting ketika seluruh sistem adalah multiprogramming atau multithreading serta menuju pemrosesan tersebar.
Pendahuluan (Cont’d) • Contoh : – Sambil menunggu selesainya layanan (misalnya transfer data oleh modem) pemakai dapat berinteraksi dengan aplikasi lain seperti aplikasi permainan game atau mengetikkan perintah pada text editor. – Proses tersebut harus berjalan konkuren dan tidak terjadi deadlock (hang).
Pendahuluan (Cont’d) • Kegiatan yang berhubungan dengan kongkurensi : – Alokasi waktu pemroses untuk proses-proses yang aktif. – Pemakaian bersama dan persaingan mendapatkan sumber daya. – Komunikasi antar proses. – Sinkronisasi aktivitas banyak proses.
Kesulitan dalam konkurensi Pemakaian bersama sumber daya global – Memungkinkan keadaan kritis saat pembacaan dan penulisan variabel atau data bersama. Pengelolaan alokasi sumber daya agar optimal – Ketika suatu proses menggunakan sumber daya kemudian di tunda, dan jika SO memiliki kebijakan mengunci sumber daya untuk proses lain, dlm hal ini menghasilkan inefisiensi sistem komputer. Pencarian kesalahan pemrograman – Pencarian kesalahan program kongkuren lebih sulit dari program sequent.
Penanganan Konkurensi • Mengetahui proses-proses yang aktif. • Mengatur alokasi dan dealokasi beragam sumber daya untuk tiap proses yang aktif. • Proteksi adata dan sumber daya fisik proses. • Hasil-hasil proses harus independen.
Persaingan dan Kerjasama Antar Proses Persaingan antar proses terjadi ketika beberapa proses akan menggunakan sumber daya yang sama. Jika ada 2 proses yang akan mengakses ke suatu sumber daya tunggal, kemudian satu proses dialokasikan ke sumber daya tersebut oleh SO → proses yang lainnya akan menunggu. Pada kasus yang ekstrim, proses yang menunggu tersebut ada kemungkinan tidak akan pernah mendapatkan akses ke sumber daya sehingga tidak akan pernah selesai dengan sempurna. Hal ini juga terjadi akibat antar proses yang saling tidak peduli.
Persaingan dan Kerjasama Antar Proses Proses-proses yang mengalami kongkuren dapat berdiri sendiri (independen) atau dapat saling berinteraksi, sehingga membutuhkan sinkronisasi atau koordinasi proses yang baik. Meskipun proses-proses tidak bekerja bersama, SO perlu mengatur persaingan diantara proses- proses itu dalam memperoleh sumber daya yang terbatas Contoh: – Dua buah aplikasi (word & corel) berusaha mengakses printer yang sama. – Bila kedua aplikasi mengakses printer yang sama benar- benar secara bersamaan maka kedua proses akan memperoleh hasil yang tidak di kehendaki.
Masalah Pada Proses Konkurensi Beberapa kondisi dan masalah yang dapat muncul pada kongkurensi antara lain : – Mutual exclusion – Deadlock – Starvation
Mutual Exclusion Mutual exclusion adalah jaminan hanya satu proses yang mengakses sumber daya pada suatu interval waktu tertentu, sedangkan proses lain dilarang mengerjakan hal yang sama. – contoh : sumberdaya printer hanya bisa diakses 1 proses, tidak bisa bersamaan → sumber daya ini disebut sumber daya kritis.
Deadlock Adalah banyak proses yang saling menunggu hasil dari proses yang lain untuk dapat melanjutkan atau menyelesaikan tugasnya.
Starvation Adalah suatu proses akan menunggu suatu kejadian atau hasil suatu proses lain, supaya dapat menyelesaikan tugasnya, tetapi kejadian yang ditunggu tidak pernah terjadi karena selalu diambil lebih dulu oleh proses yang lain.
Sinkronisasi Proses Sistem konkuren memungkinkan proses-proses melakukan akses secara konkuren ke suatu sumber daya yang dibagi pakai bersama dapat menimbulkan race condition Contoh race condition pada aplikasi transfer uang : Dua proses terpisah sedang melakukan transfer uang sebesar 100.000 (proses 1) dan 200.000 (proses 2) ke suatu nomor rekening yang sama yang memiliki saldo awal sebesar 1.000.000. Jika proses transfer berjalan dengan benar, maka saldo akhir rekening tersebut seharusnya sebesar 1.300.000. Namun, jika proses 1 dan proses 2 berjalan terpisah namun konkuren tidak dikoordinsi dengan baik, maka dapat menimbulkan race condition dan menghasilkan saldo akhir 1.100.000 atau 1.200.000 Permasalahannya terletak pada kode yang melakukan akses ke sumber daya yang digunakan bersama oleh proses 1 dan proses 2, yaitu variabel balance atau saldo rekening
Sinkronisasi Proses Kode instruksi yang digunakan adalah load, add, store (critical section) Proses eksekusi yang dapat menimbulkan race condition: P1 load 1.000.000 ke register P1 P2 load 1.000.000 ke register P2 P1 add 100.000 ke register 1.100.000 P2 add 200.000 ke register 1.200.000 P1 store nilai register yaitu 1.100.000 P2 store nilai register yaitu 1.200.000 Untuk mengatasi hal tersebut maka digunakan mutual exclusive Proses eksekusi mutual exclusive : P2 load 1.100.000 ke register P2 P2 add 200.000 ke register 1.300.000 P2 store nilai register yaitu 1.300.000
hermantoteguh@gmail.com facebook.com/imanberkata 0857 9992 2266