PRAKTIKUM 4B : PROSES DAN MANAJEMEN PROSES

  POKOK BAHASAN :

  • Proses pada Sistem Operasi Linux
  • Manajemen Proses pada Sistem Operasi Linux
TUJUAN BELAJAR :

  • Memahami konsep proses pada sis tem operasi Linux. 
  • Menampilkan beberapa cara menampilkan hubungan proses parent dan child. 
  • Menampilkan status proses dengan beberapa format berbeda. 
  • Melakukan pengontrolan proses pada shell.
  • Memahami penjadwalan prioritas

DASAR TEORI :

1. KONSEP PROSES PADA SISTEM OPERASI LINUX

    Proses adalah program yang sedang dieksekusi. Setiap kali menggunakan utilitas sistem atau program aplikasi dari shell, satu atau lebih proses ”child” akan dibuat oleh shell sesuai perintah yang diberikan. 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) denganterminal. 
  • 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
2. 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 : 

3. 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.

4. MENGONTROL PROSES PADA SHELL

    Shell menyediakan fasilitas job control yang memungkinkan mengontrol beberapa job atau proses yang sedang berjalan pada waktu yang sama. Misalnya bila melakukan pengeditan file teks dan ingin melakukan interrupt pengeditan untuk mengerjakan hal lainnya. Bila selesai, dapat kembali (switch) ke editor dan melakukan pengeditan file teks kembali. 

    Job bekerja pada foreground atau background. Pada foreground hanya diperuntukkan untuk satu job pada satu waktu. Job pada foreground akan mengontrol shell - menerima input dari keyboard dan mengirim output ke layar. Job pada background tidak menerima input dari terminal, biasanya berjalan tanpa memerlukan interaksi. 

    Job pada foreground kemungkinan dihentikan sementara (suspend), dengan menekan [Ctrl-Z]. Job yang dihentikan sementara dapat dijalankan kembali pada foreground ataubackground sesuai keperluan dengan menekan ”fg” atau ”bg”. Sebagai catatan, menghentikan job sementara sangat berbeda dengan melakuakan interrupt job (biasanya menggunakan [Ctrl-C]), dimana job yang diinterrup akan dimatikan secara permanen dan tidak dapat dijalankan lagi.

5. MENGONTROL PROSES LAIN

    Perintah ps dapat digunakan untuk menunjukkan semua proses yang sedang berjalan pada mesin (bukan hanya proses pada shell saat ini) dengan format : 

    ps –fae atau ps -aux 

    Beberapa versi UNIX mempunyai utilitas sistem yang disebut top yang menyediakan cara interaktif untuk memonitor aktifitas sistem. Statistik secara detail dengan proses yang berjalan ditampilkan dan secara terus-menerus di-refresh. Proses ditampilkan secara terurut dari utilitas CPU. Kunci yang berguna pada top adalah 

  • – set update frequency 
  • u – display proses dari satu user 
  • k – kill proses (dengan PID) 
  • – quit 

    Utilitas untuk melakukan pengontrolan proses dapat ditemukan pada sistem UNIX adalah perintah killall. Perintah ini akan menghentikan proses sesuai PID atau job number proses.

PERCOBAAN 5 : MENGHENTIKAN DAN MEMULAI KEMBALI JOB













1. $yes > /dev/null akan membelokkan yes ke /dev/null

2. Dalam perintah $ fg dipergunakan untuk merestart proses atau dengan kata lain job yang di suspend/di berhentikan untuk sementara.

3. Pada $bg kita mensuspend job “yes >/dev?null” pada screenshot di atas. Kemudian memindahkannya ke background proses, yang berarti proses atau job tersebut tidak berhenti,akan tetapi terus berjalan di belakang layar.


4. Dalam perintah $ fg dipergunakan untuk merestart proses atau dengan kata lain job yang di suspend/di berhentikan untuk sementara.


5. $yes & memprint huruf ‘y’ terus menerus dan berhenti dengan CTRL +Z


6. Perintah $ fg %<nomor job> dan $bg %<nomor job> disini berguna untuk menjalankan banyak job dalam satu waktu atau multitasking. Dalam hal ini, job – job yang sedang tidak dipakai dikelompokkan dalam background atau dimasukkan ke proses background, dan untuk mengenalinya kita menggunakan nomor job yang unik (tidak ada job yang memiliki nomor yan sama). Disini pada nomor job 2 tidak terjadi proses/ pekerjaan sehingga tidak ditemukan


7. Dalam perintah $ fg dipergunakan untuk merestart proses atau dengan kata lain job yang di suspend/di berhentikan untuk sementara.


8. Perintah  $ ps –fae digunakan untuk menampilkan secara lengkap seluruh proses yang sedang berjalan beserta detailnya. Sedangkan perintah $ kill -9 <nomor PID> digunakan untuk menghentikan atau terminate suatu proses dengan memasukkann nomor PID sebagai pengenal prosesnya


