Selasa, 22 November 2011

" Concurrent Programming "

Concurrent Programming adalah sebuah sistem komputer harus menangani beberapa program (task) yang harus dieksekusi bersama dalam sebuah lingkungan (baik mono atau multi prosesor). Pada pemrograman konkuren, kita tidak lagi berpikir sekuensial, melainkan harus menangani komunikasi dan sinkronisasi antar program.

# Alasan Pemilihan Pemrograman Konkurent bagi Pemrogram
  • Lebih memahami tentang arsitektur komputer
  • Design compiler
  • Beberapa permasalahan sebagian besar dipecahkan dengan menggunakan co-operating proses
  • Mengurangi waktu pengerjaan/ pelaksanaan proses

# Perbedaan Operasi Secara Sekuensial dan Konkuren

1. Operasi Sekuensial
-- O – O – O – O à
   X = 5
   Y = 3 * X + 4

2. Operasi Konkuren
    - O – O -
   -- |      | -- >
   - O – O –
       X = A * B + C
       Y = 3 * A + 7

# Bahasa Pemrograman Konkuren

•    Java
•    C#
•    Erlang
•    Limbo
 
# Sifat – Sifat Konkurensi
  • Sinkronisasi : Dua buah proses dikatakan berkomunikasijika aksi dari sebuah proses sepenuhnya mendahului proses berikutnya. Sinktonisasi berhubungan dengan komunikasi.
  • Nondeterminism : Sebuah program dikatakan non-deterministic bila memiliki lebih dari satu evaluasi strategi yang memungkinkan dan berbeda, yang meberikan hasil-hasil yang berbeda.
  • Mutual exlusion :Sebuah proses kadang membutuhkan akses yang exclusif terhadap sumber daya. Misalnya ketika sebuah proses memperbaiki struktur data, tidak ada proses lain yang mengakses data yang sama.

# Konkurency pada bahasa pemrograman
  • Eksekusi Konkurent : sebuah notasi yang menunjukkan operasi yang dapat, tetapi tidak perlu, dieksekusi secara parallel.
  • Komunikasi : sebuah notasi yang memungkinkan proses untuk pertukaran informasi baik melalui variabel bersama (terlihat setiap proses) atau pesan lewat mekanisme.
  • Sinkronisasi : Sebuah notasi untuk meminta proses untuk menunggu sinyal dari proses lain. Dalam proses umum tidak independen. Seringkali proses tergantung pada data yang dihasilkan oleh proses lain. Jika data tidak tersedia proses harus menunggu sampai data tersedia.
  • Saling Pengecualian : Sebuah notasi untuk sinkronisasi akses   ke sumber daya bersama. Semaphore Monitor: Salah satu pendekatan adalah untuk melindungi bagian kritis oleh monitor. Pendekatan memantau mensyaratkan bahwa hanya satu proses pada suatu waktu dapat mengeksekusi di monitor.

Tugas : Algoritma dan Pemrograman 1C

Tidak ada komentar:

Posting Komentar