Kamis, 20 November 2014

Concurrency pada Sistem Operasi

Adalah dua atau lebih hal yang berjalan pada waktu yang bersamaan pada sebuah Sistem Operasi. Masalah yang dihadapi:
  • Bahayanya berbagi global resourcres
  • Sulitnya Sistem Operasi mengatur alokasi resources secara optimal
  • Sulit untuk mencari kelalahan programming.
 Istilah-istilah merujuk Concurrency:
 1. Atomic Operation
- sebuah operasi yang sifatnya tidak dapat dibagi lagi
- dieksekusi semua atau tidak sama sekali
- bagian program yang tidak dapat di interrupt 
2. Critical Section
- bagian tertentu dari code yang membutuhkan akses ke shared resources
- tidak boleh dijalankan ketika ada proses lain yang sedang menjalankan bagian tersebut (tidak boleh ada yang menyela)
3. Race Condition
- hasil eksekusi sebuah program tergantung dari program mana yang berjalan terlebih dahulu

Semaphore dan Mutex (Mutual Exclusion)
1. Mutex
Adalah objek yang dibutuhkan untuk memastikan tidak ada proses lain yang menjalankan critical section, ketika ada proses yang sedang menjalankannya. Dapat disebut juga sebagai kunci/lock. Mutex menggunakan hardware (disable/enable interrupt) dan software (software object/variable).

Kesalahan penggunaan Mutex:
- Starvation
adalah suatu proses yang tidak pernah dijalankan oleh processor
- Deadlock
adalah proses yang saling menunggu resources satu dengan lainnya

2. Semaphore
Adalah sebuah sinyal. Mempunyai beberapa kemungkinan nilai:
- awalnya diisi dengan bilangan integer non negatif
- semwait: mengurangi nilai dari Semaphore dan jika hasil akhirnya negatif, proses yang memanggil akan diblokir
- semsignal: menambah nilai dari Semaphore dan jika hasilnya lebih dari nol, maka proses yang memanggil semwait bisa masuk ke ready queue lagi.
wait = lock
signal = unlock
 IPC (InterProcess Communication)
Adalah komunikasi antar proses untuk mengirim data dari satu proses ke proses yang lain, baik antar proses dalam satu komputer maupun proses-proses dalam komputer yang berbeda.

1. Shared memory
Merupakan salah satu cara komunikasi antar proses dengan cara mengalokasikan suatu alamat memori untuk dipakai berkomunikasi antar proses. Alamat dan besar alokasi memori yang digunakan biasanya ditentukan oleh pembuat program. Pada metode ini, sistem akan mengatur proses mana yang akan memakai memori pada waktu tertentu sehingga pekerjaan dapat dilakukan secara efektif.

2. Pipe
Pipe merupakan komunikasi sekuensial antar proses yang saling berelasi, namun Pipe memiliki kelemahan yaitu hanya bisa digunakan untuk komunikasi antar proses yang saling berelasi, dan komunikasi yang dilakukan secara sekuensial. Urutan informasi yang ada dalam sebuah Pipe mirip dengan konsep antrian (queue). Jika komunikasi yang diinginkan adalah komunikasi dua arah maka kita harus membuat dua Pipe, karena sebuah Pipe hanya bisa digunakan untuk komunikasi satu arah saja.

3. Messages passing
Adalah proses komunikasi antar bagian sistem untuk membagi variabel yang dibutuhkan. Proses ini menyediakan dua operasi yaitu mengirim pesan dan menerima pesan. Ketika dua bagian sistem ingin berkomunikasi satu sama lain, yang harus dilakukan pertama kali adalah membuat sebuah link komunikasi antara keduanya. Setelah itu, kedua bagian itu dapat saling bertukar pesan melalui link komunikasi tersebut.

Tidak ada komentar:

Posting Komentar