Tuliskan Pengertian Shared Memory? Begini Penjelasannya


Pengertian Shared Memory – Share Memory merupakan arsitektur yang menghubungkan beberapa prosesor dalam sistem tunggal sehingga dapat memakai memori secara bersama-sama.

Selain itu, Share Memory juga disebut dengan SMP atau Symmetric Multiprocessing. Metode ini biasanya dipakai untuk workstation personal untuk mendukung mikroprosesor dalam paralel dbms.

Share Memory terdapat Reduced Instruction Set Computer atau disingkat RISC yang merupakan Kumpulan set Instruksi Yang Disederhanakan. Berbasis mesin hingga terdapat mainframe besar.

Salah satu kelebihan arsitektur ini adalah pengaksesan data menjadi lebih cepat, tapi tidak bisa memakai prosesor 64bit, sebab dapat menimbulkan masalah komunikasi misalnya “bottleneck” atau penyempitan jalur.



Selain itu yang dimaksud dengan penjelasan Share Memory adalah memori yang dapat diakses secara bersamaan oleh beberapa program untuk menyediakan komunikasi disetiap program dan menghindari adanya salinan yang berlebihan.



Bergantung pada konteksnya, maksudnya adalah program dapat berjalan pada satu prosesor atau beberapa prosesor yang terpisah.



Proses untuk mengkomunikasikannya adalah dengan cara mengalokasikan alamat memori untuk dipakai berkomunikasi antar proses.

Alamat dan besar alokasi memori yang dipakai umumnya ditentukan oleh pembuat program. Hal ini akan membuat sistem mengatur proses mana yang akan memakai memori pada waktu tertentu sehingga pekerjaan dapat dilakukan secara efektif.

Langkah-Langkah Membuat Shared Memory

Adapun langkah atau tahap-tahap dalam membuat shared memory ialah:

  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.
Tuliskan Pengertian Shared Memory? Begini Penjelasannya (Foto: Artikelsiana.com)
Tuliskan Pengertian Shared Memory? Begini Penjelasannya (Foto: Artikelsiana.com)

Program Tambahan

Ada dua program yang berguna untuk melihat apa yang terjadi pada IPC yang dibuat, yaitu :

  • ipcs – Menyediakan informasi yang berkaitan dengan IPC yang sedang digunakan (message queue, shared memory, semaphore).
  • ipcrm – Menghapus IPC tertentu (message queue, shared memory, semaphore).

Demikianlah informasi mengenai Tuliskan Pengertian Shared Memory? Begini Penjelasannya. Semoga informasi ini dapat bermanfaat bagi kita semua. Sekian dan terima kasih. Salam berbagi teman-teman

Leave a Reply

Your email address will not be published. Required fields are marked *