Blogroll

Selasa, 03 April 2012

Proces Priority

  Semua proses pada sistem unix mempunyai sebuah prioritas dan nilai dari prioritas tersebut, Pada prioritas tertinggi akan mengunakan CPU clock speed lebih banyak dibandingkan pada prioritas rendah.

What is CPU clock speed ?
CPU clock speed disebut juga clock rate, kecepatan dimana sebuah micro procesor mengeksekusi beberapa intruksi. Procesor dapat mengeksekusi beberapa perintah pada waktu yang samabiasa disebut multi tasking. kecepatan clock dinyatakan dalam Megahertz (Mhz) atau Gigahertz (Ghz).


Pipes (mkfifo)
Dalam sistem operasi di Unix sebuah proses dapat saling berkomunikasi. proses komunikasi tersebut dilakukan via pipes, pipes dapat dibuat dengan mengunakan perintah mkfifo. untuk lebih memahaminya lihat lebih jelas percobaan yang akan saya lakukan dibawah ini.

Pertama kita membuat directory baru terlebih dahulu lihat perintah dibawa ini
  • hairul@pc-48-desktop: sudo mkdir coba

Gambar: Perintah mkdir

Setelah direktori berhasil dibuat, kita masuk ke direktori  tersebut kemudian kita buat beberapa proses baru secara bersamaan. Disini saya membuat proses dengan nama n1a,n1b,n2a,dan n2b. lihat gambar dibawah ini

  • hairul@pc-48-desktop: /$ cd /coba
  • hairul@pc-48-desktop: /coba$ sudo mkfifo n1a n1b n2a n2b

Gambar:mkfifo

setelah itu kita tampilkan daftar yang baru dibuat dengan mengunakan perintah 
  • hairul@pc-48-desktop: /coba$ ls -l
 Gambar: ls -l

Setelah proses n1a n1b n2a n2b telah dibuat, selanjutnya kita pisahkan kedua variabel tersebut, contoh n1a dan n1b kita tempatkan ke variabel x dan n2a dan n2b kita tempatkan ke variabel y, untuk memisahkan kedua variabel tersebut gunakan perintah ~$ cp /bin/cat n1 dan ~$ cp /bin/cat n1, untuk lebih jelasnya lihat gambar dibawah ini
  • hairul@pc-48-desktop: /coba$ cp /bin/cat n1
  • hairul@pc-48-desktop: /coba$ cp /bin/cat n2
Gambar : Perintah pemisahan variabel

setelah itu kita gunakan perintah /coba$ ls untuk melihat daftar yang baru dibuat
  • hairul@pc-48-desktop: /coba$ ls
Gambar: Perintah ls

  Disini telah terlihat bahwa proses n1a n1b n2a n2b telah dipisahkan kedua variabel dimana n1di variabel kan sebagai x anggotanya n1a dan n1b sedangkan variabel n2 sebagai variabel y anggotanya n2a dan n2b. Setelah kedua variabel tersebut dipisahkan selanjutnya kita tampilkan PID dari kedua variabel tersebut dengan mengunakan perintah dibawah ini
  • hairul@pc-48-desktop: /coba$ echo -n x | ./n1 - pipen1a > pipen1b &
Gambar: Perintah echo -n x | ./n1 - pipen1a > pipen1b &
ket:
echo : Display a line of text (Menampilkan sebuah baris dari text)
-n : do not output the trailing new line
x : variabel yang diberikan pada n1a dan n1b
./n1 : sebuah nama directory
pipen1a > pipen1b : Proses dari n1a di berikan ke n1b
& : Perintah untuk menjalankan sebuah proses dibelakang layar

Untuk lebih jelas mengenai perintah echo gunakan perintah man echo dan disini terlihat bahwa PID dari variabel x yaitu 2125. Untuk keluar dari proses tersebut Press Ctrl + Z

Setelah PID x ditampilkan selanjutnya tampilkan PID y, Perintah yang digunakan sama tetapi hanya ganti beberapa attribut saja seperti  variabel x jadi y dan directori ./n1 jadi ./n2 dan lain lain, untuk lebih jelasnya lihat gambar dibawah ini.

  • hairul@pc-48-desktop: /coba$ echo -n y | ./n2 - pipen2a > pipen2b &
Gambar: Perintah echo -n y | ./n2 - pipen2a > pipen2b &

