Sistem Operasi Kongkurensi Konkurensi merupakan landasan umum perancangan system operasi. Proses proses disebut konkuren jia prosesproses itu berada pada saat yang sama. Proses proses konkuren dapat sepenuhnya tak bergantung dengan yang lain tapi dapat juga saling berinteraksi. Prosesproses yang berinteraksi memerlukan sinkronisasi agar terkendali dengan baik. Prosesproses yang berinteraksi mempunyai beberapa masalah yang harus diselesaikan, yaitu: # Mutual Exclusion # Deadlock # StarVation # Sinkronisasi Prinsipprinsip konkurensi meliputi : # Alokasi waktu processor untuk prosesproses # Pemakaian bersama dan persaingan untuk mendapatkan sumber daya # Komunikasi antar proses # Sinkronisasi aktivitas banyak proses. Kesulitankesulitan yang ditimbulkan konkurensi Masalahmasalah yang dihadapi prosesproses 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: # 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. #
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
Konkurensi #5 #1
Sistem Operasi #
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 bagianbagian 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 prosesproses lain dapat memperoleh alokasi sumber daya.
Konkurensi #5 #2
Sistem Operasi 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 Prosesproses 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.
Konkurensi #5 #3
Sistem Operasi •
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 Mengaasi 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. Prosesproses 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 prosesproses lain tapi samasama mengakses objek tertentu (seperti buffer Input/Output). Prosesproses itu perlu bekerja sama dalam memakai bersama objek tertentu. 3. Prosesproses saling mempedulikan secar langsung Prosesproses dapat saling bekomunikasi dan dirancang bekerja sama untuk suatu aktivitas. Interaksi antara prosesproses dan masalahmasalah yang harus diatasi Derajat Kepedulian Proses tak perduli
Hubungan Persaingan
Akibat satu proses terhadap lainya • Hasil satu proses independent terhadap aksi proses lain. • Pewaktuan proses dapat berdampak
Masalah pengendalian yang perlu dilakukan • Mutual exclusion • Deadlock • Starvasion
Konkurensi #5 #4
Sistem Operasi Proses secara tak langsungpedul i terhadap proses lain
Kerja sama dengan pemakaian bersama
•
• Proses secara langsungpedul i terhadap proses lain
Kerja sama dengan komunikasi
•
•
Hasil hasil satu proses dapatbergantung informasi yang diperoleh dari proses lain Pewaktuan proses dapat berdampak Hasilhasil suatu proses dapat bergantung pada informasi yang diperoleh dari proses lain Pewaktuan proses dapat berdampak
• • • •
Mutual exclusion Deadlock Starvasion Koherensi data
• •
Deadlock Starvasion
Persaingan antara prosesproses untuk sumber daya Prosesproses berkompetisi ketika prosesproses 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. Masalahmasalah 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.
Konkurensi #5 #5