SlideShare a Scribd company logo
1 of 15
Download to read offline
97
Praktikum 7
Unix System Call dan
Manajemen Memory
POKOK BAHASAN:
ü UNIX System Call
ü Manajemen Memory
TUJUAN BELAJAR:
Setelah mempelajari materi dalam bab ini, mahasiswa diharapkan mampu:
ü Menggunakan system call fork, wait dan execl pada Linux.
ü Menggunakan perintah-perintah untuk manajemen memory.
DASAR TEORI:
1 UNIX SYSTEM CALL
Pada praktikum ini akan dilakukan percobaan menggunakan system call yang
berhubungan dengan proses pada system operasi UNIX yang biasa disebut UNIX
System Call, yaitu system call fork, execl dan wait. Pada percobaan yang dilakukan
akan dibuat program yang didalamnya terdapat fungsi system call. Untuk
menjalankannya pada Linux gunakan g++.
PRAKTIKUM 7 UNIX SYSTEM CALL DAN MANAJEMEN MEMORY 98
System Call Fork
System call fork adalah suatu system call yang membuat suatu proses baru
pada system operasi UNIX. Pada percobaan ini menggunakan mesin Linux dan
beberapa program yang berisi system call fork().
Bila suatu program berisi sebuah fungsi fork(), eksekusi dari program
menghasilkan eksekusi dua proses. Satu proses dibuat untuk memulai eksekusi
program. Bila system call fork() dieksekusi, proses lain dibuat. Proses asal disebut
proses parend dan proses kedua disebut proses child. Proses child merupakan duplikat
dari proses parent. Kedua proses melanjutkan eksekusi dari titik dimana system call
fork() menghasilkan eksekusi pada program utama. Karena UNIX adalah system
operasi time sharing, dua proses tersebut dapat mengeksekusi secara konkuren.
Nilai yang dihasilkan oleh fork() disimpan dalam variable bertipe pid_t,
yang berupa nilai integer. Karena nilai dari variable ini tidak digunakan, maka hasil
fork() dapat diabaikan.
• Untuk kill proses gunakan Ctrl+C.
• Untuk dokumentasi fork() dapat dilihat dengan ketikkan man 2 fork.
• Untuk melihat id dari proses, gunakan system call getpid()
• Untuk melihat dokumentasi dari getpid(), ketikkan man 2 getpid
Perbedaan antara proses parent dan proses child adalah
• Mempunyai pid yang berbeda
• Pada proses parent, fork() menghasilkan pid dari proses child jika sebuah
proses child dibuat.
• Pada proses child, fork() selalu menghasilkan 0
• Membedakan copy dari semua data, termasuk variable dengan current value dan
stack
• Membedakan program counter (PC) yang menunjukkan eksekusi berikutnya
meskipun awalnya keduanya mempunyai nilai yang sama tetapi setelah itu
berbeda.
• Setelah fork, kedua proses tersebut tidak menggunakan variable bersama.
PRAKTIKUM 7 UNIX SYSTEM CALL DAN MANAJEMEN MEMORY 99
System call fork menghasilkan :
• Pid proses child yang baru ke proses parent, hal ini sama dengan
memberitahukan proses parent nama dari child-nya
• 0 : menunjukkan proses child
• -1 : 1 jika terjadi error, fork() gagal karena proses baru tidak dapat dibuat.
System Call Wait
System call wait menyebabkan proses menunggu sinyal (menunggu sampai
sembarang tipe sinyal diterima dari sembarang proses). Biasanya digunakanoleh proses
parent untuk menunggu sinyal dari system operasi ke parent bila child diterminasi.
System call wait menghasilkan pid dari proses yang mengirimi sinyal. Untuk melihat
dokumentasi wait gunakan perintah man 2 wait.
System Call Execl
Misalnya kita ingin proses baru mengerjakan sesuatu yang berbeda dari proses
parent, sebutlah menjalankan program yang berbeda. Sistem call execl meletakkan
program executable baru ke memory dan mengasosiasikannya dengan proses saat itu.
Dengan kata lain, mengubah segala sesuatunya sehingga program mulai mengeksekusi
dari file yang berbeda.
2 MANAJEMEN MEMORY
Linux mengimplementasikan sistem virtual memory demand-paged. Proses
mempunyai besar memory virtual yang besar (4 gigabyte). Pada virtual memory
dilakukan transfer page antara disk dan memory fisik.
Jika tidak terdapat cukup memory fisik, kernel melakukan swapping beberapa
page lama ke disk. Disk drive adalah perangkat mekanik yang membaca dan menulis ke
disk yang lebih lambat dibandingkan mengakses memory fisik. Jika memory total page
lebih dari memory fisik yang tersedia, kernel lebih banyak melakukan swapping
dibandingkan eksekusi kode program, sehingga terjadi thrashing dan mengurangi
utilitas.
PRAKTIKUM 7 UNIX SYSTEM CALL DAN MANAJEMEN MEMORY 100
Jika memory fisik ekstra tidak digunakan, kernel meletakkan kode program
sebagai disk buffer cache. Disk buffer menyimpan data disk yang diakses di memory;
jika data yang sama dibutuhkan lagi dapat dengan cepat diambil dari cache.
Pertama kali sistem melakukan booting, ROM BIOS membentuk memory test
seperti terlihat berikut :
ROM BIOS (C) 1990
008192 KB OK WAIT......
Kemudian informasi penting ditampilkan selama proses booting pada linux seperti
terlihat berikut :
Memory: 7100k/8192k available (464k
kernel code, 384k reserved, 244k data) ...
Adding Swap: 19464k swap-space
Informasi diatas menampilkan jumlah RAM tersedia setelah kernel di-load ke memory
(dalam hal ini 7100K dari 8192K). Jika ingin melihat pesan saat booting kernel yang
terlalu cepat dibaca dapat dilihat kembali dengan perintah dmesg.
Setiap Linux dijalankan, perintah free digunakan untuk menampilkan total memory
yang tersedia. Atau menggunakan cat /proc/meminfo. Memory fisik dan ruang
swap ditampilkan disini. Contoh output pada sistem :
total used free shared buffers
Mem: 7096 5216 1880 2328 2800
Swap: 19464 0 19464
Informasi ditampilkan dalam kilobyte (1024 byte). Memory ”total” adalah jumlah
tersedia setelah load kernel. Memory digunakan untuk proses atau disk bufferring
sebagai “used”. Memory yang sedang tidak digunakan ditampilkan pada kolom
“free”. Memory total sama dengan jumlah kolom ”used” dan ”free”.
Memory diindikasikan “shared” yaitu berapa banyak memory yang digunakan lebih
dari satu proses. Program seperti shell mempunyai lebih dari satu proses yang berjalan.
Kode executable read-only dan dapat disharing oleh semua proses yang berjalan pada
shell. Kolom “buffers” menampilkan berapa banyak memory digunakan untuk disk
buffering.
PRAKTIKUM 7 UNIX SYSTEM CALL DAN MANAJEMEN MEMORY 101
Perintah free juga menunjukkan dengan jelas bagaimana swap space dilakukan
dan berpa banyak swapping yang terjadi.
Percobaan berikut untuk mengetahui manajemen memory :
1. Pada saat bootup, dengan satu user log in, dengan perintah free sistem melaporkan
berikut :
total used free shared buffers cached
Mem: 247184 145772 101412 0 10872 57564
-/+ buffers/cache: 77336 169848
Swap: 522072 0 522072
Terdapat free memory (4.4MB) dan sedikit disk buffer (1.1MB).
2. Situasi berubah setelah menjalankan perintah yang membaca data dari disk
(command ls –lR /.)
total used free shared buffers cached
Mem: 247184 230604 16580 0 45260 59748
-/+ buffers/cache: 125596 121588
Swap: 522072 308 522072
Disk buffer bertambah menjadi 2 MB. Hal ini berakibat pula pada kolom ”used”
dan memory ”free” juga berkurang.
Perintah top dan ps -u juga sangat berguna untuk menunjukkan bagaimana
penggunaan memory berubah secara dinamis dan bagaimana proses individu
menggunakan memory. Contoh tampilannya :
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
student 4581 0.0 0.3 4316 856 pts/0 S 10:25 0:00 bash
student 4699 0.0 0.2 2604 656 pts/0 R 10.39 0:00 ps -u
PRAKTIKUM 7 UNIX SYSTEM CALL DAN MANAJEMEN MEMORY 102
TUGAS PENDAHULUAN:
Jawablah pertanyaan-pertanyaan berikut ini :
1. Apa yang dimaksud dengan system call ?
2. Apa yang dimaksud dengan sistem call fork(), execl() dan wait(). Jawablah
dengan menggunakan perintah man (contoh : man 2 fork, man 2 execl dan
man 2 wait) ?
3. Apa yang dimaksud sistem virtual memory, proses swapping dan buffer cache pada
manajemen memory ?
4. Apa yang dimaksud perintah free dan cat /proc/meminfo ?
5. Apa yang dimaksud perintah ps ?
PERCOBAAN:
1. Login sebagai user.
2. Bukalah Console Terminal dan lakukan percobaan-percobaan di bawah ini
kemudian analisa hasil percobaan.
3. Selesaikan soal-soal latihan.
PRAKTIKUM 7 UNIX SYSTEM CALL DAN MANAJEMEN MEMORY 103
Percobaan 1 :Melihat proses parent dan proses child
1. Dengan menggunakan editor vi, buatlah file fork1.cpp dan ketikkan program
berikut :
2. Gunakan g++ compiler untuk menjalankan program diatas
$ g++ -o fork1 fork1.cpp
$ ./fork1
3. Amati output yang dihasilkan
Percobaan 2 : Membuat dua proses terus menerus dengan sebuah system
call fork()
1. Dengan menggunakan editor vi, buatlah file fork2.cpp dan ketikkan program
berikut :
#include <iostream>
using namespace std;
#include <sys/types.h>
#include <unistd.h>
/* getpid() adalah system call yg dideklarasikan pada unistd.h.
Menghasilkan suatu nilai dengan type pid_t.
pid_t adalah type khusus untuk process id yg ekuivalen dg int
*/
int main(void) {
pid_t mypid;
uid_t myuid;
for (int i = 0; i < 3; i++) {
mypid = getpid();
cout << "I am process " << mypid << endl;
cout << "My parent is process " << getppid() << endl;
cout << "The owner of this process has uid " << getuid()
<< endl;
/* sleep adalah system call atau fungsi library
yang menghentikan proses ini dalam detik
*/
sleep(1);
}
return 0;
}
PRAKTIKUM 7 UNIX SYSTEM CALL DAN MANAJEMEN MEMORY 104
2. Gunakan g++ compiler untuk menjalankan program diatas. Pada saat dijalankan,
program tidak akan pernah berhenti. Untuk menghentikan program tekan Ctrl+C.
$ g++ -o fork2 fork2.cpp
$ ./fork2
3. Amati output yang dihasilkan
Percobaan 3 : Membuat dua proses sebanyak lima kali
1. Dengan menggunakan editor vi, buatlah file fork3.cpp dan ketikkan program
berikut :
#include <iostream>
using namespace std;
#include <sys/types.h>
#include <unistd.h>
/* getpid() dan fork() adalah system call yg dideklarasikan
pada unistd.h.
Menghasilkan suatu nilai dengan type pid_t.
pid_t adalah type khusus untuk process id yg ekuivalen dg int
*/
int main(void) {
pid_t childpid;
int x = 5;
childpid = fork();
while (1) {
cout << "This is process " << getpid() << endl;
cout << "x is " << x << endl;
sleep(1);
x++;
}
return 0;
}
#include <iostream>
using namespace std;
#include <sys/types.h>
#include <unistd.h>
PRAKTIKUM 7 UNIX SYSTEM CALL DAN MANAJEMEN MEMORY 105
2. Gunakan g++ compiler untuk menjalankan program diatas
$ g++ -o fork3 fork3.cpp
$ ./fork3
3. Amati output yang dihasilkan
Percobaan 4 : Proses parent menunggu sinyal dari proses child dengan
system call wait
1. Dengan menggunakan editor vi, buatlah file fork4.cpp dan ketikkan program
berikut :
/* getpid() dan fork() adalah system call yg dideklarasikan
pada unistd.h.
Menghasilkan suatu nilai dengan type pid_t.
pid_t adalah type khusus untuk process id yg ekuivalen dg int
*/
int main(void) {
pid_t childpid;
childpid = fork();
for (int i = 0; i < 5; i++) {
cout << "This is process " << getpid() << endl;
sleep(2);
}
return 0;
}
#include <iostream>
using namespace std;
#include <sys/types.h>
#include <unistd.h>
#include <sys/wait.h>
/* pid_t fork() dideklarasikan pada unistd.h.
pid_t adalah type khusus untuk process id yg ekuivalen dg int
*/
PRAKTIKUM 7 UNIX SYSTEM CALL DAN MANAJEMEN MEMORY 106
2. Gunakan g++ compiler untuk menjalankan program diatas
$ g++ -o fork4 fork4.cpp
$ ./fork4
int main(void) {
pid_t child_pid;
int status;
pid_t wait_result;
child_pid = fork();
if (child_pid == 0) {
/* kode ini hanya dieksekusi proses child */
cout << "I am a child and my pid = " << getpid() << endl;
cout << "My parent is " << getppid() << endl;
/* keluar if akan menghentikan hanya proses child */
}
else if (child_pid > 0) {
/* kode ini hanya mengeksekusi proses parent */
cout << "I am the parent and my pid = " << getpid()
<< endl;
cout << "My child has pid = " << child_pid << endl;
}
else {
cout << "The fork system call failed to create a new
process" << endl;
exit(1);
}
/* kode ini dieksekusi baik oleh proses parent dan child */
cout << "I am a happy, healthy process and my pid = "
<< getpid() << endl;
if (child_pid == 0) {
/* kode ini hanya dieksekusi oleh proses child */
cout << "I am a child and I am quitting work now!"
<< endl;
}
else {
/* kode ini hanya dieksekusi oleh proses parent */
cout << "I am a parent and I am going to wait for my
child" << endl;
do {
/* parent menunggu sinyal SIGCHLD mengirim tanda
bahwa proses child diterminasi */
wait_result = wait(&status);
} while (wait_result != child_pid);
cout << "I am a parent and I am quitting." << endl;
}
return 0;
}
PRAKTIKUM 7 UNIX SYSTEM CALL DAN MANAJEMEN MEMORY 107
3. Amati output yang dihasilkan
Percobaan 5 : System call fork/exec dan wait mengeksekusi program
bernama ls, menggunakan file executable /bin/ls dengan satu
parameter –l yang ekuivalen dengan ls –l
1. Dengan menggunakan editor vi, buatlah file fork5.cpp dan ketikkanprogram berikut :
#include <iostream>
using namespace std;
#include <sys/types.h>
#include <unistd.h>
#include <sys/wait.h>
/* pid_t fork() dideklarasikan pada unistd.h.
pid_t adalah type khusus untuk process id yg ekuivalen dg int
*/
int main(void) {
pid_t child_pid;
int status;
pid_t wait_result;
child_pid = fork();
if (child_pid == 0) {
/* kode ini hanya dieksekusi proses child */
cout << "I am a child and my pid = " << getpid() << endl;
execl("/bin/ls", "ls", "-l", "/home", NULL);
/* jika execl berhasil kode ini tidak pernah digunakan */
cout << "Could not execl file /bin/ls" << endl;
exit(1);
/* exit menghentikan hanya proses child */
}
else if (child_pid > 0) {
/* kode ini hanya mengeksekusi proses parent */
cout << "I am the parent and my pid = " << getpid()
<< endl;
cout << "My child has pid = " << child_pid << endl;
}
else {
cout << "The fork system call failed to create a new
process" << endl;
exit(1);
}
PRAKTIKUM 7 UNIX SYSTEM CALL DAN MANAJEMEN MEMORY 108
2. Gunakan g++ compiler untuk menjalankan program diatas
$ g++ -o fork5 fork5.cpp
$ ./fork5
3. Amati output yang dihasilkan
Percobaan 6 : System call fork/exec dan wait mengeksekusi program lain
1. Dengan menggunakan editor vi, buatlah file fork6.cpp dan ketikkan program berikut :
/* kode ini hanya dieksekusi oleh proses parent karena
child mengeksekusi dari “/bin/ls” atau keluar */
cout << "I am a happy, healthy process and my pid = "
<< getpid() << endl;
if (child_pid == 0) {
/* kode ini tidak pernah dieksekusi */
printf("This code will never be executed!n");
}
else {
/* kode ini hanya dieksekusi oleh proses parent */
cout << "I am a parent and I am going to wait for my
child" << endl;
do {
/* parent menunggu sinyal SIGCHLD mengirim tanda
bila proses child diterminasi */
wait_result = wait(&status);
} while (wait_result != child_pid);
cout << "I am a parent and I am quitting." << endl;
}
return 0;
}
#include <iostream>
using namespace std;
#include <sys/types.h>
#include <unistd.h>
#include <sys/wait.h>
/* pid_t fork() dideklarasikan pada unistd.h.
pid_t adalah type khusus untuk process id yg ekuivalen dg int
*/
PRAKTIKUM 7 UNIX SYSTEM CALL DAN MANAJEMEN MEMORY 109
int main(void) {
pid_t child_pid;
int status;
pid_t wait_result;
child_pid = fork();
if (child_pid == 0) {
/* kode ini hanya dieksekusi proses child */
cout << "I am a child and my pid = " << getpid() << endl;
execl("fork3", "goose", NULL);
/* jika execl berhasil kode ini tidak pernah digunakan */
cout << "Could not execl file fork3" << endl;
exit(1);
/* exit menghentikan hanya proses child */
}
else if (child_pid > 0) {
/* kode ini hanya mengeksekusi proses parent */
cout << "I am the parent and my pid = " << getpid()
<< endl;
cout << "My child has pid = " << child_pid << endl;
}
else {
cout << "The fork system call failed to create a new
process" << endl;
exit(1);
}
/* kode ini hanya dieksekusi oleh proses parent karena
child mengeksekusi dari “fork3” atau keluar */
cout << "I am a happy, healthy process and my pid = "
<< getpid() << endl;
if (child_pid == 0) {
/* kode ini tidak pernah dieksekusi */
printf("This code will never be executed!n");
}
else {
/* kode ini hanya dieksekusi oleh proses parent */
cout << "I am a parent and I am going to wait for my
child" << endl;
do {
/* parent menunggu sinyal SIGCHLD mengirim tanda
bila proses child diterminasi */
wait_result = wait(&status);
} while (wait_result != child_pid);
cout << "I am a parent and I am quitting." << endl;
}
return 0;
}
PRAKTIKUM 7 UNIX SYSTEM CALL DAN MANAJEMEN MEMORY 110
2. Gunakan g++ compiler untuk menjalankan program diatas
$ g++ -o fork6 fork6.cpp
$ ./fork6
3. Amati output yang dihasilkan
Percobaan 7 : Melihat Manajemen Memory
1. Perhatikan dengan perintah dmesg jumlah memory tersedia dan proses
swapping
$ dmesg | more
2. Dengan perintah free perhatikan jumlah memory ”free”, ”used”, “share” dan
“buffer” .
$ free
3. Dengan perintah dibawah ini apakah hasilnya sama dengan no 2 ?
$ cat /proc/meminfo
4. Gunakan perintah dibawah ini
$ ls –lR /.
5. Perhatikan perubahan manajemen memory
$ free
6. Jalankan sebuah program, misalnya open Office. Perhatikan perubahan
manajemen memory
$ free
7. Dengan perintah ps bagaimana penggunaan memory untuk setiap proses diatas ?
$ ps -uax
PRAKTIKUM 7 UNIX SYSTEM CALL DAN MANAJEMEN MEMORY 111
LATIHAN:
1. Ubahlah program fork5.cpp pada percobaan 5 untuk mengeksekusi perintah yang
ekuivalen dengan
a. ls –al /etc.
b. cat fork2
c. ./fork2
2. Informasi apa saja mengenai manajemen memory yang ditampilkan pada perintah
dmesg pada percobaan Anda ?
3. Bagaimana informasi yang ditampilkan dengan perintah free pada percobaan
Anda ?
4. Apa isi file /proc/meminfo pada percobaan yang Anda lakukan ?
5. Berapa besar memory yang digunakan setelah percobaan 7 dengan perintah ps –
uax ?
6. Lakukan hal yang sama dengan percobaan 7 untuk melihat perubahan memory
setelah dilakukan beberapa proses pada shell. Tentukan perintah yang dilakukan
misalnya membuka browser dan perhatikan hal-hal berikut :
a. Informasi apa saja yang ditampilkan dengan perintah free ?
b. Informasi apa saja yang disimpan file /proc/meminfo ?
c. Berapa besar kapasitas memory total ?
d. Berapa kapasitas memory yang sudah terpakai ?
e. Berapa kapasitas memory yang belum terpakai ?
f. Berapa kapasitas memory yang digunakan sharing beberapa proses ?
g. Berapa kapasitas buffer cache ?
LAPORAN RESMI:
1. Analisa hasil percobaan yang Anda lakukan.
2. Kerjakan latihan diatas dan analisa hasil tampilannya.
3. Berikan kesimpulan dari praktikum ini.

