Pages

Rabu, 03 Desember 2014

Deadlock , IPC, Shared Memory


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 :)