Facebook Follow

Selasa, 20 Maret 2018

Langkah-Langkah Shared Memory



Shared memory: Disebut begitu jika video memory disatukan penggunaannya dengan system memory (RAM). Jadi secara fisik hanya ada 1 modul memory yang dipakai bersama oleh video graphics array (VGA) dan sistem.

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