Bab 8

  • May 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Bab 8 as PDF for free.

More details

  • Words: 1,152
  • Pages: 13
Manajemen proses Linux

8 Obbjectives: Mengenal Konsep Proses di linux dan unix  Mengerti konsep sinyal dan bagaimana cara mengelola Sinyal tersebut

Konsep sebuah Proses di Linux/Unix Setiap kali intruksi diberikan pada Unix shell,maka kernel akan menciptakan sebuah proses-id. Proses ini disebut juga dalam terminologi 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 peratu).Proses Batch tidak diasosiasikan (sberinteraksi) dengan terminal.

 Daemon Proses yang menunggu permintaan (request) dari Proses lainya dan menjalankan tugas sesuai dengan permintaan tersebut. Bila tidak ada request,maka program ini akan berada dalam kondisi “idle”(tidur) dan tidak menggunakan waktu hitung CPU. Umumnya nama proses daemon di UNIX Berakhiran d, misalnya inetd, named, popd dan lainya.

Status Proses Intruksi ps (process status) digunakan untuk melihat kondisi proses yang ada. $ ps PID 42 286

TTY v01 v01

STAT S R

TIME 0 : 00 0 : 00

COMMAND sh ps

PID Prosess Id (Nomor Identitas Proses) TTY Nama Terminal, dimana proses tersebut aktif STAT S (Sleeping), R(Running) COMMAND Intruksi yang digunakan Catatan : Proses sh adalah shell yang aktif pada saat Anda login kedalam sistem dan proses sh ini akan menunggu instruksi dari pemakai. Bila shell menjalankan instruksi,maka shell menciptakan proses anak dan menunggu hingga proses tersebut selesai. Untuk melihat factor/ elemen lainya, gunakan Option –u (user) $ ps -u USER PID %CPU %MEM nane 42 0.1 12 :02 0 :00 nane 289 0.3 12 :14 0 :00

SIZE

RSS 6.8

TTY

STAT 376

START TIME COMMAND 432 v03 S

sh 3.4 ps –u

83

264

v03

R

%CPU Presentasi CPU TIME yang digunakan oleh proses tersebut %MEM Presentasi sistem Memori yang digunakan proses SIZE Jumlah memori yang digunakan RSS Real System Storage, jumlah yang digunakan START kapan proses tersebut diaktifkan.

Mencari proses untuk spesifik pemakai, digunakan option seperti dibawah ini: S ps

-u

amir

Proses diatas hanya terbatas pada proses milik pemakai, dimana pemakai tersebut melakukan login. Untuk melihat proses lainya,gunakan option –a (all) S ps ……….

-a

Atau untuk lebih lengkap lagi:

S ps -au …………

Sinyal Proses dapat mengirim dan menerima sinyal dari dan ke proses lainya. Proses mengirim sinyal melalui instruksi “kill”dengan tata penulisan: Kill [-nomor sinyal ] PID Nomor sinyal adalah 1 sampai dengan maksimum Nomor sinyal yang didefinisikan oleh system (tergantung versi UNIX yang digunakan).Standart Nomor sinyal yang terpentingkan dapat dilihat pada tabel: No Nama Sinyal 1 SIGHUP

2 3 9 15 Contoh:

Deskripsi

Hangup,sinyal dikirim bila proses terputus, misalnya melalui putusnya hubungan modem SIGINT Sinyal Interrupt,melalui ^C SIGQUIT Sinyal Quit,melalui ^\ SIGKILL Sinyal Kill, menghentikan proses SIGTERM Sinyal Terminasi Software

## Sebuah shell script : loop.sh while [ 1 ] do echo “. \ c” slepp 10 done S chmod +x loop.sh S ./loop.sh &

Lihat proses id: S ps PID 42 386 391

TTY v01 v01 v01

STAT S S R

TIME 0 :00 0 :00 0 :00

COMMAND sh loop.sh ps

Hentikan proses tersebut dengan: s kill

-15

386

atau s

kill

386

Default nomor sinyal adalah 15! Untuk menghentikan sinyal secara mutlak,gunakan sinyal nomor 9. s kill

-9

386

Tutorial proses Tugas: Login sebagai amir dan lihat proses status, Perhatikan kolom keluaran ps –au sebagai berikut: 1.1

Sebutkan nama-nama proses yang bukan root

