Anda di halaman 1dari 5

Halaman : 34

BAB V KONGKURENSI
Pertemuan 7 5.1. Definisi Kongkurensi Kongkurensi adalah landasan bagi Multiprograming (Multitasking), Multiprocessing dan Pemrosesan terdistribusi ( Distributed Processing ). Kongkurensi juga merupakan landasan umum bagi perancangan sistem operasi. Proses - proses disebut Kongkuren, jika proses -proses ( lebih dari satu proses ) berada pada saat yang sama. Pada Proses - proses kongkuren yang berinteraksi mempunyai beberapa masalah yang harus diselesaikan, antara lain: 1. Mutual Exclusion ( MUTEX ) 2. Sinkronisasi 3. Dead Lock 4. Starvation Banyak bahasa pemrograman yang dikembangkan untuk pembuatan program program kongkuren, antara lain Concurrent Pascal (Brinch Hansen), Modula 2 (Niklaus Wirth), ADA (Departemen Pertahanan Amerika), dsbnya. Bahasa - bahasa pemrograman tersebut mempunyai mekanisme untuk penanganan masalah-masalah kongkurensi. Penyelesaian terhadap masalah - masalah diatas dengan bahasa Pemrograman tersebut adalah hal yang sangat penting, karena perkembangan teknologi sistem komputer menuju ke sistem multiprocessing dan terdistribusi yang mengharuskan adanya proses kongkuren. 5.2. Prinsip dan Kesulitan Akibat Kongkurensi A. Prinsip-prinsip kongkurensi Kongkurensi meliputi hal - hal sebagai berikut : 1. Alokasi waktu pemroses untuk proses - proses. 2. Pemakaian bersama atau persaingan untuk mendapatkan sumber daya. 3. Komunikasi antar proses 4. Sinkronisasi aktivitas banyak proses. STIKOM Sistem Operasi 1

Halaman : 35 Hal-hal tersebut bukan muncul di lingkungan komputasi multiprocessing dan terdistribusi, tapi juga pada sistem multiprograming pada pemroses tunggal. Kongkurensi dapat muncul pada tiga konteks berbeda, yaitu: a. Banyak aplikasi ( Multiple aplication) b. Aplikasi terstruktur c. Struktur Sistem Operasi. B. Kesulitan - Kesulitan Akibat Kongkurensi Masalah yang dihadapi dengan proses - proses kongkuren pada Multiprograming dan Multiprocessing adalah serupa, yaitu bahwa kecepatan eksekusi proses yang terdapat pada sistem tidak dapat diprediksi. Kecepatan proses pada sistem bergantung beragam hal, yaitu: 1. Aktivitas - aktivitas proses - proses lain. 2. Cara Sistem operasi menangani Interupsi. 3. Kebijaksanaan penjadwalan yang dilakukan oleh sistem operasi. Beberapa kesulitan dapat muncul, yaitu : 1. Pemakaian bersama sumber daya global. 2. Pengelolaan alokasi sumber daya agar optimal. 3. Pencarian kesalahan pemrograman. Hal-hal berikut yang harus ditangani sistem operasi, karena adanya proses - proses kongkuren pada sistem komputer, yaitu: 1. Sistem operasi harus mengetahui proses - proses yang aktif. 2. Sistem operasi harus alokasi dan dealokasi beragam sumber daya untuk tiap proses aktif. Sumber daya yang harus dikelola, antara lain : a. Waktu pemroses b. Memori c. Berkas/file d. Peralatan masukan/keluaran, dsbnya.

STIKOM

Sistem Operasi 1

