1.
Interprocess communication
(interprocess
Communication) adalah komunikasi antar proses untuk mengirim data dari satu
proses ke proses yang lain, baik antar proses dalam satu komputer maupun
proses-proses dalam komputer yang berbeda. IPC dapat dilakukan dengan berbagai
cara yaitu Shared memory, Mapped memory, Pipe, FIFO, socked dsb.
Shared memory : merupakan komunikasi
antar proses dengan cara membaca dan menulis pada lokasi memory yang telah di
sharing.
Interprocess Communication
menyediakan komunikasi antar proses dan penyelarasan aksi-aksi antar proses
tanpa berbagi alamat memory yang sama. Komunikasi antar proses bahkan dapat
dilakukan walaupun jarak antara komputer yang melakukan proses sangat jauh.
1.
Contoh penggunaan IPC :
1.
Program CorelDRAW yang dapat mengirim data bitmapnya
pada aplikasi lain seperti CorelTRACE untuk mentrace gambarnya menjadi vector
atau CorelPHOTO-PAINT untuk mengedit bitmap tersebut, kemudian hasilnya dapat
ditampilkan kembali dalam CorelDRAW.
2.
Program messenger seperti Pidgin menggunakan IPC
Socket untuk mengirim data berupa string antar user yang sedang chatting.
3.
File descriptor adalah sebuah kunci abstrak untuk
mengakses sebuah file. Biasanya digunakan untuk sistem operasi POSIX. Dalam
POSIX, file descriptor adalah integer, terdapat 3 nilai integer yang
mendekripsikan file descriptor, 0 untuk standard input (stdin), 1 untuk standard
output (stdout), 2 untuk standard error (stderr). Dalam Pipe, file descriptor
digunakan sebagai standard input-output antar proses agar proses dapat
berkomunikasi satu sama lain. File descriptor yang digunakan adalah array integer
dengan 2 address, 0 untuk read (stdin) dan 1 untuk write (stdout).
2. Race
conditions
Race condition adalah
suatu kondisi dimana dua atau lebih proses mengakses shared memory/sumber daya
pada saat yang bersamaan dan hasil akhir dari data tersebut tergantung dari
proses mana yang terakhir selesai dieksekusi sehingga hasil akhirnya terkadang tidak
sesuai dengan yang dikehendaki.
3. Mutual exclusion
Adalah Suatu kondisi dimana setiap sumber
daya diberikan tepat pada satu proses pada suatu waktu (kondisi-kondisi untuk
solusi). Tiga kondisi untuk menentukan mutual Exclusion diantaranya :
- Tidak ada dua proses yang pada saat bersamaan berada di critical region.
- Tidak ada proses yang berjalan diluar critical region yang bisa menghambat proses lain
- Tidak ada proses yang tidak bisa masuk ke critical region