Memahami Proses Di Linux
-
Upload
jawahir-adjie -
Category
Documents
-
view
85 -
download
1
Transcript of Memahami Proses Di Linux
5/13/2018 Memahami Proses Di Linux - slidepdf.com
http://slidepdf.com/reader/full/memahami-proses-di-linux 1/7
Memahamirosesi'[Linux dalahistem perasimulti asking
angangatoptimaldalahalahatu unci eberhasilannya.engan
akan apatmemahamiinuxebih aik agi.
asih ingat MS DOS? Ketika An-
da menjalankan satu program,
word star misalnya, maka Anda
hanya bisa menjalankan progam tersebut
(single task). Tidak ada mekanisme resmi
untuk menjalankan dua program atau lebih
sekaligus. Program resident tidak dimasuk-
kan dalam kategori multitasking karena
mem-bypass istem untuk dapat berjalan di
latar belakang.
Oleh karena itulah, maka MS DOS
seringkali dikatakan sangatstabil. Tentu saja
karenahanya menangani satuprogram user
dalam satu waktu. Masih teringat di benak
penulis ketika Windows 95 muncul dan
ketahuan senang sekali hang, orang-orang
sukabersungut-sungutdan mengatakanMS
DOS 6lebih stabil.
Perbandingan tersebut tidaklah relevan
karena Windows 95 adalah sistemoperasiyang multitasking. Artinya, dalam satu wak-
tu, bisabanyakprogram yangberjalan.Anda
bisa mendengarkan lagu sambil mengetik di
Microsoft Word misalnya. Hal tersebut di-
mungkinkan dengan berbagi waktu dengan
alokasi waktu yang singkat dalam interval
yang singkat untuk masing-masing proses.
Misalnya, katakanlah aplikasi pemutar
lagu kita sebut sebagaiaplikasi Al. Micro-
soft Word kita sebut sebagai plikasi 42 Un-
tuk melayani keduaprogram tersebut,Win-
dows akan berpindah ke Al dan melayaniAl untuk - katakanlah - 0.001 detik (time
slice). Kemudian, berpindah lagi ke A2 dan
melayaniA.2 katakanlah juga 0.001 detik.
Setelah tu kembali lagi ke Al dan seterus-
nya. Di mata pengguna,Al dan A.2 ampak
jalan berbarengankarena interval 0.001 de-
tik sangatsudah diukur. Denganmekanisme
serupa,kita bisa mengatakankalau ada 1000
aplikasi, maka Windows akan mengunjungi
dariAl sampai41000.
Sayangnya, sistem tidaklah seseder-
hana itu. Sistem sebenarnyamemang tidak
54 INF0LINUX 2/2004
erita UlasanAduSoftwareUtama Bisnis ApaSihSebenarnya...Tutori
{6i*#$*ggcj{'
melayani dalam satuan seperseribu detik.
Masih jauh lebih kecil. Namun, dengan
perumpamaan kita sebelumnya,maka jika
ada 1000 aplikasi, maka untuk melayani ap-
likasi Al lagi setelahberkeliling, maka akan
membutuhkan waktu I detik. Lama sekali.
Bagaimana ika Al adalah aplikasi pemutar
lagu dan setiap 1detik lagu Anda akan ber-
henti berputar, berputar lagi, lalu berhenti
lagi? Baiklah. |adikan time slice l/10000 de-
tik. Tetap sajaakan kerepotan.
Hal tersebut belum termasuk ada proses
yang memiliki prioritas berbeda. Ada yang
minta dilayani agak lama. Ada yang lebih
egois agi. Dan sebagainya.Dan, yang pen-
ting, bagaimana kalau ada program yang
harus mengaksesperangkat keras seperti
printer misalnya, dan ngambek menunggu
printer yang tidak mau mencetak?Apakah
sistem harus menunggu? Bagaimana kalauprogram tersebut memiliki prioritas tinggi
dan sistem kebetulan menunggu? Jadilah
kita sebut komputer kita hang.
Sistem yang sebenarnya memang tidak
sesederhanatu. Tentunya ada mekanisme
yang lebih unggul yang membuat pergan-
tian melayani proses menjadi jauh lebih
efisien.Tapi, kondisi sederhana ersebut bi-
sa kita gunakan untuk mengetahui mengapa
suatu sistem operasi ebih mudah dan sering'h an{ dib anding yang lainnya.
Coba ihat sistemoperasi-
sistemoperasibesar kelas enterprise dengan harga selangit
yang melayani bank yang sibuk misalnya.
Dalam satu waktu, mungkin terdapat lebih
dari 1000 prosesberjalan secarakonkuren.
Atau, coba amati server AOL atau Yahoo!
Dalam satu waktu, bisa-bisa terdapat lebih
dari 10.000prosesyang berjalan. Tidak bisa
dipastikan karena umlah pelangganmereka
sangat besar. Dan pengguna adalah raja.
Oleh karena tu, berbagai cara harus dilaku-
kan agar pelayanantetap dapat dilakukan.
Sesibukapapun uga.
Linux,
slsl sudah pasti.
dari harus kuat. Mak
umumnya memPe
s$tem oPerasl enterpise
hargaselangit ersebut.
Dulu, Linux belum mampu seke
sistem operasi enterprise. Namun, se
kernel 2.6 lahir, banyak hal yang mampmenjadikan Linux memasuki pasar ente
prise dengan harga yang sangat masuk ak
Beberapacatatan misalnya. umlah user da
64K (sekitar65.000) menjadi lebih dari 4
ta ( 16bit ke 32 bit). Dan untuk kasuspros
batas PID tidak lagi 32000, namun menja
lebih dari I juta.
Hal ini berarti, teorinya, memungkinka
Linux melayani mendekati hampir I ju
proses. Dnegan kemampuan memasu
enterprise ini, wajar apabila Red Hat mul
lebih fokus. Novell membeli SUSEdan lasebagainya.
Mau dijual mahal pun, server enterpri
Linux masih akan tampak lebih masuk ak
Kita, tentu saja tidak bisa mengatakanR
Hat, yang menjual Linux seharga 10.0
USD misalnya, keterlaluan. Kontribusi R
Hat dan SUSEpadasourcecodekernel uru
menjadikan kernel Linux jauh lebih baik.
Di artikel ini, kita akan membah
bagaimana memahami proses di linu
Pembahasanakan dilakukan mulai dari s
user, sysadmin dan developer.Ketiga kategri pengguna dilibatkan untuk contoh da
pembahasanyang ebih luas.
Simulasii$emmulti askingSebelum kita memasuki pembahasanpro
ses, ada baiknya kalau kita sedikit melaku
kan simulasi bagaimanasistem bekerja. Ki
akan membuat sistem yang melayani du
program yang sedangberjalan: A dan B.
Berikut ini adalahsource codenya dala
bahasaC. Penjelasandan output dibah
setelahnya.
wwwinfolinux.web.id
5/13/2018 Memahami Proses Di Linux - slidepdf.com
http://slidepdf.com/reader/full/memahami-proses-di-linux 2/7
BeritaUtasanAduSoftwareUtama Bisnis ApaSihSebenarnya...Tutoriat
# i n c l u d e s t d i o . h >
i n t m a i n ( v o i d )
uns ignedong i n t coun te r=1 ;
u n s i g n e d o n g n t I i m i t = 9 ;
w h i l e 1 ) {
counter++;
i f ( ( c o u n t e r% i m i t ) = =
0 ) {
p r i n t f ( "me layan ip r o s e sB \ n " ) ;
coun te r= 1 :
) e l s e {
p r i n t f ( "me1ayan ip rosesA\n" ;
t
)
r e t u rn0 ;
I
Penjelasanode:
O Perulangan akan dilakukan terus
menerus while(l))
O Setiap perulangan dilakukan, counter
akanditambah satu(counter++)
O Pemeriksaanyariabel counter akan di-
lakukan. Apabila sisa bagi counter ter-
hadap imit adalah0, makasaatnyamela-
yani prosesB. Apabila sisabagi bukan 0,
makaprosesA masih terus dilayani.
Apabila program tersebut dijalankan,
maka ulisan melayani proses A akan ter-
cetak eberapakali, setelah tu tulisan me-
layaniprosesB akan tercetak sekali.Setelah
itu, melayani proses A dicetak lagi selama
beberapaali, diikuti dicetaknya ulisan me-
layaniprosesB satu kali dan seterusnya.Be-
berapa ali tersebut entunya dapat diatur di
variabelimit.
Kondisi ni mensimulasikansistemmulti-
taskinguntuk dua proses. A di sini lebih
dominandari B (prioritas lebih tinggi). Ten-
tu saja,dengan mudah kita bisa mengubah
nilai prioritas dengan mengubah limit dan
atau hasil modulus. Termasuk untuk lebih
banyak proses.
Di MS DOS, dimulasi ini dapat diterap-
kan secarasederhanapada beberapa per-
mainan seperti arkanoid yang sementara
bola berjatuhan, kita masih dapat meng-
geraWan paddle. Tentu saja, menggerakkan
paddle memiliki prioritas lebih tinggi.
Linux dan sistem operasi multitasking
lain tentu jauh lebih kompleks. Tidak ha-
nya sekedarmenggunakancounter. Teknik
sistem operasi erus berkembang.Di Linux,
apabila ada hal yang tidak efisien, maka
bisa-bisa ditulis ulang dari awal. Contoh
kasuspaling menghebohkanadalah diganti-
nya Virtual Memory ffM) Linux ke sistem
milik Andrea Arcangeli (SUSE)dari sistem
VM milik Rikvan Riel.
Program,totes,hteadKita sering mendengar istilah ini. Banyak
pembuat program yang menyatakan pro-
gram saya multithreailing, loh! Jadi, pasti
lebih baik. Atau, tak jarang kita mendengar,
thread di Javacanggih sekali,yang lain ka-
lah, Itu tentang thread.
Kalau tentang proses.Prosessaya sudah
ribuan, dengan prosesA menggunakan re-
source sistem lebih dari 40olo, misalnya.
Atau, di sistem saya,banyak sekali proses
yang tidur. Macam-macam.
Bagi kalangan developer, ak jarang ada
mengatakan, anganpakaiforkQ, tidak jalan
di windows, Windows tidak mendukung
pembuatan anak proses. Dan bermacam-
macam alasan ainnya.
Dari sisi user. Di sistemsaya,ada sekitar
100 program yang sedang berjalan. Dan,
sistem saya idak hang samasekali!
Apakah program, proses,dan thread itu,
dan apapula hubungan diantara mereka?
Secara sederhana, proses adalah pro-
gram yang berjalan. Program yang tidak
dijalankan tidak akan mendaftarkan dirinya
sebagai uatu proses.Tapi, harap diperhati-
kan, suatuproses idak selaluharusberjalan.
Ada kalanya suatu proses tidur, berhenti,
menunggu dan mati (dan masih terdaftar).
Cobalah buka program top dan amatilah
tulisan bagian atas program ini. Anda akan
melihat tlulisan running, sleeping stopped
dan zombie. Semua ada status proses.De-
ngan perumpamaan kita sebelumnya,suatu
sistem harus melayani proses-prosesyang
Se[erabisasaja
Beda
www.infolinux.web.id TNFoLfNUX2/2004 55
5/13/2018 Memahami Proses Di Linux - slidepdf.com
http://slidepdf.com/reader/full/memahami-proses-di-linux 3/7
Proses i Linux
ada. Suatu prosesbisa pula menjadi sangat
serakah(prioritas tinggi). Setelah dilayani,
dia minta lagi untuk dilayani segera.Maka,
dia pun selalu menunggu. Dikatakan, pro-
ses ni sedangmenunggu dan siap alan lagi.
Ada prosesyang tertidur karena tidak perlu
terlalu aktif. Ada proses yang dihentikan
sementara,mungkin karena memang tidak
dibutuhkan dulu.
Di Linux, setiap prosesmemiliki atribut
seperti halnya file. Proses memiliki ID
proses. ni akan membedakan suatu proses
denganproses ain secaraunik. Proses entu
punya nama, resource ang digunakan, pe-
milik proses dan lain sebagainya.Cobalah
berikan perintah berikut ini untuk melihat
prosessistem:
$ p s a x
Semuaprosessistemdapat erlihat (Anda
dapat meminta kernel untuk meniadakan
fitur ini sehinggauser hanya dapat melihat
prosesmilik masing-masing).Di kolom pa-
ling kiri adalah D proses.Kita sebutsebagai
PID.
Sebuah proses memiliki banyak infor-
masi, diantaranya:
a PID, ProcesslD.
a PPID, Parent ProcesslD
o RealUserlD.
O EffectiveUserlD
O RealGrouplD
O EffectiveGroupID
o Informasi user
o resource ang digunakan proses seperti
wall clock time (waktl yang dipergu-
nakan), user CPU time (waktu padauser
mode), System CPU time (waktu untuk
eksekusipadakernel mode).
Di sini, kita akan membahashanya PID
dan PPID. Real dan effectite ID terutama
sangat berguna untuk masalah keamanan,
dan digunakan banyak pada kasusprogram
Setuid dan SetGid.
Sampai di sini, kita melihat beda proses
dan program. Sekarang,bagaimana dengan
thread? Secara ederhana, ita bisa katakan
bahwa thread-thread akan berbagi memory
spaceyang sama. fadi, hubungannya lebih
intim. Thread mirip denganproses,berbagai
memory spaceyang sama, ebih ringan, dan
relatif lebih susah untuk digunakan, ter-
utama pada aplikasi crossplatform.
Mengapa para developer menggunakan
thread?Berikut ini adalah beberapaalasan:
o Efisiensi dan kecepatan, HaI ini men-
cakrry multiple CPU, lO blocking secara
paraleldan lain sebagainya.
o Responsif. Sebagaicontoh, pembuatan
thread untuk menangani pembuatan
GUI misalnya.
Aplikasi dengan pembuatan berbagai
thread umumnya sering sekali ditemukan
pada pemutar mrltimedi4 downloadaccelle-
rator dan ain sebagainya.
Thread sendiri bukanlah isu yang seder-
hana. Di Linux sendiri,beberapadistro telah
menerapkanpustaka hread yang ebih baik.
Di SUSE9.1 atau SLES9 misalnya,pustaka
thread baru NPTL (Narive Posix Thread
Berita UlasanAduSoftwareUtama BisnisApaSih I Tutoria
Library) telah digunakan. NPTL lebih ba
dan cepat dari penerapan hread lama yait
linuxthreads.
Anak, ranguaptoses,aemonLinux juga ternyata memperhatikan ke
luarga. Paling tidak, Linux mengenal oran
tua prosesdan anak-anakproses.Selain tu
di Linux, kita juga mengenal istilah pros
nenek moyang.
Sebenarnya, bagaimanakah hirarki ke
luarga proses di Linux? Secara sederhan
berikut ini adalah lustrasinya.
Pada awalnya,nenek moyang lahir. Ne
nek moyang lahir tepat setelahkernel seles
mengurus struktur data internalnya pad
saatbooting sistemdan menjalananprogram
init untuk melanjutkan ketahap berikutnya
Init adalah proses nenek moyang denga
PID 1. Setelah itu, init pun menjalanka
beberapaproses untuk melanjutkan pros
booting. Proses-proses ersebut adala
anak-anakgenerasipertama Linux,
Beberapaprosespenting kernel juga iku
lahir dalam tahap ini. Proses-proses ern
adalahproses-prosesnti sistem.Seperti se
epuh dalam suatu keluarga besar.
Selanjutnya, ada proses lain yang lah
dan seiiring dengan campur tangan use
semakin banyak pula proses yang hadi
Harap diperhatikan, tidak semuaprosesha
rus memiliki anak.
Skema proses di Linux sangatlah kom
pleks. Untuk melihat tree proses, alankan
lah program berikut ini:
D S t r e e
' Fld .d Iu sl: z
dtu: :d alht &q.b lD: m, dan PPID: @7
dlD: .d dlut i.q.n PID: @, a.r t llD: W
r :/|E/mffi/!@rttl4ehtot!l/!c>
I Fld !d (rr 5l: 3
dID: dd ilbt &q.r PID: @11, d.. BID: &1€dtD: 'd alht @.D llD: @u, d .r FID: &10a: rtuhffi? r@ltlq//lE/hbl.14trl*) dlD: ad. l dlMrt dcruan PID: @8, d.n trlD: r
l.,"ri.l-*i.;
i!l,H,.a si"t',$$'-'Daemonbcd.
t $s;;*;Contohrogram€mbuatnak roses.
56 TNFoLTNUX2/2004 www.infotinux.web.id
5/13/2018 Memahami Proses Di Linux - slidepdf.com
http://slidepdf.com/reader/full/memahami-proses-di-linux 4/7
BeritaulasanI Adu oftwareutama BisnisApa ih sebenarnya...tutoriat
Program ni akan memvisualisasikanhi-
rarki prosesdalam sebuah ree.
Catatan ain tentang prosesadalah ada-
nya sesi proses, Ketika Anda membuka
xtermdi X dan menjalankansuatuprogram,
makaada beberapa prosesyang terkelom-
pok dalam suatu sesibersama.Ketika suatu
sesidiakhiri (xterm diterminasi misalnya)
makaseluruh proses uga akan diterminasi.
Berikut ini adalahcontoh program C un-
tuk menghasilkananak sesuaidengan per-
mintaanuser. Program akanmeminta input
jumlah anak yang akan dibuat dan setelah
itu, program akan menampilkan PID anak-
anaknyabesertaorang tuanya (PPID). Hi-
rarki proses kemudian dapat diamati dari
keluaran program tersebut (PPID orang
harussama entunya).
# i n c l u d e < s t d i o . h >
# i n c l u d e < s t d l i b , h >
i n t m a i n ( v o i d ) {
p i d _ t t e m p _ i d ;
i n t ch i l d _ a m o u n t ;
i n t i ;
p r i n t f ( " M a su kka nj u m l a h
a n a k [ m a x 5 ] : " ) ;
s c a n f ( "% d " , & ch i1d _
amount ;
i f ( ch i ' l _amount 5) {
p r i n t f ( " t e r ' l u b a n y a k
anakyang akand ibua t \
n "
r e t u r n 1 ;
)
p r i n t f ( " P A R E N T :I D o r a n g
t u a : % d \ n " ,g e t p i ( )
f o r ( i = 0 ; i < c h i d _
amount ; ++ ) {
i f ( ( t emP- id=
f o r k ( ) = = _ 1 ) {
p r i n t f ( "ERROR:er jad i kesa lahanp a d a e n g u l a n g a ne % d \ n " , + 1 ) ;
e x i t ( 1 ) ;
) e l se i f ( t emp_
i d = = 0 ) {
p r i n t f ( " \ t C H I L D :s u d a h i b u a t
d e n g a n I D : % d ,d a n P P I D : r d \ n " ,g e t p i d ( ) , g e t p p i d ( ) ) ;
e x i t ( 0 ) ;
i
r e tu r n g ;
Penjelasan rogram:
O Pertama-tama, user diminta untuk
memasukkan jumlah anak yang akan
dibuat. Lakukan validasi dengan maksi-
mal 5 anak.
o Mencetak PID untuk memudahkan
pengecekanebih lanjut bagi user.
o Mengulang sebanyakumlah anak.
a Di dalam perulangan, akan memanggil
system call fork0 untuk membuat anak
proses.Apabila forkQ mengembalikan -
I yang artinya gagal,maka kita mencetak
pesankegagalan.
a Harap memperhatikan benar-benar
sifat fork$ yang asinkron. Pada pem-
buatan anak prosesyang berhasil, fork0
akan mengembalikan nol untuk sesi
anak proses dan mengembalikan pid
anak untuk sesi orang tua. Kita tidak
bisa bergantung pada kode yang me-
mastikan kapan anak akan dibuat dan
kemudian melakukan kode-kode ter-
tentu di sana. Bisa menyebabkan race
condition.
Berikut adalah contoh keluaran pro-
gram:
$ . / fo rk_test
M a s u k k a nu m l a h a n a k [ m a x 5 ] : 5
PARENT: ID o rang tuaz 4243
C H I L D :s u d a hd i b u a t
d e n g a n P L D : .4 2 4 4 , d a n P P ID : 4 2 4 3
C H I L D :s u d a h d i b u a t
d e n g a n P l D z 4 2 4 5 , d a n P P ID : 4 2 4 3
C H I L D :s u d a h d i b u a t
d e n g a n P l D z 4 2 4 6 , d a n P P ID :4 2 4 3
C H I L D :s u d a h d i b u a t
d e n g a nP I D : 4 2 4 7 , d a n P P I D : 4 2 4 3
C H I L D :s u d a h d i b u a t
d e n g a n P l D z 4 2 4 8 , d a n P P ID : 4 2 4 3
Kita bisa melihat di sini bahwa terdapat
lima anak yang dibuat (sesuaipermintaan)
dan PPID setiap anak adalah sama, yang
sama pula denganPID program fork_test.
Pada download accellerator yang me-
manfaatkan forking, cara kerjanya bisa di-
asumsikansebagai erikut:
o Mengambil ukuran file yang akan di-
download.
o Membagi sama rata sesuai umlah anak
proses.
o Membuat anak prosesdan memberikan
tugas untuk mendownload sesuai pada
posisi tertentu.
o Menggabungkan file yang telah berhasil
didownload oleh anak-anak proses ter-
sebut.
Umumnya, orang tua tidak terlalu ba-
nyak bekerja. Lebih banyak anak-anaknya.
Orang tua melakukan satu atau dua tugas,
lalu memonitor anak-anaknya dan kemu-
dian melakukanfnishing.Pembahasanakan kita lanjutan ke da-
emon. Daemon adalah hal yang menarik
untuk dicermati di Linux. Banyak sekali
daemon di Linux. Anda bisa mengetahui-
nya dengan melihat akhiran d yang umum-
nya digunakan pada nama suatu program.
Sebagaicontoh httpd, ftpd, sshd dan lain
sebagainya.Akhiran d tersebut menuniuk-
kan daemon.
Sebenarnya, apakah daemon itu? Se-
cara sederhana, daemon dapat diartikan
sebagaiprogram yang berjalan di latar be-
lakang, atau tidak memiliki terminal con-
trol. Umumnya, daemon digunakan pada
aplikasi jaringan dan menunggu pada port
tertentu.
Lebih teknikal lagi,daemonadalahproses
yang egois (dalam pengistilahan oleh umat
manusia). Kenapa?Karena,daemon terben-
tuk dari suatu prosesorang tua yang mem-
buat anak proses, setelah itu membunuh
dirinya. Jadi, anak-anaknya akan tumbuh
tanpa orang tua dan menjadi daemon.
Orang tua sebenarnya elah berkorban un-
tuk menjadikan anaknya sebagaidaemon.
Orang tua daemon setelah tu adalah init,
Anak yang menjadi daemon itupun kemu-
dian tumbuhmembentuk sesisendiri.
wwwinfotinux.web.id INF0L|NUX 2/2004 57
5/13/2018 Memahami Proses Di Linux - slidepdf.com
http://slidepdf.com/reader/full/memahami-proses-di-linux 5/7
Berita UtasanAduSoftwareUtamaBisnisApaSih5ebenarnya...Tutoria
,*don tff Met 8.f f i s4 H+s.$6 €* vLw &.M s&qr 4
6 bbl, t nnnlE, a rt€P14, a 3btF,
6.& us , z. * g, a. a n t , S . * l A , 6 . ? s,
Mbi . r , mtd, l f f i t E ,
m u . f , m ! d , ' d a t E , t
e:6 /bl/b.h /rblvbt llug Fl€:S lqgd -1 /sblvhtDlugl@l
€:6 / t lvh.h /.dhtrlug4l. . ! .nt Fle:6 lqt.r -t / . tclhtrlrg/tsl, .g.nt l@r
g: s / s b r v $ f q d -n t u t l r r h | d @ / t q
0 : @ ^ b r v r l q a { t - ?
e:e ^r^bt|! 'M D -i / . tclsueb or
e:* ^. f / tblvs.H { f ldt ll. -e.^v..H.tnlt Dld
o:O ^$/rtvoF fd.Psl.F -t rbgtrlr -\ tbE a rt o
O:e ^r^htl1z@!$d { t /.b/@a @nt { Fqr -u 3
6:E ^srlrhlt urerni di all. / .P&b rnt
O:@ ,o9t/ il&61vil.
o s ^rr^bl/rM -D { /.U&.Wqb @nr
6.11 ^srdltu$ld -nrrtrn tcD +r d? {t i /ur/ llhd.uliltv.uthlll.d:o-&ll
0:& ^brulry.tq -rle. 1qr
sre ^brulq.rq tV
0:* / !hl/ . lB.rq iS
€'s / .hlmlryctq ttF
€ls /shthrwtq ls
0:@ /sttdrq.tq 1q
o:@ /lrui ^lrH&LlvshrtH.
6 a 1 * q 2 & S 2 . 6 3 . 96 A & l L 2 { S 1 . 6 4 . 9t 5 3 & a a a s 0 . 3 s . 6f e z m l r a s 6 , 3 6 . t1 5 € 4 f t t h ? b s 0 . 3 5 , 06 a la s f f r a .3 a .a
1 6 e s l s s s 0 . 0 e . 1a f 0 6 0 s 0 . 0 6 . 65 - t a 6 0 o s 6 , 0 6 , 05 - r 0 6 e o s 6 . 6 € . o5 - 1 6 6 0 0 S 6 . 4 e . e5 - 1 0 e 0 0 s 6 . 0 e . e
6 6 0 0 6 S € . O e - 01 5 € e 0 6 S O . e O . O
0 0 s s o . o o . o1 5 e o o s s 0 . 0 o , o1 6 o e 6 s s e . 0 0 . 65 - t 0 0 6 e s g . e 6 .66 i e a s e s 0 . € 0 , 0
E 0 g l 5 S r A S 0 . e 0 . 7z e 1 s s t a s e , e o . zI a * 166 rzt s e,0 0,7a € 1 s F r s o . 0 0 . 2s 0 e 0 0 s e . o o . ot6 6 ve 42 165 e.e e .Zl ? 6 e € 0 s e . o o . s
z3a
1621
E@6
-,t
62l
ra%
%
2$12$3
?aa319a
s5
Berikutadalah ontohdaemon ederha-
na. Sebutlah bcd,abc daemon, angakan
membuatogpada tmp/abcd.log.
#i nc' l de <stdi o. h>
#i nc lude <std' l b . h>
# i n c l u d e< f c n t l . h >
# i n c l u d e< u n i s t d . h >
i n t m a i n ( v o i d )
p i d _ t p i d , s i d ;
i n t f d , 1en=LA$;
pr i n t f ( "PARENT: i d saya
a d a ' l a h, d \ n " , g e t p i d ( ) )
p i d = f o r k ( ;
i f ( p i d < g ) {
p r i n t f ( " gagal
rnenbuat nak proses\n")
e x i t ( 1 ) ;
) e l s e i f ( p ' i d> 0 ) {
p r i n t f ( "PARENT:
Sayabunuh r i \ n " ) ;e x i t ( 0 ) ;
) ;
i f ( s i d = s e t s i d ( ) < g ' )
i
pr i n t f ( "gaga l
membentuk es i \n " ) ;
58 INFoLINUX 2/?004
e x i t ( 2 ) ;
) ;
i f ( ( c h d i r ( " / t m P " ) ) <
s ) {
p r i n t f ( " g a g a l
m a s u k e a r e a k e r j a \ n " ) ;
e x i t ( 3 ) ;
1 .t ,
u m a s k0 ) ;
c l o s e ( S T D I N - F I L E N O ) ;
c l ose STD0UT-FIENO;
c l ose(STDERR-FIEN0;
/ * beker ja sesua i
fungs inya , abc daem on/
w h i l e 1 ) {
char *bu f =
m a l o c ( s i z e o f ( c h a r ) ( ' l e n + 1 ) ) ;
i f ( ( f d =
open "/ tmp/abcd.l og" , 0-CREAT
0_wR0NLYo_APPEND,6gg ) )<
s ) {
)
www.info[inux.web.id
s t rncPY(bu f ,"kecapABC,ba te ra i ABC,mie
i n s t a n A B C , i r u p A B C , A B C ' ,
l e n + l ) ;
l e n + l ) ;
w r i t e ( f d , b u f ,
c l o s e ( f d ) ;
s l e e p ( 6 0 ) ;
)
r e t u r n 0 ;
IJ
Penjelasan rogram:
o Pertama-tama,orang tua membuat an
proses, antasmembunuh dirinya.
o Anak pun membentuk sesisendiri
O Setelah itu, anak masuk ke /tmp ya
merupakan areakerja.
o Umask kemudian diset ke 0.
O Karena daemon, maka stdin, stdout da
stderr tidak terbuka. Kita menutup k
tiga handle file tersebut.
o Kita bekerja dalam perulangan tan
henti.
o Dalam perulangan, kita membuka file
tmp/abcd.log dan menambahkan isin
apabila file telah ada. Kalau tidak ad
kita akan membuatnya terlebih dahulu
o Dalam perulangan, kita menuliskan s
e x i t ( 4 ) ;
5/13/2018 Memahami Proses Di Linux - slidepdf.com
http://slidepdf.com/reader/full/memahami-proses-di-linux 6/7
BeritaUlasanAdu oftwareutama BisnisApa ih sebenarnya...Tutoriat
jumlah karakter ke dalam file tersebut
/tmp/abcd.log).
o Kita menunda setiap I menit untuk
menuliskembali.
Sekali dijalankan, abcd akan berjalan
terus.Anda dapat mempergunakanprogram
kill untuk membunuh abcd.Sebagai ontoh:
$ k i l l a l I a b c d
Berikut ini adalah contoh keluaran Dro-
gram:
$ . / a b c d
P A R E N T: i d s a y a a d a l a h 6 0 1 8
P A R E N T: a ya b u n u h d i r i
Berikut ini adalah contoh log /tmp/abcd.
log:
kecap ABC, baterai ABC, mie instan
ABC, sirup ABC, * ABCkecap ABC, baterai
ABC, mie instan ABC, sirup ABC, * ABCk-
ecapABC, baterai ABC, mie instan ABC,
sirup ABC, * ABC
Kontdbusirotes adaprocLinux menganut sistem yang transparan.
Begitupun dengan proses-prosesdi dalam-
nya. Pada ile sistem semu /proc, kita dapat
melihat direktori-direktori dengan nama
direktori berupa angka.
Angka-angka tersebut adalah pid pro-
ses.Oleh karena itu, dari waktu ke waktu,
angka-angka tersebut bisa berubah-ubah.
Manakala sebuahprosesditerminasi, maka
direktori PID proses tersebut pada /proc
akan ikut menghilang pula. Demikian juga
ketika terjadi penambahanprosesbaru.
Cobalah masuk ke dalam salah satu di-
rektori tersebut. Kita akan menemukan be-
berapa ile berikut ini:
o cmdline. File ni bertugasmerekamcom-
mad line yang diberikan ketika men-
jalankan proses.
o Environ. Nilai-nilai environment vari-
able.
a fd. Direktori yang mengandung semua
file descriptor.
o Mem. Memori yang digunakan oleh
proses.
Stat. Statusproses.
Status.Status proses dalam bentuk hu-
man readable.
Cwd. Sebuah ink yang menunjuk pada
direktori aktif proses.
O Exe. Sebuah ink kepada executable ro-
5e5.
O Maps. Petamemori.
O Root. Sebuah ink yang menunjuk pada
root directoryproses.
a statm. statusmemori.
Berikut ini adalah contoh beberapa isi
frleuntuk prosesabcd:
N a m e : a b cd
S t a t e : S ( s l e e p i n g )
S l e e p A V G : 2 6 %
Tg i d : 6 5 4 7
P ' i d : 6547
P P i : 1
T r a ce r P id 0
U i d : l , g 6 g l g 0 g l g g g
V m S tk r 8 kB
VmExe: 4 kB
V m L i b : 1 1 5 2 k B
T h r e a d s : L
Si gPnd 0AA000A00gAASggg
ShdPnd 0AAA00A60g0gg0gg
Si gB1 : Sgtg tgggSgggt tgg
S glgn : 0A6000A00gSggSgg
Si sCg t 6S0gAg00SSSggg0g
Cap Inh 0001000A6g0ggg0g
CapPrm:gg0000gg0ggg00gg
CapEf f 0ggg6ggTg00gggg0
Dari file ini, kita dapat mengetahu ba-
nyak hal yang berhubungan dengan proses
abcd, mulai dari statusnya (sleeping),PID
dan PPID (harap diperhatikan bahwa orang
tua daemon adalah proses nit dengan PID
l), resource yang digunakan, pemilik pro-
ses,dan informasi lainnya.
Tentunya, kita dapat menggunakan
script untuk membaca fiie-file tersebut un-
tuk keperluan tertentu.
BerkomunikasienganrosesKita, sebagai pengguna, sistem dapat ber-
LSg0
Gid : L00
LSg
F D S i z e : 3 2
Groups 14 t6 L7
VmSie : 1360
Vmlck : 0
VmRSS: 369
V m D a t a : 1 5 6
Lga
33 Lgg
KB
KB
KB
KB
L0g
fuNuxanaroaso{ . . i r i i i l i . rd {r*r .
i} t:di*a{ed Sernr*rf i * " ' ? ,?SS.St l * . - l
n r+
#$erver Hostlng
# ,tcolocation: Rp.1.000.0@,Jonfr
L4rsoI Colocation Dedicated ervernUSAt Domain ameRegisbrt B€flefitResoller rogram
Features:' Location OC akarta Indonesiallx)i Size erver:1URackmounti Bandwith128kbos
+ lPAddress: (max)
c#ry.atyf,DW ,t-rltuUslt$iDcsst
Clbd Buildingd/hEbldirdo) 10 h FloorJl.Kunings BerstNo.8 J8laft S€lrhr 127't0
Pnore. 021)52€ 8m0 Fu. {021)52 66{44hlb:Ailwcdcrub,em - ln@cak ar€b.cqn
TNF0LINUX 2/2004 59
ao
^ 6r|Nob:-f Tnr!$r(rlrtrlcdo6 ppty)
Oi"tffiJqqL 'x!***-*
RELrABrLlrqe LffinoilEY
Fcdree r + Unlimited data trEnsf€rt Comd@ controlpanels
* POP3 email, FTPaccerst ssH, ct, sQL.i andmuch ore...t StarttomRD. 9,500.J ontlI FroeSetup')+ 2 MonthgFrae )
"/r5 iltyfs Sttrl tAsltFr0: dW F0.UEU5/N|55/t/tti/f '
www.infoliux.web.id
5/13/2018 Memahami Proses Di Linux - slidepdf.com
http://slidepdf.com/reader/full/memahami-proses-di-linux 7/7
Berita UlasanAduSoftwareUtamaBisnisApaSihSebenarnya...Tutoriat
Proses i Linux
t.ri6 €& V!* Botutr 5!tu9r q
z,
komunikasi dengan proses. Begitu pula
proses A dapat berkomunikasi dengan
prosesB. Kita atau prosessistem uga dapat
berkomunikasi denganprosesdaemon.
Salahsatu cara ertua komunikasi proses
(Inter ProcessCommunication, IPC) adalah
dengan Signal.
Ketika suatu proses menerima signal,
ada tiga tindakan yang mungkin dilakukan
oleh suatuproses:
o Mengabaikan signal. Namun, ada dua
signalyang tidak dapat diabaikan, yakni
signalnomor 9 dan 19.
O Membuat handler sendiri untuk signal,
Ada dua signal yang tidak dapat diper-
lakukan dengan cara demikian, yakni
signalnomor 9 dan 19.
O Mengikuti default action signal.
Signal dapat diberikan dengan perintah
kill. Walaupun namanya terdengar kejam
begitu, sifatnya tidaklah sekejam namanya.
Bahkan, pengiriman signal tertentu, um-
umnya SIGHUP pada beberapa daemon
menyebabkan daemon tersebut membaca
file konfigurasinya dan kemudian mengapli-
kasikannya.
Untuk melihat signal-signalyang terse-
dia di sistemberikan perintah berikut ini:
k i 1 -
Untuk mengirimkan signal, berikanlah
perintahberikut ini:
K i . II .<S IGNAL> PID>
sebagai ontoh:
k i I I - K I L L 6 5 4 6
60 TNFoLTNUX?/2004
Harap diperhatikan bahwa proses juga
memiliki informasi hak pemilik. Anda tidak
dapat membunuh proses yang bukan milik
Anda, misalnya.
Kasusirusmemod)i inuxBeberapa analis yang - menurut penulis
- agak konyol mengatakanLinux juga akan
diserang virus sama seperti halnya Win-
dows dan semua ersebuthanyalah masalah
waktu. Mari kita analisavirus di Linux dan
hubungannya denganproses.
Kita tahu bahwa prosesdi Linux adalah
transparan, memiliki skema keamanan se-
perti file sistem, dan dapat dibatasi dengan
resource imit. }lal ini adalah fundamental
dari sisi proses kenapa virus tidak menye-
rang di Linux.
Seorang admin yang berhati-hati pada
suatu jaringan besar akan menerapkan re-
source imit padasistem.Dengan demikian,
seorang user hanya boleh menggunakan
sekian resource. Dengan program tertentu,
proses-prosesuga dapat diamati, dan apa-
bila ada proses yang tiba-tiba minta re-
source besar, sebuah SMS atau mail dapat
dikirimkan.
Katakanlah tiba-tiba virus menyerang
user xyz di jaringan tersebut.User tersebut
adalahpengguna OpenOffice.org dan tidak
peduli apapun soal sistem. Virus yang di-
dapatkan dari internet tersebut bermaksud
untuk mengacaukan sistem dengan mem-
buat prosessebanyakmungkin dan mengu-
asairesourcesistem. Semacamstress est.
Ketika virus tersebut berialan, limit re-
source xyz akan membatasi kerjanya karena
sudah adapembatasan.Dan, pada imit ter-
tentu, admin akan diberitahu dengan SMS
Admin tersebut,yang ceritanya berdedikas
tinggi, langsung dapat menonaktifkan virus
tersebut. Saat ni, secara eknologi, respon
cepat (kapan saia, dimana saja, bahkan
untuk sistem gerbang masuk yang tidak
berfungsi) ataspermasalahansudah sanga
memungkinkan.
Dalam konteks tersebut., virus tersebu
tidak dapat berbuat apa-apa. Begitupun
dengan virus file sistem. Yang terinfeksi
hanyalah ile-file milik user.Tidak akan ber-
akibat fatal pada sistem.
Tentunya, semua hal tersebut kembali
kepada usernya sendiri. Oleh karena itu,
jangan menggunakan root dalam peng-
gunaan biasa. Walaupw by design Linr:;i
aman, keamanan komputer ditentukan
lebih dari 75o/o leh usernya.
Proses adalah sesuatu yang luar biasa
Salah mengatur proses, maka konseku-
ensinya besar. Linux telah dikembangkan
lebih dari 10 tahun dan terus menerus
mengembangkankemampuan penanganan
Prosesnya.Dengan kata lain, manajemen prose
adalah hal yang benar-benarmenjadi kunci
seberapaebuah sistem operasi bisa dikate-
gorikan seriusatau tidak untuk melayani ke-
butuhan enterprisemisalnya.Jadi,penanga
nan prosesbukanlah hal yang sepeledalam
sistemoperasi, erutama sistem operasiyang
didedikasikankhusus sebagai erver.
Demikianlah pembahasan kita tentang
proses.Selamatmencoba, dan sukses!S
Noprianto (noprianto@infolinux. o.id
". r.!_'jii_
et* Cuev* tr.Fi+:ll*iftii;*_-*:: ;r,',€-,0.Signalistem.
www.infolinux.web.id