PRAKTIKUM 7 / MODUL 10
PENGANTAR
TUGAS PRAKTIKUM
M3119005
TI A
SURAKARTA
2019
Execl
Wait
3. Apa yang dimaksud dengan virutal memory, proses swapping dan buffer cache pada
manajemen memory?
Virtual memory adalah suatu teknik memisahkan antara memori logis dan memori
fisiknya. Memori logis merupakan kumpulan keseluruhan halaman dari suatu program.
Tanpa memori virtual, memori logis akan langsung dibawa ke memori fisik (memori
utama). Disinilah memeori virtual melakukan pemisahan dengan menaruh memori logis ke
secondary storage (disk sekunder) dan hanya membawa halaman yang diperlukan ke
memori utama (memori fisik). Swapping adalah manajemen memori dengan pemindahan
proses antara memori utama dan disk selama eksekusi. Buffer cache dapat dianggap
sebagai sumber daya memori, terutama sumber daya I/O karena penggunaanya dalam
mediasi transfer.
4. Apa yang dimaksud dengan perintah free dan cat /proc/meminfo?
Free digunakan untuk mengetahui total memori yang digunakan dalam proses. Dalam
perintah free ditampilkan total kapasitas memori, memori yang terpakai, yang tidak sedang
dipakai, yang dibagi, buffer, cache dan juga swap. Cat /proc/meminfo digunakan untuk
mengetahui isi dari meminfo kemudian ditampilkan.
5. Apa yang dimaksud dengan perintah ps?
Perintah ps digunakan untuk menampilkan informasi proses yang sedang berjalan termasuk
nomor PID dari proses tersebut.
Percobaan 1 : Melihat Proses Parent dan Proses Child
1. Dengan menggunakan editor nano, buatlah file fork1.cpp, isi program adalah script untuk
menampilkan proses dengan PID yang dimilikinya, menampilkan parent id dan juga User
ID yang dimiliki proses tersebut menggunakan model perulangan for.
Analisis: Membuat file fork.cpp dan membuat program. Di buat dengan perintah nano
fork1.cpp. Simpan file dan keluar dari editor yaitu dengan menekan Ctrl + x.
2. Gunakan g++ compiler untuk menjalankan program diatas
$ g++ -o fork1 fork1.cpp
$ ./fork1
Analisis: Menjalankan program fork1.cpp dengan perintah g++ yang sebelumnya di install
terlebih dahulu dengan apt get install g++, dan menghasilkan output perulangan sebanyak
3 kali.
Percobaan 2 : Membuat Dua Proses Terus Menerus Dengan Sebuah System Call Fork()
1. Buat program dengan nama fork2.cpp, isi program akan menampilkan nomor PID dan juga
menampilkan nomor perulanganya degan pengesetan pada variabel x = 5 lalu diincrement
tanpa diberi batas.
Analisis: Membuat file fork.cpp dan membuat program dengan perintah nano fork2.cpp
lalu membuat program untuk menampilkan nomor PID dan menampilkan nomor
perulangannya dengan penyetingan pada variabel x=5 lalu diincrement tanpa diberi batas.
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
Analisis: Menampilkan program fork2.cpp dengan perintah g++ dan Menghasilkan output
perulangan terus menerus yang hanya dapat di hentikan dengan menekan Ctrl + C
Percobaan 3 : Membuat Dua Proses Sebanyak Lima Kali
1. Buat program dengan nama fork3.cpp, isi program akan menampilkan Status proses dan
juga nomor PID sebanyak 2 proses dan Output Status diulang sebanyak 5 kali.
Analisis: Membuat file fork3.cpp dan membuat program. Program ditulis di nano fork3.cpp
lalu dilihat program akan menampilkan proses dan juga nomor PID sebanyak 2 proses dan
output status diulang sebanyak 5 kali.
2. Gunakan g++ compiler untuk menjalankan program diatas
$ g++ -o fork3 fork3.cpp
$ ./fork3
Analisis: Membuat program dengan perintah nano fork4.cpp dan Program ini kan
menampilkan berbagai status dari proses parent maupun proses child dan menampilkan
juga PID dari kedua proses. Status yang ditampilkan ada yang hanya diekseskusi proses
child dan haanya dieksekusi proses parent, setelah semua selesai akan diterminasi.
2. Gunakan g++ compiler untuk menjalankan program diatas
$ g++ -o fork4 fork4.cpp
$ ./fork4
Analisis: Membuat program dengan perintah nano fork5.cpp. Program ini akan
menampilkan berbagai status dari proses yang dijalankan dan juga nomor PID nya. Setelah
itu akan ditampilkan hak akses dari setiap user nya setelah itu proses akan diterminasi.
2. Gunakan g++ compiler untuk menjalankan program diatas
$ g++ -o fork5 fork5.cpp
$ ./fork5
Analisis: Output yang dihasilkan yaitu menampilkan PID sebanyak 2 status serta
menampilkan hak akses dari owner, group, other, dan file bertipe directory.
Percobaan 6 : System Call Fork/Exec dan Wait Mengeksekusi Program Lain
1. Buat program dengan nama fork6.cpp yang menampilkan output yang hanya dieksekusi
oleh child maupun parent proses dan juga menampilkan nomor PID nya lalu dua proses
child dijadikan 2 proses dan diulang sebanyak 5 kali setelah itu diterminasi. Karena
konsepnya sama dengan fork3 maka lebih baik kita jalankan fork3 di dalam program fork6
ini.
Analisis: Membuat file fork6.cpp dan membuat program. Program ini akan menampilkan
nomor PID lalu dua proes child dijadikan 2 proses dan diulang sebanyak 5 kali setelah itu
diterminasi. Program dalam fork6 ini mirip dengan fork3 sehingga fork3 dijalankan dulu.
2. $ g++ -o fork6 fork6.cpp
$ ./fork6
Analisis: Outputnya adalah menampilkan status proses parent dan child serta PID dari
proses mereka. Lalu child akan dijadikan 2 proses dan akan dijalankan sebanyak 5 kali.
Percobaan 7 : Melihat Manajemen Memory
1. Perhatikan dengan perintah dmesg jumlah memory tersedia dan proses swapping
$ dmesg | more
Analisis: $ dmesg | more digunakan untuk melihat jumlah memory tersedia yang ada di PC
dan proses swapping.
2. Dengan perintah free memperhatikan jumlah memory “free”,”usef”,”share” dan “buffer”
$ free
Analisis: $ free digunakan untuk melihat jumlah memory, yang sudah digunakan, yang
dibagikan, cache, dan jumlah memory yang tersedia.
3. Dengan perintah $ cat /proc/meminfo apakah hasilnya sama dengan percobaan
sebelumnya?
Analisis: Perintah cat /proc/meminfo yang menampilkan space dari linux. Dalam
percobaan ini berbeda dengan nomor yang 2 karena disini disk yang terpakai lebih
terperinci.
4. Menggunakan perintah $ ls -lR /.
Analisis: Instruksi ls -lR berfungsi untuk menampilkan daftar lengkap beserta sub-sub
foldernya file yang berupa bash. Output dari ini sangat panjang karena keseluruhan file di
system kita akan terdeteksi dan akan dicari.
5. Memperhatikan perubahan manajemen memory
$ free
Analisis: Instruksi free berguna untuk melihat space yang belum digunakan. Memory
“total” adalah jumlah memori yang tersedia setelah load kernel. Memori digunakan untuk
proses atau disk buffering sebagai “used”. memori yang seang tidak digunakan ditampilkan
pada kolom “free”. memory total = jumlah kolom “used” dan “free”. Memory
diindikasikan “shared” yaitu berapa banayak memori yang digunakan lebih dari 1 proses.
Program seperti shell mempumyai lebih dari satu proses yang berjalan. Kode executable
read-only dan dapat disharing oleh semua proses yang bejalan pada shell. Kolom “buffers”
menampilkan berapa banyak memory digunakan untuk disk buffering.
6. Menjalankan sebuah program, misalnya open Office, kemudian perhatikan perubahan
manajemen memory
$ free
7. Dengan perintah ps bagaimana penggunaan memory untuk setiap proses di atas ?
$ ps -uax
Analisis: Instruksi ps -uax berguna untuk melihat detail proses yang berejalan mulai dari
PID, user, maupun resourch yang digunakan. Ps -uax berguna untuk menunjukkan
bagaimana bagaimana penggunaan memory berubah secara dinamis dan bagaimana proses
individu menggunkan memory.
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 ?
Informasi yang ditampilkan pada perintah dmesg pada percobaan yaitu jumlah memory
tersedia yang ada di PC dan proses swapping.
3. Bagaimana informasi yang ditampilkan dengan perintah free pada percobaan Anda ?
Informasi yang ditampilkan pada perintah free pada percobaan yaitu jumlah memory,
yang sudah digunakan, yang dibagikan, cache, dan jumlah memory yang tersedia.
4. Apa isi file /proc/meminfo pada percobaan yang Anda lakukan ?
Pada file /proc/meminfo akan menampilkan space dari linux.
5. Berapa besar memory yang digunakan setelah percobaan 7 dengan perintah ps -uax ?
Besar memory yang digunakan setelah percobaan ps -uax sebesar 337144 kb.
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 ?
- Informasi yang ditampilkan pada perintah free sama seperti yang di atas yaitu yaitu
menampilkan jumlah memory, yang sudah digunakan, yang dibagikan, cache, dan
jumlah memory yang tersedia.
- Informasi yang ditampilkan file /proc/meminfo pun juga sama seperti yang di atas
yaitu menampilkan space dari linux.
- Besar kapasitas memory total yaitu 728440 kb
- Besar kapasitas memory yang sudah terpakai yaitu 189448 kb.
- Besar kapasitas memory yang belum terpakai yaitu 320392 kb.
- Besar kapasitas memory yang digunakan sharing beberapa proses yaitu 1576 kb.
- Besar kapasitas buffer cache yaitu 218600 kb.
KESIMPULAN
1. Kita mampu menggunakan system call fork, wait dan execl pada Linux
2. Mampu menggunakan perintah-perintah untuk manajemen memory
3. Linux mengimplementasikan sistem virtual memory demand-paged. Proses mempunyai
besar memory virtual yang besar.
4. 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.
5. Disk drive adalah perangkat mekanik yang membaca dan menulis ke disk yang lebih
lambat dibandingkan mengakses memory fisik. Jika memory total page lebihdari memory
fisik yang tersedia, kernel lebih banyak melakukan swapping dibandingkan eksekusi kode
program, sehingga terjadi thrashing dan mengurangi utilitas.
6. Penggunaan manajemen memori membuat kita mengetahui berapa saja memori yang
sedang digunakan atau sedang di bagikan dalam beberapa proses maupun yang tidak
digunakan.