Nurdianah Yuliasih 4d Modul5

52
PRAKTIKUM V PROSES DAN MANAJEMEN PROSES Disusun Oleh : NURDIANAH YULIASIH 201010370311300 PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS TEKNIK

Transcript of Nurdianah Yuliasih 4d Modul5

Page 1: Nurdianah Yuliasih 4d Modul5

PRAKTIKUM V

PROSES DAN MANAJEMEN PROSES

Disusun Oleh :

NURDIANAH YULIASIH201010370311300

PROGRAM STUDI TEKNIK INFORMATIKAFAKULTAS TEKNIK

UNIVERSITAS MUHAMMADIYAH MALANG2011 – 2012

Page 2: Nurdianah Yuliasih 4d Modul5

POKOK BAHASAN:

Proses pada Sistem Operasi Linux

Manajemen Proses pada Sistem Operasi Linux

TUJUAN BELAJAR:

Setelah mempelajari materi dalam bab ini, mahasiswa diharapkan mampu:

Memahami konsep proses pada sis tem operasi Linux.

Menampilkan beberapa cara menampilkan hubungan proses parent dan child.

Menampilkan status proses dengan beberapa format berbeda.

Melakukan pengontrolan proses pada shell.

Memahami penjadwalan prioritas.

DASAR TEORI:

1. KONSEP PROSES PADA SISTEM OPERASI LINUX

Proses adalah program yang sedang dieksekusi. Setiap kali menggunakan utilitas sistem atau program aplikasi dari shell, satu atau lebih proses ”child” akan dibuat oleh shell sesuai perintah yang diberikan. Setiap kali instruksi dibe rikan pada Linux shell, maka kernel akan menciptakan sebuah prosesid. Proses ini disebut juga dengan terminology Unix sebagai sebuah Job. Proses Id (PID) dimulai dari 0, yaitu proses INIT, kemudian diikuti oleh proses berikutnya (terdaftar pada /etc/inittab).

Beberapa tipe proses :

Foreground

Proses yang diciptakan oleh pemakai langsung pada terminal (interaktif, dialog)

Page 3: Nurdianah Yuliasih 4d Modul5

44Praktikum Sistem Operasi

Teknik Inforatika Universitas Muhammadiyah Malang

Batch

Proses yang dikumpulkan dan dijalankan secara sekuensial (satu persatu). Prose Batch tidak diasosiasikan (berinteraksi) dengan terminal.

Daemon

Proses yang menunggu permintaan (request) dari proses lainnya dan menjalankan tugas sesuai dengan permintaan tersebut. Bila tidak ada request, maka program ini akan berada dalam kondisi “idle” dan tidak menggunakan waktu hitung CPU. Umumnya nama proses daemon di UNIX berakhiran d, misalnya inetd, named, popd dll

2 SINYAL

Proses dapat mengirim dan menerima sinyal dari dan ke proses lainnya. Proses mengirim sinyal melalui instruksi “kill” dengan format

kill [nomor sinyal] PID

Nomor sinyal : 1 s/d maksimum nomor sinyal yang didefinisikan system

Standar nomor sinyal yang terpenting adalah :

2. MENGIRIM SINYAL

Page 4: Nurdianah Yuliasih 4d Modul5

Teknik Inforatika Universitas Muhammadiyah Malang

45Praktikum Sistem Operasi

Mengirim sinyal adalah satu alat komunikasi antar proses, yaitu memberitahukan proses yang sedang berjalan bahwa ada sesuatu yang harus dikendalikan. Berdasarkan sinyal yang dikirim ini maka proses dapat bereaksi dan administrator/programmer dapat menentukan reaksi tersebut. Mengirim sinyal menggunakan instruksi

kill [nomor sinyal] PID

Sebelum mengirim sinyal PID proses yang akan dikirim harus diketahui terlebih dahulu.

4 MENGONTROL PROSES PADA SHELL

Shell menyediakan fasilitas job control yang memungkinkan mengontrol beberapa job atau proses yang sedang berjalan pada waktu yang sama. Misalnya bila melakukan pengeditan file teks dan ingin melakukan interrupt pengeditan untuk mengerjakan hal lainnya. Bila selesai, dapat kembali (switch) ke editor dan melakukan pengeditan file teks kembali. Job bekerja pada foreground atau background. Pada foreground hanya diper untukkan untuk satu job pada satu waktu.

