Tutorial IPC (Interprocess Communication) Pada Linux

Halo Linux User, kali ini saya akan menshare pelajaran yang saya dapat tentang IPC (Interprocess Communication) di sistem operasi Linux. Pada artikel, kita akan mencoba membuat IPC dengan metode Pipes. Sebelum lebih lanjut, mari kita ulas tentang IPC.

1. Pengertian IPC
Interprocess Communication atau yang sering disingkat dengan IPC adalah suatu mekanisme pertukaran data antara satu proses dengan proses lainnya, baik proses itu ada dikomputer yang sama atau komputer yang berbeda.

2. Metode IPC

a) Pipes
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.

b) Message Queue
Sistem berkirim pesan adalah proses komunikasi antar bagian sistem untuk membagi variabel yang dibutuhkan. Proses ini menyediakan dua operasi yaitu
mengirim pesan dan menerima pesan.

c) Shared Memory
Shared Memory adalah 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.

d) Socket
Bentuk dari komunikasi yaitu UDP dan TCP menggunakan abstraksi socket yang menyediakan endpoint untuk komunikasi antar proses. Socket bisa dijalankan di berbagai platform(BSD UNIIX, UNIX, Linux, Windows, & Machintos OS).

3. Cara Penggunaan IPC

Pipes

Bahan - bahan yang diperlukan :
1) Linux
2) Terminal
3) Text Editor (gedit)
4) Kodingan Pipe
5) Minuman dingin

Langkah Penggunaan :

1. Nah perlu diingat bahwa metode pipe ini merupakan metode pengiriman data satu arah. Disini kita akan coba membuat program yang mengirimkan sebuah kalimat dari terminal satu ke terminal lainnya. Jadi kita memerlukan 2 file .c yaitu writer.c (untuk mengirimkan kalimat) dan reader.c (membaca kalimat yang dikirimkan).

2. Seperti biasa kita buka terminal terlebih dahulu, lalu ketikkan gedit writer.c

3. Lalu akan muncul tampilan seperti berikut
 4. Nah lalu copykan kodingan dibawah ini, lalu paste ke gedit yang tadi sudah terbuka
#include <fcntl.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <unistd.h>

int main()
{
    int fd;
    char * myfifo = "/tmp/myfifo";
   
    mkfifo(myfifo,0666);

    fd = open(myfifo,O_WRONLY);
    write(fd,"Halo Praktikan",sizeof("Halo Praktikan)"));
    close(fd);

    unlink(myfifo);
   
    return 0;
}

Keterangan :
a) myfifo = "/tmp/myfifo" adalah deklarasi variabel, lokasinya di folder tmp (temporary) sehingga jika pipe sudah selesai digunakan, file akan dihapus secara otomatis
b) mkfifo(myfifo,0666); yaitu pembuatan file pipe, 0666 merupakan access permission
c) fd = open(myfifo,O_WRONLY); yaitu membuka file pipe
d) write(fd,"Halo Praktikan",sizeof("Halo Praktikan)")); yaitu untuk menuliskan isi file pipe dengan kalimat Halo Praktikan.
e) close(fd); yaitu untuk menutup file pipe.
f) unlink(myfifo); untuk menghapus file pipe.

5. Setelah itu, save filenya dan tutup geditnya. Lalu kita lanjutkan dengan membuat file reader.c yang gunanya untuk membaca pipe yang dikirimkan oleh writer.c
Kita mulai dengan mengetikkan pada terminal "gedit reader.c"

6. Maka akan muncul tampilan seperti dibawah ini

7. Nah untuk pembuatan file readernya, copykan kodingan dibawah ini lalu paste di gedit yang sudah terbuka tadi
#include <fcntl.h>
#include <stdio.h>
#include <sys/stat.h>
#include <unistd.h>
#define MAX_BUF 1024

int main()
{
    int fd;
    char * myfifo = "/tmp/myfifo";
    char buf[MAX_BUF];

    fd=open(myfifo, O_RDONLY);
    read(fd,buf,MAX_BUF);
    printf("Pesan diterima : %s\n",buf);
    close(fd);
    return 0;
}

8. Lalu save file, dan close gedit tersebut.
9. Nah sekarang, kita akan mengcompile kedua file c tadi agar bisa dijalankan. Pertama, kita akan mengcompile file writer.c. Masuk ke terminal, lalu ketikkan "gcc -o writer writer.c" lalu tekan enter
10. Lalu kita compile file reader.c. Ketikkan "gcc -o reader reader.c" pada terminal lalu tekan enter
 
 11. Nah setelah kita mengcompile kedua file c tadi. Langkah selanjutnya yaitu menjalankan kedua file c tadi. Ketikkan pada terminal "./writer" lalu tekan enter
12. Nanti terminal akan menunggu, file reader.c untuk dijalankan. Sehingga kita perlu membuka terminal baru untuk menjalankan file readernya. Ketikkan "./reader" pada terminal baru yang anda buka lalu tekan enter



13. Setelah file reader dijalankan, maka pesan "Halo Praktikan" akan muncul pada terminal yang baru kita buka tadi. Itu merupakan kalimat yang kita kirimkan pada file writer ke file reader. Yang kita tampilkan pada terminal 1 dan terminal 2.

Nah sekian cara penggunaan metode IPC Pipe pada OS Linux. Jika terjadi error pada saat mengcompile file c nya, itu berarti terdapat kesalahan code pada file c nya. Terima kasih, ditunggu update selanjutnya :)
Tutorial IPC (Interprocess Communication) Pada Linux Tutorial IPC (Interprocess Communication) Pada Linux Reviewed by Widhi Mahaputra on 22.10 Rating: 5

Tidak ada komentar:

Diberdayakan oleh Blogger.