More Related Content

What's hot

Manajemen Resiko Penerapan Teknologi Pada Bisnis Transportasi Ojek Online
Manajemen Resiko Penerapan Teknologi Pada Bisnis Transportasi Ojek OnlineManajemen Resiko Penerapan Teknologi Pada Bisnis Transportasi Ojek Online
Manajemen Resiko Penerapan Teknologi Pada Bisnis Transportasi Ojek OnlineFadhli Farsa
 
Generasi sistem operasi
Generasi sistem operasiGenerasi sistem operasi
Generasi sistem operasiFariszal Nova
 
Context Free Grammar (CFG) Bagian 2 - Materi 7 - TBO
Context Free Grammar (CFG) Bagian 2 - Materi 7 - TBOContext Free Grammar (CFG) Bagian 2 - Materi 7 - TBO
Context Free Grammar (CFG) Bagian 2 - Materi 7 - TBOahmad haidaroh
 
Teori bahasa-dan-otomata
Teori bahasa-dan-otomataTeori bahasa-dan-otomata
Teori bahasa-dan-otomataBanta Cut
 
Pengertian mar (memory address register)
Pengertian mar (memory address register)Pengertian mar (memory address register)
Pengertian mar (memory address register)nokia86
 
Makalah Peranan Semaphore Sistem Operasi - Universitas Widyatama
Makalah Peranan Semaphore Sistem Operasi - Universitas WidyatamaMakalah Peranan Semaphore Sistem Operasi - Universitas Widyatama
Makalah Peranan Semaphore Sistem Operasi - Universitas WidyatamaDEDE IRYAWAN
 