1.2 Tulis PID dan COMMAND dari proses yang paling banyak menggunakan CPU Time

1.3 Sebutkan buyut proses dan PID dari proses Tersebut

1.4

Sebutkan beberapa proses daemon

1.5. Pada prompt login anda lakukan beberapa hal sebagai berikut: S S S S S S

csh who bash ls sh ps

Sebutkan PID yang paling besar, dan kemudian buat uruturutan proses sampai ke PPID = 1.

Lakukan ^d atau exit atau logout sampai kembal muncul login: prompt

2.Mengirim Sinyal Mengirim sinyal adalah satu alat komunikasi antar proses, yaitu memberikan 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. Megirim sinyal dilakukan dengan instruksi: kill [-nomor sinyal ] PID

Sebelum mengirim sinyal, maka PID proses yang akan dikirim harus diketahui terlebih dahulu. Contoh:

# kill 3928 Mengirim sinyal 15 (SIGTERM) pada proses dengan PID 3928. Nomor sinyal ini adalah default.

#kill -9 2981 Meenghentikan proses dengan PID= 2981 Tugas 2.1 Login ke sistem dan buat program shell berikut ini: s vi prog .sh # ! /bin/sh echo “ program berjalan…“ while : do echo “x” sleep 20 done

Jalankan program tersebut: s chmod +x prog .sh s . /prog . sh …………… Karena program tersebut melakukan looping, maka stop dengan mengirim sinyal interrupt (dalam hal ini diciptakan oleh keyboard melalui ^C) Tugas 2.2: Jalankan program tersebut sebagai “background” s ./prog .sh &

Catat nomor PID proses tersebut , dan periksa melalui ps Kirim sinyal terminasi sebagai berikut: $ kill PID ### PID adalah nomor yang telah dicatat sebelumnya Tugas 2.3: Tangkap sinyal yang dikirim melalui instruksi trap sebagai berikut: # ! /bin/ sh trap “ “ 1 2 3 15 echo “ Program berjalan….” while : do echo “x” sleep 20 done

Coba lagi sebagai proses background: s . /prog .sh

&

Dan coba lakukan kill dengan nomor PID yang Bersangkutan: $ kill PID atau kill -1 PID atau -2 PID atau Bila tidak bias juga lakukan kill -9 PID !!!! Ini tak ada penghalangnya! Tugas 2.4: Modifikasi program sebagai berikut: # ! /bin/ sh Trap “echo Hello Godbye ; exit echo “Program Berjalan …..” while : do echo “x” sleep 20 done

0



1

2

3

15

3. No Hangup ! Adakalanya sebuah proses sortir misalnya Memerlukan waktu yang cukup lama,sehingga perlu dilakukan sebagai proses background.Namun bila proses tesebut masih berlangsung dan kita melakukan logout (exit), maka otomatis proses tersebut ikut berhenti, artinya proses sortir harus diulang kembali. Simulasikan proses sort sebagai berikut:

$ vi my job. sh # ! / bin/ sh i =1 while : do find / -print > berkas sort berkas -O hasil echo “Proses selesai pada ‘date’” >> proses.log sleep 60 done

Jalankan proses tersebut sebagai background: $ chmod +x my job . sh $ . /myjob . sh

Logout dan login kembali ! Periksa sampai dimana job tersebut bekerja ? Bagaimana agar job tersebut tetap berjalan walaupun pemakainya logout ? Jawabanya adalah menggunakan nonhup (No Hangup). Catatan : fungsi ini tidak berjalan di non System V (Linux) $ nonup myjob.sh Logout dan login kembali, bila benar maka job Tersebut masih berputar putar ! Hentikan dengan kill.

Tugas: Buat trap sedemikian rupa,sehingga bila proses tersebut dihentikan (kill) , maka otomatis file berkas akan terhapus. # ! /bin / sh trap i =I while : do find / -print > berkas sort berkas -o hasil echo “Proses selesai pada ‘date’ “ >> proses. Log sleep 60 done $ kill

-15

PID

$ ls -1 ………………………………………./// File berkas tidak ada lagi

!

Related Documents

Bab 8
December 2019 56
Bab 8
May 2020 46
Bab 8
November 2019 56
Bab 8
May 2020 48
Bab 8
May 2020 30
Bab 8
October 2019 48