PERCOBAAN 6 : PERCOBAAN DENGAN PENJADWALAN PRIORITAS





























    Untuk Login dengan menggunakan $sudo su untuk masuk kedalam root


    Tahap kedua, membuka 3 terminal dan perintah $ PS1=”\w:” untuk ketiganya yang bertujuan untuk masuk ke directory home dari user root. Sedangkan perintah $ pwd digunakan untuk mengetahui lokasi aktif kita sekarang.


    Selanjutnya membuka 4 terminal dengan terminal ke 4 mengetikan perintah $top-> klik enter -> klik i-> klik lmt. Program top pada linux disini berfungsi seperti task manager pada windows, yaitu untuk men/getahui semua rincian proses yang berjalan, dan beberapa fungsi lainnya. Mengetikkan ‘i’ pada window top akan menampilkan proses yang sedang aktif. Ketikkan ‘lmt’ untuk menghilangkan atau tidak menampilan informasi pada bagian atas dari window.


    Selanjutnya membuat 2 terminal diatas memprint fungsi $yes.


    Renice 19 <no.PID (2546)> membuat terminal dengan nomor PID 2546 lebih diutamakan dibandingkan nomor PID yang lain dilihat dari NI yang nilainya lebih besar. Dilihat dari gambar dibawah ini :

    Program top juga memiliki fungsi yang sama dengan program renice. Jadi kita dapat mengubah konfigurasi proses melalui program renice maupun top. Setelah prioritas 2546 diubah menjadi -19, prosesnya akan lebih cepat. Dari kedua praktik diatas didapati bahwa semakin kecil prioritas dari suatu proses, akan semakin cepat proses tersebut berjalan. 

    

   fungsi dari $nice –n -10 yes  menampilkan huruf y sebagai proses namun tidak terlihan pada terminal ini ketika di minimize  nilai NI bernilai -10.

    

    Selama saya tidak memainkan mouse dan keyboard tidak terdapat nilai pada %CPU bernilai dibawah 1 dan yang saya temukan sebesar 2.5 namun tidak tergambar. Seharusnya saat mouse dan keyboard diam, penggunaan sumber daya oleh program top kecil. Namun ketika mouse mulai digerakkan atau ada perubahan posisi komponen semisal pointer, dll, proses top memakan sumber daya lebih banyak daripada saat diam.

    Kita dapat mengubah konfigurasi suatu proses melalui perintah – perintah yang terdapat pada proses top. Dan ternyata setelah proses 3035 diubah prioritasnya menjadi 0, penggunaan sumber daya oleh terminal top menjadi lebih stabil (tidak banyak perubahan) walaupun mouse digerakkan ke sekeliling screen.


LATIHAN :

1. Masuk ke tty2 dengan Ctrl+Alt+F2. Ketik ps –au dan tekan Enter. Kemudian perhatikan keluaran sebagai berikut : 

  • Sebutkan nama -nama proses yang bukan root! bash, dan ps –au, ibus daemon 
  • Tulis PID dan COMMAND dari proses yang paling banyak menggunakan CPU time
    • PID : 1722 ; CMD : /usr/bin/gnom 
  • Sebutkan buyut proses dan PID dari proses tersebut 
    • PID :1065 ; CMD : /usr/lib/gdm3
  • Sebutkan beberapa proses daemon 
    • Proses daemon yang saya temukan hanya satu yaitu ibus-daemon pada PID 11397
  • Pada prompt login lakukan hal hal sebagai berikut : 
    • $ csh : Sebuah shell dengan command interpreter c 
UNTUK POINT 2-6 dan POINT F
    • $ who : Melihat user yang login
    • $ bash : GNU Bourne-Again Shell
    • $ ls : Melihat isi direktori
    • $ sh : Command interpreter shell
    • $ ps : Melihat proses yang aktif
  • Sebutkan PID yang paling besar dan kemudian buat urut-urutan proses sampai ke PPID = 1. 
    • Dengan menggunakan $ps –sort –pid dapat ditemukan bahwa PID terbesar ke terkecil adalah 2110-2109-2100-1922
2. Cobalah format tampilan ps dengan opsi berikut dan perhatikan hasil tampilannya : 

  • -f daftar penuh 
  • -j format job 
  • j format job control  
  • l daftar memanjang 
  • s format sinyal 
  • v format virtual memory 
  • X format register i386 
UNTUK NOMOR 2

3. Lakukan urutan pekerjaan berikut : 

  • Gunakan perintah find ke seluruh direktory pada sistem, belokkan output sehingga daftar direktori dialihkan ke file directories.txt dan daftar pesan error dialihkan ke file errors.txt 
  • Gunakan perintah sleep 5. Apa yang terjadi dengan perintah ini ? 
