Anda di halaman 1dari 18

LAPORAN PRAKTIKUM SISTEM OPERASI

PRAKTIKUM 7 / MODUL 10

PENGANTAR
TUGAS PRAKTIKUM

Aldan Maulana Fajri

M3119005

TI A

PROGRAM STUDI TEKNIK INFORMATIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS SEBELAS MARET

SURAKARTA

2019

DIPLOMA III TEKNIK INFORMATIKA | FMIPA | UNS


TUGAS PENDAHULUAN
1. Apa yang dimaksud dengan system cell?
System call merupakan penyedia antarmuka dari pelayanan-pelayanan yang tersedia
dengan system operasi. Umumnya system call mnggunakan bahasa C dan C++, meskipun
tugas-tugas seperti hardware yang harus diakses langsung, maka menggunakan bahasa
assembly.
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)?
Fork

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: Menggunakan perintah g++ untuk menampilkan program fork3. Outputnya


menampilkan status dengan perulangan sebanyak 10 kali yang berasal dari 2 proses yang
diulang 5 kali.
Percobaan 4 : Proses Parent Menunggu Sinyal Dari Proses Child Dengan System Call Wait
1. Buat program dengan nama fork4.cpp yang akan menampilkan berbagai status dari proses
parent maupun proses child dan menampilkan juga PID dari kedua proses itu. Status yang
ditampilkan ada yang hanya dieksekusi oleh proses child dan ada yang hanya dieksekusi
oleh proses parent, setelah selesai kedua proses akan diterminasi.

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: Menggunakan perintah g++ untuk menampilkan program fork3. Outputnya


menampilkan berbagai status dari proses parent maupun proses child dan menampilkan
juga PID dari kedua proses.
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. Buat program dengan nama fork5.cpp yang akan menampilkan berbagai status dari proses
yang dijalankan dan juga nomor PID nya . Setelah itu akan ditampilkan hak akses dari
setiap user nya ( owner , goup , dan other ) setelah itu maka proses akan diterminasi.

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.

Ket: dalam melakukan percobaan kali ini saya memakai 2 linux

Anda mungkin juga menyukai