SO [bagian II]

29 03 2010

Managemen Proses Pada Linux

Arsitektur Dasar Sistem Operasi Linux

Bagian terpenting sistem operasi adalah kernel, merupakan jantung sistem

operasi.

Kernel menyediakan tool dimana semua layanan sistem komputer disediakan.

Kernel mencegah proses aplikasi mengakses mengakses perangkat keras secara

langsung, memaksa proses menggunakan tool yang disediakan.

Kernel memberi proteksi kepada pemakai dari gangguan pemakai lain

Tool Kernel digunakan melalui panggilan sistem (system call). Program sistem menggunakan tool kernel untuk implementasi beragam layanan. Program sistem dan semua program lain berjalan diatas kernel. Program pemakai berjalan di mode berbeda dengan kernel, disebut mode pemakai.

Kernel berisi beberapa bagian penting, yaitu:

– Manajemen proses

– Manajemen memori

– Driver-driver perangkat keras

– Driver-driver sistem file

– Manajemen jaringan

– Dan beragam subsistem lain

PROSES

Proses adalah program tunggal yang berjalan pada alamat virtual, berarti setiap hal yg berjalan dibawah Linux adalah proses. Proses ini berjalan melalui perintah- perintah yang ada dalam shell. Satu baris perintah dalam shell terkadang mampu mempengaruhi lebih dari satu proses, khususnya jika terdapat perintah pipe.

Contoh:

nroff -man ps.1 | grep kill | more

perintah ini melakukan tiga proses, satu proses untuk setiap perintahnya.

Tipe-tipe proses dalam Linux:

Ada beberapa tipe proses dalam Linux . Setiap proses mempunyai kekhususan dan

atribut tersendiri.:

Interactive processes: Proses yang dimulai (dan dikontrol oleh) shell. Bisa tampak

diluar (foreground) ataupun hanya didalam (background).

Batch processes: Proses yang tidak berhubungan dengan terminal tetapi menunggu

untuk dieksekusi secara sequent.

Daemon processes: Proses yang dimulai ketika Linux booting dan berjalan secara

background.

Cara termudah untuk mengetahui proses apa yang sedang berjalan pada sistem adalah

menggunakan perintah ps (process status). Perintah ps mempunyai beberapa option dan

argumen, tersedia untuk seluruh user dan root, walau tentu hasilnya akan berbeda

tergantung login anda. Jika anda login sebagai user biasa (bukan root), jika perintah ps

ditulis akan tampak hasil seperti:

$ ps

PID TTY STAT TIME COMMAND

41 v01 S 0:00 -bash

134 v01 R 0:00 ps

Hasil dari perintah ps selalu disusun dalam bentuk kolom. Kolom pertama berlabel PID (Process Identification Number); adalah penomoran dari Linux untuk menandai sebuah proses, dimulai dari nol dan bertambah satu untuk tiap proses hingga nomor tertinggi. Jika Linux mencapai nomor tertinggi, penomoran akan dimulai lagi dari nomor terendah dengan melewati nomor yang sedang digunakan proses yang aktif. Biasanya nomor terendah digunakan oleh proses kernel dan daemon yang dimulai saat booting hingga Linux berjalan. Untuk memanipulasi proses kita dapat menggunakan PID. Kolom TTY menunjukkan terminal yang digunakan saat proses dimulai. Kolom STAT menunjukkan kondisi terkini dari proses, entri yang paling banyak terdapat adalah S untuk sleeping dan R untuk running. Kolom TIME menunjukkan CPU time yang digunakan oleh proses. Kolom NAME menunjukkan nama proses yang berjalan, biasanya adalah nama perintah yang dimasukkan. Beberapa perintah digunakan untuk memulai perintah yang lain, proses ini dikenal dengan child process. Terdapat banyak versi perintah ps tergantung versi Linux yang digunakan. Kebanyakan admin (jika login sebagai root) menggunakan perintah ps dibawah ini untuk menampilkan keseluruhan informasi sistem:

