PRAKTIKUM 7 - UNIX SYSTEM CALL DAN MANAJEMEN MEMORY

 LAPORAN PRAKTIKUM 7

UNIX SYSTEM CALL DAN MANAJEMEN MEMORY




Putri Apriliani Hafidah     (1903421014)
BM 5B



BROADBAND MULTIMEDIA

TEKNIK ELEKTRO

POLITEKNIK NEGERI JAKARTA

TAHUN AJARAN 2021/2022



I.                   Pokok Bahasan

ü  Unix System Call

ü  Manajemen Memory

 

II.                Tujuan Praktikum

Adapun tujuan dalam Praktikum ini, sebagai berikut :

1.      Menggunakan system call fork, wait, dan exel pada Linux

2.      Menggunakan perintah-perintah untuk manajemen memory

 

III.             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, excel dan wait.  Pada percobaan yang dilakukan akan dibuat program yang didalamnya terdapat fungsi system call. Untuk menjalankannya pada Linux gunakan g++

v  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 ketikan man 2 fork

·         Untuk terlihat 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 teta pi setelah itu berbeda.

·      Setelah fork, kedua proses tersebut tidak menggunakan variable bersama.

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.

v  System Call Wait

System call wait menyebabkan proses menunggu sinyal (menunggu sampai sembarang tipe sinyal diterima dari sembarang proses). Biasanya digunakan oleh 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.

v  System Call Excel

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.

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.

 

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:

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 /.)

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 :



 

IV.             Langkah-langkah Praktikum

1.      Login sebagai user

2.  Bukalah Console Terminal dan lakukan percobaan-percobaan yang sudah ada dalam jobsheet

3.      Selesaikan soal-soal latihan

 

V.                Tugas Pendahuluan

Jawablah pertanyaan-pertanyaan berikut ini :

1.      Apa yang dimaksud dengan system call?

Jawab : System call merupakan penyedia antarmuka dari pelayanan-pelayanan yang tersediadengan system operasi. Umumnya system call mnggunakan bahasa C dan C++, meskipuntugas-tugas seperti hardware yang harus diakses langsung, maka menggunakan bahasaassembly

2.      Apa yang dimaksud dengan system call fork(), excel() dan wait(). Jawablah dengan menggunakan perintah man (Contoh :  man 2 fork man 2 excel dan man 2 wait)?

Jawab : Sistem call fork adalah suatu sistem call yang membuat suatu proses baru pada sistem operasi UNIX. Nilai yang dihasilkan fork() disimpan dalam variabel bertipe pid_t, yang berupa nilai integer, karena tidak digunakan, maka hasil fork() dapat diabaikan. Sistem call execl() adalah suatu sistem call yang meletakkan program executable baru ke memori dan mengasosiasikannya dengan proses saat itu. Sistem call wait() adalah suatu sistem call yang menyebabkan proses menunggu sinyal (menunggu sampai sembarang tipe sinyal dari sembarang proses). Biasanya digunakan oleh proses parent untuk menunggu sinyal dari sistem operasi ke parent bila child diterminasi.

3.      Apa yang dimaksud sistem virtual memory, proses swapping dan buffer cache pada manajemen memory?

Jawab :

·         Virtual memory adalah suatu teknik memisahkan antara memori logis dan memorifisiknya. Memori logis merupakan kumpulan keseluruhan halaman dari suatu program.Tanpa memori virtual, memori logis akan langsung dibawa ke memori fisik (memoriutama). Disinilah memeori virtual melakukan pemisahan dengan menaruh memori logiske secondary storage (disk sekunder) dan hanya membawa halaman yang diperlukan kememori utama (memori fisik).

·         Swapping adalah manajemen memori dengan pemindahanproses antara memori utama dan disk selama eksekusi.

·         Buffer cache dapat dianggapsebagai sumber daya memori, terutama sumber daya I/O karena penggunaanya dalammediasi transfer

4.      Apa yang dimaksud perintah free dan cat /proc/meminfo?

Jawab : Free digunakan untuk mengetahui total memori yang digunakan dalam proses. Dalamperintah free ditampilkan total kapasitas memori, memori yang terpakai, yang tidaksedang dipakai, yang dibagi, buffer, cache dan juga swap. Cat /proc/meminfo digunakanuntuk mengetahui isi dari meminfo kemudian ditampilkan.

5.      Apa yang dimaksud perintah ps?

Jawab : Perintah ps digunakan untuk menampilkan informasi proses yang sedang berjalan termasuk nomor PID dari proses tersebut.


VI.                   PERCOBAAN

Percobaan 1 : Melihat proses parent dan proses child

