Konkurensi
Faikul Umam
[email protected] [email protected]
Pendahuluan • Proses-proses disebut konkuren jika proses-proses (lebih dari satu proses) ada pada saat yang sama • Proses-proses konkuren dapat sepenuhnya tidak tergantung dengan yang lainnya, tapi dapat juga saling berinteraksi • Proses-proses yang berinteraksi memerlukan sinkronisasi agar terkendali dengan baik
Prinsip Konkurensi • Alokasi layanan pemroses untuk proses-proses • Pemakaian bersama dan persaingan untuk mendapatkan sumber daya • Komunikasi antar proses • Sinkronisasi aktifitas banyak proses
Prinsip Konkurensi • Contoh : Banyak proses mengakses variable atau berkas yang dipakai bersama. Proses-proses dapat menggunakan dan memperbaharui data yang dipakai bersama tanpa mempedulikan prosesproses lain. Proses mengetahui bahwa prosesprose lain juga mengakses data yang sama. Untuk menjamin integritas data yang dipakai maka proses-proses tersebut harus dapat bekerja sama
Apa Yang dilakukan Sistem Operasi ? • SO menyediakan sumberdaya berdasarkan request dan keperluan dari proses • SO menyediakan mutual exclusion (dibuat oleh programer menggunakan system calls yang disediakan SO) untuk mengetahui status tiap proses yang sedang menggunakan sumberdaya • SO menangani agar proses tidak melanggar kondisi mutual exclusion sehingga tidak terjadi deadlock dan startvation
Konkurensi Untuk Banyak Aplikasi • Sistem multiprograming memungkinkan banyak aplikasi/proses sekaligus dijalankan pada satu pemroses • Eksekusi banyak aplikasi untuk satu tujuan komputasi tertentu (pendekatan TCP/IP) • TCP/IP di komputer umumnya dipecah menjadi banyak aplikasi yang dapat saling bekerja sama • Contoh : pppd (daemon yang bertugas u/ melakukan transfer data lewat protokol point-to-point) diald (daemon yang bertugas u/ secara otomatis menhidupkan dan mematikan modem) Finger, ping, pine, Netscape
Konkurensi Untuk Strukturisasi Aplikasi • Perluasan prinsip perancangan modular dan pemrograman terstruktur adalah sebuah aplikasi dapat secara efektif diimplementasikan sebagai sekumpulan proses • Dengan sekumpulan proses maka masing-masing proses menyediakan satu layanan spesifik tertentu
Konkurensi Untuk Strukturisasi Satu Proses • Untuk peningkatan kinerja maka satu proses dapat memiliki banyak thread yang independen • Thread-thread tersebut harus dapat bekerjasama untuk mencapai tujuan proses • Misalnya, word processor (menerima masukan dari keyboard dan mouse, pemisahan kata-kata, format baris rata kanan atau kiri)
Masalah Konkurensi
• • • •
Proses-proses konkuren yang saling berinteraksi akan mempunyai masalah dasar yang harus diselesaikan Mutual Exclusion Deadlock Startvation Sinkronisasi
Mutual Exclusion • Pada sistem komputer terdapat sumber daya yang tidak dapat dipakai pada saat bersamaan, mis printer (hanya dapat digunakan satu proses pada waktu yang bersamaan) sumber daya kritis • Bagian program yang menggunkan sumber daya kritis disebut sedang memasuki critical region, dengan demikian hanya satu program pada suatu saat yang diijinkan untuk masuk critical region • User tidak dapat memaksakan ada program lain untuk masuk pada batasan ini, sebab SO tidak dapat mengetahui maksud dari program tersebut • SO memberikan fasilitas system call untuk mencegah sebuah proses untuk masuk pada critical region.
Deadlock • • • •
•
Misal Dua proses p1 dan p2 Dua sumber daya kritis R1 dan R2 P1 dan P2 harus mengakses kedua sumber daya secara bersamaan Jika R1 P1 dan R2 P2, maka P1 akan menunggu tersedianya R2 dan P2 menunggu tersedianya R1, padahal P1 tidak akan melepaskan R1 sebelum mendapat R2 dan P2 juga tidak akan melepaskan R2 sebelum mendapat R1. Kedua proses (P1 dan P2) dalam kondisi deadlock
Startvation • • • • • • •
Misal Terdapat 3 proses P1, P2 dan P3 P1, P2, P3 Membutuhkan sumber daya R secara bergantian Jika P1 diberi R, P2 dan P3 Blocked (menunggu R sampai free) Ketika P1 keluar dari critical section, P2 dan P3 diijinkan mengakses R Jika yang mendapatkan akses R selanjutnya adalah P3, maka P1, dan P2 Blocked Jika yang mendapatkan akses R selanjutnya adalah P1, maka P2, dan P3 Blocked, Jika pemberian hak akses R hanya diperoleh P1 dan P3, maka P2 mengalami Startvation
Semaphore • Semaphore adalah pendekatan yang diajukan oleh Djikstra untuk mengatasi Mutual Exclusion • dengan prinsip bahwa dua proses atau lebih dapat bekerja sama dengan menggunakan penandapenanda sederhana. • Misalnya, proses dapat dipaksa berhenti pada suatu saat, sampai proses mendapatkan penanda tertentu.
Sifat Semaphore • Semaphore dapat diinisialisasi dengan nilai nonnegatif. • Terdapat dua operasi terhadap semaphore, yaitu Down dan Up. Usulan asli yang disampaikan Djikstra adalah operasi P dan V.
Operasi Down • Operasi ini menurunkan nilai semaphore, jika nilai semaphore menjadi non-positif maka proses yang mengeksekusinya diblocked. • Operasi Down tidak dapat diinterupsi sebelum diselesaikan. Menurunkan nilai, memeriksa nilai, menempatkan proses pada antrian dan memblocked sebagai instruksi tunggal. Sejak dimulai, tidak ada proses lain yang dapat mengakses semaphore sampai operasi selesai atau diblocked.
Operasi Up • Operasi Up menakkan nilai semaphore, memindahkan dari antrian dan menempatkan satu proses ke status Ready • Sebelum masuk critical region, proses melakukan Down. Bila berhasil maka proses masuk ke critical region. Bila tidak berhasil maka proses di-blocked oleh semaphore tsb. Proses yang diblocked dapat melanjutkan kembali bila proses yang ada di critical region keluar dan melakukan opersai up sehingga menjadikan proses yang diblocked ready dan melanjutkan sehingga opersi Downnya berhasil.
Terima Kasih