IPC PIPE
IPC (Inter Process Communication) adalah komunikasi antar proses untuk mengirim data dari suatu proses ke proses lainnya dalam satu komputer maupun dalam komputer yang berbeda.
Pipe merupakan komunikasi sekuensial 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 sekuensial. Urutan informasi yang ada dalam sebuah pipe ada yg mirip dengan antrian queue. Pipe hanya bisa digunakan untuk komunikasi satu arah.
Terdapat dua jenis pipe, yaitu Named pipe dan Unnamed pipe. Namun metode pipe yang sering digunakan adalah Named pipe. Keuntungan menggunakan pipe ini adalah kemampuan untuk mengomunikasikan dua proses yang dimulai secara independent, dimana salah satu proses tidak fork off sebuah proses baru. Named pipe dapat disebut sebagai FIFO karena prinsip kerjanya mirip dengan FIFO. Data yang pertama kali ditulis di pipe adalah data yang pertama dibaca. Named pipe digunakan untuk 2 proses yang berjalan sendiri - sendiri dan hanya bisa digunakan pada proses - proses yang menggunakan filesystem yang sama.
Langkah - langkah membuat named pipe:
1. Write proces:
- Deklarasi Variabel -> variabel pertama bertype char pointer (char *fifo)
Variabel kedua adalah variabel bertype integer untuk membuka file pipe tadi, dan variabel array of integer untuk ditulis kedalam file pipe tersebut.
int fd, arr[100]
- Membuat file -> File pipe bisa dibuat dengan perintah mkfifo, dimana salah satu parameternya adalah 0666 yang berarti dapat di write dan di read.
- Membuka file -> File pipe yang tadi dapat dibuka dengan perintah open lalu dimasukkan ke dalam variabel integer yang tadi. Parameter kedua diisikan dengan O_WRONLY dengan dimaksudkan file tersebut dibuka dengan mode write only.
- Menuliskan isi file pipe -> dapat menggunakan perintah write
- Menghapus file pipe -> dapat menggunakan perintah unlink
2. Read Process:
- Deklarasi Variabel -> variabel pertama bertype char pointer (char *fifo)
Variabel kedua adalah variabel bertype integer untuk membuka file pipe tadi, dan variabel array of integer untuk ditulis kedalam file pipe tersebut.
int fd, arr[100]
- Membuka file -> File pipe yang tadi dapat dibuka dengan perintah open lalu dimasukkan ke dalam variabel integer yang tadi. Parameter kedua diisikan dengan O_RDONLY dengan dimaksudkan file tersebut dibuka dengan mode read only.
- Membaca isi file -> dapat menggunakan perintah read
- Menutup isi file pipe -> bertujuan agar file tersebut tidak diakses terus menerus. Dapat menggunakan perintah close
Tidak ada komentar:
Posting Komentar