1.      Dengan menggunakan editor vi, buatlah file fork1.cpp dan ketikkan program berikut:

Hasil : 


2.      Gunakan g++ compiler untuk menjalankan program di atas

$ g++ -o fork fork 1.cpp

./fork 1

Hasil : 


3.      Amati output yang dihasilkan

Analisa : Program di atas adalah program yang bertujuan untuk melihat proses parent dan proses child. Salah satu caranya yaitu dengan melihat PID (Process Identifier) dan PPID (Parent Process Identifier) dari proses. Untuk mendapatkan nilai PID dan PPID dapat dilakukan dengan fungsi getpid() dan getppid() yang dideklarasikan pada unistd.h. kedua fungsi tersebut akan mengembalikan nilai bertipe pid_t yang merupakan sebuah signed integer yang menunjukkan PID. Dapat dilihat dengan menggunakan perintah ps bahwa proses ./fork1 memiliki PID 9930 dan PPID adalah 2952 yang merupakan proses bash. Selain itu, pada program ini juga digunakan fungsi getuid() untuk mendapatkan id dari user yang menjalankan dan fungsi sleep() yang menghentikan proses dalam detik.

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:

Hasil : 


2.      Gunakan g++ compiler untuk menjalankan program di ats. Pada saat dijalankan, program tidak akan pernah berhenti. Untuk menghentikan program tekan Ctrl+C.

$ g++ -o fork fork 2.cpp

./fork 2

 

Hasil : 


3.      Amati output yang dihasilkan

Analisa : Program di atas bertujuan untuk membuat dua proses secara terus menerus menggunakan system call fork(). Fork adalah suatu system call yang dapat membuat proses baru. Proses asal yang melakukan fork disebut dengan parent process, sedangkan proses baru yang dibuat setelah melakukan fork disebut dengan child process. Nilai yang dikembalikan oleh fork adalah PID dari child process. Dapat dilihat bahwa pada percobaan ini, yang merupakan child process adalah proses dengan PID 10461, sedangkan yang merupakan parent process adalah process dengan PID 10460. x berfungsi untuk menghitung berapa kali loop telah terjadi. Jika dilihat dari urutan cetakannya, dapat dilihat bahwa walaupun mereka melakukan proses yang sama, parent process selalu berjalan terlebih dahulu sebelum child process. Program ini akan melakukan loop secara terus menerus tanpa henti. Untuk memberhentikannya, maka harus dihentikan secara paksa dengan interupsi menggunakan Ctrl+C.

Percobaan 3 : Membuat dua proses sebanyak lima kali

1.      Dengan menggunakan editor vi, buatlah file fork3.cpp dan ketikkan program berikut:


Hasil : 


2.      Gunakan g++ compiler untuk menjalankan program di atas

$ g++ -o fork fork 3.cpp

./fork 3

Hasil : 


3.      Amati output yang dihasilkan

Analisa : Program ini hampir sama dengan program fork2, hanya saja bedanya pada program ini loop yang dilakukan dibatasi hingga 5 kali saja, tidak infinite. Pada percobaan ini, dapat dilihat bahwa yang merupakan child process adalah proses dengan PID 27843, sedangkan yang merupakan parent process adalah proses dengan PID 27842. Selain itu, disini terbukti kembali bahwa walaupun mereka melakukan proses yang sama, parent process selalu berjalan terlebih dahulu sebelum process jika dilihat dari urutan cetakannya.

Percobaan 4 : Proses parent menunggu sinyal dari proses child dengan sistem call wait

1.      Dengan menggunakan editor vi, buatlah fork4.cpp dan ketikkan program berikut:


Hasil : 



2.      Gunakan g++ compiler untuk menjalankan program di atas

$ g++ -o fork fork 4.cpp

./fork 4

 Hasil : 


3.      Amati output yang dihasilkan

Analisa : Jika pada program-program sebelumnya proses child dan parent menjalankan baris yang sama, maka pada program ini kedua proses tersebut menjalankan baris yang berbeda. Hal ini dapat dilakukan dengan pengkondisian if..else pada hasil pengembalian system call fork. Pada child process, fork akan mengembalikan nilai 0, sedangkan pada parent process, fork akan mengembalikan nilai bilangan positif berupa PID dari process child. Namun, jika process child gagal terbentuk, fork akan mengembalikan nilai -1. Dengan mengetahui return value dari fork, maka kita bisa membagi pengerjaan proses parent dan child menggunakan pengkondisian if..else. Karena kita tahu bahwa parent process akan berjalan terlebih dahulu sebelum child process, maka kita harus membuat parent process untuk berhenti sementara hingga child process selesai berjalan. Disitulah kegunaan system call wait() dibutuhkan. System call wait akan membuat proses parent berhenti sementara dan menunggu hingga proses child selesai dan diterminasi. Setelah proses child diterminasi system call wait akan mengembalikan nilai berupa PID dari proses child yang diterminasi tersebut. Itulah mengapa pada program diatas, wait dilakukan di dalam loop do..while, selama hasil return value dari wait tidak sama dengan PID proses child, maka proses parent akan terus melakukan waiting.