Webinar PHP-ID: Mari Mengenal Logika Fuzzy (Fuzzy Logic)
Webinar PHP-ID: Mari Mengenal Logika Fuzzy (Fuzzy Logic)Webinar PHP-ID: Mari Mengenal Logika Fuzzy (Fuzzy Logic)
Webinar PHP-ID: Mari Mengenal Logika Fuzzy (Fuzzy Logic)Achmad Solichin
 
Deadlock pada sistem operasi
Deadlock pada sistem operasiDeadlock pada sistem operasi
Deadlock pada sistem operasiAyu Arri Andanni
 
Jenis dan proses interupsi
Jenis dan proses interupsiJenis dan proses interupsi
Jenis dan proses interupsilaurensius08
 
Information Technology Infrastructure Library (ITIL)
Information Technology Infrastructure Library (ITIL)Information Technology Infrastructure Library (ITIL)
Information Technology Infrastructure Library (ITIL)Dasufianti
 
Presentasi model osi ( retno )
Presentasi model osi ( retno )Presentasi model osi ( retno )
Presentasi model osi ( retno )Dwi Retno Dewati
 
Basis data 5
Basis data 5Basis data 5
Basis data 5Febrienda
 
CFG dan PARSING - P 5 - Teknik Kompilasi
CFG dan PARSING - P 5 - Teknik KompilasiCFG dan PARSING - P 5 - Teknik Kompilasi
CFG dan PARSING - P 5 - Teknik Kompilasiahmad haidaroh
 
ERD Sistem Informasi Pemesanan Tiket Bioskop Online
ERD Sistem Informasi Pemesanan Tiket Bioskop OnlineERD Sistem Informasi Pemesanan Tiket Bioskop Online
ERD Sistem Informasi Pemesanan Tiket Bioskop OnlineLucha Kamala Putri
 
Korelasi dan regresi ppt
Korelasi dan regresi pptKorelasi dan regresi ppt
Korelasi dan regresi pptMana Khansa
 

What's hot (20)

Fungsi Rekursif
Fungsi RekursifFungsi Rekursif
Fungsi Rekursif
 
Perintah Dasar pada Linux ubuntu
Perintah Dasar pada Linux ubuntuPerintah Dasar pada Linux ubuntu
Perintah Dasar pada Linux ubuntu
 
Manajemen Resiko Penerapan Teknologi Pada Bisnis Transportasi Ojek Online
Manajemen Resiko Penerapan Teknologi Pada Bisnis Transportasi Ojek OnlineManajemen Resiko Penerapan Teknologi Pada Bisnis Transportasi Ojek Online
Manajemen Resiko Penerapan Teknologi Pada Bisnis Transportasi Ojek Online
 
Generasi sistem operasi
Generasi sistem operasiGenerasi sistem operasi
Generasi sistem operasi
 
Context Free Grammar (CFG) Bagian 2 - Materi 7 - TBO
Context Free Grammar (CFG) Bagian 2 - Materi 7 - TBOContext Free Grammar (CFG) Bagian 2 - Materi 7 - TBO
Context Free Grammar (CFG) Bagian 2 - Materi 7 - TBO
 
Tugas RPL SRS Erwan
Tugas RPL SRS ErwanTugas RPL SRS Erwan
Tugas RPL SRS Erwan
 
Teori bahasa-dan-otomata
Teori bahasa-dan-otomataTeori bahasa-dan-otomata
Teori bahasa-dan-otomata
 
Pengertian mar (memory address register)
Pengertian mar (memory address register)Pengertian mar (memory address register)
Pengertian mar (memory address register)
 
Makalah Peranan Semaphore Sistem Operasi - Universitas Widyatama
Makalah Peranan Semaphore Sistem Operasi - Universitas WidyatamaMakalah Peranan Semaphore Sistem Operasi - Universitas Widyatama
Makalah Peranan Semaphore Sistem Operasi - Universitas Widyatama
 
Webinar PHP-ID: Mari Mengenal Logika Fuzzy (Fuzzy Logic)
Webinar PHP-ID: Mari Mengenal Logika Fuzzy (Fuzzy Logic)Webinar PHP-ID: Mari Mengenal Logika Fuzzy (Fuzzy Logic)
Webinar PHP-ID: Mari Mengenal Logika Fuzzy (Fuzzy Logic)
 
Deadlock pada sistem operasi
Deadlock pada sistem operasiDeadlock pada sistem operasi
Deadlock pada sistem operasi
 
Jenis dan proses interupsi
Jenis dan proses interupsiJenis dan proses interupsi
Jenis dan proses interupsi
 
Information Technology Infrastructure Library (ITIL)
Information Technology Infrastructure Library (ITIL)Information Technology Infrastructure Library (ITIL)
Information Technology Infrastructure Library (ITIL)
 
Algoritma brute force
Algoritma brute forceAlgoritma brute force
Algoritma brute force
 
