Fadeta Ilhan Gandhi - Laporan Resmi 7 System Unix Call Dan Manajemen Memory
Fadeta Ilhan Gandhi - Laporan Resmi 7 System Unix Call Dan Manajemen Memory
SISTEM OPERASI
Unix System Call dan Manajemen Memory
NIM : 1102200001
b. 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.
Informasi ditampilkan dalam kilobyte (1024 byte). Memory ”total” adalah jumlah tersedia setelah
load kernel. Memory digunakan untuk proses atau disk buffering 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.
• Tugas Pendahuluan
1. Apa yang dimaskud dengan system call ?
a. System call secara sederhana adalah jembatan penghubung antara user mode
dan kernel mode, system call digunakan oleh pengguna ketika pengguna akan
melakukan suatu proses yang membutuhkan resources yang mana resources
hanya bisa dipanggil dari mode kernel.
2. Apa yang dimaksud dengan system call fork(), execl(), dan wait(). Jawablah dengan
menggunakan perintah man (contoh : man 2 fork, man 2 execl, dan man 2 wait)?
a. Fork : Digunakan untuk membuat proses baru dengan menduplikasi
pemanggilan proses. Proses baru adalah child process. Dan proses pemanggilan
adalah parent process
b. Execl : Digunakan untuk menggantikan proses yang sedang berjalan saat ini
dengan proses baru.
c. Wait : Digunakan untuk pergantian keadaan dalam child proses pemanggilan,
dan memeroleh informasi tentang child yang keadaannya telah berubah.
Perubahan keadaan dianggap sebagai child yang diakhiri.
3. Apa yang dimaksud sistem virtual memory, proses swapping dan buffer cache pada
manajemen memory ?
a. Sistem virtual memory : Virtual memory adalah skema alokasi penyimpanan
yang mana memori sekunder dapat dialamatkan seperti itu adalah bagian dari
main memory. Pengalamatan program yang digunakan untuk menyesuaikan
memory dibedakan dari pengalamatan memory system yang digunakan untuk
mengidentifikasi tempat penyimpanan fisik dan alamat program yang dibuat
diterjemahkan secara otomatis ke alamat mesin yang sesuai.
b. Swap Process : Mekanisme di mana proses dapat ditukar sementara di luar
memory utama ke penyimpanan sekunder (disk) dan membuat memory tersebut
tersedia untuk proses lain.
c. Buffer Cache : Digunakan untuk menyimpan data ketika data tersebut sedang
dipindahkan antara dua perangkat atau antara perangkat dan aplikasi.
4. Apa yang dimaksud perintah free dan cat /proc/meminfo ?
a. Free : Perintah free digunakan untuk menampilkan jumlah total dari memori
fisik dan memori swap yang tersedia dan yang telah digunakan, begitu juga
dengan buffer dan cache yang digunakan oleh kernel. Informasi tersebut
dikumpulkan dengan menguraikan /proc/meminfo.
b. Cat /proc/meminfo : Pada dasarnya sama saja dengan menampilkan perintah
sekumpulan free semenjak free dikumpulkan pada /proc/meminfo.
1. Dengan menggunakan editor vi, buatlah file fork1.cpp dan ketikkan program
berikut :
$ ./fork1
3. Amati output yang dihasilkan
Percobaan 2 : Membuat dua proses terus menerus dengan sebuah systemcall fork()
1. Dengan menggunakan editor vi, buatlah file fork2.cpp dan ketikkan program
berikut :
$ ./fork2
3. Amati output yang dihasilkan
1. Dengan menggunakan editor vi, buatlah file fork3.cpp dan ketikkan program
berikut :
$ ./fork3
1. Dengan menggunakan editor vi, buatlah file fork4.cpp dan ketikkan program
berikut :
$ ./fork4
1. Dengan menggunakan editor vi, buatlah file fork5.cpp dan ketikkan program
berikut :
$ ./fork5
1. Dengan menggunakan editor vi, buatlah file fork6.cpp dan ketikkan program
berikut :
$ ./fork6
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
$ ls –lR /.
5. Perhatikan perubahan manajemen memory
$ free
2.Informasi apa saja mengenai manajemen memory yang ditampilkan pada perintah
2023476 kB
164620 kB
602308 kB
56204 kB
g. Berapa kapasitas buffer cache ?
501856 kB
• Laporan Resmi
1. Analisa Percobaan
Hasil analisa dari praktikum tersebut yaitu mempelajari mengenai Unix System Call
dan Manajemen Memory. Pada praktikum ini, beberapa system call yang diuji coba
adalah fork, wait, dan execl. System call fork digunakan untuk membuat proses
baru dalam sistem operasi UNIX. Jika suatu program mengandung fungsi fork(),
saat program dieksekusi, akan tercipta dua proses. Satu proses akan menjalankan
program utama, sedangkan system call fork() akan membuat proses kedua. Proses
asal disebut sebagai proses parent (induk), sementara proses baru tersebut disebut
sebagai proses child (anak). Proses child adalah duplikat dari proses parent dan
keduanya akan melanjutkan eksekusi program dari titik dimana system call fork()
tersebut dijalankan.
Kesimpulan dari praktikum ini adalah semua perintah bisa dijalankan apabila teliti
dan benar dalam penulisan script. Dan terbukti, dari praktikum ini bisa dijalankan
dan tidak ada error.