Percobaan 5 : Sistenm 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 fork5.cpp dan ketikkan program berikut:



Hasil : 



2.      Gunakan g++ compiler untuk menjalankan program di atas

$ g++ -o fork 5 fork 5.cpp

$ ./fork 5

Hasil : 


3.      Amati output yang dihasilkan

Analisa : Program ini akan melakukan forking dan proses child akan menjalankan perintah ls -l. Hal ini dapat dilakukan dengan menjalankan system call execl pada proses child. Execl merupakan system call yang berfungsi untuk mengeksekusi file. Pada kasus ini, child process mengeksekusi perintah ls yang filenya berada di /bin/ls dengan argument -l dan /home. Fungsi execl dapat dimasukkan banyak parameter. Namun, parameter utama yang harus dimasukkan ada 3, yaitu path dari file yang akan dieksekusi, argument perintah (bisa lebih dari satu), dan NULL (sebagai penanda akhiran dari argument). System call execl akan mengganti process image sebelumnya dengan process image yang baru. Sehingga jika execl berhasil dijalankan, maka setelah execl selesai dijalankan oleh process child dan diterminasi, proses child akan tetap berjalan. Itulah mengapa baris proses child dibawah execl pada percobaan diatas tidak dijalankan.

Percobaan 6 : Sistem call fork/exec dan wait mengeksekusi program lain

1.      Dengan menggunakan editor vi, buatlah fork6.cpp dan ketikkan program berikut:


Hasil :

2.      Gunakan g++ compiler untuk menjalankan program di atas

$ g++ -o fork fork 6.cpp

./fork 6

 Hasil :

3.      Amati Output yang dihasilkan

Analisa : Pada program ini, proses child mengeksekusi program lain (fork3) dengan menggunakan system call execl. Pada percobaan diatas, proses dengan PID 32927 adalah proses parent, sedangkan proses dengan PID 32928 adalah process child. Namun, saat proses child menjalankan execl dan mengeksekusi fork3, proses dengan PID 32928 pada program fork3 akan menjadi proses parent dan ia akan membuat proses child baru dengan PID 32929.

Percobaan 7 : Melihat Manajemen Memory

1.      Perhatikan dengan perintah dmesg jumlah memori tersedia dan proses swapping

$ dmesg | more

Hasil : 


Analisa : Perintah dmesg digunakan untuk mencetak dan mengontrol buffer ring kernel. Di dalam informasi yang dicetak oleh dmesg, terdapat pula jumlah memori yang tersedia. Dapat dilihat di atas bahwa jumlah memori yang tersedia ada 1978444 KB dari total memori 2096696 KB.

2.      Dengan perintah free perhatikan jumlah memory “free”, “used”, “share”, dan “buffer”

$ free

Hasil : 


Analisa :

3.      Dengan perintah dibawah ini apakah hasilnya sama dengan no 2?

$ cat /proc/meminfo

Hasil : 


Analisa : Hasil yang ditampilak oleh cat /proc/meminfo hampir sama dengan hasil pada free. Hanya saja bedanya cat /proc/meminfo menampilkan lebih banyak informasi daripada free.

4.      Gunakan perintah di bawah ini

$ ls –lR /,

Hasil : 


Analisa : Perintah ls -lR /. menampilkan semua direktori dan file yang ada pada system informasi. Karena banyaknya file yang ditampilkan, perintah tersebut akan berjalan secara terus menerus tanpa henti.

5.      Perhatikan perubahan manajemen memory

$ free

Hasil : 


Analisa : Dapat dilihat bahwa memori yang “free” menjadi berkurang, memori yang “available” berkurang, dan penggunaan memori shared dan buff/cache bertambah, sedangkan besar swap “used” bertambah dan swap “free” menjadi berkurang.

6.      Jalankan sebuah program, misalnya open Office. Perhatikan perubahan manajemen memori.

$ free

Hasil : 


Analisa : Setelah dijalankan open Office, memori yang digunakan dan shared memori menjadi lebih besar dan memori available berkurang juga. Selain itu, beberapa swap mulai digunakan.

7.      Dengan perintah ps bagaimana penggunaan memory untuk setiap proses diatas?

$ ps -uax

Hasil : 