Job pada foreground akan mengontrol shell menerima input dari keyboard dan mengirim output ke layar. Job pada background tidak menerima input dari terminal, biasanya berjalan tanpa memerlukan interaksi.

Job pada foreground kemungkinan dihentikan sementara (suspend), dengan menekan [CtrlZ]. Job yang dihentikan sementara dapat dijalankan kembali pada foreground atau background sesuai keperluan dengan menekan ”fg” atau ”bg ”. Sebagai catatan, menghentikan job seme ntara sangat berbeda dengan melakuakan interrupt job (biasanya menggunakan [Ctrl C]), dimana job yang diinterrup akan dimatikan secara permanen dan tidak dapat dijalankan lagi.

5 MENGONTROL PROSES LAIN

Perintah ps dapat digunakan untuk menunjukkan semua proses yang sedang berjalan pada mesin(bukan hanya proses pada shell saat ini) dengan format :

ps –fae atau

ps aux

Beberapa versi UNIX mempunyai utilitas sistem yang disebut top yang menyediakan cara interaktif untuk memonitor aktifitas sistem. Statistik secara detail

ps –fae atau

Page 5: Nurdianah Yuliasih 4d Modul5

Teknik Inforatika Universitas Muhammadiyah Malang

46Praktikum Sistem Operasi

ps aux

Beberapa versi UNIX mempunyai utilitas sistem yang disebut top yang menyediakan cara interaktif untuk memonitor aktifitas sistem. Statistik secara detail

dengan proses yang berjalan ditampilkan dan secara terusmenerus direfresh. Proses

ditampilkan secara terurut dari utilitas CPU. Kunci yang berguna pada top adalah

s – set update frequency

u – display proses dari satu user

k – kill proses (dengan PID)

q – quit

Utilitas untuk melakukan pengontrolan proses dapat ditemukan pada sistem UNIX adalah perintah killall. Perintah ini akan menghentikan proses sesuai PID atau job number proses.

TUGAS PENDAHULUAN:

Jawablah pertanyaanpertanyaan di bawah ini :

1. Apa yang dimaksud dengan proses ?

2. Apa yang dimaksud perintah untuk menampilkan status proses : ps, pstree.

3. Sebutkan opsi yang dapat diberikan pada perintah ps

4. Apa yang dimaksud dengan sinyal ? Apa perintah untuk mengirim sinyal ?

5. Apa yang dimaksud dengan proses foreground dan background pada job control ?

6. Apa yang dimaksud perintahperintah penjadwalan prioritas : top, nice, renice.

PERCOBAAN:

Percobaan 1 : Status Proses

1. Login sebagai user.

Page 6: Nurdianah Yuliasih 4d Modul5

Teknik Inforatika Universitas Muhammadiyah Malang

47Praktikum Sistem Operasi

2. Lakukan percobaanpercobaan di bawah ini kemudian analisa hasil percobaan.

3. Pindah ke command line terminal (tty2) dengan menekan Ctrl+Alt+F2 dan login ke terminal sebagai user.

4. Instruksi ps (process status) digunakan untuk melihat kondisi proses yang ada. PID adalah Nomor Identitas Proses, TTY adalah nama terminal dimana proses tersebut aktif, STAT berisi S (Sleepin g) dan R (Running), COMMAND merupakan instruksi yang digunakan.

$ ps

5. Untuk melihat faktor/elemen lainnya, gunakan option –u (user). %CPU adalah presentasi CPU time yang digunakan oleh proses tersebut, %MEM adalah presentasi system memori yang digunakan proses, SIZE adalah jumlah memori yang digunakan, RSS (Real System Storage) adalah jumlah memori yang digunakan, START adalah kapan proses tersebut diaktifkan

$ ps u

6. Mencari proses yang spesifik pemakai. Proses diatas hanya terbatas pada proses milik pemakai, dimana pemakai teresbut melakukan login

$ ps –u <user>

7. Mencari proses lainnya gunakan opsi a (all) dan au (all user)

$ ps –a

$ ps –au

Percobaan 2 : Menampilkan Hubungan Proses Parent dan Child

1. Pindah ke command line terminal dengan menekan Ctrl+Alt+F2 dan login ke terminal

sebagai user.

2. Ketik ps –eH dan tekan Enter. Opsi e memilih semua proses dan opsi H menghasilkan

tampilan proses secara hierarki. Proses child muncul dibawah proses parent. Proses child

