7
 Memahami roses i'[ Linux dalahistem perasi multi asking ang angat optimaldalahalahatu unci eberhasilannya. engan akan apat memahami inux ebih 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 seringkalidikatakan sangat stabil. Tentu saja karena hanya menangani satu program user dalam satu waktu. Masih teringat di benak penulis ketika Windows 95 muncul dan ketahuan senang sekali hang, orang-orang suka bersungut-sungut dan mengatakan MS DOS 6lebih stabil. Perbandingan tersebut tidaklah relevan karena Windows 95 adalah sistem operasi yang multitasking. Artinya, dalam satu wak- tu, bisa banyakprogram 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 sebagai aplikasi Al. Micro- soft Word kita sebut sebagai plikasi 42 Un- tuk melayani kedua program tersebut, Win- dows akan berpindah ke Al dan melayani Al untuk - katakanlah - 0.001 detik (time slice). Kemudian, berpindah lagi ke A2 dan melayani A.2 katakanlah juga 0.001detik. Setelah tu kembali lagi ke Al dan seterus- nya. Di mata pengguna, Al dan A.2 ampak jalan berbarengan karena interval 0.001 de- tik sangat sudah diukur. Dengan mekanisme serupa, kita bisa mengatakan kalau ada 1000 aplikasi, maka Windows akan mengunjungi dariAl sampai41000. Sayangnya, sistem tidaklah seseder- hana itu. Sistem sebenarnya memang tidak 54 INF0LINUX 2/2004 - I t eritaUlasanAduSoftware Utama Bisnis Apa SihSebenarnya... Tutoriat {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 setelah berkeliling, maka akan membutuhkan waktu I detik. Lama sekali. Bagaimana ika Al adalah aplikasi pemutar lagu dan setiap 1 detik lagu Anda akan ber- henti berputar, berputar lagi, lalu berhenti lagi?Baiklah. |adikan time slice l/10000 de- tik. Tetap saja akan 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 mengakses perangkat keras seperti printer misalnya, dan ngambek menunggu printer yang tidak mau mencetak? Apakah sistem harus menunggu? Bagaimana kalau program tersebut memiliki prioritas tinggi dan sistem kebetulan menunggu? Jadilah kita sebut komputer kita hang. Sistem yang sebenarnyamemang tidak sesederhana tu. Tentunya ada mekanisme yang lebih unggul yang membuat pergan- tian melayani proses menjadi jauh lebih efisien. Tapi, kondisi sederhana ersebut bi- sakita gunakan untuk mengetahui mengapa suatu sistem operasi ebih mudah dan sering ' han { dib anding yang lainnya. Coba ihat sistem operasi - sistem operasi besarkelasenterprisedengan harga selangit yang melayani bank yang sibuk misalnya. Dalam satu waktu, mungkin terdapat lebih dari 1000 proses berjalan secara konkuren. Atau, coba amati server AOL atau Yahoo Dalam satu waktu, bisa-bisa terdapat lebih dari 10.000 proses yang berjalan. Tidak bisa dipastikan karena umlah pelanggan mereka sangat besar. Dan pengguna adalah raja. Oleh kar ena tu, berbagai cara harus dilaku- kan agar pelayanan tetap dapat dilakukan. Sesibuk apapun uga. Linux, slsl sudah pasti. dari harus kuat. Maka, umumnya memPe s$tem oPerasl enterpise harga selangit ersebut. Dulu, Linux belum mampu sekelas sistem operasi enterprise. Namun, sejak kernel 2.6 lahir, banyak hal yang mampu menjadikan Linux memasuki pasar enter- prise dengan harga yang sangat masuk akal. Beberapa catatanmisalnya. umlah userdari 64K (sekitar 65.000) menjadi lebih dari 4 u- ta ( 16 bit ke 32 bit). Dan untuk kasus proses, batas PID tidak lagi 32000, namun menjadi lebih dari I juta. Hal ini berarti, teorinya, memungkinkan Linux melayani mendekati hampir I juta proses. Dnegan kemampuan memasuki enterprise ini, wajar apabila Red Hat mulai lebih fokus. Novell membeli SUSE dan lain sebagainya. Mau dijual mahal pun, server enterprise Linux masih akan tampak lebih masuk akal. Kita, tentu saja tidak bisa mengatakan Red Hat, yang menjual Linux seharga 10.000 USD misalnya, keterlaluan. Kontribusi Red Hat dan SUSE pada source codekernel urut menjadikan kernel Linux jauh lebih baik. Di artikel ini, kita akan membahas bagaimana memahami proses di linux. Pembahasan akan dilakukan mulai dari sisi user, sysadmin dan developer. Ketiga katego- ri pengguna dilibatkan untuk contoh dan pembahasan yang ebih luas. Simulasi i$em multi asking Sebelum kita memasuki pembahasan pro- ses, a da baiknya kalau kita sedikit melaku- kan simulasi bagaimana sistem bekerja. Kita akan membuat sistem yang melayani dua program yang sedang berjalan: A dan B. Berikut ini adalah source codenya dalam bahasa C. Penjelasan dan output dibahas setelahnya. wwwinfolinux.web.id

Memahami Proses Di Linux

Embed Size (px)

Citation preview

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