Lappen sisop modul 3

laptopku sering kehilangan data, jadi buat mencegahnya, enakan klo nyimpennya disini aja deh..xD

Soal Pendahuluan

  1. Jelaskan apa yang dimaksud dengan IPC
  2. Berikan pengertian tentang istilah-istilah berikut sehingga dapat menunjukkan perbedaannya:
    1. Shared memory
    2. Pipes
    3. Message queue
    4. Semaphore
    5. Jelaskan fungsi penting dari IPC yang menyebabkan IPC itu dibutuhkan
    6. Sebutkan contoh program/apilkasi yang menggunakan IPC dan dimana letak IPCnya
  1. Inter-Process Communication (IPC) atau Komunikasi antar proses adalah cara atau mekanisme pertukaran data antara satu proses dengan proses lainnya, baik itu proses yang berada di dalam komputer yang sama, atau komputer jarak jauh yang terhubung melalui jaringan.

Inter Process Communication (IPC) adalah seperangkat teknik untuk pertukaran data di antara beberapa     thread dalam satu atau lebih proses. Proses tersebut dapat berjalan pada satu atau lebih komputer yang terhubung dengan jaringan. Teknik IPC dibagi menjadi metode message passing, synchronization, shared memory, dan remote procedure calls (RPC). IPC metode yang digunakan dapat bervariasi berdasarkan bandwidth dan latency komunikasi antara thread, dan jenis data yang dikomunikasikan.

Ada beberapa alasan untuk menyediakan lingkungan yang memungkinkan proses kerjasama:
* Information sharing
* Perhitungan percepatan
* Modularity
* Kenyamanan

2.

a. Shared Memory:  memori yang dapat diakses secara bersamaan oleh beberapa program  dengan maksud untuk menyediakan komunikasi di antara mereka atau menghindari salinan yang berlebihan. Tergantung pada konteks, program dapat berjalan pada satu prosesor atau beberapa prosesor yang terpisah.

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.

 

b. Pipes: serangkaian proses  berantai oleh aliran standar, sehingga setiap proses output (stdout) feed secara langsung sebagai input (stdin) ke yang berikutnya. Masing-masing sambungan ini diimplementasikan oleh pipa anonim. Program filter sering digunakan dalam konfigurasi ini.

Sebuah pipa adalah teknik untuk melewati informasi dari salah satu program untuk proses lain. Tidak seperti bentuk komunikasi interprocess (IPC), sebuah pipa adalah satu-cara komunikasi saja. Pada dasarnya, sebuah pipa melewati parameter seperti output dari satu proses ke proses yang lain menerima sebagai masukan.

 

c. Message Queue:  merupakan metode dimana proses (atau program contoh) dapat bertukar data menggunakan atau melalui sebuah interface untuk sistem yang dikelola message queue. Sebuah pesan antrian dapat dibuat oleh satu proses dan digunakan oleh banyak proses yang membaca dan / atau menulis pesan ke antrian. Misalnya, server proses dapat membaca dan menulis pesan dari dan ke pesan antrian dibuat untuk klien proses. Jenis pesan dapat digunakan untuk menghubungkan pesan dengan klien tertentu proses meskipun semua pesan pada antrian yang sama.

d. Semaphore: sebuah variabel yang dilindungi atau tipe data abstrak yang merupakan metode klasik untuk membatasi akses ke sumber daya bersama seperti shared memory dalam suatu lingkungan pemrograman paralel.  Semaphore adalah solusi klasik untuk mencegah race condition pada dining philosopher problem, meskipun mereka tidak mencegah deadlock sumber daya.

3.-      Membantu komunikasi antar thread atau antar proses

–         Information sharing

4.   salah satu metode IPC: Pipe

Unnamed pipe merupakan sebuah metode standar untuk komunikasi antara proses induk dan proses anak.

Unnamed pipe digunakan ketika program Linux membuat sebuah proses terpisah setelah menggunakan pipe library call untuk  untuk membuat dua file descriptors (satu untuk masing-masing ujung pipe).

File unnamed_pipe.c menerapkan kedua ujung pipe reader/writer dengan menciptakan dua input /output file descriptor:

int file_descriptors[2];

pipe(file_descriptors);

 

pid_t spawned_process_pid = fork();

 

if(spawned_process_pid == 0) {

printf(“in the spawned (child) process…\n”);

}

else {

printf(“in the spawning (parent) process…\n”);

}

 

dan membuat sebuah proses baru menggunakan forking library call.

setelah memanggil fork, ada dua duplikat eksekusi program, sehingga kita membutuhkan untuk mengecek proses yang mana yang proses original(parent), dan proses yang mana yg merupakan proses duplikat(child).

Parent proses akan menutup descriptor file output dan membaca data dari input file descriptor.

#define INPUT 0

#define OUTPUT 1

 

close(file_descriptors[INPUT]);

write(file_descriptors[OUTPUT],

“test data”, strlen(“test data”));

 

close(file_descriptors[OUTPUT]);

// wait for data sent by the spawned (child) process:

returned_count = read(file_descriptors[INPUT],

buf,

sizeof(buf));

 

 

1 Komentar (+add yours?)

  1. plonkz
    Jun 08, 2010 @ 10:58:29

    Bisa di isiin ga penjelasan programnya…??

    Balas

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: