Praktikum 4. Proses dan Manajemen Proses
Praktikum
4
Proses
dan Manajemen Proses
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 sistem 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
TEORI
SINGKAT:
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 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 terputur,
misalnya melalui putusnya hubungan modem |
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 dimaksud dengan proses?
Jawab: Proses adalah program yang sedang dieksekusi.
2.
Apa yang dimaksud perintah untuk
menampilkan status proses:
ps, pstree.
Jawab:
·
ps:
merupakan perintah yang digunakan untuk melihat kondisi 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?
Jawab:
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?
Jawab:
·
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:
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:
Perintah ps digunakan
untuk melihat proses yang ada. Ketika perintah ini dieksekusi, maka informasi
yang ditampilkan 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.
·
CMD (Command) yang berfungsi untuk
menampilkan instruksi/perintah yang digunakan.
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:
Perintah pada gambar di
atas digunakan untuk melihat faktor/elemen user yang kemudian dikombinasikan
dengan menggunakan option -u dan ketika perintah ini dijalankan maka akan
tampil data/informasi berupa:
·
USER yang berfungsi memberikan informasi
mengenai user yang sedang digunakan dalam proses tersebut.
· PID yang berfungsi memberikan informasi
mengenai nomor identitas dari proses yang ditunjukan.
· %CPU yang berfungsi untuk mempresentasikan
waktu yang digunakan oleh CPU dalam proses tersebut.
·
%MEM berfungsi untuk mempresentasikan
sistem memori yang digunakan dalam proses.
· RSS (Real System Storage) berfungsi untuk
memberikan informasi mengenai jumlah memori yang digunakan.
· START berfungsi memberikan informasi
mengenai kapan proses tersebut diaktifkan.
4. Mencari
proses yang spesifik pemakai. Proses diatas hanya terbatas pada proses milik
pemakai, dimana pemakai teresbut melakukan login
$ ps –u <user>
Hasil:
Analisa:
Perintah $ ps -u
<user> digunakan untuk melihat/mencari proses yang dijalankan oleh
pengguna. Proses diatas hanya terbatas pada proses yang dijalankan oleh
pengguna, dimana pemakai/pengguna tersebut melakukan login.
5. Mencari
proses lainnya gunakan opsi a (all) dan au (all user)
$ ps –a
$ ps –au
Hasil:
Analisa:
Perintah $ ps -a
digunakan untuk mencari/melihat proses dengan menggunakan opsi -a yang
maksudnya untuk mengeksekusi perintah pada satu user saja. Sedangkan perintah $
ps -au digunakan untuk melihat informasi dari proses yang dijalankan oleh semua
user.
6. Logout
dan
tekan Alt+F7 untuk kembali ke mode grafis
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:
Perintah di atas sama
fungsinya dengan perintah $ ps pada perintah-perintah yang telah dijalankan sebelumnya
yang perbedaannya hanya pada opsi yang ditambahkan setelahnya dimana pada
perintah $ ps digabungkan dengan opsi -eH. Dan ketika perintah $ ps -eH ini
dieksekusi dengan cara menekan Enter, maka prosesnya akan berjalan dengan cara
membaca terlebih dahulu perintah $ ps yang kemudian dilanjutkan dengan membaca
opsi e yang berfungsi memilih semua proses dan opsi H yang berfungsi
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:
Proses ini serupa dengan
tampilan pada percobaan sebelumnya, yang berbeda hanya pada opsi yang
ditambahkan setelah opsi -e. Dimana pada perintah ini ditambahkan opsi f yang
berfungsi untuk mengetahui STAT (keadaan) dari sebuah proses itu yang biasanya
ditandaii dengan simbol S (sleeping) atau R (running). Selain itu
juga opsi f ini akan menampilkan status proses dengan karakter grafis (\ dan
_).
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:
Gambar di atas tampak
struktur berupa sebuah pohon atau diagram. Yang mentakan sistem ditampilkan
dalam bentuk hierarki parent/chils. Proses parent di sebelah kiri proses child.
Sebagai contoh proses init sebagai parent (ancestor) dari semua proses pada
sistem. Beberapa chils dan init mempunyai chils. Proses login mempunyai proses
bash sebagai chils. Proses bash mempunyai proses child startx. Proses startx
mempunyai child xinit dan seterusnya hingga membentuk seperti pohon.
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:
Perintah ini digunakan
untuk menampilkan semua proses mingetty yang berjalan pada sistem yang berupa
console virtual. Selain menampilkan semua proses, proses dikelompokkan dalam
satu baris dengan suatu angka sebagai jumlah proses yang berjalan.
6. Untuk
melihat semua PID untuk proses gunakan opsi –p.
$
pstree –p
Hasil:
Analisa:
Proses tampilan dari
perintah ini serupa dengan tampilan pada perintah yang dilakukan pada proses
praktikum bagian 4 dimana data ditampilkan menyerupai sebuah struktur diagram
atau pohon. Pada proses ini hanya ditambahkan dengan informasi mengenai PID
dari proses yang digunakan dengan menambahkan opsi -p.
7. Untuk
menampilk an proses dan ancestor yang tercetak tebal gunakan opsi –h.
$
pstree –h
Hasil:
Analisa:
Perintah $ pstree yang
kemudian ditambahkan opsi -h berfungsi untuk menampilkan proses dan ancestor
dengan cara ditampilkan atau dicetak tebal.
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.
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. Gunakan
perintah yes
yang mengirim output y
yang tidak pernah berhenti $ yes Untuk menghentikannya gunakan Ctrl-C.
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:
Perintah diatas digunakan
untuk melihat status job setelah diterminasi.
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.
Percobaan
6: Percobaan dengan Penjadwal 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 3784 dan 3785. Dua proses yang sama akan
menggunakan sumber daya yang sama (mendekati), misalkan dua program yang
memiliki PID 3784 dan 3785, keduanya menggunakan sumber daya yang hampir sama
besarnya, namun PID dari kedua proses akan berbeda. Perintah $ renice 19 2356
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:
Untuk
menampilkan proses dari seluruh user menggunakan perintah ps -aux untuk melihat
nama proses yang bukan root. Berdasarkan gambar di atas, nama-nama proses yang
bukan root adalah:
·
User = postfix, PID = 19160, cmd = pickup
-l –
·
User = egypt, PID = 19136, cmd = bash
·
User = system+, PID = 537, cmd =
/lib/system
·
User = syslog, PID = 602, cmd =
/usr/sbin/r
·
User = avahi, PID = 611, cmd = avahi-daemo
·
Dll.
b.
Tulis PID dan COMMAND dari proses yang
paling banyak menggunakan CPU time
Jawab:
User
= root, PID = 18959, Command = [kworker/u4
c.
Sebutkan buyut proses dan PID dari proses
tersebut.
Jawab:
PID
= 19069 dengan proses /usr/libexe.
d.
Sebutkan beberapa proses daemon
·
User = avahi, PID = 611, cmd = avahi-daemo
·
User = avahi, PID = 611, cmd = avahi-daemo
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 proses sampai ke PPID menggunakan perintah $ ps –sort
-pid. Terlihat bahwa PID yang paling besar yaitu 20098.
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 control
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:
Ananda, P. (2012, Oktober 4). Proses
dan Manajemen Proses. Retrieved from Include:
https://pramitananda.wordpress.com/operating-system/proses-dan-manajemen-proses/
Budiman, R. (2019, April 4). Laporan Sistem Operasi. Retrieved
from Academia Edu:
https://www.academia.edu/12182657/LAPORAN_PRATIKUM_SISTEM_OPERASI_manajemen_proses_
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
Komentar ini telah dihapus oleh pengarang.
BalasHapus