ditandai dengan awalan beberapa spasi.

Page 7: Nurdianah Yuliasih 4d Modul5

Teknik Inforatika Universitas Muhammadiyah Malang

48Praktikum Sistem Operasi

$ ps –eH

3. Ketik ps –e f dan tekan Enter. Tampilan serupa dengan langkah 2. Opsi –f akan

menampilkan status proses dengan karakter grafis (\ dan _)

$ ps –e f

4. Ketik pstree dan tekan Enter. Akan ditampilkan semua proses pada sistem dalam bentuk

hirarki parent/child. Proses parent di sebelah kiri proses child. Sebagai contoh proses init

sebagai parent (ancestor) dari semua proses pada sistem. Beberapa child dari init

mempunyai child. Proses login mempunyai proses bash sebagai child. Proses bash

mempunyai proses child startx. Proses startx mempunyai child xinit dan seterusnya.

$ pstree

5. Ketik pstree | grep mingetty dan tekan Enter. Akan menampilkan semua proses mingetty

yang berjalan pada system yang berupa console virtual. Selain menampikan semua

proses, proses dikelompokkan dalam satu baris dengan suatu angka sebagai jumlah

proses yang berjalan.

$ pstree | grep mingetty

6. Untuk melihat semua PID untuk proses gunakan opsi –p.

$ pstree –p

7. Untuk menampilkan proses dan ancestor yang tercetak tebal gunakan opsi –h.

$ pstree –h

8. Untuk melihat PID setiap proses di sistem

$ ps ax

Latihan :

1. Tulislah contoh program berikut yang yang membaca ID proses aktif dan ID proses parent :

/* contoh1.c */

Page 8: Nurdianah Yuliasih 4d Modul5

Teknik Inforatika Universitas Muhammadiyah Malang

49Praktikum Sistem Operasi

#include <stdio.h> /* standard I/O */

#include <unistd.h> /* getpid(), getppid() */

#include <sys/types.h> /* pid_t */

int

main() {

pid_t mypid, myparentpid; /* deklarasi variabel penampung

*/

mypid=getpid(); /* ambil ID proses ini */

myparentpid=getppid(); /* ambil ID parent proses ini */

/* tampilkan ID proses ini */

printf("PID Saya = %d\n",mypid);

/* tampilkan ID parent */

printf("PID PARENT Saya = %d\n",myparentpid);

}

Lakukan proses kompilasi dan Link program contoh1.c

gcc contoh1.c o contoh1

Kemudian eksekusi program dengan :

. /contoh1

Analisa hasil percobaa n yang Anda lakukan. Kerjakan latihan diatas dan analisa hasil tampilannya. Berikan kesimpulan dari praktikum ini.

Percobaan 3 : Konsep Pembuatan Proses

Konsep pembuatan proses pada sistem operasi linux :

Setiap proses diberi nomor khusus sebagai identifikasi yang disebut process identification

Page 9: Nurdianah Yuliasih 4d Modul5

50Praktikum Sistem Operasi

Teknik Inforatika Universitas Muhammadiyah Malang

atau PID berupa angka integer unik.

Jika proses selesai (Terminated) maka semua sumber daya yang digunakan termasuk PID

dibebaskan kembali.

Proses dibuat menggunakan system call fork() yang sering disebut forking proses

System call fork() mengkopi proses pemanggil sehingga akan terdapat 2 proses yaitu :

1. Proses pemanggil disebut PARENT

2. Proses hasil kopian disebut CHILD

Proses CHILD identik dengan proses PARENTnya tetapi memiliki PID yang berbeda.

Setelah proses baru (child) berhasil dibuat eksekusi dilanjutkan secara normal di masing–masing proses pada baris setelah pemanggilan system call fork().

Proses pemanggil (PARENT) dapat melakukan forking proses lebih dari satu kali sehingga memungkinkan terdapat banyak proses CHILD yang dieksekusi.

Proses CHILD dapat melakukan forking proses seperti halnya PARENT sehingga dapat

terbentuk struktur pohon proses.

Untuk pembuatan proses baru di sistem, GNU C menyediakan system call fork() yang disertakan

pada pustaka unistd.h dengan bentuk prototype sebagai berikut :

pid_t fork (void);

fork() mengembalikan suatu besaran bertipe pid_t yang dapat bernilai :

1 menandakan pembuatan proses baru (child) gagal

0 menandakan proses child

