KONGKURENSI STMIK-IM Bandung Oleh : Chalifa Chazar [email protected] KONGKURENSI Merupakan landasan umum dalam perancangan sistem operasi Proses-proses disebut kongkuren jika prosesproses (lebih dari satu proses) berada pada saat bersamaan Proses-proses berinteraksi memerlukan singkronisasi agar terkendali dengan baik 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 STRUKTURISASI APLIKASI Perluasan prinsip perancangan modular dan pemograman terstruktur adalah suatu aplikasi dapat secara efektif diimplementasikan sebagai sekumpulan proses Dengan sekumpulan proses maka masingmasing 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 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 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) prosesproses 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 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 •Pewaktuan proses dapat berdampak •Mutual exclusion •Deadlock •Starvation •Kohesi data Proses secara langsung peduli terhadap proses lain (tersedia primtifprimtif untuk proses itu) Kerjasama dengan komunikasi •Hasil-hasil satu proses bergantung pada informasi yang diperoleh dari proses lain •Pewaktuan proses dapat berdampak •Deadlock •Starvation 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 : [email protected] Copyright @2015 Kuliah.a03080112.com