Konkurensi
Objektif Memahami tentang konsep konkurensi Permasalahan yang timbul pada proses-proses yang berinteraksi Peranan Sistem Operasi dalam menangani konkurensi Mutual Exclusion, Deadlock dan Starvation
Definisi Konkurensi Kejadian dimana banyak proses berjalan di waktu yang bersamaan. Bentuk dari proses yang konkuren: Terjadinya persaingan antar proses ketika beberapa proses akan menggunakan sumber daya yang sama bilamana proses proses tersebut tidak bergantung sepenuhnya terhadap satu dengan lainnya. Proses-proses kongkuren dapat juga saling berinteraksi/kerjasama sehingga proses-proses yang berinteraksi tersebut memerlukan sinkronisasi/koordinasi agar terkendali dengan baik.
Kemampuan Sistem Operasi Modern Multiprogramming: kemampuan untuk memanajemen banyak proses dengan menggunakan satu prosesor, Multiprocessing: kemampuan untuk memanajemen banyak proses dengan menggunakan banyak prosesor, Distributed Processing (pemrosesan tersebar): kemampuan untuk memanajemen banyak proses yang dieksekusi pada banyak komputer yang tersebar dibeberapa lokasi.
Prinsip-prinsip Konkurensi Hal mendasar yang perlu diperhatikan ketika menangani proses yang konkuren: Alokasi waktu pemroses untuk proses-proses Pemakaian bersama & persaingan untuk mendapatkan sumber daya Komunikasi antar proses Sinkronisasi aktivitas banyak proses
Kesulitan yang ditimbulkan konkurensi Beberapa kesulitan yang dapat muncul diantaranya : Berbagi pakai sumber daya memiliki resiko tinggi. Contohnya ketika dua buah proses mengakses variabel yang sama dan melakukan operasi penulisan dan pembacaan maka urutan eksekusi pembacaan dan penulisan masing-masing proses menjadi hal yang perlu diperhatikan dan bersifat kritikal. Sulit bagi sistem operasi untuk memanajemen alokasi sumber daya komputer secara optimal. Contohnya jika sebuah proses mengakses suatu file atau I/O kemudian ditunda eksekusinya maka proses lain yang hendak mengakses file atau I/O tersebut akan ditolak hingga proses pertama selesai mengakses file atau I/O tersebut. Sulit untuk melacak kesalahan pada program. Hal ini dikarenakan hasil yang sama tidak determinisitik dan sulit diproduksi ulang.
Tugas Sistem Operasi menangani konkurensi Hal-hal yang harus ditangani sistem operasi dengan adanya proses kongkuren : Sistem operasi harus dapat mengetahui jejak dari berbagai proses yang berjalan. - Hal ini dapat dilakukan melalui process control block. Sistem operasi harus dapat mengalokasi dan mendealokasi sumber daya komputer untuk setiap proses yang aktif, seperti Processor, memori, berkas-berkas (files) dan peralatan-peralatan I/O Sistem operasi harus dapat melindungi data dan sumber daya fisik yang sedang dialokasikan untuk setiap proses dari interferensi yang tidak dimaksudkan oleh proses lain. Hasil-hasil proses harus independen terhadap kecepatan relatif proses-proses lain dimana eksekusi dilakukan. Fungsi sebuah proses dan output yang dihasilkannya sebisa mungkin dijaga untuk tidak terpengaruh oleh kecepatan eksekusi proses tersebut yang dalam sebuah sistem multiproses menjadi tidak tetap bergantung proses-proses lainnya.
Kategori interaksi Pada sistem dengan banyak proses (sistem kongkuren) terdapat 3 kategori interaksi diantara proses-proses, yaitu :
Persaingan antar proses Pada kasus tertentu, jika salah satu proses telah mengakses sumber daya tersebut maka proses lain harus menunggu hingga proses tersebut selesai menggunakan sumber daya tersebut sebelum dapat menggunakannya. Hal ini menyebabkan eksekusi proses menjadi tertunda dan bahkan pada beberapa kasus proses lain tidak pernah mendapat kesempatan untuk mengakses sumber daya tersebut dan akhirnya tidak pernah selesai dengan sukses. Untuk mengendalikan proses-proses yang saling berkompetisi setidaknya ada tiga masalah yang dihadapi, yaitu: Mutual exclusion Deadlock Starvation
Mutual exclusion Mutual exclusion adalah konsep sedemikian rupa sehingga hanya satu proses yang boleh mengakses/menggunakan sebuah sumber daya yang tidak bisa dipakai berbarengan (contohnya: printer, kartu jaringan, dll). Instruksi-instruksi yang dieksekusi ketika mengakses sebuah sumber daya disebut sebagai critical section dan sumber daya tersebut dikenal sebagai critical resource. Mutual exclusion mengharuskan pada suatu saat hanya ada satu proses yang berada pada kondisi critical section. Kesuksesan proses-proses kongkuren memerlukan pendefinisian critical section dan memaksakan mutual exclusion diantara proses- proses kongkuren yang sedang berjalan.
Race Condition Merupakan sebuah kondisi dimana 2 atau lebih proses membaca atau menulis data/variabel yang digunakan bersama,dan hasilnya tergantung dari proses mana yang terakhir menggunakan data tersebut. Solusi dengan meyakinkan bahwa hanya ada 1 proses saja yang akan mengeksekusi critical section. Eksekusi tunggal ini disebut juga atomic action
Permasalahan akibat Mutual Exclusion Pemaksaan mutual exclusion merupakan landasan pemrosesan kongkuren, namun pemaksaan mutual exclusion dapat menimbulkan 2 masalah yaitu : Deadlock Adalah banyak proses yang saling menunggu hasil dari proses yang lain untuk dapat melanjutkan atau menyelesaikan tugasnya. Startvation Adalah suatu proses akan menunggu suatu kejadian atau hasil suatu proses lain supaya dapat menyelesaikan tugasnya, tetapi kejadian yang ditunggu tidak pernah terjadi karena selalu diambil lebih dulu oleh proses yang lain.
Kriteria Mutual Exclusion Mutual exclusion dapat terjadi jika memenuhi syarat / kriteria sebagai berikut : Mutual exclusion harus dapat dipaksakan Proses yang berhenti sementara pada bagian non critical harus dapat berhenti tanpa mengganggu proses yang lain Tidak boleh terjadi sebuah proses tertahan dari memasuki critical section dalam waktu yang tidak pasti: tidak boleh ada deadlock dan starvation Ketika tidak ada proses yang memasuki critical section pada suatu critical resource maka proses lain yang hendak memasuki cirtical sectionnya harus diizinkan mengakses critical resource tersebut tanpa waktu tunda Tidak ada asumsi yang dibuat mengenai kecepatan proses dan jumlah prosesor.
Metode penjamin Mutual Exclusion Metode yang diusulkan untuk menjamin mutual exclusion antara lain : Metode variabel lock Ketika proses hendak masuk critical section, lebih dulu memeriksa variabel lock. Jika variabel lock berisi 0, proses menset variabel lock menjadi satu dan kemudian masuk critical section. Tetapi jika variabel lock berisi 1 berarti terdapat proses lain pada critical section sehingga proses menunggu sampai nilai variabel lock menjadi nol. Metode bergantian secara ketat Metode ini mengamsumsikan dapat menggilir masuk critical section secara bergantian terus menerus. Metode ini melakukan inspeksi terhadap variabel yang berfungsi untuk memasuki critical section.
Metode penjamin Mutual Exclusion Metode dengan Busy Waiting Busy waiting adalah adanya proses yang sibuk menunggu dan tidak mengerjakan apapun sampai mendapatkan ijin untuk masuk ke critical section. Sibuk menunggu disini berarti bahwa proses tersebut sedang menunggu dan terus menerus sibuk memeriksa status ijinnya sehingga memakan waktu prosesor. Metode dengan Semaphore Prinsip dasar semaphore adalah dua atau lebih proses bekerja sama dengan signal yang sederhana,misal proses dipaksa untuk berhenti di tempat yang ditunjuk sampai menerima suatu signal khusus.
Terima Kasih