Linux : Proses dan Manajemen Proses
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 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
- 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
|
No Sinyal |
Nama |
Deskripsi |
|
1 |
SIGHUP |
Hangup,
sinyal dikirim bila proses terputus, misalnya melalui putusnya hubungan modem
|
|
2 |
SIGINT |
Sinyal interrupt, melalui ^C |
|
3 |
SIGQUIT |
Sinyal Quit, melalui ^\ |
|
9 |
SIGKILL |
Sinyal Kill, menghentikan proses |
|
15 |
SIGTERM |
Sinyal terminasi software |
3 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
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 sementara 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
u – display proses dari satu user
k – kill proses (dengan PID) q – quit.
Tugas Pendahuluan
Jawablah pertanyaan-pertanyaan di bawah ini :
1.
Apa yang dimaksud dengan proses ?
Proses adalah program yang sedang
dieksekusi.
2.
Apa yang dimaksud perintah untuk menampilkan status proses ps, pstree.
ps: menunjukkan semua proses yang sedang berjalan pada mesin (bukan hanya proses pada shell saat ini). Jika menggunakan perintah ps tanpa diikuti option apapun, maka akan ditampilkan output standart dari perintah ps tersebut yang terdiri dari PID, TTY, TIME, dan CMD.
pstree : menampilkan hanya proses mingetty dan semua proses tersebut dikelompokkan lagi dengan susunan angka sebagai proses yang sedang berjalan.
3.
Sebutkan opsi yang dapat diberikan pada perintah ps
|
-e |
Digunakan untuk menampilkan semua proses. |
|
-C |
Digunakan untuk menyaring proses berdasarkan
nama/perintah. |
|
-f |
Digunakan untuk menampilkan semua informasi
proses secara lengkap. |
|
-r |
Digunakan untuk menampilkan proses yang sedang
berjalan. |
|
-u |
Digunakan untuk menampilkan proses pada user
tertentu saja. Biasanya diikuti dengan menggunakan nama user yang ingin
dilihat prosesnya. |
|
-o |
Digunakan untuk menampilkan proses yang
menggunakan kata kunci tertentu saja. |
|
-aux -fae |
Sedangkan
jika ingin melihat informasi proses secara keseluruhan. |
|
–pid |
Digunakan untuk menampilkan informasi proses
berdasarkan Process ID (PID). |
|
–ppid |
Digunakan untuk menampilkan informasi proses
berdasarkan Parent Process ID (PPID). |
4.
Apa yang dimaksud dengan sinyal ? Apa perintah untuk mengirim
sinyal ?
Sinyal adalah suatu gejala fisika dimana satu atau beberapa dari karakteristiknya melambangkan informasi.
Perintah mengirim sinyal :
kill [-nomor sinyal] PID
5.
Apa yang dimaksud dengan proses foreground dan background pada
job control ?
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.
6.
Apa yang dimaksud perintah-perintah penjadwalan prioritas :
top, nice, renice.
top digunakan untuk melihat proses dengan PID masing-masing.
nice pada dasarnya digunakan untuk tugas-tugas disk atau CPU yang berat sehingga mungkin dapat menyebabkan penurunan kinerja sistem. Dengan perintah nice kita bisa mengubah prioritas pengerjaan sebuah proses, Secara default prioritas nice diset pada nilai 10. Range nilai Nice dari +19 (very nice) hingga −20 (not very nice)
Operasi renice kebalikan dari nice, Renice digunakan untuk menurunkan prioritas pengerjaan sebuah proses. Misalkan kita memiliki proses yang dijalankan dengan PID 785, yang mengerjakan perhitungan matematika yang panjang, sedangkan pada saat yang sama kita ingin melakukan operasi lain misalkan bermain game yang membutuhkan free system resources.
Percobaan I : Status Proses
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
4. Mencari proses yang spesifik pemakai. Proses diatas hanya terbatas pada proses milik pemakai, dimana pemakai teresbut melakukan login
$ ps –u <user>
Pada percobaan ini menghasilkan semua command/intruksi yang dijalankan user 'diah' beserta PID, tty, TIME dan command nya. Terdapat pula perintah yang tidak diketahui terminal mana yang sedang berjalan.
5. Mencari proses lainnya gunakan
opsi a (all) dan au (all user)
$ ps
–a
$ ps –au
6. Logout dan tekan Alt+F7 untuk
kembali ke mode grafis
Dengan melakukan perintah logout maka terminal akan logout dan kembali seperti pertama kali terminal dibuka, yaitu meminta login.
Percobaan 2 : Menampilkan Hubungan Proses Parent dan Child
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.
Percobaan ini adalah untuk melihat semua intruksi/command yang ada secara berurutan dari perintah nomor 1 dalam satu halaman penuh (perintah $ more). Pada gambar di atas, pada bagian tty terdapat tanda tanya yang berarti perintah tersebut tidak sedang dijalankan pada terminal manapun.
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 perintah ini sama dengan perintah di nomor 2, yang berbeda hanyalah kolom yang ditampilkan ada 5 yaitu PID, tty, Stat, time dan CMD. TIME adalah waktu yang diperlukan oleh CPU untuk memproses perintah atau command aplikasi tersebut. STAT adalah kode status proses. Kode Status Process di Linux
D uninterruptible sleep (biasanya IO)
R proses sedang berjalan/dapat dijalankan (saat masuk queue/antrian)
S sleep dan sedang menunggu event selesai
T Diberhentikan oleh job kontrol
Z Zombi process karena tidak diberhentikan oleh induk process
< proses dengan prioritas tinggi
N proses dengan prioritas rendah
L process telah dikunci dalam memory untuk process realtime dan custom IO
s Session leader
l Multi threaded menggunakan CLONE_THREAD, seperti yang dilakukan oleh NPTL pthreads
+ group untuk proses yang ada tampilan nya dan bisa dilihat user,bukan background process.
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 perintah ini adalah menampilkan semua proses dalam format
daftar penuh. Sebagai contoh, pada gambar di atas terdapat perintah –bash pada
terminal 4, -ps ef dan 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.
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
7. Logout dan tekan Alt+F7 untuk kembali ke mode grafis
Dengan melakukan perintah logout maka terminal akan logout dan kembali seperti pertama kali terminal dibuka, yaitu meminta login.
Percobaan 4. Mengontrol Proses pada Shell
1.
Pindah
ke command line terminal (tty2) dengan menekan Ctrl+Alt+F2
dan login ke terminal sebagai user.
Ketika pertama masuk ke terminal akan langsung diarahkan untuk login dan password. Setelah itu baru bisa mengakses command line sebagai user. Jika password salah, command line tidak bisa diakses dan akan terus diarahkan untuk login seperti pada gambar di atas.
2.
Gunakan
perintah yes yang mengirim output y yang tidak pernah berhenti
$ yes
Untuk menghentikannya gunakan Ctrl-C.
Dapat dilihat pada gambar bahwa terdapat banyak huruf y.
Huruf y ini akan terus berjalan selama belum di stop, dan untuk menghentikannya
dengan cara menekan CTRL+C di keyboard.
3.
Belokkan
standart output ke /dev/null
$ yes
> /dev/null
Untuk menghentikannya gunakan Ctrl-C.
Perintah ini untuk memasukkan input dari keyboard dan
outputnya dibelokkan ke file /dev/null. Input bisa diisi apa saja dan baru akan
berhenti 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.
Berdasarkan percobaan ini, job number perintah ini adalah 1 dan
PID nya 2155.
5.
Untuk
melihat status proses gunakan perintah jobs.
$ jobs
Dapat
dilihat pada gambar, job number nomor 1 atau perintah pada percobaan 4 sedang
berjalan (running). Tanda + artinya proses tersebut bisa dilihat user, bukan background
process.
6.
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
Karena proses yang ingin dihentikan memiliki job number 1, maka menggunakan perintah seperti pada gambar di atas.
7.
Lihat
status job setelah diterminasi
$ jobs
Dapat
dilihat pada gambar di atas, setelah sebuah proses dihentikan dengan perintah
kill, proses tersebut akan berhenti (Terminated).
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.
Perintah
ini untuk memasukkan input secara langsung dari keyboard kemudian outputnya
dibelokkan. Untuk menghentikan sementara menggunakan CTRL+Z. Oleh karena itu,
status prosesnya Stopped.
2.
Untuk restart
job pada foreground , gunakan perintah fg.
$ fg
Untuk memulai kembali perintah sebelumnya di foreground menggunakan
perintah fg. Maka perintah yang sebelumnya akan kembali berjalan (percobaan
5.1).
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
Dapat dilihat pada gambar bahwa proses yes > /dev/null &
tetap berjalan meski tidak terlihat di layar, namun prosesnya Running. Untuk
menghentikannya harus meletakkan proses tersebut di foreground. Barulah
prosesnya bisa dihentikan (Stopped).
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.
Perintah ini menghasilkan hasil yang tidak bisa dihentikkan.
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
Jika terdapat beberapa atau banyak job, maka perintah fg dan bg
membutuhkan keterangan job ID. Karena jika tidak ada job IDnya maka perintah
yang otomatis dijalankan adalah perintah sebelumnya. Pada gambar di atas adalah
job dengan job number 1.
6. tekan fg dan tekan Enter, kemudian dilanjutkan dengan Ctrl -Z untuk menghentikan sementara.
Perintah
ini untuk meletakkan proses background sebelumnya ke foreground, kemudian
dihentikan. Dapat dilihat pada gambar bahwa prosesnya terhenti sementara
(Stopped).
7.
Lihat job
dengan perintah ps -fae dan tekan Enter. Kemudian hentikan proses
dengan perintah kill.
$ ps
–fae
$ kill
-9 <NomorPID>
Perintah $ ps –fae digunakan untuk menampilkan
secara lengkap seluruh proses yang sedang berjalan beserta detailnya. Sedangkan
perintah $ kill -9 <nomor PID> digunakan untuk menghentikan
atau terminate suatu proses dengan memasukkann nomor PID sebagai pengenal
prosesnya.
8.
Logout
dan tekan Alt+F7 untuk kembali ke mode grafis
Dengan melakukan perintah logout maka terminal akan logout dan kembali seperti pertama kali terminal dibuka, yaitu meminta login.
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.
Untuk login sebagai root menggunakan
perintah $ sudo su. Tanda masuk ke kode root adalah nama mesin menjadi
berakhiran tanda pagar ‘#’. Setelah menjalankan perintah seperti pada nomor 3,
maka setiap terminal akan menampilkan ~: sebagai tanda bahwa posisi berada di
direktori home.
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 je ndela Top.
7. Pada terminal 1, bukalah program executable
C++ dengan mengetik program yes dan tekan Enter.
8. Ulangi langkah 7 untuk terminal 2.
Gambar di atas adalah gabungan dari
percobaan nomor 5, 6, 7 dan 8. Dapat dilihat ada empat terminal yang
ditampilkan. Terminal nomor 4 atau kanan bawah menampilkan proses Top. Ketika ditekan
‘i’ maka hanya proses yang sedang berjalan saja yang akan ditampilkan. Pada
gambar, terminal 1 dan terminal 2 telah menampilkan program yes. Program ini
menampilkan y yang terus berjalan.
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.
Gambar di atas adalah tampilan jendela Top.
Percobaan kali ini adalah mencoba menghentikan salah satu dari program terminal
yang menjalankan perintah ‘yes’. Perintah ini dapat diketahui pada kolom CMD
atau yang memiliki nomor sama di kolom VIRT yaitu 7472. Untuk mencoba
menghentikan proses di terminal 2, maka perintah yang diketikkan pada terminal
3 adalah $ renice 19 2997.
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.
Dapat dilihat pada gambar di atas bahwa command yang memiliki
PID 2997 sekarang pada urutan prioritas 19 pada kolom NI. Artinya, penjadwalan
prioritas untuk proses 2997 lebih lambat dari proses 2996 (proses di terminal 1
atau terminal root).
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.
Gambar ini menunjukkan cara mengetikkan perintah di jendela yang
berisi proses Top. Jika ditekan enter, maka proses 2997 akan berada di bawah
proses 2996 seperti sedia kala.
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).
Ketka perintah dijalankan, maka terminal 3
akan menampilkan proses ‘yes’ seperti pada terminal 1 dan 2.
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.
Dapat dilihat pada gambar, terdapat 3
command berisi ‘yes’. PID 2996 untuk terminal 1, 2997 untuk terminal 2 dan 3348
untuk terminal 3. Ketiganya memiliki nomor VIRT yang sama yaitu 7472.
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.
Gambar di atas adalah untuk menjalankan program tersebut dan
tinggal tekan enter untuk mengeksekusinya.
16. Tutup semua terminal window.
17. Logout dan login kembali sebagai user.
LATIHAN:
1. Masuk ke tty2 dengan Ctrl+Alt+F2. Ketik
ps –au dan tekan Enter.
Kemudian perhatikan keluaran sebagai
berikut :
a.
Sebutkan
nama-nama proses yang bukan root
Dari gambar di atas, banyak sekali proses
yang bukan root. Nama-nama proses bisa dilihat di kolom COMMAND dengan user
diah. Salah satunya adalah proses –bash, ps –au.
b.
Tulis
PID dan COMMAND dari proses yang paling banyak menggunakan CPU time.
Dari gambar sebelumnya, proses yang memakan
CPU paling banyak yaitu sebesar 2.5. Proses ini memiliki PID 1385 dengan nama
proses /usr/bin/gnome-shell
c. Sebutkan buyut proses dan PID dari proses tersebut
Salah satu buyut prosesnya adalah systemd dengan PID 1.
d.
Sebutkan
beberapa proses daemon
Proses daemon adalah proses yang memiliki
nama berakhiran d, contohnya systemd, boltd, cupsd, fwupd, dan lain-lain.
e.
Pada
prompt login lakukan hal- hal sebagai berikut :
$ csh
$ who
$ bash
$ ls
Fungsi csh adalah untuk mengetikkan langsung. Untuk mengakhiri
perintah ini menggunakan ‘exit’. Pada perintah who, hanya ada satu user yang
berada di terminal yaitu user ‘diah’ di terminal 2. Ls adalah untuk menampilkan
seluruh isi direktori yang sedang aktif.
$ sh
$ ps
Fungsi sh mirip denga csh. Proses yang sedang aktif,hanya ada 3
command.
f. Sebutkan PID yang paling besar dan kemudian buat urut-urutan proses sampai ke PPID = 1.
PID yang paling besar yaitu proses more dengan PID 2506.
2. Cobalah format tampilan ps dengan opsi
berikut dan perhatikan hasil tampilannya :
-f daftar penuh
Perintah ini akan menampilkan hasil dengan
kolom UID, PID, PPID, C, STIME TTY, TIME dan CMD.
-j format job
Perintah ini akan menampilkan hasil dengan
kolom PID, PGID, SID, TTY, TIME dan CMD.
j format job control
Perintah ini akan menampilkan hasil dengan
kolom PPID, PID, PGID, SID, TTY, TPGID, STAT, UID TIME dan CMD.
l daftar memanjang
Perintah ini akan menampilkan hasil dengan
kolom F, UID, PID, PPID, PRI, NI, VSZ, RSS, WCHAN, STAT, TTY, TIME dan COMMAND.
s format sinyal
Perintah ini akan menampilkan sinyal dengan
10 kolom yaitu UID, PID, PENDING, BLOCKED, IGNORED, CAUGHT, STAT, TTY, TIME,
COMMAND. Sinyal ini direpresentasikan dalam bentuk hexadecimal karena ada
huruf-huruf di dalam sinyalnya.
v format virtual memory
Perintah ini akan menampilkan hasil dengan
kolom PID, TTY STAT, TIME, MAJFL, TRS, DRS, RSS, %MEM, dan COMMAND.
X format register i386
Perintah ini akan menampilkan hasil dengan
kolom PID, STACKP, ESP, EIP, TMOUT, ALARM, STAT, TTY, TIME and 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
b. Gunakan perintah sleep
5. Apa yang terjadi dengan perintah ini ?
c. Jalankan perintah pada background menggunakan &
Gambar di atas adalah untuk nomor b dan c. perintah sleep menghentikan sementara eksekusi pada perintah berikutnya selama beberapa detik. Ketika tidak ada suffix digunakan, standarnya adalah dalam hitungan detik. Artinya, perintah di atas adalah menghentikan eksekusi selama 5 detik. Perintah ini berada di job number 1 dan memiliki PID 1948.
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.
Ketika akan mengembalikan job ke
foreground, waktu yang ditempuh lebih dari 15 detik, oleh karena itu prosesnya
sudah selesai saat menjalankan perintah $ jobs.
e. Jalankan sleep 15 pada background menggunakan & dan kemudian gunakan perintah kill untuk menghentikan proses diikuti job number.
Dapat dilihat pada gambar bahwa proses ini sudah dihentikan.
Keterangan terminated artinya proses dihentikan.
f. Jalankan sleep 15 pada background menggunakan & dan kemudian gunakan kill untuk menghentikan sementara proses. Gunakan bg untuk melanjutkan menjalankan proses.
Pada percobaan, ketika akan menghentikan
proses menggunakan kill, terdapat pesan error. Hal ini karena sleep 15 berarti menjeda eksekusi selama 15 detik dan
waktu 15 detik tersebut telah terlewat dan prosesnya sudah selesai.
g. Jalankan sleep 60 pada background 5 kali dan terminasi semua pada dengan menggunakan perintah killall.
Karena proses ‘killall’ ini berhasil, maka
ketika melihat proses yang sedang berjalan menggunakan perintah ‘job’ tidak
akan menampilkan hasil apa-apa.
h. Gunakan perintah ps, w dan top untuk menunjukkan semua proses yang sedang dieksekusi.
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 subprose s ?
Proses child terdapat beberapa spasi atau lebih menjorok ke
kanan daripada proses parentnya. Sedangkan proses daemon adalah proses yang
memiliki akhiran ‘d’ seperti kthreadd, khungtaskd, kblockd, ksmd, dan
lain-lain.
j.
Kombinasikan
ps –fae dan grep, apa yang Anda lihat ?
Sebagai contoh, kata yang dikutip adalah ‘daemon’
maka semua hasil ps –fae yang terdapat kata kunci ini akan dimunculkan.
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 ?
Prosesnya akan berhenti.
Referensi
https://www.belajarlinux.org/cara-mengelola-dan-monitor-proses-aplikasi-yang-berjalan-di-linux/












Komentar
Posting Komentar