20 May, 2010

Kongkurensi

Kongkurensi
Konkurensi merupakan landasan umum perancangan system operasi. Prosesproses
disebut konkuren jkia proses-proses itu berada pada saat yang sama. Proses-proses konkuren dapat sepenuhnya tak bergantung dengan yang lain tapi dapat juga saling berinteraksi.
Proses-proses yang berinteraksi memerlukan sinkronisasi agar terkendali dengan baik.
Prosesproses yang berinteraksi mempunyai beberapa masalah yang harus diselesaikan, yaitu:
1. Mutual Exclusion
2. Deadlock
3. StarVation
4. Sinkronisasi

Prinsip-prinsip konkurensi meliputi :
  1. Alokasi waktu processor untuk proses-proses.
  2. Pemakaian bersama dan persaingan untuk mendapatkan sumber daya.
  3. Komunikasi antar proses.
  4. Sinkronisasi aktivitas banyak proses.
Kesulitan-kesulitan yang ditimbulkan konkurensi Masalah- masalah yang dihadapi proses-proses konkuren pada multiprogramming dan multiprocessing serupa, yaitu : kecepatan eksekusi prosesproses di system tidak dapat diprediksi.
Kecepatan proses pada system antara lain :
  • Aktivitasaktivitas proses lain
  • Cara system operasi menangani interupsi
  • Kebijakan penjadwalan yang dilakukan system operasi
Beberapa kesulitan yang munkin muncul:
  1. Pemakaian bersama sumber daya global Ketika dua proses menggunakan variable global yang sama , serta keduanya membaca dan menulis variable itu maka urutan terjadinya pembacaan dan penulisan terhadap variable itu menjadi kritis.
  2. Pengelolaan alokasi sumber daya agar optimal Jika proses A meminta suatu kanal Input/Output tertentu, dan dapat terjadi kemudian proses A disuspend sebelum menggunakan kanal itu. Jika system operasi mengunci kanal dan mencegah prosesproses lain menggunakan kanal itu serta keduanya, maka tindakan ini hanya menghasilkan inefisiensi
  3. Pencarian kesalahan pemrograman Pencarian kesalahan pada pemrograman konkurensi lebih sulit dibandingkan pencarian kesalahan pada programprogram sekuen.
Mutual Exclusion
Mutual Exclusion adalah jaminan hanya satu proses yang mengakses sumber daya pada satu interval tertentu.
Terdapat sumber daya yang tak dapat dipakai bersama pada saat bersamaan (mis. printer). Sumber daya ini disebut dengan sumber daya kritis. Bagian program yang menggunakan sumber daya kritis disebut memasuki critical region/station. Hanya satu program pada satu saat yang diijinkan masuk critical region. Programmer tidak dapat bergantung pada system operasi untuk memehami dan memaksa batasan ini karena maksud program tidak dapat diketahui.
Sistem hanya menyediakan layanan (system call) untuk mencegah proses masuk critical regionyang sedang dimasuki proses lain. Programmer harus menspesifikasi bagian-bagian critical region sehingga system operasi akan menjaganya dengan suatu mekanisme untuk mencegah proses lain masuk critical region yang sedang dipakai proses lain.

Pemaksaaan adanya mutual exclusion menimbulkan deadlock dan startvation
Kriteria penyelesaian mutual exclusion:
  1. Mutual exclusion harus dijamin, hanya satu proses pada saat yang diijinkan masuk ke critical section.
  2. Prosesyang berada di noncritical section, dilarang memblocked proses lain yang ingin masuk critical section.
  3. Harus dijamin proses yang ingin masuk critical section tidak menunggu selama waktu yang tak berhinga.
  4. Ketika tidak ada proses pada critical section maka proses yang ingin masuk critical section harus diijinkan masuk tanpa tertunda.
  5. Tidak ada asumsi mengenai kecepatan relative proses atau jumlah proses yang ada.
Starvation
Proses dikatakan mengalami starvation jika prosesproses itu menunggu alokasi sumber daya sampai tak berhingga, sementara proses-proses lain dapat memperoleh alokasi sumber daya.