BPMN
BPMNBPMN
BPMN
 
Presentasi model osi ( retno )
Presentasi model osi ( retno )Presentasi model osi ( retno )
Presentasi model osi ( retno )
 
Basis data 5
Basis data 5Basis data 5
Basis data 5
 
CFG dan PARSING - P 5 - Teknik Kompilasi
CFG dan PARSING - P 5 - Teknik KompilasiCFG dan PARSING - P 5 - Teknik Kompilasi
CFG dan PARSING - P 5 - Teknik Kompilasi
 
ERD Sistem Informasi Pemesanan Tiket Bioskop Online
ERD Sistem Informasi Pemesanan Tiket Bioskop OnlineERD Sistem Informasi Pemesanan Tiket Bioskop Online
ERD Sistem Informasi Pemesanan Tiket Bioskop Online
 
Korelasi dan regresi ppt
Korelasi dan regresi pptKorelasi dan regresi ppt
Korelasi dan regresi ppt
 

Similar to Fork

Linux Booting Process
Linux Booting ProcessLinux Booting Process
Linux Booting ProcessLusiana Diyan
 
Proses di Sistem Operasi
Proses di Sistem OperasiProses di Sistem Operasi
Proses di Sistem Operasieddie Ismantoe
 
Pertemuan14 linux booting proses
Pertemuan14   linux booting prosesPertemuan14   linux booting proses
Pertemuan14 linux booting prosesSyaiful Ahdan
 
Muhammad Arifin - Proses pada Sistem Operasi
Muhammad Arifin - Proses pada Sistem OperasiMuhammad Arifin - Proses pada Sistem Operasi
Muhammad Arifin - Proses pada Sistem Operasibelajarkomputer
 
Praktikum Sistem Operasi Linux (4A)
Praktikum Sistem Operasi Linux (4A)Praktikum Sistem Operasi Linux (4A)
Praktikum Sistem Operasi Linux (4A)Mirza Afrizal
 
Pertemuan5 proses dan manajemen proses - a- handout
Pertemuan5   proses dan manajemen proses - a- handoutPertemuan5   proses dan manajemen proses - a- handout
Pertemuan5 proses dan manajemen proses - a- handoutSyaiful Ahdan
 
Konsep proses dan penjadwalan
Konsep proses dan penjadwalanKonsep proses dan penjadwalan
Konsep proses dan penjadwalanDickdick Maulana
 
Anita dadi (sistem operasi)
Anita dadi (sistem operasi)Anita dadi (sistem operasi)
Anita dadi (sistem operasi)Anyta Pelophella
 
Manajemen proses by handini
Manajemen proses by handiniManajemen proses by handini
Manajemen proses by handiniHandini Handini
 
Novita Duri - Poses - proses Sistem Operasi
Novita Duri - Poses - proses Sistem OperasiNovita Duri - Poses - proses Sistem Operasi
Novita Duri - Poses - proses Sistem Operasibelajarkomputer
 
100perintahdasarlinux 130224233003-phpapp02
100perintahdasarlinux 130224233003-phpapp02100perintahdasarlinux 130224233003-phpapp02
100perintahdasarlinux 130224233003-phpapp02zieqie
 

Similar to Fork (20)

Praktikum 7
Praktikum 7Praktikum 7
Praktikum 7
 
Linux Booting Process
Linux Booting ProcessLinux Booting Process
Linux Booting Process
 
Proses di Sistem Operasi
Proses di Sistem OperasiProses di Sistem Operasi
Proses di Sistem Operasi
 
Pertemuan14 linux booting proses
Pertemuan14   linux booting prosesPertemuan14   linux booting proses
Pertemuan14 linux booting proses
 
Konsep sistem operasi
Konsep sistem operasiKonsep sistem operasi
Konsep sistem operasi
 
THREAD SO KELOMPOK 5.pptx
THREAD SO KELOMPOK 5.pptxTHREAD SO KELOMPOK 5.pptx
THREAD SO KELOMPOK 5.pptx
 
Manajemen proses
Manajemen prosesManajemen proses
Manajemen proses
 
Muhammad Arifin - Proses pada Sistem Operasi
Muhammad Arifin - Proses pada Sistem OperasiMuhammad Arifin - Proses pada Sistem Operasi
Muhammad Arifin - Proses pada Sistem Operasi
 
Praktikum Sistem Operasi Linux (4A)
Praktikum Sistem Operasi Linux (4A)Praktikum Sistem Operasi Linux (4A)
Praktikum Sistem Operasi Linux (4A)
 
Pertemuan5 proses dan manajemen proses - a- handout
Pertemuan5   proses dan manajemen proses - a- handoutPertemuan5   proses dan manajemen proses - a- handout
Pertemuan5 proses dan manajemen proses - a- handout
 
Modul SO : Proses
Modul SO : ProsesModul SO : Proses
Modul SO : Proses
 
1.pengenalan sistem operasi
1.pengenalan sistem operasi1.pengenalan sistem operasi
1.pengenalan sistem operasi
 
Konsep proses dan penjadwalan
Konsep proses dan penjadwalanKonsep proses dan penjadwalan
Konsep proses dan penjadwalan
 
Anita dadi (sistem operasi)
Anita dadi (sistem operasi)Anita dadi (sistem operasi)
Anita dadi (sistem operasi)
 
Dasar Sistem Operasi
Dasar Sistem OperasiDasar Sistem Operasi
Dasar Sistem Operasi
 
Manajemen proses by handini
Manajemen proses by handiniManajemen proses by handini
Manajemen proses by handini
 
Novita Duri - Poses - proses Sistem Operasi
Novita Duri - Poses - proses Sistem OperasiNovita Duri - Poses - proses Sistem Operasi
Novita Duri - Poses - proses Sistem Operasi
 
Tugas 2
Tugas 2Tugas 2
Tugas 2
 
Tugas 2
Tugas 2Tugas 2
Tugas 2
 
100perintahdasarlinux 130224233003-phpapp02
100perintahdasarlinux 130224233003-phpapp02100perintahdasarlinux 130224233003-phpapp02
100perintahdasarlinux 130224233003-phpapp02
 

More from Syaiful Ahdan

Sertifikat EC00202128391
 Sertifikat EC00202128391 Sertifikat EC00202128391
Sertifikat EC00202128391Syaiful Ahdan
 
SP2JPB - Aplikasi Sistem Pelayanan Pemesanan Jasa Perbaikan Pada Bengkel Alam...
SP2JPB - Aplikasi Sistem Pelayanan Pemesanan Jasa Perbaikan Pada Bengkel Alam...SP2JPB - Aplikasi Sistem Pelayanan Pemesanan Jasa Perbaikan Pada Bengkel Alam...
SP2JPB - Aplikasi Sistem Pelayanan Pemesanan Jasa Perbaikan Pada Bengkel Alam...Syaiful Ahdan
 
Sertifikat ec00202059774
Sertifikat ec00202059774Sertifikat ec00202059774
Sertifikat ec00202059774Syaiful Ahdan
 
Sertifikat ec00202059775
Sertifikat ec00202059775Sertifikat ec00202059775
Sertifikat ec00202059775Syaiful Ahdan
 
Sertifikat EC00202045078
Sertifikat EC00202045078Sertifikat EC00202045078
Sertifikat EC00202045078Syaiful Ahdan
 
Sertifikat EC00202044723
 Sertifikat EC00202044723 Sertifikat EC00202044723
Sertifikat EC00202044723Syaiful Ahdan
 
Sertifikat EC00202023523
Sertifikat EC00202023523Sertifikat EC00202023523
Sertifikat EC00202023523Syaiful Ahdan
 
Sertifikat EC00201826309
Sertifikat EC00201826309Sertifikat EC00201826309
Sertifikat EC00201826309Syaiful Ahdan
 
Sertifikat EC00202023149
Sertifikat EC00202023149Sertifikat EC00202023149
Sertifikat EC00202023149Syaiful Ahdan
 
Sertifikat EC00202022868
Sertifikat EC00202022868Sertifikat EC00202022868
Sertifikat EC00202022868Syaiful Ahdan
 
Sertifikat EC00202021343
Sertifikat EC00202021343Sertifikat EC00202021343
Sertifikat EC00202021343Syaiful Ahdan
 
Sertifikat EC00202022755
Sertifikat EC00202022755Sertifikat EC00202022755
Sertifikat EC00202022755Syaiful Ahdan
 
Sertifikat EC00201987196
Sertifikat EC00201987196Sertifikat EC00201987196
Sertifikat EC00201987196Syaiful Ahdan
 
Sertifikat EC00201856484
Sertifikat EC00201856484Sertifikat EC00201856484
Sertifikat EC00201856484Syaiful Ahdan
 
Sertifikat EC00201856352
Sertifikat EC00201856352Sertifikat EC00201856352
Sertifikat EC00201856352Syaiful Ahdan
 
Sertifikat EC00201856994
Sertifikat EC00201856994Sertifikat EC00201856994
Sertifikat EC00201856994Syaiful Ahdan
 
Sertifikat EC00201856895
Sertifikat EC00201856895Sertifikat EC00201856895
Sertifikat EC00201856895Syaiful Ahdan
 
Meeting 2 introdcution network administrator
Meeting 2   introdcution network administratorMeeting 2   introdcution network administrator
Meeting 2 introdcution network administratorSyaiful Ahdan
 

