Secara informal, proses adalah program dalam eksekusi. Suatu proses adalah lebih dari kode program, dimana kadang kala dikenal sebagai bagian tulisan. Proses juga termasuk aktivitas yang sedang terjadi, sebagaimana digambarkan oleh nilai pada program counter dan isi dari daftar prosesor/ processor’s register.
BAB I
PENDAHULUAN
1.1 Teori Dasar
A.
Proses
Proses adalah program yang sedang
dieksekusi. Setiap kali menggunakanutilitas sistem atau program aplikasi dari
shell, satu atau lebih proses ”child” akandibuat oleh shell sesuai perintah
yang diberikan. Setiap kali instruksi dibe rikan padaLinux shell, maka kernel
akan menciptakan sebuah proses-id. Proses ini disebut jugadengan terminology
Unix sebagai sebuah Job. Proses Id (PID) dimulai dari 0, yaituproses INIT,
kemudian diikuti oleh proses berikutnya (terdaftar pada /etc/inittab).
Beberapa tipe proses :
1.
Foreground
Proses
yang diciptakan oleh pemakai langsung pada terminal (interaktif, dialog).
2.
Batch
Proses
yang dikumpulkan dan dijalankan secara sekuensial (satu persatu). Proses Batch
tidak diasosiasikan (berinteraksi) dengan terminal.
3.
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
B.
Sinyal
Proses
dapat mengirim dan menerima sinyal dari dan ke proses lainnya. Proses
mengirim
sinyal melalui instruksi “kill” dengan format
kill [-nomor sinyal]
PID
Nomor
sinyal : 1 s/d maksimum nomor sinyal yang didefinisikan system.
Standar
nomor sinyal yang terpenting adalah :
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
|
C.
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 danadministrator/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.
D.
Mengontrol
Proses Pada Shell
Shell menyediakan fasilitas job
control yang memungkinkan mengontrolbeberapa job atau proses yang sedang
berjalan pada waktu yang sama. Misalnya bilamelakukan pengeditan file teks dan
ingin melakukan interrupt pengeditan untukmengerjakan hal lainnya. Bila
selesai, dapat kembali (switch) ke editor dan melakukanpengeditan file teks
kembali.
Job bekerja pada foreground atau background.
Pada foreground hanya diperuntukkan untuk satu job pada satu waktu. Job pada
foreground akan mengontrolshell - menerima input dari keyboard dan mengirim
output ke layar. Job padabackground tidak menerima input dari terminal,
biasanya berjalan tanpa memerlukaninteraksi.
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.
E.
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 detaildengan
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.
1.2 Tujuan
1. Memahami
konsep proses pada sis tem 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.
1.3 Manfaat
1. Dapat
berbagi ilmu kepada orang lain tentang sistem operasi Linux Ubuntu 15.04.
2. Dapat
mempraktekkan ilmu di kelas kedalam bentuk praktikum.
3. Dapat
melakukan pengontrolan proses pada shell.
4. Menjadikan
laptop sendiri sebagai bahan percobaan sistem operasi.
BAB II
METODE PRAKTIKUM
2.1 Waktu dan Tempat Praktikum
Hari
Senin, 12 Oktober 2015 kami satu kelas D3 MI 03 ada perkuliahan praktikum
Sistem Operasi jam 13.20 sampai 15.00 di LAB VII. Saat itu ada penjelasan
tentang Proses dan Manajemen Proses pada linux ubuntu. Kami mencoba untuk
mempraktekkan di depan komputer masing-masing dengan di pandu oleh asisten
matakuliah tersebut.
Hari Jum’at, 16 Oktober 2015 kami
satu kelompok yang terdiri dari 8 orang mencoba kembali mampraktekkan materi Proses
dan Manajemen Prosespada linux ubuntu 15.04 di gedung 4 lantai 4 STMIK AMIKOM
YOGYAKARTA sekitar pukul 11.00 sampai selesai. Dengan berbekal madul dari dosen
matakuliah sistem operasi maupun dari internet, kami mempraktekkan satu persatu
tutorial tersebut.
Akhirnya praktikum Proses dan
Manajemen Proses pada linux ubuntu 15.04 berjalan dengan lancar dan kami
mendapatkan ilmu baru dari praktikum tersebut.
2.2 Alat dan Bahan
1. 1
buah komputer atau laptop.
2. Charger
Laptop (jika menggunakan laptop).
3. Linux
Ubuntu 15.04 atau Linux versi sebelumnya.
4. Koneksi
internet (jika ada).
5. Buku
atau E-Book tutorial operasi file dan struktur linux ubuntu.
2.3 Prosedur/Langkah Praktikum
1. Siapkan
komputer atau laptop yang sudah terinstal linux ubuntu atau laptop yang sudah
terinstal dual boot system.
2. Jangan
lupa untuk menyiapkan charger laptop jika menggunakan laptop.
3. Bawa
perlengkapan alat tulis jika diperlukan.
4. Siapkan
juga cemilan untuk ngemil jka merasa lapar.
5. Hidupkan
laptop tersebut dan masuk ke sistem operasi linux ubuntu.
6. Buka
terminal yang ada di sistem operasi linux ubuntu.
7. Lakukan
beberapa percobaan yang ada di modul praktikum atau yang ada di E-book.
BABIII
PEMBAHASAN
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
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 tersebut melakukan login
$
ps –u <user>
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
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 Hmenghasilkan tampilan proses
secara hierarki. Proses child muncul dibawahproses parent. Proses child
ditandai dengan awalan beberapa spasi.
$
ps -eH
3.
Ketik ps –e f dan tekan
Enter. Tampilan serupa dengan langkah 2. Opsi–f akan menampilkan status proses
dengan karakter grafis (\ dan _)
$
ps –e f
4.
Ketik pstree dan tekan
Enter. Akan ditampilkan semua proses padasistem dalam bentuk hirarki
parent/child. Proses parent di sebelah kiri proseschild. Sebagai contoh proses
init sebagai parent (ancestor) dari semuaproses pada sistem. Beberapa child
dari ini mempunyai child. Proseslogin mempunya i proses bash sebagai child.
Proses bash mempunyai proses child startx. Proses startx mempunyai child xinit
danseterusnya.
$
pstree
5.
Ketik pstree | grep
mingetty dan tekan Enter. Akan menampilkansemua proses mingetty yang berjalan
pada system yang berupa consolevbvirtual. Selain menampikan semua proses,
proses dikelompokkan dalam satubaris dengan suatu angka sebagai jumlah proses
yang berjalan.
$
pstree | grep mingetty
6.
Untuk melihat semua PID
untuk proses gunakan opsi –p.
$
pstree –p
7.
Untuk menampilk an
proses dan ancestor yang tercetak tebal gunakan opsi–h.
$
pstree –h
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
3.
Jika halaman penuh
terlihat prompt --More-- di bagian bawah screen, tekan q untuk kembali ke
prompt perintah.
4.
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.
5.
Terdapat 5 kolom : PID,
TTY, STAT, TIME dan COMMAND.
$
ps ax | more
6.
Jika halaman penuh
terlihat prompt --More-- di bagian bawah screen, tekan q untuk kembali ke
prompt perintah.
7.
Ketik ps –e f | more
dan tekan Enter. Opsi –e f akan menampilkan semua proses dalam format daftar
penuh.
$
ps ef | more
8.
Jika halaman penuh
terlihat prompt --More-- di bagian bawah screen, tekan q untuk kembali ke
prompt perintah.
9.
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.
10.
Ketik ps –eo
pid,ppid,%mem,cmd | more dan tekan Enter. Akanmenampilkan kolom PID, PPID dan
%MEM. PPID adalah proses ID dariproses parent. %MEM menampilkan persentasi
memory system yangdigunakan proses. Jika proses hanya menggunakan sedikit
memory systemakan dita mpilkan 0.
$
ps –eo pid,ppid,%mem,cmd | more
11.
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
3.
Untuk menghentikannya
gunakan Ctrl-C.
4.
Belokkan standart
output ke /dev/null
$
yes > /dev/null
5.
Untuk menghentikannya
gunakan Ctrl-C.
6.
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 &
7.
Angka dalam ”[ ]”
merupakan job number diikuti PID.
8.
Untuk melihat status
proses gunakan perintah jobs.
$
jobs
9.
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
10.
Lihat status job
setelah diterminasi
$
jobs
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
2.
Hentikan sementara job
(suspend ), bukan menghentikannya (terminate ), tetapi menghentikan sementara
job sampai di restart. Untuk menghentikan sementara job gunakan Ctrl-Z.
3.
Untuk restart job pada
foreground , gunakan perintah fg.
$
fg
4.
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
5.
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.
6.
Job pada background
dapat digunakan untuk menampilkan teks pada terminal, dimana dapat diabaikan
jika mencoba mengerjakan job lain.
$
yes &
7.
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.
8.
Apabila ingin menjalankan
banyak job dalam satu waktu, letakkan job pada foreground atau background
dengan memberikan job ID
$
fg %2 atau $ %2
$
bg %2
9.
Tekan fg dan tekan
Enter, kemudian dilanjutkan dengan Ctrl -Z untuk menghentikan sementara.
10.
Lihat job dengan
perintah ps -fae dan tekan Enter. Kemudian hentikan proses dengan perintah
kill.
$
ps -fae
$
kill -9 <NomorPID>
11.
Logout dan tekan Alt+F7
untuk kembali ke mode grafis$ fg
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.
5.
Untuk setiap terminal
ketik pwd dan tekan Enter untuk melihat bahwa Anda sedang berada pada direktori
/root.
6.
Buka terminal lagi
(keempat), atur posisi sehingga keempat terminal terlihat pada screen.
7.
Pada terminal keempat,
ketik top dan tekan Enter. Maka program top akan muncul. Ketik i. Top akan
menampilkan proses yang aktif. Ketik lmt.
8.
Top tidak lagi
menampilkan informasi pada bagian atas dari screen. Padapercobaan ini, terminal
ke empat sebagai jendela Top.
9.
Pada terminal 1,
bukalah program executable C++ dengan mengetik program yes dan tekan Enter.
10.
Ulangi langkah 7 untuk
terminal 2.
11.
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 ketikrenice 19 <PID terimnal 1> (contoh : renice 19 3148) dan
diikuti Enter.Hal ini berarti mengganti penjadwalan prioritas dari proses ke
19.
12.
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.
13.
Program top juga
mempunyai fungsi yang sama dengan program renice.
14.
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 RenicePID 3148 to value: tekan -19 dan tekan Enter.
15.
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 penjadwalanprioritas lebih rendah (lebih cepat) dari nilai 0.
16.
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).
17.
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.
18.
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.
19.
Tutup semua terminal
window.
20.
Logout dan login
kembali sebagai user.
Pertanyaan dan Jawaban
1.
Apa yang dimaksud
dengan proses?
Proses
adalah program yang sedang dieksekusi. Setiap kali menggunakan utilitas sistem
atau program aplikasi dari shell, satu atau lebih dari proses "child"
akan dibuat shell sesuai perintah yang diberikan.
2.
Apa yang dimaksud
perintah untuk menampilkan suatu proses : ps, pstree?
Ps
: untuk melihat kondisi proses yang ada.
Pstree
: menampilkan semua proses pada sistem dalam bentuk hierarki parent.
3.
Sebutkan opsi yang
dapat diberikan pada perintah ps?
$
ps : untuk menampilkan kondisi proses
yang ada
$
ps -u : untuk melihat elemen lainnya- $ ps -u <user> : mencari proses
yang spesifik pemakai
$
ps -a : mencari proses lainnya
$
ps -au : mencari proses lainnya
$
ps -eH : memilih semua proses dan menampilkan semua proses.
$
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 berupa console virtual, kemudian menampilkan semua proses dalam
satu baris berupa suatu 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 proses yang 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 dari kolom 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 suatu gejala fisika dimana satu atau beberapa dari karakteristiknya
melambangkan informasi.
Perintah
untuk mengirim sinyal : kill [-nomor sinyal] PID.
5.
Apa yang dimaksud
dengan proses foreground dan background pada job control?
Foreground
: proses yang diciptakan oleh pemakai langsung pada terminal (interaktif,
dialog). Foreground hanya diperuntukkan untuk satu job pada stu waktu. Job pada
foreground akan mengontrol shell - menerima input dari keyboard dan mengirim
ouput ke layar.
Background
: proses yang tidak dapat menerima input dari terminal, biasanya berjalan tanpa
memerlukan interaksi.
6.
Apa yang dimaksud
perintah - perintah penjadwalan prioritas : top, nice, renice.
Top
: Perintah ini digunakan untuk menampilkan proses pada CPU. Perintah ini bisa
digunakan untuk menampilkan proses dan penggunaan resource yang paling aktif.
Nice
: Perintah ini digunakan untuk melakukan modifikasi terhadap programyang akan
mendapatkan prioritas penjadwalan proses.
Renice
: Perintah ini digunakan untuk memberikan prioritas pada prosesyang sedang
berjalan
BAB IV
PENUTUP
4.1 Kesimpulan
ü Masih
banyak lagi percobaan yang perlu di lakukan di terminal linux ubuntu.
ü Praktikum
yang dilaksanakan di LAB berjalan dengan lancar.
ü Banyak
orang yang belum begitu mengetahui lebih dalam tentang proses dan manajemen
proses pada linux ubuntu.
ü Dibutuhkan
waktu yang agak lama untuk praktek percobaan diatas.
4.2 Saran
Ø Pada
saat praktikum, disarankan untuk sungguh-sungguh mencoba semua percobaan yang
ada di modul agar paham tentang proses dan manajemen proses pada linux ubuntu.
Ø Pada
saat praktikum atau percobaan, disarankan untuk membaca modul
atau E-Book agar hati-hati saat percobaan tersebut.
Ø Dan
jangan lupa sebelum praktikum dimulai,
alangkah baiknya untuk berdo’a terlebih dahulu.
DAFTAR PUSTAKA
2.
google.com
Tidak ada komentar:
Posting Komentar