selain itu merupakan proses parent dan jika variabel PID dia kses akan berisi PID child. Apabila operasi sukses akan terdapat 2 proses yang dieksekusi yaitu proses parent dan proses child, eksekusi akan dilanjutkan pada kedua proses setelah fork() sampai selesai. Seperti yang telah dijelaskan bahwa proses parent dan child dapat membuat proses proses baru yang lain sehingga

Page 10: Nurdianah Yuliasih 4d Modul5

Teknik Inforatika Universitas Muhammadiyah Malang

51Praktikum Sistem Operasi

terdapat banyak proses yang berjalan pada waktu bersamaan (Multitasking). Berikut contoh program yang melakukan forking sebuah proses tanpa memeriksa nilai yang dikembalikan.

Percobaan Pembuatan Proses

1. program pembuatan proses baru yang melakukan pemeriksaan nilai tanpa kembalian dari

fork()

/* contoh2.c */

#include <stdio.h> /* standard I/O */

#include <unistd.h> /* fork() */

#include <sys/types.h> /* pid_t */

int

main() {

printf("Hello\n"); /* tampilkan Hello */

fork(); /* buat proses child */

printf("Bye-Bye\n"); /* dieksekusi oleh parent dan child */

}

Lakukan proses kompilasi pada program diatas yaitu :

gcc contoh2.c o contoh2

Eksekusi program yang telah di kompilasi dengan :

./contoh2

Hasil dari eksekusi program diatas adalah :

Hello

Page 11: Nurdianah Yuliasih 4d Modul5

Teknik Inforatika Universitas Muhammadiyah Malang

52Praktikum Sistem Operasi

ByeBye

ByeBye

String “Hello” ditampilkan oleh parent sedangkan string “ByeBye” masing – masing dieksekusi oleh parent dan child, lebih jelasnya berikut ilustrasi forking proses pada program contoh2.c diatas :

2. program pembuatan proses baru yang melakukan pemeriksaan nilai kembalian dari fork()

/* contoh3.c */

#include <stdio.h> /* standard I/O */

#include <stdlib.h> /* standard library */

#include <unistd.h> /*fork(), getpid(), getppid() */

#include <sys/types.h> /* pid_t */

int

main(){

pid_t pid;

pid=fork(); /* buat proses child */

if (pid==-1){

Page 12: Nurdianah Yuliasih 4d Modul5

Teknik Inforatika Universitas Muhammadiyah Malang

53Praktikum Sistem Operasi

print(“Fork gagal\n”);

exit(EXIT_FAILURE); /* exit jika gagal */

}

if (pid==0){

/* proses child */

print(“CHILD: Ini proses Child\n”); print(“CHILD:

PID saya = %d\n”,getpid()); print(“CHILD: PID

parent saya = %d\n”,getppid());

} else {

/* proses parent */

print(“PARENT: Ini proses Parent\n”);

print(“PARENT: PID saya = %d\n”,getpid());

print(“PARENT: PID parent saya = %d\n”,getppid());

print(“PARENT: PID child saya = %d\n”,pid);

}

}

Lakukan kompilasi pada program diatas

Analisa dan catatlah hasilnya

Gantilah blok if menjadi struktur switch case

Analisa dan catatlah hasilnya

3. Fungsi Wait() membuat proses parent menunggu

/* contoh4.c */

#include <stdio.h>

#include <stdlib.h>

Page 13: Nurdianah Yuliasih 4d Modul5

Teknik Inforatika Universitas Muhammadiyah Malang

54Praktikum Sistem Operasi

#include <unistd.h>

#include <sys/types.h>

#include <sys/wait.h> /* wait()

*/ int