Analisa : Perintah ini sangat berguna untuk menunjukkan bagaimana penggunaan memori berubah secara dinamis dan bagaimana proses individu menggunakan memori.


VII.                   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 ?

Hasil : 


Analisa : Informasi yang ditampilkan mengenai manajemen memori pada dmesg adalah banyaknya memori yang tersedia beserta rincian penggunaan memori tersebut seperti kernel code, rwdata (read-write), rodata (read-only), init, bss, reserved (memori cadangan), dan cma-reserved.

3.      Bagaimana informasi yang ditampilkan dengan perintah free pada percobaan anda ?

Hasil : 


Jawab :

Informasi yang ditampilkan dengan perintah free adalah:

·         Total :   Menampilkan total memori yang ada computer.

·         Used : Menampilkan total memori yang sedang digunakan. Rumus perhitungannya adalah Total – (Free + Buffers + Cache).

·         Free : Menampilkan total memori yang tidak digunakan.

·         Shared : Menampilkan total memori yang digunakan oleh buffers, page cache, dan slabs.

·         Available : Menampilkan perkiraan dari total memori yang siap digunakan untuk menjalankan program baru tanpa dilakukannya swapping.

4.      Apa isi file /proc/meminfo pada percobaan yang Anda lakukan?

Jawab : Ada banyak sekali informasi yang ditampilkan pada meminfo, diantaranya sebagai berikut : 


5.      Berapa besar memory yang digunakan setelah percobaan 7 dengan perintah ps –uax?

Jawab : Banyaknya memori yang digunakan menurut ps -uax adalah sebesar 0,1%.



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 danperhatikan hal-hal berikut :

a.       Informasi apa saja yang ditampilkan dengan perintah free?



•     Total :   Menampilkan total memori yang ada computer.

•     Used : Menampilkan total memori yang sedang digunakan. Rumus perhitungannya adalah Total – (Free + Buffers + Cache).

•     Free : Menampilkan total memori yang tidak digunakan.

•     Shared : Menampilkan total memori yang digunakan oleh buffers, page cache, dan slabs.

•     Available : Menampilkan perkiraan dari total memori yang siap digunakan untuk menjalankan program baru tanpa dilakukannya swapping.

b.      Informasi apa saja yang disimpan file /proc/meminfo?

Jawab : Berikut adalah informasi yang disimpan dalam /proc/meminfo :




c.       Berapa besar kapasitas memory total?

Jawab : Kapasitas memori total adalah 2035284 kB.

d.      Berapa kapasitas memory yang sudah terpakai?

Jawab : Kapasitas memori yang sudah terpakai adalah 712808 kB.

e.       Berapa kapasitas memory yang belum terpakai?

Jawab : Kapasitas memori yang belum terpakai adalah 510540 kB.

f.       Berapa kapasitas memory yang digunakan sharing beberapa proses?

Jawab : Kapasitas memori yang digunakan sharing beberapa proses adalah 1712 kB.

g.      Berapa kapasitas buffer cache?

Jawab : Kapasitas buffer cache adalah 755504 kB.

 

VIII.                   Kesimpulan

System calls adalah cara terprogram di mana program komputer meminta layanan dari kernel sistem operasi tempat dijalankannya. System calls menyediakan antarmuka antara proses dan sistem operasi. Pada praktikum kali ini, kita melakukan 3 macam system calls, yaitu system calls fork, execl, dan wait. System calls fork adalah system calls yang dapat membuat proses baru dengan menduplikasi proses. Proses baru disebut sebagai proses child. Proses yang memanggilnya disebut sebagai proses parent. System calls execl berfungsi untuk mengekseskusi sebuah file dengan memberi parameter berupa path file dan argumen-argumen perintah file. Sistem call execl meletakkan program executable baru ke memory dan mengasosiasikannya dengan proses saat itu. Sedangkan system calls wait adalah ystem call yang digunakan untuk menunggu perubahan status pada child process yang dipanggil, dan mendapatkan informasi tentang child process yang statusnya telah berubah. Linux mengimplementasikan sistem virtual memory demand-paged. Proses mempunyai besar memory virtual yang besar.

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. 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.

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, membedakan copy dari semua data, termasuk variable dengan current value dan stack, membedakan program counter yang menunjukkan eksekusi berikutnya meskipun awalnya keduanya mempunyai nilai yang sama tetapi setelah itu berbeda, dan setelah fork, kedua proses tersebut tidak menggunakan variable bersama.

 


Comments

Popular posts from this blog

PRAKTIKUM 11 - MANAJEMEN USER DAN GROUP

PRAKTIKUM 3 - OPERASI FILE DAN STRUKTUR DIREKTORI