Concurrency Semaphore dan IPC
Concurrence adalah keadaan dimana terjadinya dua kejadian atau lebih yang terjadi secara bersamaan. Masalah - masalah yang dihadapi adalah bahayanya berbagai global resources, sulitnya OS mengatur alokasi resource secara optimal, dan sulitnya mencari kesalahan programming.Istilah - istilah yang ada pada concurrency antara lain :
- Atomic Operation -> funsi (action) yang diimplementasikan sebagai rangkaian instruksi yang tampaknya tidak dapat dibagi. Merukapan bagian program yang tidak dapat di interupt.
- Critical Section -> Bagian tertentu dari code yang membutuhkan akses ke shared resoruces. Tidak boleh dijalankan ketika ada proses lain yang sedang menjalankan bagian tersebut.
- Race Condition -> Hasil eksekusi dari beberapa thread/proses yang tergantung dari siapa yang berjalan duluan
Mutual Exclusion (MUTEX) adalah sesuatu yang dibutuhkan untuk memastikan tidak ada proses lain yang menjalankan critical section, ketika ada proses yang sedang menjalankan atau bisa disebut kunci/ lock. Mekanismenya dapat dibagi 2 :
- Menggunakan hardware (disable/ enable interrupt)
- Menggunakan software (software object/ variable)
- Starvation -> Situasi dimana suatu proses tidak pernah dijalankan oleh prosesor
- Deadlock -> Situasi dimana dua atau lebih proses tidak dapat berjalan karena saling menunggu resource dari yang lainnya.
- Awalnya diisi dengan bilangan intger non - negatif
- SetWait mengurangi nilai semaphore dan jika hasilnya minus, maka proses yang memanggil akan di block.
- SemSignal menambah nilai semaphore dan hasilnya lebih dari 0, maka proses yang memanggil semWait bisa masuk ke ready queue lagi.
InterProcess Communication (IPC) adalah mekanisme komunikasi antar proses yang berjalan pada satu komputer. Ada 4 macam IPC, yaitu:
- Pipe
- Unnamed pipe
- Named pipe -> Digunakan untuk 2 proses yang berjalan sendiri - sendiri. Hanya bisa digunakan pada proses - proses yang menggunakan filesystem yang sama. Membutuhkan file yang dibuat terlebih dahulu dengan menggunakan mknod. Ex: mknod pipe_file p
- Message Queues
- Shared memory
- Semaphores
Tidak ada komentar:
Posting Komentar