main(){

pid_t pid;

int rv;

pid=fork();

switch(pid) {

case -1:

perror("fork"); /* pesan kesalahan */

exit(EXIT_FAILURE); /* exit jika gagal */

case 0:

printf(" CHILD: Ini proses child!\n");

sleep(5); /* tunggu 5 second */

printf(" CHILD: Selesai...!\n");

exit(EXIT_SUCCESS);

default:

printf("PARENT: Ini proses parent!\n");

printf("PARENT: Sekarang menunggu child untuk

selesai...\n");

wait(&rv); /* tunggu sampai child selesai */

printf("PARENT: Selesai...!\n");

}

Page 14: Nurdianah Yuliasih 4d Modul5

Teknik Inforatika Universitas Muhammadiyah Malang

55Praktikum Sistem Operasi

}

Lakukan kompilasi pada program diatas

Analisa dan catatlah hasilnya

/* contoh5.c */

#include <stdio.h>

#include <stdlib.h>

#include <unistd.h>

#include <sys/types.h>

#include <sys/wait.h>

int

main(){

pid_t pid;

int rv;

switch(pid=fork()) {

case -1:

perror("fork"); /* pesan kesalahan */

exit(EXIT_FAILURE); /* exit jika gagal */

case 0:

printf(" CHILD: Ini proses child!\n");

printf(" CHILD: PID saya adalah %d\n", getpid());

printf(" CHILD: PID parent saya %d\n", getppid());

printf(" CHILD: Masukkan status exit saya: ");

scanf(" %d", &rv);

printf(" CHILD: Selesai...!\n");

Page 15: Nurdianah Yuliasih 4d Modul5

Teknik Inforatika Universitas Muhammadiyah Malang

56Praktikum Sistem Operasi

exit(rv);

default:

printf("PARENT: Ini proses parent!\n");

printf("PARENT: PID saya adalah %d\n", getpid());

printf("PARENT: PID child saya %d\n", pid);

printf("PARENT: Sekarang menunggu child untuk

selesai...\n");

wait(&rv); /* tunggu proses child selesai */

printf("PARENT:status exit child saya :

%d\n",WEXITSTATUS(rv)); /*status exit*/

printf("PARENT: Selesai...!\n");

}

}

Lakukan kompilasi pada program diatas

Analisa dan catatlah hasilnya

Percobaan 4 : Menampilkan Status Proses dengan Berbagai Format

1. Ketik ps –e | more dan tekan Enter. Opsi e menampilkan semua proses dalam bentuk 4

kolom : PID, TTY, TIME dan CMD.

$ ps –e | more

Page 16: Nurdianah Yuliasih 4d Modul5

Teknik Inforatika Universitas Muhammadiyah Malang

57Praktikum Sistem Operasi

Jika halaman penuh terlihat prompt More di bagian bawah screen, tekan q untuk kembali ke prompt perintah.

2. Ketik ps ax | more dan tekan Enter. Opsi a akan menampilkan semua proses yang

dihasilkan terminal (TTY). Opsi x menampilkan semua proses yang tidak dihasilkan

terminal. Secara logika opsi ini sama dengan opsi –e. Terdapa 5 kolom : PID, TTY,

STAT, TIME dan COMMAND.

$ ps ax | more

Jika halaman penuh terlihat prompt More di bagian bawah screen, tekan q untuk kembali ke prompt perintah.

3. Ketik ps –e f | more dan tekan Enter. Opsi –e f akan menampilkan semua proses dalam

format daftar penuh.

$ ps ef | more

Jika halaman penuh terlihat prompt More di bagian bawah screen, tekan q untuk kembali ke prompt perintah.

4. Ketik ps –eo pid, cmd | more dan tekan Enter. Opsi –eo akan menampilkan semua proses

dalam format sesuai definisi user yaitu terdiri dari kolom PID dan CMD.

$ ps –eo pid,cmd | more

Jika halaman penuh terlihat prompt More di bagian bawah screen, tekan q untuk kembali ke prompt perintah.

5. Ketik ps –eo pid,ppid,%mem,cmd | more dan tekan Enter. Akan menampilkan kolom

PID, PPID dan %MEM. PPID adalah proses ID dari proses parent. %MEM menampilkan

persentasi memory system yang digunakan proses. Jika proses hanya menggunakan

sedikit memory system akan ditampilkan 0.

$ ps –eo pid,ppid,%mem,cmd | more

Percobaan 5 : Mengontrol proses pada shell

1. Gunakan perintah yes yang mengirim output y yang tidak pernah berhenti

$ yes

Page 17: Nurdianah Yuliasih 4d Modul5

Teknik Inforatika Universitas Muhammadiyah Malang

58Praktikum Sistem Operasi

Untuk menghentikannya gunakan CtrlC.

2. Belokkan standart output ke /dev/null

$ yes > /dev/null

Untuk menghentikannya gunakan CtrlC.

3. Salah satu cara agar perintah yes tetap dijalankan tetapi shell tetap digunakan untuk hal yang lain dengan meletakkan proses pada background dengan menambahkan karakter & pada akhir perintah.

$ yes > /dev/null &

Angka dalam ”[ ]” merupakan job number diikuti PID.

4. Untuk melihat status proses gunakan perintah jobs.

$ jobs

5. Untuk menghentikan job, gunakan perintah kill diikuti job number atau PID proses.

Untuk identifikasi job number, diikuti prefix dengan karakter ”%”.

$ kill %<nomor job> contoh : kill %1

6. Lihat status job setelah diterminasi

$ jobs

Percobaan 6 : Menghentikan dan memulai kembali job

1. Cara lain meletakkan job pada background dengan memulai job secara normal (pada

foreground), stop job dan memulai lagi pada background

Page 18: Nurdianah Yuliasih 4d Modul5

Teknik Inforatika Universitas Muhammadiyah Malang

59Praktikum Sistem Operasi

$ yes > /dev/null

Hentikan sementara job (suspend ), bukan menghentikannya (terminate ), tetapi menghentikan sementara job sampai di restart. Untuk menghentikan sementara job gunakan CtrlZ.

2. Untuk restart job pada foreground , gunakan perintah fg.

$ fg

3. Shell akan menampilkan nama perintah yang diletakkan di foreground. Stop job lagi

dengan CtrlZ. Kemudian gunakan perintah bg untuk meletakkan job pada background.

$ bg

Job tidak bisa dihentikan dengan CtrlZ karena job berada pada background. Untuk

menghentikannya, letakkan job pada foreground dengan fg dan kemudian hentikan

sementara dengan CtrlZ.

$ fg

4. Job pada background dapat digunakan untuk menampilkan teks pada terminal, dimana dapat diabaikan jika mencoba mengerjakan job lain.

$ yes &

Untuk menghentikannya tidak dapat menggunakan CtrlC. Job harus dipindah ke

foreground, baru dihentikan dengan cara ketik fg dan tekan Enter, kemudian dilanjutkan

dengan CtrlZ untuk menghentikan sementara.

5. Apabila ingin menjalankan banyak job dalam satu waktu, letakkan job pada foregroundatau background dengan memberikan job ID

$ fg %2 atau $ %2

$ bg %2

6. ketik fg dan tekan Enter, kemudian dilanjutkan dengan Ctrl Z untuk menghentikan

sementara.

7. Lihat job dengan perintah ps fae dan tekan Enter. Kemudian hentikan proses dengan

perintah kill.

Page 19: Nurdianah Yuliasih 4d Modul5

60Praktikum Sistem Operasi

Teknik Inforatika Universitas Muhammadiyah Malang

$ ps fae

$ kill 9 <NomorPID>

Contoh Program yang serupa dengan perintah kill. Lakukanlah kompilasi dan analisa hasilnya

/* contoh1.c */

#include <signal.h> /* kill() */

#include <sys/types.h> /* pid_t */

int

main(){

pid_t PID=773;

kill(PID,SIGTERM);

}

Percobaan 7 : Percobaan dengan Penjadwalan Prioritas

1. Login sebagai root.

2. Buka 3 terminal, tampilkan pada screen yang sama.

3. Pada setiap terminal, ketik PS1 = ” \w:” diikuti Enter. \w menampilkan path pada

direktori home.

4. Karena login sebagai root, maka akan ditampilkan ~: pada setiap terminal. Untuk setiap

terminal ketik pwd dan tekan Enter untuk melihat bahwa Anda sedang berada pada

direktori /root.

5. Buka terminal lagi (keempat), atur posisi sehingga keempat terminal terlihat pada screen.

6. Pada terminal keempat, ketik top dan tekan Enter. Maka program top akan muncul.

Ketik i. Top akan menampilkan proses yang aktif. Ketik lmt. Top tidak lagi

menampilkan informasi pada bagian atas dari screen. Pada percobaan ini, terminal ke

empat sebagai jendela Top.

Page 20: Nurdianah Yuliasih 4d Modul5

Teknik Inforatika Universitas Muhammadiyah Malang

61Praktikum Sistem Operasi

7. Pada terminal 1, bukalah program executable C++ dengan mengetik program yes dan

tekan Enter.

8. Ulangi langkah 7 untuk terminal 2.

9. Jendela Top akan menampilkan dua program yes sebagai proses yang berjalan. Nilai

%CPU sama pada keduanya. Hal ini berarti kedua proses mengkonsumsi waktu proses

yang sama dan berjalan sama cepat. PID dari kedua proses akan berbeda, misalnya 3148

dan 3149. Kemudian gunakan terminal 3 (yang tidak menjalankan primes maupun

Jendela Top) dan ketik renice 19 <PID terimnal 1> (contoh : renice 19 3148) dan

diikuti Enter. Hal ini berarti mengganti penjadwalan prioritas dari proses ke 19.

10.Tunggu beberapa saat sampai program top berubah dan terlihat pada jendela Top. Pada

kolom STAT memperlihatkan N untuk proses 3148. Hal ini berarti bahwa penjadwalan

prioritas untuk proses 3148 lebih besar (lebih lambat) dari 0. Proses 3149 berjalan lebih

cepat.

11.Program top juga mempunyai fungsi yang sama dengan program renice. Pilih Jendela

Top dan tekan r. Program top terdapat prompt PID to renice: tekan 3148 (ingat bahwa

Anda harus mengganti 3148 dengan PID Anda sendiri) dan tekan Enter. Program top

memberikan prompt Renice PID 3148 to value: tekan 19 dan tekan Enter.

12.Tunggu beberapa saat sampai top berubah dan lihat nilai %CPU pada kedua proses.Sekarang proses 3148 lebih cepat dari proses 3149. Kolom status menunjukkan < pada proses 3148 yang menunjukkan penjadwalan prioritas lebih rendah (lebih cepat) dari nilai

0.

13.Pilih terminal 3 (yang sedang tidak menjalankan yes atau program top) dan ketik nice –n

10 yes dan tekan Enter. Tunggu beberapa saat agar program top berubah dan akan

terlihat proses primes ketiga. Misalnya PID nya 4107. Opsi 10 berada pada kolom NI

(penjadwalan prioritas).

14.Jangan menggunakan mouse dan keyboard selama 10 detik. Program top menampilkan proses yang aktif selain program yes. Maka akan terlihat proses top terdaftar tetapi

%CPU kecil (dibawah 1.0) dan konsisten. Juga terlihat proses berhubungan dengan dekstop grafis seperti X, panel dll.

15.Pindahkan mouse sehingga kursor berubah pada screen dan lihat apa yang terjadi dengan tampilan top. Proses tambahan akan muncul dan nilai %CPU berubah sebagai bagian

Page 21: Nurdianah Yuliasih 4d Modul5

Teknik Inforatika Universitas Muhammadiyah Malang

62Praktikum Sistem Operasi

grafis yang bekerja. Satu alasan adalah bahwa proses 4107 berjalan pada penjadwalan

prioritas tinggi. Pilih jendela Top, ketik r. PID to renice : muncul prompt. Ketik 4107

(ubahlah 4107 dengan PID Anda) dan tekan Enter. Renice PID 4107 to value: muncul

prompt. Ketik 0 dan tekan Enter. Sekarang pindahkan mouse ke sekeliling screen. Lihat

perubahannya.

16. Tutup semua terminal window.

17.Logout dan login kembali sebagai user.

LATIHAN :

1. Masuk ke terminal Ketik ps –au dan tekan Enter. Kemudian perhatikan keluaran sebagai

berikut :

a. Sebutkan namanama proses yang bukan root

b. Tulis PID dan COMMAND dari proses yang paling banyak menggunakan CPU time

c. Sebutkan buyut proses dan PID dari proses tersebut

d. Sebutkan beberapa proses daemon

e. Pada prompt login lakukan hal hal sebagai berikut :

$ csh

$ who

$ bash

$ ls

$ sh

$ ps

f. Sebutkan PID yang paling besar dan kemudian buat uruturutan proses sampai

ke PPID = 1.

Page 22: Nurdianah Yuliasih 4d Modul5

Teknik Inforatika Universitas Muhammadiyah Malang

63Praktikum Sistem Operasi

2. Cobalah format tampilan ps dengan opsi berikut dan perhatikan hasil tampilannya :

f daftar penuh

j format job

J format job control

l daftar memanjang

s format sinyal

v format virtual memory

X format register i386

Page 23: Nurdianah Yuliasih 4d Modul5

Teknik Inforatika Universitas Muhammadiyah Malang

64Praktikum Sistem Operasi

DAFTAR PUSTAKA

1. Free Software Foundation.`The GNU C Library Reference Manual', for Version 2.2.x of

the GNU C Library. 2001

2. Hariyanto, Bambang.‘Sistem Operasi’, Edisi 2, Informatika Bandung. 2000

3. h tt p :/ / l e c t urer.ee p i s it s .edu/

4. h ttp : / / w w w . il mu k omp u te r .c om/

5. Husain, Kamran. Parker, Tim.‘Red Hat Linux Unleashed’,Sams Publishing.1996

6. Sams Development Team.‘Unix Unleashed’,Sams Publishing.1994

7. Stallings, William.‘Operating Systems’, New jersey. PrenticeHall Inc.1995

Page 24: Nurdianah Yuliasih 4d Modul5

Teknik Inforatika Universitas Muhammadiyah Malang

65Praktikum Sistem Operasi

LAPORAN PRAKTIKUM

1. Percobaan 4 : Menampilkan Status Proses dengan Berbagai Format>>> >>>

Ps –e untuk menampilkan semua proses dalam bentuk 4 kolom seperti : PID, TTY, TIME, dan CMD

 ps   ax  |   more  Opsi   a   akan  menampilkan  semua  proses   yang  dihasilkan  terminal (TTY).  Opsi  x  menampilkan  semua  proses   yang  tidak  dihasilkan  terminal.   Secara   logika  opsi   ini  sama  dengan  opsi  –e.  Terdapa  5  kolom  :   PID,   TTY, STAT, TIME dan COMMAND.

Page 25: Nurdianah Yuliasih 4d Modul5

Teknik Inforatika Universitas Muhammadiyah Malang

66Praktikum Sistem Operasi

>>>

Ps ef | more adalah untuk menampilkan semua proses dalam format daftar penuh. Jika halaman penuh terlihat prompt “more” di bagian bawah screen.

>>> >>>

Page 26: Nurdianah Yuliasih 4d Modul5

Teknik Inforatika Universitas Muhammadiyah Malang

67Praktikum Sistem Operasi

ps  –eo  pid,ppid,%mem,cmd | more Akan  menampilkan  kolom 

PID, PPID dan %MEM. PPID adalah proses ID dari proses parent. %MEM menampilkan pe

rsentasi   memory   system  yang   digunakan   proses.   Jika   proses   hanya   menggunakan 

sedikit memory system akan ditampilkan 0.

2. Percobaan 5 : Mengontrol Proses pada shell>>> >>>

Yes digunakan untuk mengirim output y yang tidak pernah berhenti.

3. Percobaan 6 : Menghentikan dan Memulai Kembali jobs>>> >>>

>>>

>>>

Page 27: Nurdianah Yuliasih 4d Modul5

Teknik Inforatika Universitas Muhammadiyah Malang

68Praktikum Sistem Operasi

Jobs digunakan untuk melihat status proses. Untuk identifikasi job number, diikuti prefix dengan karakter ”%”.

>>>

>>>

Page 28: Nurdianah Yuliasih 4d Modul5

Teknik Inforatika Universitas Muhammadiyah Malang

69Praktikum Sistem Operasi

4. Percobaan 7 : Percobaan dengan Penjadwalan Prioritas>>>

Untuk menampilkan path pada direktori home

>>>

>>>

Page 29: Nurdianah Yuliasih 4d Modul5

Teknik Inforatika Universitas Muhammadiyah Malang

70Praktikum Sistem Operasi

5. Latihana. Nama-nama yang bukan /root --> ayikb. PID --> 4749 COMMAND --> 1:46 /usr/bin/X :0 -br -verbose -auth /var/run/gdm/auth-for-gdm-kyH5PY/database

-nolisten tcpc. Buyut proses tersebut adalah proses yang paling atas.d. Beberapa proses daemon --> inetd, popd, named.e. Menjalankan command hasil ada pada printscreen.f. PID terbesar hingga terkecil : PID TTY TIME CMD 6962 pts/0 00:00:00 bash 7179 pts/0 00:00:00 sh 7231 pts/0 00:00:00 ps

>>>

>>> >>>

>>>

Page 30: Nurdianah Yuliasih 4d Modul5

Teknik Inforatika Universitas Muhammadiyah Malang

71Praktikum Sistem Operasi

>>>

>>>

>>>

>>>

KESIMPULAN :1. Mengetahui cara menampilakn status proses antara child dengan parent.2. Bisa menampilkan beberapa format proses yang berbeda.3. Mengontrol proses pada shell.

Page 31: Nurdianah Yuliasih 4d Modul5

Teknik Inforatika Universitas Muhammadiyah Malang

72Praktikum Sistem Operasi