Slide 10 Concurrency, Mutual Exclusion, & Synchronization
Course Objective Principles of Concurrency. Mutual Exclusion. Semaphore. Monitor. Message Passing. Reader and Writer Problem.
Basic Review Beberapa difinisi tentang managemen process dan Thread, yaitu : Multiprogramming, eksekusi multiple processor pada uniprocessor / single processor. Multiprocessing, eksekusi multiple process pada multiple processor. Distributed Processing, eksekusi multiple process yang dieksekusi pada muliple / beberapa sistem komputer.
Concurrency Terdapat beberapa term, yang berkaitan dengan concurrency, seperti yang ditunjukan pada gambar disamping. Concurrency merujuk kepada mekanisme scheduling yang termasuk komunikasi antar process, resource sharing (memory, I/O, file, etc).
Simple Example (1) Kode program disamping, merupakan suatu mekanisme untuk menerima input berupa karakter, menyimpan value tersebut, dan menampilkan ke layar. Terdapat dua process, P1 dan P2. P1 sedang eksekusi method echo() sampai pada menerima inputan (misalkan x) dan menyimpanya ke variable chin. Namun seketika P1 mendapatkan interrupt karena suatu alasan. P2 aktif dan melakukan eksekusi atas method echo(). Process P2 menerima inputan berupa karakter Y yang disimpan di variabel chin. Kemudian di assign ke variable chout, dan ditampilkan ke layar.
Simple Example (2) Setelah P2 menampilkan variable chout ke layar, seketika P1 kembali aktif dan meneruskan eksekusinya. Kondisnya adalah, bahwa nilai variable chin telah diubah oleh process P2 menjadi bernilai “y”. Sehingga process P1 pun akan menampilkan ke layar nilai yang ada dalam variable chout, yaitu “Y”. Dengan demikian, nilai “y” akan ditampilkan 2 kali, sedangkan nilai “x” telah di overwrite oleh “y”. Disini telah terjadi ketidak Consistent-an data !!!!!!
Simple Example (3) Setelah P2 menampilkan variable chout ke layar, seketika P1 kembali aktif dan meneruskan eksekusinya. Kondisnya adalah, bahwa nilai variable chin telah diubah oleh process P2 menjadi bernilai “y”. Sehingga process P1 pun akan menampilkan ke layar nilai yang ada dalam variable chout, yaitu “Y”. Dengan demikian, nilai “y” akan ditampilkan 2 kali, sedangkan nilai “x” telah di overwrite oleh “y”. Disini telah terjadi ketidak Consistent-an data !!!!!!
Contoh Lain : Race Condition … (1) Race Condition terjadi apabila terdapat beberapa process atau Thread, dimana satu process atau Thread melakukan eksekusi WRITE dan process atau Thread yang lainya melakukan eksekusi READ pada suatu resource. Hasil akhir yang didapatkan adalah sesuai dengan urutan process atau Thread.
Contoh Lain : Race Condition … (2)
Mutual Exclusion Jika terdapat beberapa process atau Thread yang hendak menggunakan menggunakan suatu resource yang sama, maka kondisi kompetisi dapat terjadi.