PRAKTIKUM 4 - PROSES DAN MANAJEMEN PROSES
LAPORAN PRAKTIKUM 4
PROSES DAN MANAJEMEN PROSES
BROADBAND
MULTIMEDIA
TEKNIK ELEKTRO
POLITEKNIK
NEGERI JAKARTA
TAHUN AJARAN
2021/2022
I.
Pokok Bahasan
1.
Proses pada
Sistem Operasi Linux
2.
Manajemen Proses
pada Sistem Operasi Linux
II.
Tujuan Praktikum
Adapun
tujuan dalam Praktikum ini, sebagai berikut :
1.
Memahami konsep
proses pada sistem operasi Linux
2.
Menampilkan
beberapa cara menampilkan hubungan proses parent dan child
3.
Menampilkan
status proses dengan beberapa format berbeda
4.
Melakukan pengontrolan
proses pada shell
5.
Memahami penjadwalan
prioritas
III.
Dasar Teori
1.
KONSEP PROSESN 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 diberikan pada Linux shell, maka kernel akan menciptakan
sebuah proses-id. 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).
·
Batch
Proses
yang dikumpulkan dan dijalankan secara sekuensial (satu persatu). Proses 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 sistem
Standar
nomor sinyal yang terpenting adalah :
No Sinyal |
Nama |
Deskripsi |
1 |
SIGHUP |
Hangup,
sinyal dikirim bila proses terputus, misalnya melalui putusnya hubungan
modern |
2 |
SIGINT |
Sinyal
interrupt, melalui ^C |
3 |
SIGQUINT |
Sinyal
Quit, melalui ^\ |
9 |
SIGKILL |
Sinyal
Kill, menghentikan proses |
15 |
SIGTERM |
Sinyal
terminasi software |
3.
MENGIRIM SINYAL
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 diperuntukkan 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 [Ctrl-Z]. 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 dengan proses yang berjalan ditampilkan dan secara
terus-menerus di-refresh. 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
pertanyaan-pertanyaan di bawah ini :
1.
Apa yang dimaksudkan dengan proses?
ð Proses
adalah program yang sedang dieksekusi.
2. Apa
yang dimaksud perintah untuk menampilkan status proses
ps,
pstree
ð ps = merupakan
perintah yang digunakan untuk melihat kndisi proses yang ada.
ð pstree = merupakan
perintah yang digunakan untuk menampilkan semua proses pada sistem dalam bentuk
hirarki parent/child.
3. Sebutkan opsi yang dapat diberikan pada
perintah ps
Jawab :
ü $ ps
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 -u
Melihat factor/elemen lainnya. %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 <user>
Mencari proses yang spesifik pemakai. Proses diatas hanya terbatas pada
proses milik pemakai, dimana pemakai teresbut melakukan login.
ü $ ps -a
Mencari proses lainnya (all).
ü $ ps -au
Mencari proses lainnya (all user).
ü $ ps -eH
Untuk menampilkan hubungan proses parent dan child. Opsi e disini untuk
memilih semua proses dan opsi H menghasilkan tampilan proses secara hierarki.
ü $ ps -e f
Menampilkan status proses dengan karakter grafis.
ü $ pstree
Menampilkan semua proses pada sistem dalam bentuk hirarki parent/child.
ü $ pstree | grep mingetty
Menampilkan semua proses mingetty yang berjalan pada sistem yang
berupaconsole virtual, kemudian menampilkan semua proses dalam satu baris
berupasuatu angka.
ü $ pstree -p
Untuk melihat semua PID.
ü $ pstree -h
Untuk menampilkan proses dan asector yang tercetak tebal.
ü $ ps -e | more
Menampilkan semua proses dalam bentuk 4 kolom.
ü $ ps ax | more
Menampilkan semua proses yang dihasilkan terminal dan menampilkan
prosesyang tidak dihasilkan terminal.
ü $ ps ef | more
Menampilkan semua proses dalam bentuk daftar penuh.
ü $ ps -eo pid,cmd | more
Menampilkan semua proses dalam format sesuai definisi user yang terdiri
darikolom PID dan CMD.
ü $ ps -eo pid,ppid,%mem,cmd | more
Untuk menampilkan kolom PID, PPID, dan %mem. PPID adalah proses ID dari
proses. parent. %mem menampilkan persentasi dari memori system yang digunakan
proses.
4. Apa yang dimaksud dengan sinyal? Apa perintah
untuk mengirim sinyal?
ð Sinyal adalah sesuatu yang harus dikendalikan.
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. Perintah untuk
mengirim sinyal: kill [-nomor sinyal] PID.
5. Apa yang dimaksud dengan proses foreground dan
background pada job control?
ð Foreground: hanya diperuntukkan untuk satu job
pada satu waktu. Job pada foreground akan mengontrol shell - menerima input
dari keyboard dan mengirim output ke layar.
ð Background: Proses yang tidak menerima input
dari terminal, biasanya berjalan tanpa memerlukan interaksi.
6. Apa yang dimaksud perintah-perintah penjadwalan
prioritas
top,
nice, renice
Jawab :
-
top :
Memonitor aktifitas system
-
nice :
Mengubah prioritas pada proses
-
renice :
Mengurangi prioritas pada proses
PERCOBAAN
o Percobaan 1 : Status
Proses
1.
Pindah ke
command line terminal (tty2) dengan menekan Ctrl+Alt+F2 dan login ke terminal
sebagai user.
2.
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
Hasil
:
Analisa
:
Command atau perintah ps (process status) dipergunakan untuk menampilkan informasi proses yang sedang berjalan termasuk nomor PID (Process identification Number) dari proses tersebut.jika ada aplikasi yang sedang di jalankan otomatis task akan berjalan, setiap yang berjalan oleh sistem di beri nomor PID yang tidak biasa.
3.
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
Hasil :
Analisa
:
Proses diatas menampilkan banyak proses. Untuk membatasi hanya proses dari user tertentu saja, kita dapat menggunakan sintaks ps -u.
4.
Mencari proses
yang spesifik pemakai. Proses diatas hanya terbatas pada proses milik pemakai,
dimana pemakai teresbut melakukan login
$ps –u <user>
Hasil :
Analisa
:
5.
Mencari proses
lainnya gunakan opsi a (all) dan au (all user)
$ ps –a
$ ps –au
Hasil :
Analisa
:
Digunakan untuk keluar dari terminal dan kembali keposisi semula sebelum kita masuk terminal.
6.
Logout dan tekan
Alt+F7 untuk kembali ke mode grafis
o Percobaan 2 :
Menampilkan Hubungan Proses Parent dan Child
1.
Pindah ke
command line terminal (tty2) 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.
$ ps –eH
Hasil :
Analisa :
“ps -e” difungsikan sebagaimana untuk menampilakan seluruh proses baik dari parent maupun child. Penambahan ‘H’ pada perintah tersebut menghasilkan tampilan proses secara hierarki.
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
Hasil :
Analisa
:
“ps -e” digunakan untuk menampilakan semua proses baik dari parent maupun child. Opsi f akan menampilkan status proses dengan karakter grafis.
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
Hasil :
Analisa
:
pstree akan menampilkan semua proses pada system dalam bentuk hirarki parent/child.
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
Hasil
:
Analisa
:
Menampilkan seluruh proses mingetty yang sedang terjadi di dalam terminal . Pada gambar tidak ada keluaran karena tidak ada proses mingetty.
6.
Untuk melihat
semua PID untuk proses gunakan opsi –p.
$ pastree –p
Hasil :
Analisa :
Gambar di samping merupakan hasil dari pstree -p yang menampilkan proses yang berhubungan untuk mengetahui PID.
7.
Untuk menampilk an proses dan ancestor yang tercetak tebal gunakan opsi
–h.
$ pstree –h
Hasil :
Analisa :
Menampilkan proses secara ancestor yaitu yang bertuliskan tebal adalah perintah parent. dan perintah yang di grupkan berdasarkan nenek moyang yang sama
o Percobaan 3 :
Menampilkan Status Proses dengan Berbagai Format
1.
Pindah ke
command line terminal (tty2) dengan menekan Ctrl+Alt+F2 dan login ke terminal
sebagai user.
2.
Ketik ps –e | more dan tekan Enter. Opsi -e menampilkan semua proses
dalam bentuk 4 kolom: PID, TTY, TIME dan CMD.
$ ps –e | more
Jika
halaman penuh terlihat prompt --More-- di bagian bawah screen, tekan q untuk
kembali ke prompt perintah.
Hasil
:
Analisa
:
Ketika perintah $ ps -e | more ditulis dan dijalankan dengan cara menekan Enter. Maka proses kerjanya akan bekerja dimana opsi -e menampilkan semua proses dalam bentuk 4 kolom: PID, TTY, TIME, dan CMD. Yang kemudian disortir dengan menggunakan More, yang jika ditampilkan halaman penuh terlihat prompt –More—di bagian bawah screen. Sedangkan untuk keluar dapat dilakukan dengan menekan q dan kembali ke prompt perintah.
3.
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.
Terdapat
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.
Hasil :
Analisa
:
Ketika
perintah $ ps ax | more dieksekusi maka proses akan pertama kali membaca
perintah ps yang kemudian membaca opsi a yang berfungsi menampilkan semua
proses yang dihasilkan terminal, setelah itu dilanjutkan dengan membaca opsi x
yang berfungsi untuk menampilkan semua proses yang tidak dihasilkan terminal.
Secara logika opsi ax ini sama dengan opsi -e. Dimana terdapat 5 kolom untuk
tampilan informasi seperti: PID, TTY, STAT, TIME dan COMMAND. Yang kemudian
ditampilkan dengan cara disortir dengan menggunakan More.
4.
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.
Hasil :
Analisa
:
Ketika perintah $ ps -e f | more dieksekusi maka opsi -e f akan menampilkan semua proses dalam format daftar penuh. Yang kemudian disortir dengan menggunakan More.
5.
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.
Hasil
:
Analisa
:
Ketika perintah $ ps -eo pid, cmd | more dieksekusi, maka prosesnya akan diawali dengan membacakan perintah $ ps yang kemudian dilanjutkan dengan membaca opsi -eo pid, cmd yang berfungsi untuk menampilkan semua proses dalam format sesuai definisi user yang terdiri dari kolom PID dan CMD.
6.
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 dita mpilkan 0.
$ ps –eo pid,ppid,%mem,cmd | more
Hasil :
Analisa :
Ketika perintah $ ps -eo pid, ppid, %mem,cmd |
more ini dieksekusi, maka prosesnya akan diawali dengan membacakan perintah $
ps yang kemudian dilanjutkan dengan membaca opsi -eo pid, ppid,%mem,cmd yang
berfungsi untuk menampilkan kolom PID, PPID, dan %MEM. Dimana PPID adalah
proses ID dari proses parent sedangkan %MEM menampilkan persentasi memory
sistem yang digunakan proses. Jika proses hanya menggunakan sedikit memory sistem
maka akan ditampilkan 0.
7.
Logout dan tekan Alt+F7 untuk kembali ke mode grafis.
o Percobaan 4 :
Mengontrol Proses pada Shell
1.
Pindah ke
command line terminal (tty2) dengan menekan Ctrl+Alt+F2 dan login ke terminal
sebagai user.
2.
Pindah ke
command line terminal (tty2) dengan menekan Ctrl+Alt+F2 dan login ke terminal
sebagai user.
Hasil
:
Analisa
:
Perintah yes digunakan untuk mengirim output y yang tidak pernah berhenti. Untuk menghentikannya dengan cara menekan Ctrl-C.
3.
Belokkan
standart output ke /dev/null
$ yes > /dev/null
Untuk
menghentikannya gunakan Ctrl-C.
Hasil
:
Analisa
:
Perintah ini digunakan untuk membelokan standard ouput dari yes ke /dev/null. Untuk menghentikannya menggunakan Ctrl -C.
4.
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.
Hasil
:
Analisa
:
Perintah tersebut merupakan 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. Sedangkan angka [1] merupakan job number yang diikuti PID.
5.
Untuk melihat
status proses gunakan perintah jobs.
$ jobs
Hasil
:
Analisa
:
Perintah jobs digunakan untuk melihat status proses.
6.
Untuk
menghentikan job, gunakan perintah kill diikuti job number atau PID proses.
Untuk identifikasi job number, diikuti prefix dengan karakter “%”.
$ kill %
contoh: kill %1
Hasil
:
Analisa
:
Perintah kill digunakan untuk menghentikan job untuk yes dan jobs untuk melihat proses yang telah diterminasi.
7.
Lihat status job setelah diterminasi
$ jobs
Hasil
:
Analisa :
o Percobaan 5 :
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
$ yes > /dev/null
Hentikan sementara job (suspend), bukan menghentikannya (terminate), tetapi menghentikan sementara job sampai di restart. Untuk
menghentikan sementara job gunakan Ctrl-Z.
Hasil :
Analisa :
Perintah $ yes > /dev /null di pergunakan untuk memulai job, job dapat
dihentikan sementara atau sering di sebut (suspend) dengan menggunakan Ctrl – Z.
2.
Untuk restart
job pada foreground, gunakan perintah fg.
$ fg
Hasil :
Analisa :
Perintah fg digunakan untuk memulai kembali job
yang telah disuspend pada foreground.
3.
Shell akan menampilkan nama perintah yang diletakkan di foreground.
Stop job lagi dengan Ctrl-Z.
Kemudian gunakan perintah bg untuk meletakkan job pada background
$ bg
Job tidak bisa dihentikan dengan Ctrl-Z karena
job berada pada background. Untuk menghentikannya, letakkan job pada foreground
dengan fg dan kemudian hentikan sementara dengan Ctrl-Z.
$ fg
Hasil :
Analisa :
Hal pertama kali yang dilakukan adalah
mensuspend job dengan yes >/dev/null. Kemudian memindahkannya ke background
proses, yang berarti proses atau job tersebut tidak berhenti,akan tetapi terus
berjalan di belakang layar. Selanjutkan job yang berada pada background tidak
bisa langsung dihentikan dengan Ctrl + Z. Untuk menghentikannya kita harus
memindahkan job tersebut ke foreground lalu mensuspendnya.
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
Ctrl-C. Job harus dipindah ke foreground, baru dihentikan dengan cara tekan fg
dan tekan Enter, kemudian dilanjutkan dengan Ctrl-Z untuk menghentikan
sementara.
Hasil :
Analisa :
Perintah $ yes & ini berjalan pada job
background yang kita buat tadi. Kita dapat menghentikan prosesnya dengan cara
kita mengetik fg lalu enter agar proses pindah ke foreground, kemudian
dilanjutkan menekan Ctrl + Z agar berhenti sementara.
5.
Apabila ingin menjalankan banyak job dalam satu waktu, letakkan job
pada foreground atau background dengan memberikan job ID
$ fg %2 atau $ %2
$ bg %2
Hasil :
Analisa :
Perintah $ fg %2 dan $bg %2 disini berguna
untuk menjalankan banyak job dalam waktu bersamaan. Job – job yang sedang tidak
dipakai dimasukkan ke proses background, dan untuk mengenalinya kita
menggunakan nomor job ID karena tidak ada job yang memiliki nomor ID sama.
6.
Tekan fg dan tekan Enter, kemudian dilanjutkan dengan Ctrl-Z untuk
menghentikan sementara.
Hasil :
Analisa :
Pada saat kita menekan fg, muncul hasil dari
perintah $yes & tadi. Jadi fungsi perintah fg disini adalah untuk memanggil
proses yang berjalan di background. Dan kita bisa menghentikannya dengan
menekan Ctrl + Z.
7.
Lihat job dengan perintah ps -fae dan tekan Enter. Kemudian hentikan
proses dengan perintah kill.
$ ps -fae
$ kill -9 <NomorPID>
Hasil :
Analisa :
Perintah
$ ps –fae digunakan untuk menampilkan secara lengkap seluruh proses yang
sedang berjalan beserta detailnya termasuk proses dari perintah $ps –fae
sendiri. Sedangkan perintah $ kill -9 <nomor PID> digunakan untuk
menghentikan atau terminate suatu proses, berdasarkan nomor PID proses yang
ingin dihentikan.
8.
Logout dan tekan Alt-F7 untuk kembali ke mode grafis
Analisa :
Disini kita disuruh logout lalu kembali ke mode grafis. Untuk logout kita bisa menekan exit dan untuk kembali ke mode grafis kita bisa menekan tombol Alt + F7.
o Percobaan 6 :
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.
Hasil
:
Analisa
:
Pertama-tama,
buka terminal dan bagi menjadi 3. Caranya dapat dilakukan dengan menambah tab
baru di terminal, lalu klik kanan dan klik detach terminal untuk memisahkannya.
Selanjutnya, memasukkan sudo su untuk masuk sebagai root. Perintah $ PS1=”\w:”
diatas bertujuan untuk masuk ke directory home dari user root. Bila posisi kita
masih berada di /home/<user>, maka kita bisa gunakan perintah $cd ~ untuk
masuk ke root. Dan untuk mengeceknya kita gunakan perintah $pwd.
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
Hasil
:
Ketik
i
Ketik
lmt
Analisa
:
Setelah
kita membuka terminal ke empat, kecilkan lagi ukurannya agar posisinya terlihat
semua di layar. Pada terminal 4 akan menjalankan program top. Perintah top
disini digunakan untuk mengetahui semua rincian proses yang berjalan, dan
beberapa fungsi lainnya. Mengetikkan ‘i’ pada window top akan menampilkan
proses yang sedang aktif. Mengetikkan ‘lmt’ untuk menghilangkan atau tidak
menampilan informasi pada bagian atas dari tampilan top.
7.
Pada terminal 1,
bukalah program executable C++ dengan mengetik program yes dan tekan Enter.
Hasil
:
Analisa
:
Karena
pada percobaan ini menggunakan program sendiri yang perintah eksekusinya adalah
./a.out, maka yang muncul adalah angka ganjil antara angka 1 sampai 10, dan itu
diulang-ulang terus tidak berhenti.
8.
Ulangi langkah 7
untuk terminal 2
Hasil
:
Analisa
:
Disini
kita disuruh mengulangi langkah nomor 7 namun pada terminal kedua. Dan hasilnya
sama yaitu angka ganjil yang diulang terus menerus. Dan mulai dari sini OS
Linux yang kita gunakan menjadi lemot.
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 terminal 1> (contoh: renice 19 3148) dan
diikuti Enter. Hal ini berarti mengganti penjadwalan prioritas dari proses ke
19.
Hasil :
Analisa
:
Disini
PID dua program yang telah kita jalankan tadi adalah 2457 dan 1309. Dua proses
yang sama akan menggunakan sumber daya yang sama (mendekati), misalkan dua
program yang memiliki PID 2457 dan 1309, keduanya menggunakan sumber daya yang
hampir sama besarnya, namun PID dari kedua proses akan berbeda. Perintah $
renice 19 2457 berarti mengganti penjadwalan prioritas dari proses ke 19, dan
NI berubah yang tadinya 0 menjadi 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.
Hasil :
Analisa
:
Setelah
prioritasnya diubah menjadi 19, proses 3784 berjalan lebih lambat dari proses
3785. Ini disebabkan proses 3784 mendapatkan penjadwalan prioritas lebih besar
dari proses 3785.
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.
Hasil
:
Analisa
:
Program
top juga memiliki fungsi yang sama dengan program renice. Jadi kita dapat
mengubah konfigurasi proses melalui program renice maupun top. Selain dengan
menggunakan perintah renice, kita juga dapat langsungmelakukan perubahan
penjadwalan prioritas di top, dengan menekan r lalu pilih PID dan valuenya -19.
Tunggu beberapa saat sampai top berubah danlihat nilai %CPU pada kedua proses.
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.
Hasil
:
Analisa
:
Setelah
prioritas proses 3784 diubah menjadi -19, proses 3784 menjadi lebih cepat daripada
3785.
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).
Hasil
:
Analisa
:
Perintah
$ nice –n -10 ./a.out digunakan untuk membuat proses baru, dan opsi -10
merupakan penentuan prioritas dari proses tersebut. PID dari proses yang kita
buat adalah 4107, dan disana terlihat pada kolom NI terdapat angka -10
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.
Hasil
:
Analisa
:
Saat
mouse diam muncul beberapa proses lain, namun dengan penggunaan %CPU kecil
(penggunaannya memang di bawah 1.0). Dan itu juga konsisten tidak berubah-ubah.
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 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.
Hasil
:
Analisa
:
Saat
kita memindahkan kursor mouse, beberapa proses yang muncul tadi penggunaan %CPU
nya berubah semua yaitu cenderung bertambah. Dan juga muncul lagi proses lain
dengan penggunaan %CPU lumayan banyak. Kita dapat mengubah konfigurasi suatu
proses melalui perintah – perintah yang terdapat pada proses top. Dan ternyata
setelah proses 3784 diubah prioritasnya menjadi 0, penggunaan sumber daya oleh
terminal top menjadi lebih stabil (tidak banyak perubahan) walaupun mouse
digerakkan ke sekeliling screen.
16. Tutup semua terminal window
Analisa
:
Disini
kita disuruh menutup semua window terminal. Dan hasilnya setelah semua terminal
tertutup, linux menjadi tidak lemot lagi.
17. Logout dan login kembali sebagai user.
Analisa
:
Saat kita
menutup terminal, otomatis juga kita logout. Dan saat kita membuka kembali
terminal, otomatis kita langsung login sebagai user biasa.
LATIHAN
1.
Masuk ke tty2
dengan Ctrl+Alt+F2. Ketik ps –au dan tekan Enter. Kemudian perhatikan keluaran
sebagai berikut:
Hasil :
a.
Sebutkan
nama-nama proses yang bukan root
Jawab :
- USER = putri , PID = 1365 , cmd = /usr/libesec/gmd-wayland-session env GNOME_SHELL_SESSION_MODE=ubunt
- USER = putri , PID = 1369 , cmd = /usr/libexec/gnome-session-binary --systemd --session=ubuntu
- USER = putri , PID = 14992 , cmd = bash
- USER = putri , PID = 15112 , cmd = ps -au
b.
Tulis PID dan
COMMAND dari proses yang paling banyak menggunkan CPU time
Jawab :
USER = putri , PID = 1309 , cmd = /usr/bin/gnom
c.
Sebutkan buyut
proses dari PID dari proses tersebut
Jawab :
PID = 1775 dengan proses /usr/libexec/
d.
Sebutkan
beberapa proses daemon
Jawab :
- USER = massage+ , PID = 531 , cmd = @dbus-daemon
- USER = avahi , PID = 571 , cmd = avahi-daeon:
- USER = putri , PID = 1574 , cmd = ibus-daemon -
e.
Pada prompt
login lakukan hal- hal sebagai berikut:
$ csh
$ who
$ bash
$ ls
$ sh
$ ps
Hasil
:
Analisa
:
·
Perintah $ csh: Shell interaktif yang memiliki sintaks
yang lebih banyak dibandingkan bourne shell
·
Perintah $ who: Untuk melihat user aktif yang login.
·
Perintah $ bash: Shell interpreter bahasa sh untuk
mengeksekusi perintah yang dibaca dari standart input atau dari sebuah file.
·
Perintah $ ls: Untuk melihat nama file/direktori
secara lengkap.
·
Perintah $ sh: Bourne Shell atau shell (command
interpreter) default dari unix.
·
Perintah $ ps: Untuk menampilkan kondisi proses yang
ada.
f.
Sebutkan PID yang paling besar dan kemudian buat
urut-urutan proses sampai ke PPID = 1.
Hasil :
Analisa :
Untuk melihat urutan proes sampai ke PPID menggunakan perintah $ ps --sort -pid. Terlihat bahwa PID yang paling besar yaitu 16049
2. 2. Cobalah format tampilan ps dengan opsi berikut dan
perhatikan hasil tampilannya: ·
·
-f daftar
penuh
Hasil :
Analisa :
Perintah di atas digunakan untuk menampilkan dalam format penuh. seperti
UID, PID, PPID, C, STIME, TTY, TIME, CMD.
·
-j format
job
Hasil :
Analisa :
Perintah di atas untuk menampilkan dalam format job. Isinya dipenuhi oleh
angka, karena cenderung menampilkan ID dimana proses sedang bekerja, berisi
PID, PGID, SID, TTY, TIME, CMD.
·
j format
job kontrol
Hasil :
Analisa :
Perintah di atas digunakan untuk menampilkan dengan format jobBSD. hasilnya
berupa format job yang lebih detail, berisi PPID, PID, PGID, SID, TTY, TPGID,
STAT, UID, TIME, COMMAND
·
l daftar
memanjang
Hasil :
Analisa :
Perintah di atas hasilnya berupa daftar memanjang, berisi F, UID, PID,
PPID, PRI, NI, VSZ, RSS, WCHAN, STAT, TTY, TIME, COMMAND.
·
s format
sinyal
Hasil :
Analisa ;
Perintah di atas menampilkan dengan format sinyal. (Biasanya angka yang
muncul banyak), berisi UID, PID, PENDING, BLOCKED, IGNORED, CAUGHT, STAT, TTY,
TIME, COMMAND.
·
v format
virtual memory
Hasil :
Analisa :
Perintah di atas untuk menampilkan dengan format memori virtual. Berisi
PID, TTY, STAT, TIME, MAJFL, TRS, DRS, RSS, %MEM, COMMAND.
·
x format
register i386
Hasil :
Analisa :
Perintah di atas untuk menampilkan dengan format register. Berisi PID,
STACKP, ESP, EIP, TMOUT, ALARM, STAT, TTY, TIME, COMMAND.
3. Lakukan urutan pekerjaan berikut:
a.
Gunakan perintah find ke seluruh direktory pada
sistem, belokkan output sehingga daftar direktori dialihkan ke file
directories.txt dan daftar pesan error dialihkan ke file errors.txt
Hasil :
Analisa :
Perintah dilakukan dengan $ find > directories.txt > error.txt.
b.
Gunakan perintah sleep 5. Apa yang terjadi dengan
perintah ini?
Hasil :
Analisa :
Proses Terminal terhenti selama 5 detik. Lalu baru bisa menulis command
selanjutnya.
c.
Jalankan perintah pada background menggunakan &
Hasil :
Analisa :
Karena proses hanya 5 detik, sehingga ketika kita lihat di jobs, maka
statusnya akan selesai.
d.
Jalankan sleep 15 pada foreground, hentikan sementara
dengan Ctrl-Z dan kemudian letakkan pada background dengan bg. Ketikkan jobs.
Ketikkan ps. Kembalikan job ke foreground dengan perintah fg.
Hasil :
Analisa :
Pertama-tama, perintah sleep 15 dieksekusi, lalu distop sebelum terminal
kembali dapat menulis command berikutnya. Setelah itu, lihat di background
dengan perintah $ bg. Alasan disini pada saat jobs diketikan tidak keluar apa
apa adalah karena proses sleep 15 telah selesai, jadi sudah tidak ada lagi jobs
atau pekerjaan yang masih berjalan. Kita juga bisa memastikannya melalui ps dan
tidak ada proses sleep yang berjalan, maka dari itu pada saat kita melakukan
perintah fg terdapat output “no such job” yang berarti tidak ada pekerjaan atau
job.
e.
Jalankan sleep 15 pada background menggunakan &
dan kemudian gunakan perintah kill untuk menghentikan proses diikuti job number
Hasil :
Analisa :
Proses dapat dihentikan menggunakan kill
f.
Jalankan sleep 15 pada background menggunakan &
dan kemudian gunakan kill untuk menghentikan sementara proses. Gunakan bg untuk
melanjutkan menjalankan proses.
Hasil :
Analisa :
Proses dapat dihentikan menggunakan kill. Option -STOP digunakan untuk
menstop proses sleep 15. Jika tidak menggunakan opsi tersebut, maka proses
sleep akan terminated/berhenti sehingga proses sleep tidak dapat dilanjutkan.
g.
Jalankan sleep 60 pada background 5 kali dan terminasi
semua pada dengan menggunakan perintah killall.
Hasil :
Analisa :
Perintah $ for i in {1..5} do sleep 60 & done adalah perintah untuk
mengulang perintah sleep 60 sebanyak 5 kali. Perintah killall dapat digunakan
untuk menghapus atau stop permanen proses dengan menambahkan nama proses
setelah killall, sehingga semua proses yang ada nama tersebut akan dihentikan.
h.
Gunakan perintah ps, w dan top untuk menunjukkan semua
proses yang sedang dieksekusi.
Hasil :
Ps
W
Top
Analisa :
Perintah ps digunakan untuk melihat kondisi proses yang ada. Perintah w
digunakan untuk menampilkan proses secara lengkap (running, done, terminated).
Perintah top adalah tool baris perintah, tetapi perintah ini memberikan output
interaktif dari semua proses yang sedang berjalan, menampilkan informasi dalam
interface grafis. Output dari perintah top memberi kita banyak informasi,
termasuk penggunaan CPU dan RAM secara keseluruhan pada sistem.
i.
Gunakan perintah ps –aeH untuk menampilkan hierarki
proses. Carilah init proses. Apakah Anda bisa identifikasi sistem daemon yang
penting? Dapatkan Anda identifikasi shell dan subproses?
Hasil:
Analisa :
Init proses disini adalah pada system dengan PID = 1. Terdapat beberapa
sistem daemon yang penting yaitu system, rsyslogd, cryptd, cupsd. Pada gambar
akhir, bisa dilihat bahwa terdapat subproses dari gnome terminal.
j.
Kombinasikan ps –fae dan grep, apa yang Anda lihat?
Hasil :
Analisa :
Ps -aeH hanya mengarahkan pada proses yang dimasukan setelah grep,
contohnya ps -aeH | grep budgie daemon, berarti ps –aeH hanya mengarahkan pada
semua proses yang bernama budgie daemon, dan pada tampilannya akan berwarna
merah. Begitupula pada ps -aeH | grep daemon. Semua proses yang mengandung
daemon, maka tampilannya akan berwarna merah.
k.
Jalankan proses sleep 300 pada background. Log off
komputer dan log in kembali. Lihat daftar semua proses yang berjalan. Apa yang
terjadi pada proses sleep?
Hasil :
Analisa :
Pada log off menggunakan GUI, proses sleep masih berjalan selama waktunya
belum habis. Sedangkan pada log off secara GUI, proses sleep tidak berjalan
lagi walaupun waktunya belum habis.
KESIMPULAN
Berdasarkan
hasil percobaan yang telah dilakukan, dapat diambil kesimpulan bahwa proses
adalah program yang sedang berjalan atau 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 diberikan pada Linux shell, maka kernel akan menciptakan sebuah
proses-id. Terjadinya proses ditandai dengan adanya informasi berupa PID yang
berfungsi untuk menampilkan nomor identitas proses, TTY yang berfungsi untuk
menampilkan nama terminal dimana proses tersebut aktif, TIME berfungsi
menampilkan waktu yang diperlukan dalam mengakses perintah, serta CMD (Command)
yang berfungsi untuk menampilkan instruksi/perintah yang digunakan. Terdapat
berbagai perintah untuk melakukan proses, dan untuk menghentikannya dapat
menggunakan perintah kill. Proses juga dapat dibuat dan ditampilkan secara
pohon atau hierarki.
DAFTAR
PUSTAKA
ChefStrawMole. (2016, June 2). OOP2. Retrieved from Course Hero: https://www.coursehero.com/file/pkta6lp/Perintah-pstree-sama-halnya-dengan-perintah-ps-yaitu-menampilkan-semua-proses/
Hafidh, A. (2017, Juli 29). Percobaan 4. Retrieved from Gitbooks: https://ahmadhafidh.gitbooks.io/proses-manejemen-sistem-di-ubuntu/content/percobaan_4.html
Laksono, A. T. (2017, Mei 17). LAPORAN PRAKTIKUM SISTEM OPERASIS1-TEKNIK KOMPUTER. Retrieved from Academia Edu: https://www.academia.edu/35550105/LAPORAN_PRAKTIKUM_SISTEM_OPERASI_S1_TEKNIK_KOMPUTER_PROSES_DAN_MANAGEMEN_PROSES_Pertemuan_ke_12
Mufid, A. W. (2016, Mei 23). Tugas 5 Sistem Operasi. Retrieved from Nugas Disini: https://nugasdisini.blogspot.com/2016/05/pertemuan-5-laporan-praktikum-4a-proses.html
Putra, F. A. (2018, Agustus 15). LAPORAN PRAKTIKUM SISTEM OPERASI Judul : Manajemen Proses. Retrieved from Academia Edu: https://www.academia.edu/38944537/LAPORAN_PRAKTIKUM_SISTEM_OPERASI_Judul_Manajemen_Proses
Comments
Post a Comment