STMIK-IM Bandung Oleh : Chalifa Chazar chalifa.chazar@gmail.com KONGKURENSI STMIK-IM Bandung Oleh : Chalifa Chazar chalifa.chazar@gmail.com
KONGKURENSI Merupakan landasan umum dalam perancangan sistem operasi Proses-proses disebut kongkuren jika proses- proses (lebih dari satu proses) berada pada saat bersamaan Proses-proses berinteraksi memerlukan singkronisasi agar terkendali dengan baik Kongkurensi menjadi hal penting karena saat ini hampir seluruh sistem operasi bekerja secara multiprogramming
PERMASALAHAN YANG TIMBUL Mutual exclusion Deadlock Starvation Singkronisasi
PRINSIP-PRINSIP KONGKURENSI Kongkurensi meliputi hal-hal sbb: Alokasi layanan pemroses untuk proses-proses Pemakaian bersama dan persaingan untuk mendapatkan sumber daya Komunikasi antarproses Singkronisasi aktivitas banyak proses
Kongkurensi dapat muncul pada 4 konteks berbeda, yaitu: Banyak aplikasi Strukturisasi dari aplikasi Strukturisasi dari satu proses Strukturisasi sistem operasi
BANYAK APLIKASI Multiprogramming memungkinkan banyak proses sekaligus dijalankan Proses dapat berasal dari aplikasi-aplikasi yang berbeda Pada sistem multiprogramming bisa terdapat banyak aplikasi sekaligus yang dijalankan di sistem komputer Contoh: Pada saat bersamaan kita dapat membuka aplikasi MS. Word, VLC, print dokumen, dll
STRUKTURISASI APLIKASI Perluasan prinsip perancangan modular dan pemograman terstruktur adalah suatu aplikasi dapat secara efektif diimplementasikan sebagai sekumpulan proses Dengan sekumpulan proses maka masing- masing proses menyediakan satu layanan secara spesifik tertentu
STRUKTURISASI SATU PROSES Untuk meningkatkan kinerja maka satu proses dapat memiliki banyak thread (unit dasar dari utilitas CPU) yang independen Thread-thread harus dapat bekerja sama untuk mencapai tujuan proses Contoh: Suatu word processor memiliki kemampuan antara lain: Menerima masukan dari keyboard Menerima masukan dari mouse atau perangkat petunjuk lain Pemisahan kata-kata Menformat baris menjadi rata kanan, kiri, atau kanan-kiri
STRUKTURISASI SISTEM OPERASI Keunggulan strukturisasi dapat juga diterapkan ke pemograman sistem Beberapa sistem operasi aktual yang dipasarkan dan yang sedang dalam riset telah diimplementasikan sebagai sekumpulan proses Contoh: Sistem operasi bermodelkan client/server menggunakan pendekatan ini
KESULITAN YANG DITIMBULKAN Masalah yang dihadapai proses-proses konkuren yaitu kecepatan eksekusi proses-proses di sistem tidak dapat diprediksi Kecepatan proses pada sistem bergantu hal-hal sbb: Aktivitas-aktivitas proses-proses lain Cara sistem operasi menangani interupsi Kebijaksanaan penjadwalan yang dilakukan oleh sistem operasi
Beberapa kesulitan yang dapat muncul: Pemakaian bersama sumber daya global Pengelolaan alokasi sumber daya agar optimal Pencarian kesalahan pemrograman
Pemakaian bersama sumber daya global Jika 2 proses menggunakan variabel global yang sama serta keduanya membaca dan menulis variabel itu maka urutan terjadinya pembacaan dan penulisan terhadap variabel bersama menjadi kritis
Pengelolaan alokasi sumber daya agar optimal Jika proses A meminta suatu kanal I/O tertentu dan kemudian proses A di suspend sebelum menggunakan kanal tersebut Jika sistem operasi mengunci kanal tersebut dan orang lain tidak dapat menggunakannya, maka akan terjadi inefisiensi terhadap alokasi sumber daya
Pencarian kesalahan pemrograman Pencarian kesalahan pada pemrograman kongkuren lebih sulit dibanding pencarian kesalahan pada program-program sekuen
Proses-proses konkuren mengharuskan beberapa hal yang perlu ditangani, yaitu: Mengetahui proses-proses yang aktif Alokasi dan dealokasi beragam sumber daya untuk tiap proses aktif Proteksi data dan sumber daya fisik proses Hasil-hasil proses harus independen
Mengetahui proses-proses yang aktif Sistem operasi mengelola senarai proses Senarai ini berupa senarai PCB proses Jumlah senarai sesuai dengan jumlah state yang diimplementasikan sistem operasi
Alokasi dan dealokasi beragam sumber daya untuk tiap proses aktif Sumber daya yang harus dikelola yaitu: Waktu pemroses Memori Berkas-berkas Peralatan-peralatan I/O dll
Proteksi data dan sumber daya fisik Proteksi data dan sumber daya fisik masing-masing proses terhadap gangguan (interferensi) proses- proses lain
Hasil-hasil proses harus independen Hasil-hasil proses harus independen terhadap kecepatan relatif proses-proses lain dimana eksekusi dilakukan
INTERAKSI ANTAR PROSES Pada sistem dengan banyak proses (konkuren), terdapat 3 kategori interaksi, yaitu: Proses-proses saling tidak peduli (independen) Proses-proses saling mempedulikan secara tidak langsung Proses-proses saling mempedulikan secara langsung
PROSES-PROSES SALING TIDAK PEDULI Proses-proses ini tidak dimaksudkan untuk bekerja bersama untuk mencapai tujuan tertentu Pada multiprogramming dengan proses-proses independen, dapat berupa batch atau sesi interaktif atau campuran keduanya Meskipun proses-proses tidak bekerja bersama, sistem operasi perlu mengatur persaingan di antara proses-proses itu dalam memperoleh sumber daya yang terbatas Contoh: 2 aplikasi berusaha untuk mengakses printer yang sama. Bila keduanya mengakses pada saat yang bersamaan, maka proses dapat memperoleh hasil yang tidak dikehendaki. Sistem operasi harus mampu mengeatur pengaksesan sumber daya agar tidak menyebabkan hal yang tidak dikehendaki
PROSES-PROSES SALING MEMPEDULIKAN SECARA TIDAK LANGSUNG Proses-proses tidak perlu saling mempedulikan identitas proses-proses lain tapi sama-sama mengakses objek tertentu, seperti buffer I/O Proses-proses perlu bekerja sama dalam memakai bersama objek tertentu
PROSES-PROSES SALING MEMPEDULIKAN SECARA LANGSUNG Proses-proses dapat saling berkomunikasi dan dirancang bekerja sama untuk suatu aktivitas
INTERAKSI ANTAR PROSES & MASALAH YANG HARUS DIHADAPI (STA, 1995) DERAJAT KEPEDULIAN HUBUNGAN AKIBAT SATU PROSES TERHADAP LAINNYA MASALAH PENGENDALIAN YANG PERLU DILAKUKAN Proses tak peduli Persaingan Hasil satu proses independen terhadap aksi proses lain Pewaktuan proses dapat berdampak Mutual exclusion Deadlock Starvation Proses secara tak langsung peduli terhadap proses lain (yaitu objek yang dipakai bersama) Kerjasama dengan pemakaian bersama Hasil-hasil satu proses dapat bergantung informasi yang diperoleh dari proses lain Kohesi data Proses secara langsung peduli terhadap proses lain (tersedia primtif-primtif untuk proses itu) Kerjasama dengan komunikasi Hasil-hasil satu proses bergantung pada informasi yang diperoleh dari proses lain
POKOK PENYELESAIAN MASALAH KONGKURENSI Pada dasarnya penyelesaian masalah kongkurensi terbagi menjadi 2, yaitu: Mengasumsikan adanya memori yang digunakan bersama Tidak mengasumsikan adanya memori yang digunakan bersama Adanya memori bersama lebih mempermudah dalam menyelesaikan masalah konkurensi Metode penyelesaian ini dapat dipakai untuk sistem singleprocessor ataupun multiprocessor yang mempunyai memori bersama Penyelesaian ini tidak dapat digunakan untuk multiprocessor yang tanpa memori bersama ataupun untuk sistem tersebar
TUGAS Mutual-exclution Deadlock Starvation Buat makalah (kelompok) mengenai penjelasan dari masing-masing istilah diatas Presentasikan minggu depan Makalah dan Presentasi dikumpulkan dalam bentuk softcopy maksimal tgl 19 Maret jam 09.00
TERIMA KASIH Chalifa Chazar, S.T, M.T Email : chalifa.chazar@gmail.com Copyright @2015 Kuliah.a03080112.com