Kamis, 28 Januari 2010

Interprocess Communication


  1. IPC (interprocess Communication) adalah komunikasi antar proses untuk mengirim data dari satu proses ke proses yang lain, baik antar proses dalam satu komputer maupun proses-proses dalam komputer yang berbeda. IPC dapat dilakukan dengan berbagai cara yaitu Shared memory, Mapped memory, Pipe, FIFO, socked dsb.

    1. Shared memory : merupakan komunikasi antar proses dengan cara membaca dan menulis pada lokasi memory yang telah di sharing.
    2. Pipe : merupakan komunikasi sequensial antar proses yang saling terelasi, namun pipe memiliki kelemahan yaitu hanya bisa digunakan untuk komunikasi antar proses yang saling berhubungan, dan komunikasinya yang dilakukan adalah secara sequensial. Urutan informasi yang ada dalam sebuah pipe ada yang mirip dengan antrian queue. Jika komunikasi yang diinginkan adalah komunikasi dua arahmaka kita harus membuat dua pipe, karena sebuah pipe hanya bisa digunakan untuk komunikasi satu arah saja.
    3. Message queue : digunakan dalam IPC sebagai queue untuk pesan. Pesan yang ditempatkan di dalam queue disimpan dulu sampai penerima menerimanya atau bisa dimaksud juga sebagai linked list internal dalam kernel.
    4. Semaphore : Untuk pengendalian sinkronisasi proses-proses, sedangkan PCB (Process Control Block) berfungsi untuk mencatat dan mengendalikan proses, tabel segmen, tabel page, i-node, FAT, file dsb.
  2. Interprocess Communication menyediakan komunikasi antar proses dan penyelarasan aksi-aksi antar proses tanpa berbagi alamat memory yang sama. Komunikasi antar proses bahkan dapat dilakukan walaupun jarak antara komputer yang melakukan proses sangat jauh.
  3. Contoh penggunaan IPC :
    1. Program CorelDRAW yang dapat mengirim data bitmapnya pada aplikasi lain seperti CorelTRACE untuk mentrace gambarnya menjadi vector atau CorelPHOTO-PAINT untuk mengedit bitmap tersebut, kemudian hasilnya dapat ditampilkan kembali dalam CorelDRAW.
    2. Program messenger seperti Pidgin menggunakan IPC Socket untuk mengirim data berupa string antar user yang sedang chatting.
    3. File descriptor adalah sebuah kunci abstrak untuk mengakses sebuah file. Biasanya digunakan untuk sistem operasi POSIX. Dalam POSIX, file descriptor adalah integer, terdapat 3 nilai integer yang mendekripsikan file descriptor, 0 untuk standard input (stdin), 1 untuk standard output (stdout), 2 untuk standard error (stderr). Dalam Pipe, file descriptor digunakan sebagai standard input-output antar proses agar proses dapat berkomunikasi satu sama lain. File descriptor yang digunakan adalah array integer dengan 2 address, 0 untuk read (stdin) dan 1 untuk write (stdout).

Tidak ada komentar:

Posting Komentar