Ada 4 metode dalam IPC, yaitu:
Share memori
- Salah satu cara yang efisien untuk pertukaran atau passing data antar program. Salah satu program akan membuat posi memori yang proses lainnya dapat mengakses.
- shmget() --> Untuk menciptakan segmen memori bersama.
- shmctl() --> Untuk menetapkan kepemilikan ke pengguna lain oleh pemilik sebenarnya dari segmen memory shared.
- shmat() --> Untuk dilampirkan ke ruang alamat setelah dibuat segmen shared memory.
- Hal ini dapat dilepaskan dengan shmdt(). Proses melampirkan harus memiliki izin sesuai untuk shmat().
- Setelah terpasang, proses dapat membaca atau menulis ke segmen,. Sebuah segmen shared memory dapat dilampirkan beberapa kali sengan proses yang sama. Sebuah segmen memory shared, digambarkan oleh struktur control dengan ID yang unik yang menunjuk ke suatu area memori fisik.
Pipe
- Salah satu cara komunikasi antar proses yang diakses melalui socket descriptor. Operasinya seperti local file
- Terdapat dua istilah dalam metode pipe, yaitu:
- Unamed Pipe: digunakan oleh Parent Process dan Child Process untuk berkomunikasi. Penggunaannya adalah dengan membuat 2 pipe reader / writer dengan file decriptor sebagai input atau output.
- Named Pipe: digunakan untuk komunikasi antara program berbeda dengan file system yang sama. Prosesnya secara FIFO (First In First Out). Named Pipe memiliki kelebihan yaitu dapat digunakan untuk komikasi antar 2 proses yang berjalan secara independen.
Message Queue
- memberikan arti yang lain dari IPC yaitu independensi dari system file. Dua atau lebih proses dapat bertukar informasi melalui akses antrian pesan system umum. Tempat proses pengiriman melalui beberapa (OS) modul message-passing menempatkan pesan ke antrian yang dapat dibaca oleh proses lainnya. Setiap pesan diberikan sebuah identifikasi tipe jadi proses dapat memilih pesan yang sesuai. Proses harus berbagi kunci agar dapat mengakses antrian terlebih dahulu
- System call yang digunakan untuk impleentasi mssage queue antara lain; msgget(), msgsend((), msgrcv, msgctl().
Semaphore
- Semaphore memungkinkan hanya satu proses pada satu waktu untuk mengakses daerah kritis dari kode atau struktur data. Semua proses lainnya yang menginginkan untuk akses sumber daya ini akan dibuat menunggu sampai menjadi bebas. Proses yang sedang menunggu ditangguhkan, proses lainnya dalam proses dapat terus berjalan.
- Semaphore diinisialisasikan menggunakan fungsi semget().
- Syntax: int semget( key_t key, int nsems, int semflg)
- Jika sukses, maka akan mengembalikan nilai semaphore ID (semid).
Tidak ada komentar:
Posting Komentar
silahkan tinggalkan komentar untuk menjadi lebih baik . . .