More from Syaiful Ahdan (20)

Sertifikat EC00202128391
 Sertifikat EC00202128391 Sertifikat EC00202128391
Sertifikat EC00202128391
 
SP2JPB - Aplikasi Sistem Pelayanan Pemesanan Jasa Perbaikan Pada Bengkel Alam...
SP2JPB - Aplikasi Sistem Pelayanan Pemesanan Jasa Perbaikan Pada Bengkel Alam...SP2JPB - Aplikasi Sistem Pelayanan Pemesanan Jasa Perbaikan Pada Bengkel Alam...
SP2JPB - Aplikasi Sistem Pelayanan Pemesanan Jasa Perbaikan Pada Bengkel Alam...
 
Sertifikat ec00202059774
Sertifikat ec00202059774Sertifikat ec00202059774
Sertifikat ec00202059774
 
Sertifikat ec00202059775
Sertifikat ec00202059775Sertifikat ec00202059775
Sertifikat ec00202059775
 
Sertifikat EC00202045078
Sertifikat EC00202045078Sertifikat EC00202045078
Sertifikat EC00202045078
 
Sertifikat EC00202044723
 Sertifikat EC00202044723 Sertifikat EC00202044723
Sertifikat EC00202044723
 
Sertifikat EC00202023523
Sertifikat EC00202023523Sertifikat EC00202023523
Sertifikat EC00202023523
 
Sertifikat EC00201826309
Sertifikat EC00201826309Sertifikat EC00201826309
Sertifikat EC00201826309
 
Sertifikat EC00202023149
Sertifikat EC00202023149Sertifikat EC00202023149
Sertifikat EC00202023149
 
Sertifikat EC00202022868
Sertifikat EC00202022868Sertifikat EC00202022868
Sertifikat EC00202022868
 
Sertifikat EC00202021343
Sertifikat EC00202021343Sertifikat EC00202021343
Sertifikat EC00202021343
 
Sertifikat EC00202022755
Sertifikat EC00202022755Sertifikat EC00202022755
Sertifikat EC00202022755
 
Sertifikat EC00201987196
Sertifikat EC00201987196Sertifikat EC00201987196
Sertifikat EC00201987196
 
Sertifikat EC00201856484
Sertifikat EC00201856484Sertifikat EC00201856484
Sertifikat EC00201856484
 
Sertifikat EC00201856352
Sertifikat EC00201856352Sertifikat EC00201856352
Sertifikat EC00201856352
 
Sertifikat EC00201856994
Sertifikat EC00201856994Sertifikat EC00201856994
Sertifikat EC00201856994
 
Sertifikat EC00201856895
Sertifikat EC00201856895Sertifikat EC00201856895
Sertifikat EC00201856895
 
Meeting 2 introdcution network administrator
Meeting 2   introdcution network administratorMeeting 2   introdcution network administrator
Meeting 2 introdcution network administrator
 
Pertemuan 5
Pertemuan 5Pertemuan 5
Pertemuan 5
 
Pertemuan 4
Pertemuan 4Pertemuan 4
Pertemuan 4
 

Recently uploaded

alat-alat liturgi dalam Gereja Katolik.pptx
alat-alat liturgi dalam Gereja Katolik.pptxalat-alat liturgi dalam Gereja Katolik.pptx
alat-alat liturgi dalam Gereja Katolik.pptxRioNahak1
 
MTK BAB 5 PENGOLAHAN DATA (Materi 2).pptx
MTK BAB 5 PENGOLAHAN DATA (Materi 2).pptxMTK BAB 5 PENGOLAHAN DATA (Materi 2).pptx
MTK BAB 5 PENGOLAHAN DATA (Materi 2).pptxssuser0239c1
 
Kelompok 1 Bimbingan Konseling Islami (Asas-Asas).pdf
Kelompok 1 Bimbingan Konseling Islami (Asas-Asas).pdfKelompok 1 Bimbingan Konseling Islami (Asas-Asas).pdf
Kelompok 1 Bimbingan Konseling Islami (Asas-Asas).pdfmaulanayazid
 
polinomial dan suku banyak kelas 11..ppt
polinomial dan suku banyak kelas 11..pptpolinomial dan suku banyak kelas 11..ppt
polinomial dan suku banyak kelas 11..pptGirl38
 
MA Kelas XII Bab 1 materi musik mkontemnporerFase F.pdf
MA Kelas XII  Bab 1 materi musik mkontemnporerFase F.pdfMA Kelas XII  Bab 1 materi musik mkontemnporerFase F.pdf
MA Kelas XII Bab 1 materi musik mkontemnporerFase F.pdfcicovendra
 
Materi power point Kepemimpinan leadership .ppt
Materi power point Kepemimpinan leadership .pptMateri power point Kepemimpinan leadership .ppt
Materi power point Kepemimpinan leadership .pptAcemediadotkoM1
 
Kelompok 2 Karakteristik Negara Nigeria.pdf
Kelompok 2 Karakteristik Negara Nigeria.pdfKelompok 2 Karakteristik Negara Nigeria.pdf
Kelompok 2 Karakteristik Negara Nigeria.pdftsaniasalftn18
 
SILABUS MATEMATIKA SMP kurikulum K13.docx
SILABUS MATEMATIKA SMP kurikulum K13.docxSILABUS MATEMATIKA SMP kurikulum K13.docx
SILABUS MATEMATIKA SMP kurikulum K13.docxrahmaamaw03
 
UNGGAH PEGANGAN LOKAKARYA DAN PENDAMPINGAN INDIVIDU DALAM KEGIATAN PEMBEKALAN...
UNGGAH PEGANGAN LOKAKARYA DAN PENDAMPINGAN INDIVIDU DALAM KEGIATAN PEMBEKALAN...UNGGAH PEGANGAN LOKAKARYA DAN PENDAMPINGAN INDIVIDU DALAM KEGIATAN PEMBEKALAN...
UNGGAH PEGANGAN LOKAKARYA DAN PENDAMPINGAN INDIVIDU DALAM KEGIATAN PEMBEKALAN...jumadsmanesi
 
Kelompok 1_Karakteristik negara jepang.pdf
Kelompok 1_Karakteristik negara jepang.pdfKelompok 1_Karakteristik negara jepang.pdf
Kelompok 1_Karakteristik negara jepang.pdfCloverash1
 
PRESENTASI PEMBELAJARAN IPA PGSD UT MODUL 2
PRESENTASI PEMBELAJARAN IPA PGSD UT MODUL 2PRESENTASI PEMBELAJARAN IPA PGSD UT MODUL 2
PRESENTASI PEMBELAJARAN IPA PGSD UT MODUL 2noviamaiyanti
 
Wawasan Nusantara sebagai satu kesatuan, politik, ekonomi, sosial, budaya, d...
Wawasan Nusantara  sebagai satu kesatuan, politik, ekonomi, sosial, budaya, d...Wawasan Nusantara  sebagai satu kesatuan, politik, ekonomi, sosial, budaya, d...
Wawasan Nusantara sebagai satu kesatuan, politik, ekonomi, sosial, budaya, d...MarwanAnugrah
 
PPT TEKS TANGGAPAN KELAS 7 KURIKUKULM MERDEKA
PPT TEKS TANGGAPAN KELAS 7 KURIKUKULM MERDEKAPPT TEKS TANGGAPAN KELAS 7 KURIKUKULM MERDEKA
PPT TEKS TANGGAPAN KELAS 7 KURIKUKULM MERDEKARenoMardhatillahS
 
Materi Pertemuan 6 Materi Pertemuan 6.pptx
Materi Pertemuan 6 Materi Pertemuan 6.pptxMateri Pertemuan 6 Materi Pertemuan 6.pptx
Materi Pertemuan 6 Materi Pertemuan 6.pptxRezaWahyuni6
 
Topik 1 - Pengenalan Penghayatan Etika dan Peradaban Acuan Malaysia.pptx
Topik 1 - Pengenalan Penghayatan Etika dan Peradaban Acuan Malaysia.pptxTopik 1 - Pengenalan Penghayatan Etika dan Peradaban Acuan Malaysia.pptx
Topik 1 - Pengenalan Penghayatan Etika dan Peradaban Acuan Malaysia.pptxsyafnasir
 
Modul Ajar Bahasa Indonesia - Menulis Puisi Spontanitas - Fase D.docx
Modul Ajar Bahasa Indonesia - Menulis Puisi Spontanitas - Fase D.docxModul Ajar Bahasa Indonesia - Menulis Puisi Spontanitas - Fase D.docx
Modul Ajar Bahasa Indonesia - Menulis Puisi Spontanitas - Fase D.docxherisriwahyuni
 
aksi nyata pendidikan inklusif.pelatihan mandiri pmm
aksi nyata pendidikan inklusif.pelatihan mandiri pmmaksi nyata pendidikan inklusif.pelatihan mandiri pmm
aksi nyata pendidikan inklusif.pelatihan mandiri pmmeunikekambe10
 
Pembahasan Soal UKOM gerontik persiapan ukomnas
Pembahasan Soal UKOM gerontik persiapan ukomnasPembahasan Soal UKOM gerontik persiapan ukomnas
Pembahasan Soal UKOM gerontik persiapan ukomnasAZakariaAmien1
 
