BAB 2
PROSES
2.1. Tujuan Praktikum
Bab ini bertujuan untuk:
1. Mengenalkan perintah fork() dan exec() pada system operasi
Linux
2. Mengenalkan perintah-perintah dasar system operasi Linux
terkait pemantauan proses yang sedang berlangsung.
#include <stdio.h>
#include <unistd.h>
/* This program forks and and the prints whether
the process is
* - the child (the return value of fork() is 0), or
* - the parent (the return value of fork() is not
zero)
*
* When this was run 100 times on the computer the
author is
* on, only twice did the parent process execute
before the
* child process executed.
*
* Note, if you juxtapose two strings, the compiler
automatically
* concatenates the two, e.g., "Hello " "world!"
*/
int main( void ) {
int pid = fork();
if ( pid == 0 ) {
printf( "This is being printed from the
child process\n" );
} else {
printf( "This is being printed in the
parent process:\n- the process identifier (pid) of
the child is %d\n", pid );
}
return 0;
}
10. Apakah hasil yang anda dapatkan setelah menjalankan perintah pada
Langkah 12. Jelaskan apa yang anda ketahui mengenai perintah ini dan
bagaimana informasi yang didapatkan.
Jawab:
Perintah top berfungsi untuk menampilkan sumber daya yang
digunakan dari sebuah proses. Contohnya pada paling atas PID 1722
dengan command top yang menunjukkan bahwa proses tersebut
sedang berjalan.
11. Apakah hasil yang anda dapatkan setelah menjalankan perintah pada
Langkah 13. Jelaskan apa yang anda ketahui mengenai perintah ini dan
bagaimana informasi yang didapatkan.
Jawab:
Perintah pstree dijalankan lagi, disini proses apt-get telah tidak
ada lagi yang menandakan bahwa perintah apt-get sudah selesai
dijalankan.
12. Apakah hasil yang anda dapatkan setelah menjalankan perintah pada
Langkah 1-7 pada bagian 2.42. Jelaskan apa yang anda ketahui
mengenai perintah ini dan bagaimana informasi yang didapatkan.
Jawab:
Pertama lakukan perintah nano untuk membuat program, isi source
code pada file tersebut menggunakan source yang sudah diberikan
pada 2.4.2 2
Lalu simpan program tersebut dengan nama fork.cm disini saya
menggunakan perintah ls untuk melihat apakah file fork.c sudah
tersimpan atau belum
13. Apa hubungan antara fork() dan exec() dengan proses yang
berlangsung pada system operasi?
Jawab:
fork() adalah sebuah system call untuk membuat proses baru
melalui duplikasi proses induk. Proses baru atau proses child akan
melakukan penyalinan dari proses parent dimana pada proses child
memiliki konten yang sama dengan proses parent namun dengan PID
yang berbeda.
exec() adalah sebuah system call untuk mengganti isi pada proses
lama dengan proses yang baru, tetapi perintah exec() tidak akan
menghasilkan proses baru karena proses yang lama dan yang baru
memiliki PID yang sama
14. Bagaimana fork() dan exec() mempengaruhi struktur direktori,
penggunaan memori dan CPU?
Jawab:
fork() akan membuat proses child dengan menduplikasi pada
proses parent. Field berupa state process, status, nama fie program,
direktori terkini, dan sebagainya yang ada pada proses parent akan
disalin ke proses child.