Saturday, August 26, 2017

Kongkurensi Dalam Sistem Operasi

Kongkurensi

Kongkurensi Dalam Sistem Operasi
Kongkurensi Dalam Sistem Operasi

Hello good millennial, jumpa lagi di blogger joeshapictures tema hari ini adalah tentang "Kongkurensi Dalam Sistem Operasi" penasaran, yuk kita baca !

Proses-proses disebut kongkuren jika proses-proses (lebih dari 1 proses) berada pada saat yang sama. Proses-proses kongkuren dapat sepenuhnya tak bergantung dengan lainnya tapi dapat juga saling berinteraksi/kerjasama. Proses-proses yang berinteraksi memerlukan sinkronisasi/koordinasi agar terkendali dengan baik.

Contoh Kasus :
  • 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).

Kegiatan yang berhubungan dengan kongkurensi :

-Alokasi waktu pemroses untuk proses-proses yang aktif.
-Pemakaian bersama & persaingan mendapatkan sumber daya.
-Komunikasi antar proses.
-Sinkronisasi aktivitas banyak proses.

Kesulitan dalam Kongkurensi

-Pemakaian bersama sumber daya global
-Pengelolaan sumber daya agar optimal 
-Pencarian kesalahan pemrograman 

Penanganan Kongkurensi

-Mengetahui proses-proses yang aktif
-Mengatur alokasi dan dealokasi beragam sumber daya untuk tiap proses yang aktif
-Proteksi data 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. 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 :
1. Dua buah aplikasi (word & corel) berusaha mengakses printer yang sama.
2. Bila kedua aplikasi mengakses printer yang sama benar-benar secara bersamaan maka kedua proses akan memperoleh hasil yang tidak di kehendaki.

Kondisi dan Masalah

Beberapa kondisi dan masalah yang dapat muncul pada kongkurensi antara lain :
a. Mutual exclusion
b. Deadlock
c. Starvation

a. 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

b. Deadlock

Adalah banyak proses yang saling menunggu hasil dari proses yang lain untuk dapat melanjutkan atau menyelesaikan tugasnya.

Misal : 2 proses P0 dan P1. 2 sumber daya R0 dan R1. P0 meminta sumberdaya R0. 
Sumber daya R1 dialokasikan ke P1. 


Skenario yang menimbulkan deadlock :
-P0 dialokasikan R0
-P1 dialokasikan R1


-P0 sambil masih menggenggam R0, meminta R1
-P1 sambil masih menggenggam R1, meminta R0
-Terjadi deadlock karena sama-sama akan saling menunggu

Kongkurensi Dalam Sistem Operasi

c. 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.

Contoh :
Terdapat tiga proses, yaitu P1, P2 dan P3. P1, P2 dan P3 memerlukan pengaksesan sumber daya R secara periodik

Skenario berikut terjadi : 
P1 sedang diberi sumber daya R sedangkan P2 dan P3 diblocked menunggu sumber daya R. 

Ketika P1 keluar dari critical section, maka P2 dan P3 diijinkan mengakses 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 bergantian terus-menerus antara P1 dan P3, maka P2 tidak pernah memperoleh pengaksesan sumber daya R. 

Dalam kondisi ini memang tidak terjadi deadlock, hanya saja P2 mengalami starvation (tidak ada kesempatan untuk dilayani).

Terima kasih sudah membaca semoga apa yang kita baca hari ini bisa bermanfaat bagi kita semua, sebelum meninggalkan blogger joeshapictures sebaiknya di share dulu, apa yang kita dapat hari ini ada baiknya jika kita membagikan pengetahuan kepada orang lain. Sampai jumpa di artikel selanjutnya . . .

0 komentar: