Jumat, 08 Mei 2015

Concurrency

Concurrency dapat diartikan menjalan banyak proses dalam yang bersamaan. Prosesor yang digunakan dalam proses tersebut dialokasikan oleh CPU.

Beberapa masalah yang kerap ditemukan pada konkurensi terdapat pada:

  • Pembagian sumber yang bersifat global
  • Managemen alokasi dari sumber daya
  • Pencarian kesalahan pada programming
Hal yang sering menjadi perhatian utama:

  1. Menjaga track dari proses yang sedang aktif
  2. Mengalokasikasikan resource 
  3. Menjaga keamanan data dan resource
  4. Menjaga hasil dari proses bersifat independen
Hal  yang sering terjadi antara proses dan resource:
  1. Mutual Exclusion
    Pada saat kritis, hanya satu program yang diizinkan untuk mengakses resource yagn ada.
  2. Deadlock
  3. Starvation
Korporasi yang ada di dalam proses:
  1. By sharing
    Writing harus bersifat mutual exclusion dan critical sesion harus ada untuk menjaga integritas.
  2. By communication
    > Mutual exclusion bukan sebuah pengontrol requirment
    > Setiap proses  menunggu pesan dari proses lainnya
    > Dua proses mengirim pesan ke yang lainnya sementara proses lain menunggu.
Hal-Hal yang berkaitan dengan mutual exclusion:
  1. Hanya satu proses yang diizinkan untuk mengakses resource ketika critical sesi terjadi.
  2. Tidak ada deadlock maupun starvation
  3. Sebuah proses tidak harus ditunda saat kritikal sesi jika tidak ada proses yang sedang berjalan
Hal hal yang dipenuhi dalam mutual exclusion:
  1. menghilangkan interupsi
  2. lock variabel
  3. strict alternation
  4. peterson's solution
  5. tsl instruction
Bagaimana dengan pencegahan interupsi?
Sebuah proses akan berjalan sampai ada yang meminta servis dari OS atau sampai proses itu diinterupsi. Adanya pencegahan interupsi itu memungkin terjadinya mutual exclusion. Prosesor dibatasi dalam hal kemampuan.

Tabel di bawah akan menjelaskan mekanism yang sering dalam konkurensi.



Salah satu masalah klasik yang sering terjadi pada IPC adalah masalah Dining Philosopher's Room.


> Philosopher eat or think> Eating need 2 fork
> Pick one fork at one time
> How to prevent dead lock?




Di dalam konkurensi juga ada dibahas mengenai mutex. Gambar gambar di bawah akan menjelaskan sedikit tentang mutex.

Mutex

Mutex in thread

Hal lain yang akan dibahas kali ini adalah monitor (pengawasan).
Konstruksi dari bahasa pemrogramman mensuport kontrol akses dalam pembagian data. Hal ini dilihat dari compiler yang sinkron secara otomatis dan adanya enforce runtime.
Enkapsulasi juga digunakan saat melakukan pembagian data.
Hanya ada satu proses aktif di dalam sebuah monitor.
Dalam hal mutual exclusion yang terdapat pada monitor, sama seperti sebelumnya hanya ada satu proses yang dapat diproses sekali waktu.

Monitors
MESSAGE PASSING
Komunikasi dilakukan denga menggunakan fungsi send()/receive(). Receiver bisa dikategorikan secara umum.


www.skyconnectiva.com
www.binus.ac.id

Tidak ada komentar:

Posting Komentar