ket:
echo : Display a line of text (Menampilkan sebuah baris dari text)
-n : do not output the trailing new line
y : variabel yang diberikan pada n2a dan n2b
./n2 : sebuah nama directory
pipen2a > pipen2b : Proses dari n2a di berikan ke n2b
& : Perintah untuk menjalankan sebuah proses dibelakang layar

Untuk lebih jelas mengenai perintah echo gunakan perintah man echo dan disini terlihat bahwa PID dari variabel y 2159. Untuk keluar dari proses tersebut Press Ctrl + Z

Setelah kita selesai menampilkan PID dari kedua variabel tersebut kemudian kita gunakan perintah top untuk menampilkan berapa %CPU yang tidak terpakai. (idle) setelah kita gunakan Bounce dari kedua proses variabel tersebut.dibawah ini gambar perintah top.
  • hairul@pc-48-desktop: /coba$ top
 Gambar: Perintah top
note: Disini terlihat CPU iddle time (0.0 %id) itu karena perintah cat yang baru saja kita buat menggunakan banyak banyak CPU clock speed. Hasil CPU iddle time (0.0 %id) dapat bervariasi pada sistem yang menggunakan beberapa CPU core tambahan
Untuk menampilkan PID yang telah terfilter dan berapa persen CPU iddle time  (0.0 %id) maka gunakan perintah top -p (no id)
contoh ~$ top -p 2125,2159,1535

ket :
top : Menampilkan task manager pada linux
-p : option pada perintah top
2125 : PID pada process echo -n x | ./n1 - pipen1a > pipen1b &
2159 : PID pada process echo -n x | ./n2 - pipen2a > pipen2b &
renice
ketika proses telah berjalan kita dapat mengontrol nilai value dari proses tersebut, nilai value tersebut mulai dari -20 sampai 19 untuk dapat mengontrol nilai value tersebut maka gunakan perintah renice. Dibawah ini contoh perintah renice

  • hairul@pc-48-desktop: /coba$ bash
  • hairul@pc-48-desktop: /coba$ ps -fx | grep bash
Gambar: Perintah  ps -fx | grep bash
ket:
hairul@pc-48-desktop: /coba$ bash : Untuk membuat sebuah proses bash
hairul@pc-48-desktop: /coba$ ps -fx | grep bash: Untuk menampilkan PID dari proses bash 
setelah sebuah proses telah di ketahui maka kemudian kita gunakan perintah top untuk melihat berapa besar  proses priority yang telah kita buat. Dibawah ini contoh Perintah top
  • hairul@pc-48-desktop: /coba$ top -p 2481
 Gambar: Perintah top -p 2481
ket:
top : Menampilkan task manager pada linux
-p : option pada perintah top
2481 : PID pada process bash

Disini terlihat bahwa PID dari 2481 PR = 20 dan NI=0
untuk nilai dari PR dan NI dapat diubah, untuk mengubahnya gunakan perintah renice (besarnya priority) (no PID). Dibawah ini contoh dari perintah renice
  • hairul@pc-48-desktop: /coba$ renice +15 2481
Gambar: Perintah renice +15 2481
Setelah Priority proses tersebut telah diubah kemudian gunakan top -p (PID), untuk melihat kembali apakah prioriy tersebut telah diubah atau tidak, maka gunakan perintah top -p (PID). Dibawah ini contoh perintah top -p (PID)
  • hairul@pc-48-desktop: /coba$ top -p 2481
 Gambar: Perintah top -p 2481
ket:
top : Menampilkan task manager pada linux
-p : option pada perintah top
2481 : PID pada process bash

Disini jelas telah tertulis bahwa PID 2481 telah diubah nilai priority nya (PR) yang semula 20 sekarang telah bertambah 15 menjadi 35 dan nice (NI) yang semula 0 sekarang menjadi 15. Yang saya tanyakan kenapa saya hanya mengubah priority nya (PR) dan nice nya (NI) ikut terubah?

note: Range nilai value (PR) dan (NI) = -20 sampai 19

Dibawah ini ada beberapa pertayaan mengenai pembahasan diatas

1. Create a new directory and create six pipes in that directory?
Untuk menjawab pertayaan diatas maka terlebih dahulu buatlah sebuah directory dan buatlah 6 pipes di direktory tersebut. untuk lebih jelas lihat gambar dibawah ini:
  • hairul@pc-48-desktop:/$ sudo mkdir latihan

Gambar: Perintah sudo mkdir latihan

