bernis sagita - sinkronisasi

Download Bernis Sagita - Sinkronisasi

Post on 18-Aug-2015

28 views

Category:

Software

4 download

Embed Size (px)

TRANSCRIPT

  1. 1. Bernis Sagita 132310499 MI2
  2. 2. Pendahuluan Proses: - Independent - Cooperating Race Condition Proteksi dapat dilakukan dengan Sinkronisasi Sinkronisasi? Critical Section
  3. 3. Konkurensi Jenis: - Pseudo-concurrency - True-concurrency Penyebab Konkurensi: - Interrupt - Softirqs dan Tasklets - Kernel Preemption - Sleeping dan Synchronization with user-space - Symmetrical Multiprocessing
  4. 4. Syarat SinkronisasiMutex - Independent - Cooperating Race Condition Cara mencapai Mutex: - Processor Synchronous - Memory Synchronous - Instruksi Atomik - Spin Lock - Semaphore - SMP
  5. 5. Instruksi Atomik Salah satu metode dalam kernel LINUX untuk sinkronisasi adalah instruksi atomik Salah satu jenis dari instruksi atomik adalah integer atomik 5
  6. 6. TestAndSet() Bersifat atomik Jika dua instruksi TestAndSet () dijalankan secara serentak, kedua instruksi tersebut akan dieksekusi secara sekuensial
  7. 7. TestAndSet() boolean testAndSet(boolean lock){ boolean t = lock; lock = true; return t; } while (testAndSet(lock)) ; // Critical Section Lock[0] = false; 7
  8. 8. SemaphoreSemafor adalah sebuah variabel bertipe integer yang selain saat inisialisasi, hanya dapat diakses melalui dua operasi standar, yaitu increment dan decrement. Nama asli dari operasi tersebut sebenarnya adalah Proberen (test) dan Verhogen (increment). Namun, untuk mempermudah pemahaman digunakan nama signal dan wait 8
  9. 9. Semaphore (contd) void signal(int sem_value) { sem_value++; } void wait(int sem_value) { while(sem_value