Langkah-Langkah Membuat Shared Memory :
1. Membuat segmen di memori dengan shmget().
2. Mendaftarkan (attach) segmen ke data space dari proses dengan shmat().
3. Tulis/baca dari memori
4. Detach segmen dari data space dari proses dengan shmdt().
shmget()
System call untuk membuat suatu segmen shared memory.
Definisi:
#include <sys/ipc.h>
#include <sys/shm.h>
int shmget(key_t key, size_t size, int shmflg);
shmflg bisa diisi dengan IPC_CREATE, IPC_EXCL, permission.
shmmat()
System call untuk mendaftarkan segmen shared memory ke dalam data space dari suatu proses.
Definisi:
#include <sys/types.h>
#include <sys/shm.h>
void *shmat(int shmid, const void *shmaddr, int shmflg);
Parameter:
Shmid → ID dari shared memory.
Shmaddr → Lokasi shared memory di memori utama.
jika NULL akan dicarikan lokasi pada memori yang ingin ditempati.
Return:
Pointer ke lokasi shared memory.
shmdt()
System call untuk melepaskan segmen shared memory data space dari proses.
Definisi:
#include <sys/types.h>
#include <sys/shm.h>
int shmdt(const void *shmaddr);
Parameter:
Shmaddr → pointer ke lokasi shared memory.
Return:
0 → sukses
(void *) -1 → error
shmctl()
System call untuk mengetahui atau merubah informasi yang berkaitan dengan suatu shared memory.
Definisi:
#include <sys/ipc.h>
#include <sys/shm.h>
int shmctl(int shmid, int cmd, struct shmid_ds *buf);
Argument cmd berisi:
IPC_STAT: mengambil informasi tentang segmen shared memory.
IPC_SET: mengubah informasi tentang segmen shared memory.
IPC_RMID: menandai suatu segmen untuk dibuang ketika semua proses yang menggunakannya sudah melepasnya.
SHM_LOCK: lock suatu segmen, membuatnya tidak bisa di-swap.
SHM_UNLOCK: unlock suatu segmen.
0 komentar:
Posting Komentar