Setelah directory telah dibuat kita masuk pada directory tersebut dan buat 6 pipes dengan mengunakan perintah mkfifo, untuk lebih jelasnya lihat gambar dibawah ini.
  • hairul@pc-48-desktop:/$ sudo mkfifo e1,e2,e3,34,e5,e6
Gambar: Perintah sudo mkfifo e1,e2,e3,e4,e5,e6
Setelah itu masuk pada directory latihan kemudian gunakan perintah ls -l untuk melihat directory tersebut apakah telah terbuat atau belum
  • hairul@pc-48-desktop:/latihan$ ls -l
Gambar: Perintah ls -l 

2. Bounce a character between two pipes
Untuk Bounce sebuah karakter dari dua buah pipes maka gunakan perintah seperti echo -n x | cat - e1 > e2 &. Untuk lebih jelasnya lihat gambar dibawah ini
  • hairul@pc-48-desktop:/latihan$ sudo echo -n x | cat - e1 > e2 &
Gambar: Perintah sudo echo -n x | cat - e1 > e2 &
ket:
echo : Display a line of text (Menampilkan sebuah baris dari text)
-n : do not output the trailing new line
x : variabel yang diberikan pada e1 dan e2
& : Perintah untuk menjalankan sebuah proses dibelakang layar
setelah Bounce dari dua karakter diatas dengan menggunakan perintah seperti cat e1 &. untuk lebih jelas lihat gambar dibawah ini
  • hairul@pc-48-desktop:/latihan$ cat e1 &
Gambar: Perintah cat e1 & 
ket:
cat : Perintah untuk menampilkan sebuah isi file
e1 : Perintah Bounce dari karakter  e1 > e2 kemudian menjadi e1
& : Perintah untuk menjalankan di latar belakang







3. Use top and ps to display information (pid, ppid, priority, nice value, ...) about
these two cat processes?
Untuk menampilkan PID maka kita gunakan perintah ps -C cat.
  • hairul@pc-48-desktop:/latihan$ ps -C cat
Gambar: Perintah ps -C cat
Setelah kita mengetahui PID dari proses cat kemudian gunakan perintah top -p (PID) untuk melihat informasi dari pid, ppid, priority, nice value dan lain lain. Dibawah ini gambar perintah top -p (PID)  
  • hairul@pc-48-desktop:/latihan$ top -p 3153
Gambar: Perintah  top -p 3153
4. Bounce another character between two other pipes, but this time start the
commands nice. Verify that all cat processes are battling for the cpu. (Feel free to fire up two more cats with the remaining pipes) ?
Untuk Bounce karakter lainnya, perintahnya sama seperti yang diatas. Dibawah ini perintah dari Bounce karakter yang lainnya.
  • hairul@pc-48-desktop:/latihan$ echo -n y | nice cat - e3 > e4 &
  • hairul@pc-48-desktop:/latihan$ nice cat e3 &
Gambar: Perintah echo -n y | nice cat - e3 > e4 &
Gambar: Perintah echo nice cat e3 &
5. Use ps to verify that the two new cat processes have a nice value. Use the -o and -C options of ps for this?
Untuk menampilkan proces cat pid,ppid,pri,ni,comm gunakan tambahan opsi -o. Dibawah ini contoh perintah ps -C cat -o pid,ppid,pri,ni,comm.
  • hairul@pc-48-desktop:/latihan$ ps -C cat -o pid,ppid,pri,ni,comm
Gambar: Perintah ps -C cat -o pid,ppid,pri,ni,comm
ket :
ps : Perintah untuk menampilkan proses
-C : opsi dari perintah ps untuk menampilkan by name
cat : Proses yang telah dibuat
-o : user defined
pid : PID
PPID : PPID
PRI : Proses Priority
NI : Nice value
comm : Perintah
6. Use renice te increase the nice value from 10 to 15. Notice the difference with the usual commands?
Untuk menambahkan PRI pada sebuah proses maka gunakan perintah renice +15 (no PID). Dibawah ini contoh dari perintah renice
  • hairul@pc-48-desktop:/latihan$ renice +12 3153
 Gambar: Perintah renice +12 3153

 Setelah kita gunakan perintah ~$ renice +12 3153 kemudian lihat kembali apakah PRI (Priority), dan NI (nice value) telah berubah atau tidak. Disini terlihat bahwa PRI dan NI telah berubah, semulanya PRI 4 dan NI 15 tetapi sekarang telah berubah menjadi PRI 7 dan NI 12

Sampai Disini dulu pertemuan kita, lebih dan kurangnya saya mohon maaf


 






0 komentar:

Posting Komentar