yang terjadi adalah terminal berhenti selama 5 detik 
UNTUK POINT C-F
  • Jalankan perintah pada background menggunakan & 
    • $sleep 5&
  • Jalankan sleep 15 pada foreground , hentikan sementara dengan Ctrl- Z dan kemudian letakkan pada background dengan bg. Ketikkan jobs. Ketikkan ps. Kembalikan job ke foreground dengan perintah fg. 
    • Saat diklik $sleep 15 yang saya hentikan dengan ctrl + Z. Alasan disini pada saat $jobs diketikan tidak keluar apa apa adalah karena proses sleep 15 telah selesai, jadi sudah tidak ada lagi jobs atau pekerjaan yang masih berjalan, kita juga bisa memastikannya melalui ps, tidak ada proses sleep yang berjalan, maka dari itu pada saat kita melakukan perintah fg terdapat output “no such job” yang berarti tidak ada pekerjaan atau job.
  • Jalankan sleep 15 pada background menggunakan & dan kemudian gunakan perintah kill untuk menghentikan proses diikuti job number. 
    • Proses yang sedang berjalan pada $sleep 15 & dihentikan dengan kill%<nomorjob> sehingga status nya terminated
  • Jalankan sleep 15 pada background menggunakan & dan kemudian gunakan kill untuk menghentikan sementara proses. Gunakan bg untuk melanjutkan menjalankan proses.
    • Dengan menggunakan option STOP untuk menstop proses sleep 15, karena jika tidak menggunakan opsi tersebut maka proses sleep 15 akan terminated maksudnya berhenti tidak dapat dilanjutkan. 
UNTUK POINT G-H
  • Jalankan sleep 60 pada background 5 kali dan terminasi semua pada dengan menggunakan perintah killall. 
    • Menggunakan $ for i in {1..5}; do sleep 60 & done Untuk mengulang perintah sleep 60 & 5 kali. 
    • Menggunakan $kill %{1..5} Untuk memberhentikan proses 1 sampai 5, disini program tidak dapat menggunakan $killall.
  • Gunakan perintah ps , w dan top untuk menunjukkan semua proses yang sedang dieksekusi.
    • Program ps menjelaskan bahwa sedang terjadi proses bash dan ps
    • w memperlihatkan user yang sedang aktif dan yang dilakukan oleh program disini program menjalankan /usr/lib/gdm3
    • top memperlihatkan PID dan command apa yang sedang berjalan
  • Gunakan perintah ps –aeH untuk menampilkan hierarki proses. Carilah init proses. Apakah Anda bisa identifikasi sistem daemon yang penting ? Dapatkan Anda identifikasi shell dan subproses ?
    • init PID= 1
    • Sistem Daemon :
      • dbus daemon
      • ibus daemon
      • goa daemon
      • avahi-daemon
      • accounts-daemon
    • Shell :
      • bash
      • csh
      • sh
    • Sub Proses :
      • systemd-udevd
      • system-timesyn
      • system-resolve
      • system-logind
  • Kombinasikan ps –fae dan grep , apa yang Anda lihat ?
 
    • disini saya menggunakan $ps -fae | grep ibus-deamon Program akan mencari pada ps -ae dengan kata kunci ibus-daemon
  • Jalankan proses sleep 300 pada background. Log off komputer dan log in kembali. Lihat daftar semua proses yang berjalan. Apa yang terjadi pada proses sleep ? 
    • Pada proses sleep yang di log off akan berjalan dibelakang layar
KESIMPULAN :
  • Kita dapat mengetahui proses yang sedang berjalan dengan menggunaka $ps dan melihat tipe proses yang sedang berjalan seperti foreground, bash dan deamon.

  • Penggunaan Renice dapat menentukan prioritas dengan mengubah nilai NI. Apabila nilai NI lebih kecil, proses akan lebih cepat.

  • Penggunaan kill dapat menghentikan paksa proses yang sedang berlangsung sedangkan sleep digunakan untuk meberhentikan sementara proses yang berlangsung sebanyak detik yang ditulis setelah sleep contoh sleep 15 (memberhentikan proses selama 15 detik)

DAFTAR PUSTAKA :
  • https://pramitananda.wordpress.com/operating-system/proses-dan-manajemen-proses/
  • http://agneshallatu.blogspot.com/2012/11/proses-dan-manajemen-proses.html
  • http://intheworld-it.blogspot.com/2014/11/laporan-praktikum-sistem-operasi_25.html
  • https://www.slideshare.net/ridwanpanigoro/os2013-lap5ridwan

Comments

Popular posts from this blog

PRAKTIKUM 5 : BEKERJA DENGAN BASH SHELL

Praktikum 3 : Operasi File dan Struktur Direktori

PRAKTIKUM 11 : MANAJEMEN USER DAN GROUP