Pertemuan 3-bioavailabilitas-dan-bioekivalensi.ppt
Pertemuan 3-bioavailabilitas-dan-bioekivalensi.pptPertemuan 3-bioavailabilitas-dan-bioekivalensi.ppt
Pertemuan 3-bioavailabilitas-dan-bioekivalensi.pptNabilahKhairunnisa6
 
PEMIKIRAN POLITIK Jean Jacques Rousseau.pdf
PEMIKIRAN POLITIK Jean Jacques  Rousseau.pdfPEMIKIRAN POLITIK Jean Jacques  Rousseau.pdf
PEMIKIRAN POLITIK Jean Jacques Rousseau.pdfMMeizaFachri
 

Recently uploaded (20)

alat-alat liturgi dalam Gereja Katolik.pptx
alat-alat liturgi dalam Gereja Katolik.pptxalat-alat liturgi dalam Gereja Katolik.pptx
alat-alat liturgi dalam Gereja Katolik.pptx
 
MTK BAB 5 PENGOLAHAN DATA (Materi 2).pptx
MTK BAB 5 PENGOLAHAN DATA (Materi 2).pptxMTK BAB 5 PENGOLAHAN DATA (Materi 2).pptx
MTK BAB 5 PENGOLAHAN DATA (Materi 2).pptx
 
Kelompok 1 Bimbingan Konseling Islami (Asas-Asas).pdf
Kelompok 1 Bimbingan Konseling Islami (Asas-Asas).pdfKelompok 1 Bimbingan Konseling Islami (Asas-Asas).pdf
Kelompok 1 Bimbingan Konseling Islami (Asas-Asas).pdf
 
polinomial dan suku banyak kelas 11..ppt
polinomial dan suku banyak kelas 11..pptpolinomial dan suku banyak kelas 11..ppt
polinomial dan suku banyak kelas 11..ppt
 
MA Kelas XII Bab 1 materi musik mkontemnporerFase F.pdf
MA Kelas XII  Bab 1 materi musik mkontemnporerFase F.pdfMA Kelas XII  Bab 1 materi musik mkontemnporerFase F.pdf
MA Kelas XII Bab 1 materi musik mkontemnporerFase F.pdf
 
Materi power point Kepemimpinan leadership .ppt
Materi power point Kepemimpinan leadership .pptMateri power point Kepemimpinan leadership .ppt
Materi power point Kepemimpinan leadership .ppt
 
Kelompok 2 Karakteristik Negara Nigeria.pdf
Kelompok 2 Karakteristik Negara Nigeria.pdfKelompok 2 Karakteristik Negara Nigeria.pdf
Kelompok 2 Karakteristik Negara Nigeria.pdf
 
SILABUS MATEMATIKA SMP kurikulum K13.docx
SILABUS MATEMATIKA SMP kurikulum K13.docxSILABUS MATEMATIKA SMP kurikulum K13.docx
SILABUS MATEMATIKA SMP kurikulum K13.docx
 
UNGGAH PEGANGAN LOKAKARYA DAN PENDAMPINGAN INDIVIDU DALAM KEGIATAN PEMBEKALAN...
UNGGAH PEGANGAN LOKAKARYA DAN PENDAMPINGAN INDIVIDU DALAM KEGIATAN PEMBEKALAN...UNGGAH PEGANGAN LOKAKARYA DAN PENDAMPINGAN INDIVIDU DALAM KEGIATAN PEMBEKALAN...
UNGGAH PEGANGAN LOKAKARYA DAN PENDAMPINGAN INDIVIDU DALAM KEGIATAN PEMBEKALAN...
 
Kelompok 1_Karakteristik negara jepang.pdf
Kelompok 1_Karakteristik negara jepang.pdfKelompok 1_Karakteristik negara jepang.pdf
Kelompok 1_Karakteristik negara jepang.pdf
 
PRESENTASI PEMBELAJARAN IPA PGSD UT MODUL 2
PRESENTASI PEMBELAJARAN IPA PGSD UT MODUL 2PRESENTASI PEMBELAJARAN IPA PGSD UT MODUL 2
PRESENTASI PEMBELAJARAN IPA PGSD UT MODUL 2
 
Wawasan Nusantara sebagai satu kesatuan, politik, ekonomi, sosial, budaya, d...
Wawasan Nusantara  sebagai satu kesatuan, politik, ekonomi, sosial, budaya, d...Wawasan Nusantara  sebagai satu kesatuan, politik, ekonomi, sosial, budaya, d...
Wawasan Nusantara sebagai satu kesatuan, politik, ekonomi, sosial, budaya, d...
 
PPT TEKS TANGGAPAN KELAS 7 KURIKUKULM MERDEKA
PPT TEKS TANGGAPAN KELAS 7 KURIKUKULM MERDEKAPPT TEKS TANGGAPAN KELAS 7 KURIKUKULM MERDEKA
PPT TEKS TANGGAPAN KELAS 7 KURIKUKULM MERDEKA
 
Materi Pertemuan 6 Materi Pertemuan 6.pptx
Materi Pertemuan 6 Materi Pertemuan 6.pptxMateri Pertemuan 6 Materi Pertemuan 6.pptx
Materi Pertemuan 6 Materi Pertemuan 6.pptx
 
Topik 1 - Pengenalan Penghayatan Etika dan Peradaban Acuan Malaysia.pptx
Topik 1 - Pengenalan Penghayatan Etika dan Peradaban Acuan Malaysia.pptxTopik 1 - Pengenalan Penghayatan Etika dan Peradaban Acuan Malaysia.pptx
Topik 1 - Pengenalan Penghayatan Etika dan Peradaban Acuan Malaysia.pptx
 
Modul Ajar Bahasa Indonesia - Menulis Puisi Spontanitas - Fase D.docx
Modul Ajar Bahasa Indonesia - Menulis Puisi Spontanitas - Fase D.docxModul Ajar Bahasa Indonesia - Menulis Puisi Spontanitas - Fase D.docx
Modul Ajar Bahasa Indonesia - Menulis Puisi Spontanitas - Fase D.docx
 
aksi nyata pendidikan inklusif.pelatihan mandiri pmm
aksi nyata pendidikan inklusif.pelatihan mandiri pmmaksi nyata pendidikan inklusif.pelatihan mandiri pmm
aksi nyata pendidikan inklusif.pelatihan mandiri pmm
 
Pembahasan Soal UKOM gerontik persiapan ukomnas
Pembahasan Soal UKOM gerontik persiapan ukomnasPembahasan Soal UKOM gerontik persiapan ukomnas
Pembahasan Soal UKOM gerontik persiapan ukomnas
 
Pertemuan 3-bioavailabilitas-dan-bioekivalensi.ppt
Pertemuan 3-bioavailabilitas-dan-bioekivalensi.pptPertemuan 3-bioavailabilitas-dan-bioekivalensi.ppt
Pertemuan 3-bioavailabilitas-dan-bioekivalensi.ppt
 
PEMIKIRAN POLITIK Jean Jacques Rousseau.pdf
PEMIKIRAN POLITIK Jean Jacques  Rousseau.pdfPEMIKIRAN POLITIK Jean Jacques  Rousseau.pdf
PEMIKIRAN POLITIK Jean Jacques Rousseau.pdf
 