ps -ef

ps –le

Proses yang terkunci dalam terminal dan tidak dapat melakukan apa pun disebut hang. Terkadang adapula sebuah proses yang berahir tidak sempurna. Hal ini disebut runaway process. Untuk mengatasi hal ini dan mengembalikan sistem ke keadaan normal digunakan perintah kill. Untuk menggunakan perintah ini kita harus mengakses konsol lain, jika terminal benar-benar terkunci kita harus login kembali. Sebagai seorang user biasa hanya dapat mengkill proses user itu sendiri dan tak dapat mempengaruhi user lain dalam sistem. Sebagai root anda mempunyai kuasa penuh menggunakan perintah kill. Diperlukan PID untuk mengetahui proses yang berjalan sehingga dapat mengkillnya.

Pembuatan Proses di Linux

Konsep pembuatan proses pada sistem operasi linux :

§ Setiap proses diberi nomor khusus sebagai identifikasi yang disebut process identification

atau PID berupa angka integer unik.

§ Jika proses selesai (Terminated) maka semua sumber daya yang digunakan termasuk PID

dibebaskan kembali.

§ Proses dibuat menggunakan system call fork() yang sering disebut forking proses

§ System call fork() mengkopi proses pemanggil sehingga akan terdapat 2 proses yaitu :

1. Proses pemanggil disebut PARENT

2. Proses hasil kopian disebut CHILD

§ Proses CHILD identik dengan proses PARENT-nya tetapi memiliki PID yang berbeda.

§ Setelah proses baru (child) berhasil dibuat eksekusi dilanjutkan secara normal di masing –

masing proses pada baris setelah pemanggilan system call fork().

§ Proses pemanggil (PARENT) dapat melakukan forking proses lebih dari satu kali sehingga

memungkinkan terdapat banyak proses CHILD yang dieksekusi.

§ Proses CHILD dapat melakukan forking proses seperti halnya PARENT sehingga dapat

terbentuk struktur pohon proses.

Penghentian Proses pada Linux

proses pada linux dapat kita lihat via GUI maupun CLI, di GUI kita bisa melihat pada System, administration, Sistem Monitor [dalam kasus ini saya menggunakan Ubuntu], kita bisa melihat proses yang sedang berjalan/running maupun yang sedang berhenti/sleep. Kita dapat menghentikan proses tersebut dengan memilih program dan ketik end proses pada sudut kanan bawah.

Jika menggunakan CLI, kita masuk pada terminal ketikan ps, ataupun top ingat PID proses yang hendak kita kill, jika kita menggunakan top, maka langkahnya adalah ketik k pada saat program top masih berjalan, lalu masukan pid, enter, kemudian ketikan k lagi dan enter. Penghentian semacam ini bersifat user end proses, terdapat juga penghentian proses parent n child.

Suatu proses diterminasi ketika proses tersebut telah selesai mengeksekusi perintah terakhir serta meminta sistem operasi untuk menghapus perintah tersebut dengan menggunakan system call exit. Pada saat itu, proses dapat mengembalikan data keluaran kepada proses induk-nya melalui system

call wait. Semua sumber-daya yang digunakan oleh proses akan dialokasikan kembali oleh sistem

operasi agar dapat dimanfaatkan oleh proses lain.

Suatu proses juga dapat diterminasi dengan sengaja oleh proses lain melalui system call abort. Biasanya proses induk melakukan hal ini pada turunannya. Alasan terminasi tersebut seperti:

• Turunan melampaui penggunaan sumber-daya yang telah dialokasikan. Dalam keadaan ini,

proses induk perlu mempunyai mekanisme untuk memeriksa status turunannya-nya.

• Task yang ditugaskan kepada turunan tidak lagi diperlukan.

• Proses induk selesai, dan sistem operasi tidak mengizinkan proses turunan untuk tetap

berjalan. Jadi, semua proses turunan akan berakhir pula. Hal ini yang disebut cascading

termination.


Actions

Information

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s




%d bloggers like this: