Sabtu, 09 Mei 2015

Concurrency

Concurrency
  • Komunikasi antar proses.
  • Berbagi sumber daya.
  • Sinkronisasi beberapa proses.
  • Alokasi waktu processor.
Concurrency berguna untuk mengatasi :
  • Multiple Application
    - Multiprogramming
  • Structured Application
    - Aplikasi yang dapat mengatur proses concurrent.
  • Operating system structure
    - Sistem Operasi yang mengatur sekumpulan thread atau proses.
Masalah - masalah dalam concurrency :
  • Sharing global resources.
  • Pengelolaan alokasi sumber daya.
  • Sulit untuk menemukan error pada program.
O/S Concerns
Ada beberapa hal yang di pengaruhi oleh concurrency:
  • OS harus dapat melacak proses yang aktif yang dapat menimbulkan concurrency.
  • Mengalokasikan dan dealokasi sumber daya berikut:
    - Processor time
    - Memory
    - Files
    - I/O devices
  • OS harus dapat melindungi data dan sumber daya.
  • Hasil dari suatu proses harus independen dari kecepatan eksekusi proses lainnya.
Persaingan antar proses dari sumber daya:
  • Mutual Exclusion : hanya ada satu proses yang diperbolehkan menggunakan resources.
  • Deadlock : dimana semua proses ingin menggunakan resources yang sama.
  • Starvation : setiap proses saling mengalah.
Cooperation among process:
  • By Sharing
  • By Communication
Mutual Exclusion:
  • Hanya ada satu proses yang diperbolehkan menggunakan resources.
  • Sebuah proses yang stop di bagian non-critical harus melakukannya tanpa mengganggu proses lainnya.
  • No deadlock and starvation.
  • Alasan untuk menciptakan Mutucal exclusion:
    - Disabling Interrupts
    - Lock Variables
    - Strict Alternation
    - Peterson's solution
    - The TSL Instruction
Semaphore
  • Variable yang bernilai integer digunakan untuk memberi sinyal.
  • Dapat digunakan untuk mengatasi concurrency.
  • Ada 3 operasi yang digunakan semaphore:
    - Inisialisasi
    - Increment
    - Decrement
  • Jika suatu proses menunggu sinyal, maka proses tersebut ditunda hingga sinyal di kirimkan.
  • Wait dan Operasi sinyal tidak dapa diganggu.
  • Queue digunakan untuk proses yang menunggu.
  • Variable Semophore:
    - Diinisialisasi ke bilangan non-negatif.
    - Wait operation decrement nilai semaphore.
    - Signal operation increment nilai semaphore.
Mutex : mirip dengan semaphore, tetapi hanya menggunakan 2 operator atau penanda.

Monitor
  • Konstruksi bahasa pemograman yang mendukung akses kontrol untuk sharing data.
  • Encapsulates
  • Hanya ada satu proses yang aktif dalam monitor setiap saat.
Message Passing : melakukan komunikasi dengan saling kirim - mengirim pesan antar sender dan receiver.



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

Tidak ada komentar:

Posting Komentar