PRAKTIKUM 7
1. Judul Laporan : Unix System Call dan Manajemen Memory
2. Pokok Bahasan :
- Unix System Cell
-Manajemen Memory
3. 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
4.Teori Singkat
1) UNIX SYSTEM CALL
UNIX System Call, yaitu system call work, excel dan wait pada percobaan yang dilakukanakan dibuat program yang didalamnya terdapat fungsi system call. Untuk menjalankannya pada Linux gunakan g++
- SISTEM 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 programmenghasilkan eksekusi dua proses# Satu proses dibuat untuk memulai eksekusi program bila system call fork() dieksekusi, proses lain dibuat proses asal disebut proses parent. dan proses kedua disebut proses child. proses child merupakan duplikatdari proses parent# +edua proses melanjutkan eksekusi dari titik dimana system call fork() menghasilkan eksekusi pada program utama arena UNIX adalah system operasi time sharing, dua proses tersebut dapat mengeksekusi secara konkuren
- SISTEM CALL WAIT
System call wait menyebabkan proses menunggu sinyal .menunggu sampaisembarang 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 melihatdokumentasi wait gunakan perintah man 2 wait .
- SISTEM CALL EXCEL
Misalnya kita ingin proses baru mengerjakan sesuatu yang berbeda dari proses parent, sebutlah menjalankan program yang berbeda. Sistem call e!ecl meletakkan program e!ecutable 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 .2 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 drive adalah perangkat mekanik yang membaca dan menulis kedisk yang lebih lambat dibandingkan mengakses memory fisik.Jika memory total pagelebih dari memory fisik yang tersedia, kernel lebih banyak melakukan swappingdibandingkan eksekusi kode program, sehingga terjadi thrashing dan mengurangi utilitas
5. Tugas Pendahuluan
1. Apa yang dimaksud dengan system call?
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 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?
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?
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?
Perintah ps digunakan untuk menampilkan informasi proses yang sedang berjalantermasuk nomor PID dari proses tersebut
6. Percobaan dan Hasil serta Analisanya
Percobaan 1 : Melihat proses parent dan proses child
1. Dengan menggunakan editor vi, buatlah file fork1.cpp dan ketikkan program berikut :
Analisa : Membuat script yang akan digunakan untuk membuat file fork1.cpp.
2. Gunakan g++ compiler untuk menjalankan program diatas
$ g++ -o fork1 fork1.cpp
$./fork1.
3. Amati Output hasilnya
Analisa No.2,3:Setelah scipt program file fork1.cpp telah dibuat maka untukmenjalankannya menggunakan g++ compailer. Tetapi jika pada laptop g++ belum terinstall,maka harus melakukan penginstallan terlebih dahulu dengan ketikkan pada terminal sudo apt-get install g++. Setelah itu jalankan program fork dengan perintah : $ g++ -o fork1 fork1.cpp$ ./fork1 Maka tampilannya seperti diatas.
Percobaan 2 : Membuat dua proses terus menerus dengan sebuah system callfork ( )
1. Dengan menggunakan editor vi, buatlah file fork2.cpp dan ketikkan program berikut :
Analisa :Menuliskan script seperti diatas pada program fork2.cpp yang telah dibuat dengan editor vi. . System call fork adalah suatu system call yang membuat suatu proses baru pada system operasi UNIX.
2. Gunakan g++ compiler untuk menjalankan program diatas
$ g++ -o fork1 fork1.cpp
$./fork2.
3. Amati Output hasilnya
Analisa :: Compile file fork2.cpp yang sudah kita buat dengan menggunakan perintah : g++ -o fork2 fork2.cpp lalu jika tidak ada file yang eror, maka ketikkan ./fork2 untuk menjalankan program fork2 . Output dari program ini adalah membuat dua proses terus menerus dengan sebuah system call fork().
Percobaan 3 : PERCOBAAN 3 MEMBUAT DUA PROSES SEBANYAK LIMA KALI
1. Dengan menggunakan editor vi, buatlah file fork3.cpp dan ketikkan program berikut :
Analisa : Gunakan editor vi untuk membuat script,script tersebut berfungsi untuk menampilkan pid process sebanyak 5x dan terdapat 2 proses.,setiap loop akan di sleep selama 2 detik.
2. Gunakan g++ compiler untuk menjalankan program diatas
$ g++ -o fork3 fork3.cpp
$./fork3.
3. Amati Output hasilnya
Analisa
No.2,3: kita membuat dua proses dalam satu terminal, yang dapat berjalan sebanyak 5 kali dengan file fork3.cpp . untuk mendapatkan hasil seperti itu kita menggunakan perulangan for. for (int i=0;i<< “This process ” << getpid() << endl sleep(2) } return 0 Penjelasannya yaitu ketika nilai i =0 kemudian kondisi berikutnya i kurang dari 5 maka akan teroutput di layar this procces (pid). Dan hal itu akan di ulang terus sampai kondisi tersebut tidak terpenuhi.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 :
Analisa : Di sini kita membuat script yang nantinya akan digunakan untuk proses parent menunggu sinyal dari proses child dengan system call wait.
2. Gunakan g++ compiler untuk menjalankan program diatas
$ g++ -o fork4 fork4.cpp
$./fork4.
3. Amati Output hasilnya
Analisa No.2,3:Dapat di lihat pada output di atas kita simpulkan proses parent menunggu sinyal dari proses child dengan system call wait. Dan outputnya sebagai diatas.
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 ketikkan program berikut :
Analisa : Program ini akanmenampilkan 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.
3. Amati Output hasilnya
Analisa No.2,3: Output yang dihasilkan yaitu menampilkan PID sebanyak 2 status sertamenampilkan hak akses dari owner, group, other, dan file bertipe directory.
Percobaan 6 : SYSTEM CALL FORK/EXEC DAN WAIT MENGEKSEKUSI PROGRAM LAIN
1. Dengan menggunakan editor vi, buatlah file fork6.cpp dan ketikkan program berikut :
Analisa : : 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. Gunakan g++ compiler untuk menjalankan program diatas
$ g++ -o fork6 fork6.cpp
$./fork6.
3. Amati Output hasilnya
Analisa No.2,3: Outputnya adalahmenampilkan status proses parent dan child serta PID dariproses 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
Analisa : $dmesg | more digunakan untuk melihat jumlah memory tersedia yang ada diPC dan proses swapping.
2. Dengan perintah free perhatikan jumlah memory ”free”, ”used”, “share” dan “buffer” . $ free
Analisa : $ free digunakan untuk melihat jumlah memory, yang sudahdigunakan, yang dibagikan, cache, dan jumlah memory yang tersedia.
3. Dengan perintah dibawah ini apakah hasilnya sama dengan no 2 ? $ cat /proc/meminfo
4. Gunakan perintah dibawah ini $ ls - IR/
Analisa: Instruksi ls -lR berfungsi untuk menampilkan daftar lengkap beserta sub-subfoldernya fileyang berupa bash. Output dari ini sangat panjang karena keseluruhan file di system kita akan terdeteksi dan akan dicari.
5. Perhatikan perubahan manajemen memory $free
Analisa : 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 yangdigunakan 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. Jalankan sebuah program, misalnya open Office. Perhatikan perubahan manajemen memory $ free
Analisa : Free akan berubah karena adanya distribusi memory saat kita membuka suatu program/aplikasi
7. Dengan perintah ps bagaimana penggunaan memory untuk se tiap proses diatas ? $ ps –uax
Analisa: Instruksi ps -uax berguna untuk melihat detail proses yang berejalan mulai dariPID, 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 fork 2
Komentar
Posting Komentar