Sabtu, 08 Juni 2013

Manajemen Proses


KONSEP PROSES DI LINUX

Setiap kali instruksi diberikan pada Linux shell, maka kernel akan menciptakan sebuah proses-id. Proses ini disebut juga dengan terminology Unix sebagai sebuah Job. Proses Id (PID) dimulai dari 0, yaitu proses INIT, kemudian diikuti oleh proses berikutnya(terdaftar pada /etc/inittab). Beberapa tipe proses :

Foreground
   Proses yang diciptakan oleh pemakai langsung pada terminal  
 (interaktif, dialog)
Batch
   Proses yang dikumpulkan dan dijalankan secara sekuensial (satu  
 persatu). Prose Batch tidak diasosiasikan(berinteraksi) dengan 
 terminal.
Daemon
   Proses yang menunggu permintaan (request) dari proses lainnya  
 dan menjalankan tugas sesuai dengan permintaan tersebut. Bila  
 tidak ada request, maka program ini akan berada dalam kondisi 
 “idle” dan tidak menggunakan waktu hitung CPU. Umumnya nama 
 proses daemon di UNIX berakhiran d, misalnya inetd,named, popd 
 dll


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 :


MENGIRIM SINYAL

Mengirim sinyal adalah satu alat komunikasi antar proses, yaitu memberitahukan proses yang sedang berjalan bahwa ada sesuatu yang harus dikendalikan. Berdasarkan sinyal yang dikirim ini maka proses dapat bereaksi dan administrator/programmer dapat menentukan reaksi tersebut. Mengirim sinyal menggunakan instruksi
kill [-nomor sinyal] PID
Sebelum mengirim sinyal PID proses yang akan dikirim harus diketahui terlebih dahulu.

LANGKAH – LANGKAH

1. Masuk ke sistem operasi Linux.
2. Login sebagai stD3XXYYY.
3. Gunakan instruksi status proses : ps.
4. Gunakan instruksi untuk mengelola sinyal : kill, trap, nohup


Percobaan 1 : Status Proses
1.         
        1. 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 (Sleeping) dan R (Running), COMMAND merupakan instruksi yang digunakan.

2.        2.Untuk melihat factor/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

      3. Mencari proses yang spesifik pemakai. Proses diatas hanya terbatas pada proses milik pemakai, dimana pemakai teresbut melakukan login

Hasil untuk no.1-3



1.            4Mencari proses lainnya gunakan option a (all) dan au (all user)


Percobaan 2 : Sinyal

1.                    1.  Membuat shell script dengan nama loop.sh


2. 1.        2. Eksekusi file loop.sh sebagai background


       3.Melihat proses id



       4.Menghentikan proses. Nomor 15 (SIGTERM) merupakan default



       5.Menghentikan proses secara mutlak



        Percobaan 3 : Mengelola sinyal

1.                     1.. Membuat file prog.sh



2.     2.Jalankan program tersebut. Karena program melakukan looping, maka stop dengan  
         mengirim sinyal interrupt (^C)


       3.Jalankan program tersebut sebagai background. Catat nomor PID proses, tekan 
         Enter untuk ke foreground dan periksa melalui instruksi ps


       4.Kirimkan sinyal terminasi sebagai berikut


       5.Ubahlah program prog.sh dengan instruksi trap untuk menangkap sinyal yang  
         dikirim


 6.Jalankan program tersebut sebagai background. Coba lakukan kill dengan nomor 
   PID proses tersebut.

 7.Perintah kill diatas tidak akan menghentikan proses karena dihalangi dengan  
   perintah trap. Cobalah menggunakan Nomor sinyal 9 

Hasil untuk no.6-7

 Percobaan 4 : No Hangup

1.                   1.  Adakalanya sebuah proses memerlukan waktu yang cukup lama, misalnya proses 
        sortir, sehingga perlu dilakukan sebagai proses background. Namun bila proses  
        masih berlangsung dan kita melakukan logout, maka otomatis proses akan ikut  
       berhenti, yang artinya proses sortir harus diulang kembali. Simulasi dari proses 
       sort



       2.Jalankan proses tersebut sebagai proses background


       3.Kemudian logout dan login kembali. Periksa sampai dimana job bekerja.


       4.Gunakan nohup (NoHangup) agar job tetap berjalan meskipun pemakai logout.  
         Catatan : fungsi ini tidak berjalan di non system V (Linux)


       5.Kemudian logout dan login kembali. Periksa apakah job masih bekerja.



Salam Teknik Komputer, Polsri

Tidak ada komentar: