- Back to Home »
- Concurrency
Posted by : KODE ILMU
Kamis, 20 November 2014
CONCURRENCY
Adalah situasi
ketika 2 atau lebih suatu hal yang berjalan pada waktu yang bersamaan.
Masalah
yanhg dihadapi
· bahaya berbagai global resource
·
sulitnya OS mengatur alokasi resources secara
optimal
·
sulitnya mencari kesalahan
Istilah pada
concurrency
· ATOMIC OPERATION
a.
operasi yang bersifat atomic (tampaknya tidak
bisa di sela)
b.
Dieksekusi semua atau tidak sama sekali
c.
Bagian program yang tidak dapat interrupt
·
CRITICAL SECTION
a.
Operasi yang tidak bisa disela ( tidak bisa
dijalankan ketika ada proses lain yang sedang menjalankan bagian tersebut
b.
Bagian tertentu dari kode yang membutuhkan akses
ke shared resources
·
RACE CONDITION
a.
Hasil eksekusi program tergantung pada siapa
yang dijalankan terlebih dahulu
Cara Menangani
·
MANUAL EXECUTION
a.
Sesuatu yang dibutuhkan untuk memastikan tidak ada proses lain yang
menjalankan critical section, ketika ada proses yang sedang dijalankan
b.
Mekanisme menggunakan hardware (disable/enable
interrupt)
Menggunakan
software (software object/variable)
·
Kesalahan pengguna dapat menyebabkan
a.
Starvation, yaitu situasi ketika prosesor tidak
dapat menjalankan suatu proses
b.
Deadlock saling menunggu resource dari yang
lainnya dan menyebabkan dua proses tidak dapat berjalan
·
SEMAPHORE
Merupakan sebuah nilai integer yang digunakan
sebagai sinyal dalam komunikasi antar proses.
Memiliki berbagai kemungkinan nilai seperti
a.
Inisialisasi, yang diisi dengan bilangan integer
non negative
b.
Semwait , mengurangi nilai semaphore dan jika
hasilnya minus, maka proses akan diblock
c.
Semsignal , menambah nilai semaphoredan jika
hasilnya lebih dari 0 maka proses akan memanggil semwait sehingga bisa masuk ke
state ready lagi.
·
Pipe merupakan komunikasi sekuensial antar
proses. Kelemahan dari pipe adalah hanya bisa digunakan oleh proses saling
berhubungan. Terdapat dua jenis pipe antara lain :
a.
Unnamed pipe , digunakan untuk komunikasi antara
proses induk dengan proses anak
b.
Named pipe, merupakan komunikasi antar proses
yang menggunakan pipe dan diberi nama.