Jumat, 23 Januari 2015

Kongkurensi & Mutual Exclusion


v  Prinsip Kongkurensi
v  Interaksi antar Proses
v  Mutual Exclusion
Definisi
ü  Merupakan sebuah kondisi dimana terdapat lebih dari satu proses berada pada saat yang sama.
ü  Proses-proses yang konkuren memiliki beberapa masalah:
o   Mutual Exclusion
o   Starvation
o   Deadlock
Prinsip Kongkurensi
Ø  Kongkurensi merupakan kegiatan yang berhubungan dengan :
ü  Alokasi waktu pemroses untuk proses-proses yang aktif.
ü  Pemakaian bersama dan persaingan untuk mendapatkan sumber daya.
ü  Komunikasi antar proses.
ü  Sinkronisasi aktivitas banyak proses
Ø  Kongkurensi dapat muncul pada konteks yang berbeda, yaitu:
ü  Untuk banyak aplikasi
ü  Untuk strukturisasi dari aplikasi
ü  Untuk strukturisasi dari satu proses
ü  Untuk strukturisasi sistem operasi
Ø  Untuk banyak aplikasi
ü  Multiprogramming memungkinkan banyak proses sekaligus dijalankan.
ü  Proses-proses dapat berasal dari aplikasi-aplikasi berbeda.
ü  Pada sistem multiprogramming bisa terdapat banyak aplikasi sekaligus yang dijalankan di sistem komputer.
Ø  Untuk strukturisasi dari aplikasi
ü  Perluasan prinsip perancangan modular dan pemrograman terstruktur adalah suatu aplikasi dapat secara efektif diimplementasikan sebagai sekumpulan proses.
ü  Dengan sekumpulan proses, maka tiap proses menyediakan satu layanan spesifik tertentu.
Ø  Untuk strukturisasi dari satu proses
ü  Saat ini untuk peningkatan kinerja maka satu proses dapat memiliki banyak thread yang independen.
ü  Thread-thread tersebut harus dapat bekerjasama untuk mencapai tujuan proses.

Ø  Untuk strukturisasi sistem operasi
ü  Keunggulan strukturisasi dapat juga diterapkan ke pemrograman sistem.
ü  Beberapa sistem operasi aktual yang dipasarkan dan yang sedang dalam riset telah diimplementasikan sebagai sekumpulan proses.
ü  Sistem operasi bermodelkan client/server menggunakan pendekatan ini.
Ø  Kecepatan eksekusi proses-proses di sistem tidak dapat diprediksi.
Ø  Kecepatan proses pada sistem dipengaruhi oleh :
ü  Aktivitas-aktivitas proses-proses lain.
ü  Cara sistem operasi menangani interupsi.
ü  Kebijaksanaan penjadwalan yang dilakukan oleh sistem operasi.
ü  Beberapa kesulitan yang muncul:
ü  Pemakaian bersama sumber daya global.
§  Bila terdapat 2 proses menggunakan variabel global yang sama serta keduanya membaca dan menulis ke variable itu,maka urutan pembacaan dan penulisan terhadap variabel itu menjadi kritis.
ü  Pengelolaan alokasi sumber daya agar optimal.
§  Apabila proses A meminta suatu kanal masukan/keluaran tertentu dan dipenuhi, kemudian terjadi proses A di-suspend sebelum menggunakan kanal tersebut.
§  Jika sistem operasi mengunci kanal (tidak memperbolehkan atau mencegah proses lain untuk menggunakannya), maka tindakan tersebut menghasilkan inefisiensi.
ü  Pencarian kesalahan pemrograman.
§  Pencarian kesalahan pada pemograman kongkuren lebih sulit dibanding pencarian kesalahan pada program-program sekuen.
Ø  Mutual Exclusion
ü  Sumber daya yang tidak dapat dipakai bersama pada saat bersamaan.
Ø  Starvation
ü  Startvation adalah keadaan dimana pemberian akses bergantian terus-menerus, dan ada suatu proses yang tidak mendapatkan gilirannya.
Ø  Deadlock
ü  Deadlock merupakan kondisi terparah karena banyak proses dapat terlibat dan semuanya tidak dapat mengakhiri prosesnya secara benar.

Ø  Mengetahui proses-proses yang aktif.
Ø  Alokasi dan dealokasi beragam sumber daya untuk tiap proses aktif.
Ø  Proteksi data dan sumber daya fisik masing-masing proses dari gangguan (intervensi) proses-proses lain.
Ø  Hasil-hasil proses harus independen terhadap kecepatan relatif proses-proses lain dimana eksekusi dilakukan.
Interaksi
Antar Proses

Ø Proses-proses saling tidak peduli (independen)
Ø Proses-proses saling mempedulikan secara tidak langsung
Ø Proses-proses saling peduli secara langsung
Ø Proses-proses saling tidak peduli (independen)
o   Proses-proses ini tidak dimaksudkan untuk bekerja untuk mencapai tujuan tertentu.
o   Pada multiprogramming dengan proses-proses independen, dapat berupa batch atau sesi interaktif, atau campuran keduanya.
Ø Proses-proses saling mempedulikan secara tidak langsung
o   Proses-proses tidak perlu saling mempedulikan identitas proses-proses lain, tapi sama-sama mengakses objek tertentu, seperti buffer masukan/keluaran.
o   Proses-proses itu perlu bekerja sama (cooperation) dalam memakai bersama objek tertentu.
Ø Proses-proses saling peduli secara langsung
o   Proses-proses dapat saling berkomunikasi dan dirancang bekerja sama untuk suatu aktivitas.
Ø Tabel interaksi proses

Mutual
Exclusion

Ø  Kondisi dimana terdapat sumber daya yang tidak dapat dipakai bersama pada waktu yang bersamaan (misalnya : printer, disk drive).
Ø  Kondisi demikian disebut sumber daya kritis, dan bagian program yang menggunakan sumber daya kritis disebut critical region / section.
Ø  Hanya satu program pada satu saat yang diijinkan masuk ke critical region.
Ø  Sistem operasi menyediakan layanan (system call) yang bertujuan untuk mencegah proses lain masuk ke critical section yang sedang digunakan proses tertentu.
Ø  Pemograman harus menspesifikasikan bagian-bagian critical section, sehingga system operasi akan menjaganya.
Ø  Pemaksaan atau pelanggaran mutual exclusion menimbulkan :
o   Deadlock
o   Starvation







Tidak ada komentar:

Posting Komentar