Halaman : 36 3. Sistem operasi harus memproteksi data, dan sumber daya fisik masing - masing proses dari gangguan (Intervensi) proses - proses lain. 4. Hasil - hasil proses harus independen terhadap kecepatan relatif proses - proses lain dimana eksekusi dilakukan. 5.3. Interaksi Antar Proses Pada sistem dengan banyak proses (sistem kongkuren), terdapat 3 kategori interaksi diantara proses - proses itu, yaitu : 1. Proses - proses saling tidak peduli (independen) Proses - proses ini tidak saling bekerja bersama untuk membentuk suatu tujuan. Pada Multiprograming dengan proses - proses independen, proses itu dapat berupa job - job batch atau sesion - sesion interaktif, atau campuran dari keduanya. Sistem operasi perlu mengatur persaingan yang dilakukan proses proses itu dalam mendapatkan sumber daya terbatas yang tersedia. Sistem operasi harus mengatur pengaksesan sumber daya, agar tidak membuat hasil yang tak dikehendaki. 2. Proses - proses saling memperdulikan secara tidak langsung. Proses - proses tidak perlu saling memperdulikan identitas proses - proses lain, tapi sama -sama mengakses suatu objek. Proses - proses itu perlu bekerja sama ( Cooperation ) dalam memakai bersama suatu objek. 3. Proses - proses saling memperdulikan secara langsung. Proses - proses dapat saling berkomunikasi dan dirancang bekerja sama atau gabung untuk suatu aktivitas. Proses - proses ini perlu bekerja sama. 5.4. Komunikasi Antar Proses (Inter Process Communication / IPC) A. Definisi - definisi Penunjang 1. RACE CONDITION adalah Kondisi tidak menentu yang diakibatkan oleh pengaksesan data yang sama oleh dua proses atau lebih. 2. CRITICAL SECTION adalah Bagian dari suatu program dimana terjadi pengaksesan terhadap share file yg dapat mengakibatkan terjadinya Race Condition. STIKOM Sistem Operasi 1

Halaman : 37 3. MUTUAL EXCLUSION (MUTEX) adalah jaminan hanya satu proses yang mengakses sumber daya pada suatu interval waktu tertentu. B. Pentingnya Mutual Exclusion (MUTEX) Cara menghindari Race Condition yang dapat dilakukan adalah: 1. Mencegah situasi yang melibatkan share memory, share file, dan share sumber daya yang lain. 2. Melarang lebih dari satu proses melakukan pembacaan dan penulisan data pada lokasi yang sama secara bersamaan. 3. Jika ada satu proses sedang menggunakan share variabel atau share file, maka proses yang lain dilarang masuk ke pekerjaan sama. Kriteria Mutual Exclusion adalah syarat - syarat yang harus dipenuhi oleh suatu solusi untuk menghindari terjadinya RACE CONDITION (kondisi Pacu). Syarat - syarat umum yang harus dipenuhi MUTEX ada 4, yaitu: a. Tidak boleh ada 2 proses atau lebih berada dalam satu Critical Section. b. Jangan berasumsi dengan kecepatan running CPU, dan jumlah CPU. c. Tidak boleh ada proses diluar Critical Section yang memblok atau menghalangi proses lain masuk ke Critical Section. d. Tidak boleh ada proses yang menunggu terus, untuk masuk ke Critical Section. BUSY WAITING adalah proses yang sedang running secara terus -menerus memeriksa suatu variabel dan menunggu munculnya suatu nilai baru, sehingga akan menghabiskan waktu CPU. BLOCKING adalah keadaan suatu proses yang tidak dapat running karena membutuhkan proses Input/Output yang belum bisa dilayani. Proses ini dalam keadaan berhenti sementara, sehingga tidak menggunakan waktu CPU sama sekali. Kesuksesan proses - proses kongkuren memerlukan pendefinisian Critical Section, dan memaksakan Mutual Exclusion diantara proses-proses kongkuren yang sedang berjalan. Pemaksaan Mutual Exclusion merupakan landasan pemrosesan kongkuren.

STIKOM

Sistem Operasi 1

Halaman : 38 Menurut TANEMBAUM (1992) dan STALLING (1995), fasilitas atau kemampuan menyediakan dukungan Mutual Exclusion harus memenuhi kriteria - kriteria sebagai berikut : a. Mutual Exclusion harus dijamin. b. Proses yang berada di non Critical Section, dilarang memblocked proses - proses lain yang ingin masuk Critical Section. c. Harus dijamin proses yang ingin masuk Critical Section tidak menunggu selama waktu yang tak terhingga. d. Ketika tidak ada proses pada Critical Section., maka proses yang ingin masuk Critical Section harus diijinkan masuk tanpa waktu tunda. Dalam kriteria kongkurensi ini, tidak ada asumsi mengenai kecepatan relatif proses atau jumlah proses yang ada. Proses hanya tinggal pada critical section selama satu waktu yang berhingga. Ada beberapa metode yang diusulkan untuk menjamin atau mencapai kondisi Mutual Exclusion, yaitu memenuhi syarat kriteria Mutual Exclusion. Idenya selama satu proses sibuk mengupdate share memory dalam Critical Section tersebut.

STIKOM

Sistem Operasi 1

Anda mungkin juga menyukai