Interprocess Comunication

1. Jelaskan apa yang dimaksud dengan proses?
Jawab:
Proses merupakan sebuah entitas yang mengeksekusi code dari sebuah program, serta memiliki stack eksekusi sendiri, memory page sendiri, file descriptor tabel dan id yang unik. Jadi, proses bukanlah sebuah program, beberapa proses bisa mengeksekusi program yang sama dalam waktu yang sama untuk user yang sama maupun user yang berbeda.

2. Jelaskan apa yang dimaksud dengan thread?
Jawab:
sebuah alur kontrol dari sebuah proses. Suatu proses yang multithreaded mengandung beberapa perbedaan alur kontrol dengan ruang alamat yang sama. Keuntungan dari multithreaded meliputi peningkatan respon dari pengguna, pembagian sumber daya proses, ekonomis, dan kemampuan untuk mengambil keuntungan dari arsitektur multiprosesor. Thread tingkat pengguna adalah thread yang tampak oleh programer dan tidak diketahui oleh kernel. Thread tingkat pengguna secara tipikal dikelola oleh sebuah pustaka thread di ruang pengguna. Thread tingkat kernel didukung dan dikelola oleh kernel sistem operasi. Secara umum, thread tingkat pengguna lebih cepat dalam pembuatan dan pengelolaan dari pada kernel thread.
3. Jelaskan apa yang dimaksud dengan Interprocess Communication (IPC)?
Jawab:
IPC atau interprocess Communication adalah komunikasi antar proses untuk mengirim data dari satu proses ke proses yang lain. IPC dapat dilakukan dengan beberapa cara yaitu Shared memory, Mapped memory, Pipe, FIFO, socked dan sebagainya.

4. Jelaskan dengan lengkap tentang beberapa hal berikut ini:
Jawab:
 Shared Memory = Merupakan komunikasi antar proses dengan cara membaca dan menulis pada lokasi memori yang telah disharing.
 Mapped Memory = Yaitu tipe dari IPC yang hampir sama dengan shared memory, namun bisa diasosiasikan dengan filesystem/
 Pipe = Merupakan komunikasu sequencial antar proses yang saling terelasi, namun pipe mimiliki kelemahan yaitu hanya bisa digunakan untuk komunikasi antar proses yang saling berhubungan, dan komunikasinya yang dilakukan adalah secara sequensial. Urutan informasi yang ada dalam sebuah pipe ada yang mirip dengan antrian queue. Jika komunikasi yang diinginkan adalah komunikasi dua arah maka kita harus membuat dua pipe, karena sebuah pipe hanya bisa digunakan untuk komunikasi satu arah saja.
 FIFO = Merupakan salah satu tipe dari IPC yang mirip dengan pipe, hanya saja FIFO memiliki kemampuan untuk mengkomonikasikan proses yang tidak saling terelasi, karena fifo memiliki nama dalam file system.
 Semaphore
 Socket = Yaitu komunikasi antar proses yang tidak saling terelasi dan berada dalam komputer yang berbeda.
 Message Queue digunakan dalam IPC sebagai queue untuk pesan.Pesan yang ditempatkan di dalam queue disimpan dulu sampai penerima menerimanya atau bisa dimaksud juga sebagai linked list internal dalam kernel.

5. Apa yang kamu ketahui tentang:
Jawab:
• PPID (Parent Process Identification) adalah nomor khusus sebagai identifikasi dari parent process
• PID (Process Identification) adalah nomor khusus sebagai identifikasi dari sebuah proses
• Zombie process adalah suatu proses (biasanya child process) yang telah mati/dimatikan tetapi tetap ada. Hal ini dikarenakan proses ibunya (parent process) tidak mematikan proses anaknya dengan sempurna. Proses zombie ini akan mati apabila parent prosesnya mati.Perintah ps dan top yang paling sering dikenal sebagai zombie process.
• Child process adalah proses turunan dari parent process atau bisa juga dimaksud beberapa perintah digunakan untuk memulai perintah yang lain
• Parent process adalah proses induk
• Orphan process adalah proses komputer dimana parent process-nya telah selesai

6. Jelaskan tentang kegunaan beberapa fungsi di bawah ini:
Jawab:
o getpid : berguna mengembalikan ID proses aktif dan tidak membutuhkan argumen
o fork : berguna untuk membentuk proses baru.Proses ini terbagi menjadi dua yaitu child process dan parent process yang identik
o system: layanan yang digunakan untuk bisa mengakses kernel
o exec : juga berguna untuk membentuk proses baru.Tapi child process mempunyai intruksi yang berbeda dengan parent process sehingga kedua proses ini tidak lagi identik.
o Malloc: berguna untuk pengalokasian memori
o popen : berguna untuk membuat sebuah pipe
o pclose: berguna untuk menutup sebuah pipe yang dibuat dengan popen
o signal : untuk mendefinisikan suatu aksi terhadap signal tertentu
o kill : digunakan untuk mengirimkan signal ke suatu proses sehingga bisa memerintahkan proses itu ditunda, dihentikan, atau dilanjutkan.Tapi paling sering digunakan untuk mematikan proses yang ada.
Syntax-nya
 $kill
o wait : digunakan untuk membuat parent process menunggu sampai child process selesai
o mmap : memetakan file ke dalam memori

7. Jelaskan yang dimaksud dengan signalling!
Jawab:
adalah pengiriman signal ke dalam suatu proses.Signalling adalah salah satu cara tertua berkomunikasi dalam IPC.Ketika suatu proses menerima suatu signal maka ada 3 kemungkinan tindakan yang dilakukan oleh proses tersebut :
a. Mengabaikan signal.Tapi ada signal yang tidak bisa diabaikan yaitu no.9 dan 19
b. Membuat handler sendiri untuk signal.Ada dua signal yang tidak dapat diperlakukan dengan cara demikian, yakni signal no. 9 dan 19
c. Mengikuti default action signal
Signal dapat diberikan dengan perintah kill.Untuk melihat signal-signal yang tersedia di sistem berikan perintah berikut ini:
kill -l
Untuk mengirimkan signal, berikanlah perintah berikut ini:
kill -