Ilustrasi:
Misal terdapat 3 (tiga) proses P1,P2 dan P3. P1,P2 dan P3.memerlukan akses sumber daya R secara periodik.
Selanjutnya :
P1 sedang diberi sumber daya R, P2 dan P3 blocked menunggu sumber sumber daya R.
Ketika P1 keluar dari critical region, P2 dan P3 diijinkan mengakses R.
Asumsi P3 diberi hak akses. Kemudian setelah selesai, hak akses kembali diberikan ke P1 yang saat itu membutuhkan sumber daya R.
Jika pemberian hak akses bergantian terusmenerus antara P1 dan P3 , maka P2 tidak pernah memperoleh akses sumber daya R, meski tidak ada deadlock. Pada situasi ini P2 disebut mengalami startvation.

Deadlock
Proses disebut deadlock jika prose menunggu suatu kejadian yang tak pernah terjadi. Sekumpulan proses berkondisi deadlock bila setiap proses yang ada menunggu suatu kejadian yang hanya dapat dilakukan proses lain yang juga berada di kumpulan tersebut.

Ilustrasi:
· Terdapat dua proses P1 dan P2
· Dua sumber kritis R1 dan R2
· Proses P1 dan P2 harus mengakses kedua sumber daya itu (R1 dan R2).
· R1 diberikan pada P1 sedang R2 diberikan pada P2.
· Karena untuk melanjutkan eksekusi memerlukan dua sumber daya sekaligus maka proses akan saling menunggu sumber daya lain selamanya.

Syarat terjadinya deadlock:
  • Mutual exclusion => Tiap sumber daya saat diberikan pada satu proses.
  • Hold and wait Condition => Proses-proses yang sedang menggenggam sumber daya, menunggu sumberdaya-sumberdaya baru.
  • Non Preemption Condition => Sumber–daya sumberdaya yang sebelumnya duberikan tidak dapat diambil paksa dari proses itu. Sumber–daya sumberdaya harus secara eksplisit dilepaskan dari proses yang menggenggamnya.
  • Circulair Wait Condition => Harus terdapat rantai sirkuler dari dua proses atau lebih, masing-masing menunggu sumber daya yang digenggam oleh berikutnya pada rantai itu.
Metode Mengatasi deadlock :
· Pencegahan terjadinya deadlock
· Pengindaran terjadinya deadlock
· Deteksi dan pemulihan deadlock


Interaksi antara Proses
Pada system dengan banyak proses (konkuren), terdapat 3 kategori interaksi,
yaitu:
  1. Proses-proses tidak saling peduli (independent) => Prosesproses tidak dimaksudkan untuk bekerja bersama untuk mencapai tujuan tertentu.
  2. Prosesproses saling mempedulikan secara tidak langsung => Prosesproses tidak perlu saling mempedulikan identitas proses-proses lain tapi sama-sama mengakses objek tertentu (seperti buffer Input/Output). Prosesproses itu perlu bekerja sama dalam memakai bersama objek tertentu.
  3. Proses-proses saling mempedulikan secar langsung Prosesproses dapat saling bekomunikasi dan dirancang bekerja sama untuk suatu aktivitas.
Interaksi antara proses-proses dan masalah-masalah yang harus diatasi



Persaingan antara proses-proses untuk sumber daya
Prosesproses berkompetisi ketika proses-proses bersaing menggunakan sumber daya yang sama. Masingmasing proses tak perduli keberadaan posesproses lain dan tidak dipengaruhi oleh prosesproses lain.
Pada saat berkompetisi tersebut, tidak terjadi pertukaran informasi antar proses-proses itu.Eksekusi satu proses dapat berpengaruh terhadap kelakuan proses-proeses yang berkompetisi. Jika dua proses akan mengakses satu sumber daya tunggal, maka system operasi akan mengalokasi untuk satu proses dan proses lain menunggu (diblocked), proses yang ditolak aksesnya menjadi lambat.

Masalah-masalah yang ditimbulkan dari persaingan ini : Mutual Exclusion, Deadlock, dan Starvation.
Kerjasama di antara prosesproses dengan pemakaian bersama Dalam kasus kerjasama pemakaian sumber daya bersamaan meliputi proses-proses yang saling berinteraksi tanpa dinyatakan eksplisit.
Masalah yang ada : Mutual Exclusion, Deadlock, dan Starvation.

No comments:

Post a Comment