Deadlock
Deadlock adalah suatu kondisi di mana sekumpulan proses tidak dapat berjalan kembali atau tidak adanya komunikasi antar proses. Definisi lainnya yaitu sekumpulan proses yang terblok yang tiap proses tersebut memegang sumber daya dan menunggu untuk mendapatkan sumber daya yang dipegang oleh proses di dalam kumpulan tersebut.
penyebab kemungkinan deadlock::
1. mutex
hny 1 proses yg dpt menggunakan sumber daya pd 1 x wkt
2. hold-and-wait
proses dpt menahan resource yg dialokasikan smbil menunggu resource lainnya dpt dipakai
3. no preemption
tdk ada resource yg dpt dilepaskkan dr proses yg sedang menggunakannya
penyebab deadlock:
1. circular wait
Proses-proses berada dalam lingkaran. Terjadi saling menunggu resource yang sedang digunakan oleh proses berikutnya dalam lingkaran tersebut.
pencegahan deadlock
1. pd mutex
mutex hny utk write saja, proses lain msh bs d read
2. pd hold and wait
smua resource yg dibutuhkan diminta sejak awal
3. pd no preemption
proses melepaskan reource dn nanti memintanya kembali
4. pd circular wait
membuat urutan pengaksesan resource
IPC: Shared memory
memori yang dapat dipakai bersama-sama oleh seluruh pemroses.
ada 2 cara membuat shared memory:
1. mmap<>
2. shmget<> >> lebih populer
metode IPC tercepat
tdk ada mekanisme utk menangani penulisan pd wkt yg bersamaan
langka2 membuat shared memory:
1. buat segment d memory <variable. dg shmget<>
2. mndftarkan segment k data space dr proses dg shmat<>
3. tulis/baca dr memory
4. detach segment dr data space dr proses dg shmdt<>
shmget<>
system call utk buat suatu segment shared mem
definisi:
#include <sys/ipc.h>
#include <sys/shm.h>
int shmget<key_t key, size_t size, int shmflg>;
shmflg bs diisi dg:
IPC_CREATE, IPC_EXCL,permission
shmat<>
system call utk mendaftarkan segment shared memory k dlm data space dr suatu proses
definisi:
#include <sys/types.h>
#include <sys/shm.h
void shmat<int shmid, const void shmaddr, int shmflg>
shmdt<>
system call utk melepaskan shared memory
definisi:
int shmdt<const void pointer shmaddr>
shmctl<>
mengetahui atau merubah info tntg shared memory
int shmctl<parameter>
argumen cmd:...
program tambahan:
2 program utk elihat apa yg terjadi pd ipc
ipcs dan ipcrm
Tidak ada komentar:
Posting Komentar
silahkan di komen ya, blog ini adalah dofollow, jadi kalau kamu ninggalin komentar blog ini otomatis memberi backlink ke kamu :)
Pengunjung yang baik selalu meninggalkan jejak :)