Fork

  • 1. 97 Praktikum 7 Unix System Call dan Manajemen Memory POKOK BAHASAN: ü UNIX System Call ü Manajemen Memory TUJUAN BELAJAR: Setelah mempelajari materi dalam bab ini, mahasiswa diharapkan mampu: ü Menggunakan system call fork, wait dan execl pada Linux. ü Menggunakan perintah-perintah untuk manajemen memory. DASAR TEORI: 1 UNIX SYSTEM CALL Pada praktikum ini akan dilakukan percobaan menggunakan system call yang berhubungan dengan proses pada system operasi UNIX yang biasa disebut UNIX System Call, yaitu system call fork, execl dan wait. Pada percobaan yang dilakukan akan dibuat program yang didalamnya terdapat fungsi system call. Untuk menjalankannya pada Linux gunakan g++.
  • 2. PRAKTIKUM 7 UNIX SYSTEM CALL DAN MANAJEMEN MEMORY 98 System Call Fork System call fork adalah suatu system call yang membuat suatu proses baru pada system operasi UNIX. Pada percobaan ini menggunakan mesin Linux dan beberapa program yang berisi system call fork(). Bila suatu program berisi sebuah fungsi fork(), eksekusi dari program menghasilkan eksekusi dua proses. Satu proses dibuat untuk memulai eksekusi program. Bila system call fork() dieksekusi, proses lain dibuat. Proses asal disebut proses parend dan proses kedua disebut proses child. Proses child merupakan duplikat dari proses parent. Kedua proses melanjutkan eksekusi dari titik dimana system call fork() menghasilkan eksekusi pada program utama. Karena UNIX adalah system operasi time sharing, dua proses tersebut dapat mengeksekusi secara konkuren. Nilai yang dihasilkan oleh fork() disimpan dalam variable bertipe pid_t, yang berupa nilai integer. Karena nilai dari variable ini tidak digunakan, maka hasil fork() dapat diabaikan. • Untuk kill proses gunakan Ctrl+C. • Untuk dokumentasi fork() dapat dilihat dengan ketikkan man 2 fork. • Untuk melihat id dari proses, gunakan system call getpid() • Untuk melihat dokumentasi dari getpid(), ketikkan man 2 getpid Perbedaan antara proses parent dan proses child adalah • Mempunyai pid yang berbeda • Pada proses parent, fork() menghasilkan pid dari proses child jika sebuah proses child dibuat. • Pada proses child, fork() selalu menghasilkan 0 • Membedakan copy dari semua data, termasuk variable dengan current value dan stack • Membedakan program counter (PC) yang menunjukkan eksekusi berikutnya meskipun awalnya keduanya mempunyai nilai yang sama tetapi setelah itu berbeda. • Setelah fork, kedua proses tersebut tidak menggunakan variable bersama.
  • 3. PRAKTIKUM 7 UNIX SYSTEM CALL DAN MANAJEMEN MEMORY 99 System call fork menghasilkan : • Pid proses child yang baru ke proses parent, hal ini sama dengan memberitahukan proses parent nama dari child-nya • 0 : menunjukkan proses child • -1 : 1 jika terjadi error, fork() gagal karena proses baru tidak dapat dibuat. System Call Wait System call wait menyebabkan proses menunggu sinyal (menunggu sampai sembarang tipe sinyal diterima dari sembarang proses). Biasanya digunakanoleh proses parent untuk menunggu sinyal dari system operasi ke parent bila child diterminasi. System call wait menghasilkan pid dari proses yang mengirimi sinyal. Untuk melihat dokumentasi wait gunakan perintah man 2 wait. System Call Execl Misalnya kita ingin proses baru mengerjakan sesuatu yang berbeda dari proses parent, sebutlah menjalankan program yang berbeda. Sistem call execl meletakkan program executable baru ke memory dan mengasosiasikannya dengan proses saat itu. Dengan kata lain, mengubah segala sesuatunya sehingga program mulai mengeksekusi dari file yang berbeda. 2 MANAJEMEN MEMORY Linux mengimplementasikan sistem virtual memory demand-paged. Proses mempunyai besar memory virtual yang besar (4 gigabyte). Pada virtual memory dilakukan transfer page antara disk dan memory fisik. Jika tidak terdapat cukup memory fisik, kernel melakukan swapping beberapa page lama ke disk. Disk drive adalah perangkat mekanik yang membaca dan menulis ke disk yang lebih lambat dibandingkan mengakses memory fisik. Jika memory total page lebih dari memory fisik yang tersedia, kernel lebih banyak melakukan swapping dibandingkan eksekusi kode program, sehingga terjadi thrashing dan mengurangi utilitas.
  • 4. PRAKTIKUM 7 UNIX SYSTEM CALL DAN MANAJEMEN MEMORY 100 Jika memory fisik ekstra tidak digunakan, kernel meletakkan kode program sebagai disk buffer cache. Disk buffer menyimpan data disk yang diakses di memory; jika data yang sama dibutuhkan lagi dapat dengan cepat diambil dari cache. Pertama kali sistem melakukan booting, ROM BIOS membentuk memory test seperti terlihat berikut : ROM BIOS (C) 1990 008192 KB OK WAIT...... Kemudian informasi penting ditampilkan selama proses booting pada linux seperti terlihat berikut : Memory: 7100k/8192k available (464k kernel code, 384k reserved, 244k data) ... Adding Swap: 19464k swap-space Informasi diatas menampilkan jumlah RAM tersedia setelah kernel di-load ke memory (dalam hal ini 7100K dari 8192K). Jika ingin melihat pesan saat booting kernel yang terlalu cepat dibaca dapat dilihat kembali dengan perintah dmesg. Setiap Linux dijalankan, perintah free digunakan untuk menampilkan total memory yang tersedia. Atau menggunakan cat /proc/meminfo. Memory fisik dan ruang swap ditampilkan disini. Contoh output pada sistem : total used free shared buffers Mem: 7096 5216 1880 2328 2800 Swap: 19464 0 19464 Informasi ditampilkan dalam kilobyte (1024 byte). Memory ”total” adalah jumlah tersedia setelah load kernel. Memory digunakan untuk proses atau disk bufferring sebagai “used”. Memory yang sedang tidak digunakan ditampilkan pada kolom “free”. Memory total sama dengan jumlah kolom ”used” dan ”free”. Memory diindikasikan “shared” yaitu berapa banyak memory yang digunakan lebih dari satu proses. Program seperti shell mempunyai lebih dari satu proses yang berjalan. Kode executable read-only dan dapat disharing oleh semua proses yang berjalan pada shell. Kolom “buffers” menampilkan berapa banyak memory digunakan untuk disk buffering.
  • 5. PRAKTIKUM 7 UNIX SYSTEM CALL DAN MANAJEMEN MEMORY 101 Perintah free juga menunjukkan dengan jelas bagaimana swap space dilakukan dan berpa banyak swapping yang terjadi. Percobaan berikut untuk mengetahui manajemen memory : 1. Pada saat bootup, dengan satu user log in, dengan perintah free sistem melaporkan berikut : total used free shared buffers cached Mem: 247184 145772 101412 0 10872 57564 -/+ buffers/cache: 77336 169848 Swap: 522072 0 522072 Terdapat free memory (4.4MB) dan sedikit disk buffer (1.1MB). 2. Situasi berubah setelah menjalankan perintah yang membaca data dari disk (command ls –lR /.) total used free shared buffers cached Mem: 247184 230604 16580 0 45260 59748 -/+ buffers/cache: 125596 121588 Swap: 522072 308 522072 Disk buffer bertambah menjadi 2 MB. Hal ini berakibat pula pada kolom ”used” dan memory ”free” juga berkurang. Perintah top dan ps -u juga sangat berguna untuk menunjukkan bagaimana penggunaan memory berubah secara dinamis dan bagaimana proses individu menggunakan memory. Contoh tampilannya : USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND student 4581 0.0 0.3 4316 856 pts/0 S 10:25 0:00 bash student 4699 0.0 0.2 2604 656 pts/0 R 10.39 0:00 ps -u
  • 6. PRAKTIKUM 7 UNIX SYSTEM CALL DAN MANAJEMEN MEMORY 102 TUGAS PENDAHULUAN: Jawablah pertanyaan-pertanyaan berikut ini : 1. Apa yang dimaksud dengan system call ? 2. Apa yang dimaksud dengan sistem call fork(), execl() dan wait(). Jawablah dengan menggunakan perintah man (contoh : man 2 fork, man 2 execl dan man 2 wait) ? 3. Apa yang dimaksud sistem virtual memory, proses swapping dan buffer cache pada manajemen memory ? 4. Apa yang dimaksud perintah free dan cat /proc/meminfo ? 5. Apa yang dimaksud perintah ps ? PERCOBAAN: 1. Login sebagai user. 2. Bukalah Console Terminal dan lakukan percobaan-percobaan di bawah ini kemudian analisa hasil percobaan. 3. Selesaikan soal-soal latihan.
  • 7. PRAKTIKUM 7 UNIX SYSTEM CALL DAN MANAJEMEN MEMORY 103 Percobaan 1 :Melihat proses parent dan proses child 1. Dengan menggunakan editor vi, buatlah file fork1.cpp dan ketikkan program berikut : 2. Gunakan g++ compiler untuk menjalankan program diatas $ g++ -o fork1 fork1.cpp $ ./fork1 3. Amati output yang dihasilkan Percobaan 2 : Membuat dua proses terus menerus dengan sebuah system call fork() 1. Dengan menggunakan editor vi, buatlah file fork2.cpp dan ketikkan program berikut : #include <iostream> using namespace std; #include <sys/types.h> #include <unistd.h> /* getpid() adalah system call yg dideklarasikan pada unistd.h. Menghasilkan suatu nilai dengan type pid_t. pid_t adalah type khusus untuk process id yg ekuivalen dg int */ int main(void) { pid_t mypid; uid_t myuid; for (int i = 0; i < 3; i++) { mypid = getpid(); cout << "I am process " << mypid << endl; cout << "My parent is process " << getppid() << endl; cout << "The owner of this process has uid " << getuid() << endl; /* sleep adalah system call atau fungsi library yang menghentikan proses ini dalam detik */ sleep(1); } return 0; }
  • 8. PRAKTIKUM 7 UNIX SYSTEM CALL DAN MANAJEMEN MEMORY 104 2. Gunakan g++ compiler untuk menjalankan program diatas. Pada saat dijalankan, program tidak akan pernah berhenti. Untuk menghentikan program tekan Ctrl+C. $ g++ -o fork2 fork2.cpp $ ./fork2 3. Amati output yang dihasilkan Percobaan 3 : Membuat dua proses sebanyak lima kali 1. Dengan menggunakan editor vi, buatlah file fork3.cpp dan ketikkan program berikut : #include <iostream> using namespace std; #include <sys/types.h> #include <unistd.h> /* getpid() dan fork() adalah system call yg dideklarasikan pada unistd.h. Menghasilkan suatu nilai dengan type pid_t. pid_t adalah type khusus untuk process id yg ekuivalen dg int */ int main(void) { pid_t childpid; int x = 5; childpid = fork(); while (1) { cout << "This is process " << getpid() << endl; cout << "x is " << x << endl; sleep(1); x++; } return 0; } #include <iostream> using namespace std; #include <sys/types.h> #include <unistd.h>
  • 9. PRAKTIKUM 7 UNIX SYSTEM CALL DAN MANAJEMEN MEMORY 105 2. Gunakan g++ compiler untuk menjalankan program diatas $ g++ -o fork3 fork3.cpp $ ./fork3 3. Amati output yang dihasilkan Percobaan 4 : Proses parent menunggu sinyal dari proses child dengan system call wait 1. Dengan menggunakan editor vi, buatlah file fork4.cpp dan ketikkan program berikut : /* getpid() dan fork() adalah system call yg dideklarasikan pada unistd.h. Menghasilkan suatu nilai dengan type pid_t. pid_t adalah type khusus untuk process id yg ekuivalen dg int */ int main(void) { pid_t childpid; childpid = fork(); for (int i = 0; i < 5; i++) { cout << "This is process " << getpid() << endl; sleep(2); } return 0; } #include <iostream> using namespace std; #include <sys/types.h> #include <unistd.h> #include <sys/wait.h> /* pid_t fork() dideklarasikan pada unistd.h. pid_t adalah type khusus untuk process id yg ekuivalen dg int */
  • 10. PRAKTIKUM 7 UNIX SYSTEM CALL DAN MANAJEMEN MEMORY 106 2. Gunakan g++ compiler untuk menjalankan program diatas $ g++ -o fork4 fork4.cpp $ ./fork4 int main(void) { pid_t child_pid; int status; pid_t wait_result; child_pid = fork(); if (child_pid == 0) { /* kode ini hanya dieksekusi proses child */ cout << "I am a child and my pid = " << getpid() << endl; cout << "My parent is " << getppid() << endl; /* keluar if akan menghentikan hanya proses child */ } else if (child_pid > 0) { /* kode ini hanya mengeksekusi proses parent */ cout << "I am the parent and my pid = " << getpid() << endl; cout << "My child has pid = " << child_pid << endl; } else { cout << "The fork system call failed to create a new process" << endl; exit(1); } /* kode ini dieksekusi baik oleh proses parent dan child */ cout << "I am a happy, healthy process and my pid = " << getpid() << endl; if (child_pid == 0) { /* kode ini hanya dieksekusi oleh proses child */ cout << "I am a child and I am quitting work now!" << endl; } else { /* kode ini hanya dieksekusi oleh proses parent */ cout << "I am a parent and I am going to wait for my child" << endl; do { /* parent menunggu sinyal SIGCHLD mengirim tanda bahwa proses child diterminasi */ wait_result = wait(&status); } while (wait_result != child_pid); cout << "I am a parent and I am quitting." << endl; } return 0; }
  • 11. PRAKTIKUM 7 UNIX SYSTEM CALL DAN MANAJEMEN MEMORY 107 3. Amati output yang dihasilkan Percobaan 5 : System call fork/exec dan wait mengeksekusi program bernama ls, menggunakan file executable /bin/ls dengan satu parameter –l yang ekuivalen dengan ls –l 1. Dengan menggunakan editor vi, buatlah file fork5.cpp dan ketikkanprogram berikut : #include <iostream> using namespace std; #include <sys/types.h> #include <unistd.h> #include <sys/wait.h> /* pid_t fork() dideklarasikan pada unistd.h. pid_t adalah type khusus untuk process id yg ekuivalen dg int */ int main(void) { pid_t child_pid; int status; pid_t wait_result; child_pid = fork(); if (child_pid == 0) { /* kode ini hanya dieksekusi proses child */ cout << "I am a child and my pid = " << getpid() << endl; execl("/bin/ls", "ls", "-l", "/home", NULL); /* jika execl berhasil kode ini tidak pernah digunakan */ cout << "Could not execl file /bin/ls" << endl; exit(1); /* exit menghentikan hanya proses child */ } else if (child_pid > 0) { /* kode ini hanya mengeksekusi proses parent */ cout << "I am the parent and my pid = " << getpid() << endl; cout << "My child has pid = " << child_pid << endl; } else { cout << "The fork system call failed to create a new process" << endl; exit(1); }
  • 12. PRAKTIKUM 7 UNIX SYSTEM CALL DAN MANAJEMEN MEMORY 108 2. Gunakan g++ compiler untuk menjalankan program diatas $ g++ -o fork5 fork5.cpp $ ./fork5 3. Amati output yang dihasilkan Percobaan 6 : System call fork/exec dan wait mengeksekusi program lain 1. Dengan menggunakan editor vi, buatlah file fork6.cpp dan ketikkan program berikut : /* kode ini hanya dieksekusi oleh proses parent karena child mengeksekusi dari “/bin/ls” atau keluar */ cout << "I am a happy, healthy process and my pid = " << getpid() << endl; if (child_pid == 0) { /* kode ini tidak pernah dieksekusi */ printf("This code will never be executed!n"); } else { /* kode ini hanya dieksekusi oleh proses parent */ cout << "I am a parent and I am going to wait for my child" << endl; do { /* parent menunggu sinyal SIGCHLD mengirim tanda bila proses child diterminasi */ wait_result = wait(&status); } while (wait_result != child_pid); cout << "I am a parent and I am quitting." << endl; } return 0; } #include <iostream> using namespace std; #include <sys/types.h> #include <unistd.h> #include <sys/wait.h> /* pid_t fork() dideklarasikan pada unistd.h. pid_t adalah type khusus untuk process id yg ekuivalen dg int */
  • 13. PRAKTIKUM 7 UNIX SYSTEM CALL DAN MANAJEMEN MEMORY 109 int main(void) { pid_t child_pid; int status; pid_t wait_result; child_pid = fork(); if (child_pid == 0) { /* kode ini hanya dieksekusi proses child */ cout << "I am a child and my pid = " << getpid() << endl; execl("fork3", "goose", NULL); /* jika execl berhasil kode ini tidak pernah digunakan */ cout << "Could not execl file fork3" << endl; exit(1); /* exit menghentikan hanya proses child */ } else if (child_pid > 0) { /* kode ini hanya mengeksekusi proses parent */ cout << "I am the parent and my pid = " << getpid() << endl; cout << "My child has pid = " << child_pid << endl; } else { cout << "The fork system call failed to create a new process" << endl; exit(1); } /* kode ini hanya dieksekusi oleh proses parent karena child mengeksekusi dari “fork3” atau keluar */ cout << "I am a happy, healthy process and my pid = " << getpid() << endl; if (child_pid == 0) { /* kode ini tidak pernah dieksekusi */ printf("This code will never be executed!n"); } else { /* kode ini hanya dieksekusi oleh proses parent */ cout << "I am a parent and I am going to wait for my child" << endl; do { /* parent menunggu sinyal SIGCHLD mengirim tanda bila proses child diterminasi */ wait_result = wait(&status); } while (wait_result != child_pid); cout << "I am a parent and I am quitting." << endl; } return 0; }
  • 14. PRAKTIKUM 7 UNIX SYSTEM CALL DAN MANAJEMEN MEMORY 110 2. Gunakan g++ compiler untuk menjalankan program diatas $ g++ -o fork6 fork6.cpp $ ./fork6 3. Amati output yang dihasilkan Percobaan 7 : Melihat Manajemen Memory 1. Perhatikan dengan perintah dmesg jumlah memory tersedia dan proses swapping $ dmesg | more 2. Dengan perintah free perhatikan jumlah memory ”free”, ”used”, “share” dan “buffer” . $ free 3. Dengan perintah dibawah ini apakah hasilnya sama dengan no 2 ? $ cat /proc/meminfo 4. Gunakan perintah dibawah ini $ ls –lR /. 5. Perhatikan perubahan manajemen memory $ free 6. Jalankan sebuah program, misalnya open Office. Perhatikan perubahan manajemen memory $ free 7. Dengan perintah ps bagaimana penggunaan memory untuk setiap proses diatas ? $ ps -uax
  • 15. PRAKTIKUM 7 UNIX SYSTEM CALL DAN MANAJEMEN MEMORY 111 LATIHAN: 1. Ubahlah program fork5.cpp pada percobaan 5 untuk mengeksekusi perintah yang ekuivalen dengan a. ls –al /etc. b. cat fork2 c. ./fork2 2. Informasi apa saja mengenai manajemen memory yang ditampilkan pada perintah dmesg pada percobaan Anda ? 3. Bagaimana informasi yang ditampilkan dengan perintah free pada percobaan Anda ? 4. Apa isi file /proc/meminfo pada percobaan yang Anda lakukan ? 5. Berapa besar memory yang digunakan setelah percobaan 7 dengan perintah ps – uax ? 6. Lakukan hal yang sama dengan percobaan 7 untuk melihat perubahan memory setelah dilakukan beberapa proses pada shell. Tentukan perintah yang dilakukan misalnya membuka browser dan perhatikan hal-hal berikut : a. Informasi apa saja yang ditampilkan dengan perintah free ? b. Informasi apa saja yang disimpan file /proc/meminfo ? c. Berapa besar kapasitas memory total ? d. Berapa kapasitas memory yang sudah terpakai ? e. Berapa kapasitas memory yang belum terpakai ? f. Berapa kapasitas memory yang digunakan sharing beberapa proses ? g. Berapa kapasitas buffer cache ? LAPORAN RESMI: 1. Analisa hasil percobaan yang Anda lakukan. 2. Kerjakan latihan diatas dan analisa hasil tampilannya. 3. Berikan kesimpulan dari praktikum ini.