Proses Dan Manajemen Proses [PDF]

  • 0 0 0
  • Suka dengan makalah ini dan mengunduhnya? Anda bisa menerbitkan file PDF Anda sendiri secara online secara gratis dalam beberapa menit saja! Sign Up
File loading please wait...
Citation preview

PRAKTIKUM SISTEM OPERASI Proses dan Manajemen Proses



Kelompok 5 3 D4 Teknik Komputer B 1. Didi Alfandi



2210181033



2. Lusiana Diyan Ningrum



2210181051



3. Aditya Yuliyanto



2210181060



PROGRAM STUDI D4 TEKNIK KOMPUTER DEPARTEMEN TEKNIK INFORMATIKA DAN KOMPUTER POLITEKNIK ELEKTRONIKA NEGERI SURABAYA 2020



BAB 1 PENDAHULUAN



POKOK BAHASAN: 



Proses pada Sistem Operasi Linux







Manajemen Proses pada Sistem Operasi Linux



TUJUAN BELAJAR: Setelah mempelajari materi dalam bab ini, mahasiswa diharapkan mampu: 



Memahami konsep proses pada sistem 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



BAB 2 DASAR TEORI 1. KONSEP PROSES PADA SISTEM OPERASI LINUX Proses adalah program yang sedang dieksekusi. Setiap kali menggunakan utilitas sitem atau program aplikasi dari shell, satu atau lebih proses “child” akan dibuat oleh shell sesuai perintah yang diberikan. Setiap kali instruksidiberikan pada Linux shell, maka kernel akan menciptakan sebuah proses-id. Proses ini disebut juga dengan terminology Unix sbagai sebuah Job. Proses Id (PID) dimulai dari 0, yaitu proses INT, 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). Proses 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 berakhir d, misalnya inetd, named, props, 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 sinya] PID Sebelum mengirim sinyal PID proses yang akan dikirim haru 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 atau background sesuai keperluan dengan menekan “fg” atau “bg”. Sebagai catatan, menghentikan job sementara sangat berbeda dengan melakukan interrupt job (biasanya menggunakan [Ctrl+C]), dimana job yang diinterrupt 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 system yang disebut top yang menyediakan cara interaktif untuk memonitor aktifitas system. 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 : s – set update frequency



u – display proses dari satu user k – kill proses (dengan PID) q – quit Utilitas untuk melakukan pengontrolan proses dapat ditemukan pada system UNIX adalah perintah killall. Perintah ini akan menghentikan proses sesuai PID atau job number proses.



BAB 3 PERCOBAAN PERCOBAAN 5 : Menghentikan dan Memulai Kembali Job 1. Cara lain meletakkan job pada background dengan memulai job secara normal (pada foreground), stop job dan memulai lagi pada background $ yes > /dev/null . Hentikan sementara job (suspend), bukan menghentikannya (terminate), tetapi menghentikan sementara job sampai di restart. Untuk menghentikan sementara job gunakan Ctrl + Z.



2. Untuk restart job pada foreground, gunakan perintah fg.



3. Shell akan menampilkan nama perintah yang diletakkan di foreground. Stop job lagi dengan Ctrl + Z. Kemudian gunakan perintah bg untuk meletakkan job pada background. Job tidak bisa dihentikan dengan Ctrl + Z karena job berada pada background. Untuk menghentikannya, letakkan job pada foreground dengan fg dan kemudian hentikan sementara dengan Ctrl + Z.



4. Job pada background dapat digunakan untuk menampilkan teks pada terminal, dimana dapat diabaikan jika mencoba mengerjakan job lain.



Untuk menghentikannya tidak dapat menggunakan Ctrl+C. Job harus dipindahkan ke foreground, baru dihentikan dengan cara tekan fg dan tekan Enter, kemudian dilanjutkan dengan Ctrl+Z untuk menghentikan sementara.



5. Apabila ingin menjalankan banyak job dalam satu waktu, letakkan job pada foreground atau background dengan memberikan job ID



6. Tekan fg dan tekan Enter, kemudian dilanjutkan dengan Ctrl+Z untuk menghentikan sementara



7. Lihat job dengan perintah ps –fae dan tekan Enter. Kemudian hentikan proses dengan perintah kill



PERCOBAAN 6 : Percobaan dengan Penjadwalan Prioritas



1. Login sebagai root 2. Buka 3 terminal, tampilkan pada screen yang sama 3. Pada setiap terminal, ketik PS1 = “\w:” diikuti Enter. \w menampilkan path pada direktori home



4. Karena login sebagai root, maka akan ditampilkan ~: pada setiap terminal. Untuk setiap terminal ketik pwd dan tekan Enter untuk melihat bahwa Anda sedang berada pada direktori /root.



5. Buka terminal lagi, atur posisi sehingga keempat terminal terlihat pada screen



6. Pada terminal keempat, ketika top dan tekan Enter. Maka program top akan muncul. Ketik i. Top akan menampilkan proses yang aktif. Ketik lmt. Top tidak lagi menampilkan informasi pada bagian atas dari screen. Pada percobaan ini, terminal ke empat sebagai jendela Top.



7. Pada terminal l, bukalah program executable C++ dengan mengetikkan program yes dan tekan Enter



8. Ulangi langkah 7 untuk terminal 2



9. Jendela Top akan menampilkan dua program yes sebagai proses yang berjalan. Nilai %CPU sama pada keduanya. Hal ini berarti kedua proses mengkonsumsi waktu proses yang sama dan berjalan sama cepat. PID dari kedua proses akan berbeda, misalnya 3148 dan 3149. Kemudian gunakan terminal 3 dan ketik renice 19 dan diikuti Enter.



10. Tunggu beberapa saat sampai program top berubah dan terlihat pada jendela Top. Pada kolom STAT memperlihatkan N untuk proses 3148. Hal ini berarti bahwa penjadwalan prioritas untuk proses 3148 lebih besar dari 0. Proses 3149 berjalan lebih cepat.



11. Program top juga mempunyai fungsi yang sama dengan program renice. Pilih jendela Top dan tekan r. Program top terdapat prompt PID to renice: tekan 3148 dan tekan Enter. Program top memberikan prompt Renice PID 3148 to value: tekan -19 dan tekan Enter.



12. Tunggu beberapa saat sampai top berubah dan lihat nilai %CPU pada kedua proses. Sekarang proses 3148 lebih cepat dari proses 3149. Kolom status menunjukkan < pada proses 3148 yang menunjukkan penjadwalan prioritas lebih rendah dari nilai 0.



13. Pilih terminal 3 dan ketik nice –n -10 yes dan tekan Enter. Tunggu beberapa saat agar program top berubah dan akan terlihat proses primes ketiga.



14. Jangan menggunakan mouse dan keyboard selama 10 detik. Program top menampilkan proses yang aktif selain program yes. Maka akan terlihat proses top terdaftar tetapi %CPU kecil dan konsisten.



15. Pindahkan mouse sehingga kursor berubah pada screen dan lihat apa yang terjadi dengan tampilan top. Proses tambahan akan muncul dan nilai %CPU berubah sebagai bagian grafis yang bekerja. Pilih jendela Top, ketik r. PID to renice : muncul prompt. Ketik 4107 dan tekan Enter. Renice PID 4107 to value : muncul prompt. Ketik 0 dan tekan Enter. Sekarang pindahkan mouse ke sekeliling screen



awal



perubahan



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



a.



Sebutkan nama – nama proses yang bukan root.



Jawab: Diantaranya adalah bash, -bash dan ps –au b. Tulis PID dan COMMAND dari proses yang paling banyak menggunakan CPU time. Jawab: PID



: 417



COMMAND : /usr/yes c.



Sebutkan buyut proses dan PID dari proses tersebut.



Jawab: Buyut proses yaitu proses yang memiliki PID terkecil yang menandakan program tersebut merupakan program yang pertama dijalankan. Buyut proses : getty PID d.



: 932 Sebutkan beberapa proses daemon.



Jawab: contoh proses daemon adalah inetd, named, popd, dan lain lainnya. Namun pada praktikum ini, tidak ada proses daemon yang berjalan. e.



Pada prompt login lakukan hal – hal sebagai berikut;



$ csh : untuk $ who : untuk melihat user yang aktif pada computer. $ bash : $ ls : untuk melihat isi dari directory yang aktif. $ sh : $ ps : untuk melihat proses yang sedang berjalan f.



2. Cobalah format tampilan ps dengan opsi berikut dan perhatikan hasil tampilannya



3. Lakukan urutan pekerjaan berikut a. Gunakan perintah find ke seluruh directory pada sistem, belokkan output sehingga daftar direktori dialihkan ke file directories.txt dan daftarkan pesan error dialihkan ke file errors.txt



b. Gunakan perintah sleep 5



c. Jalankan perintah background menggunakan &



d. Jalankan sleep 15 pada foreground, hentikan sementara dengan Ctrl+Z dan kemudian letakkan pada background dengan bg. Ketkkan jobs. Ketikkan ps. Kembalikan job ke foreground dengan perintah fg.



e. Jalankan sleep 15 pada background menggunakan & dan kemudian gunakan kill untuk menghentikan proses diikuti job number



f. Jalankan sleep 15 pada background menggunakan & dan kemudian gunakan kill untuk menghentikan proses. Gunakan bg untuk melanjutkan menjalankan proses



g. Jalankan sleep 60 pada background 5 kali dan terminasi semua pada dengan menggunakan perintah kill all



h. Gunakan perintah ps, w dan top untuk menunjukkan semua proses yang sedang dieksekusi



i. Gunakan perintah ps –aeH untuk menampilkan hierarki proses. Carilah init proses.



Init proses yaitu yang no. pid adalah 1 j. Kombinasikan ps –fae dan grep



k. Jalankan proses sleep 300 pada background



BAB 4 PEMBAHASAN



Pada praktikum ini, kami melakukan percobaan mengenai proses dan manajemen proses pada sistem operasi Linux. Pada percobaan ini ditampilkan beberapa proses yang berlangsung pada sistem operasi linux serta mengetahui hubungan proses parent dan child, pengontrolan proses pada shell dan penjadwalan prioritas. perintah $ yes > /dev/null ini merupakan perintah untuk membelokkan hasil output dari perintah yes ke direktori /dev/null setelah diketikkan perintah $ yes > /dev/null maka akan ada suatu proses. Namun, saya menekan Ctrl+Z untuk menghentikan sementara proses yang sedang berjalan. Perintah $ yes > /dev /null juga dipergunakan untuk memulai suatu proses atau job,job dapat dihentikan sementara waktu atau sering di sebut (suspend) dengan menggunakan Ctrl + Z. Sedangkan perintah $ fg digunakan untuk mengembalikan proses yang tadinya dihentikan menggunakan perintah Ctrl+Z agar berjalan kembali pada foreground. Kemudian tekan Ctrl+Z untuk menghentikan sementara proses yang telah dilanjutkan dengan perintah fg tadi. Perintah $ bg digunakan untuk meletakkan job pada background dengan cara ini sell telah saya bebaskan tapi tetap mempertahankan perintah lama yang atau proses yang berjalan dibackground. Pada gambar langkah 4 percobaan 5 merupakan tampilan dari perintah $ yes & perintah digunakan untuk menampilkan tampilan huruf yang tidak bisa dihentikan dengan perintah Ctrl+C . harus masuk dalam foreground. Sedangkan perintah & digunakan untuk menjalankan perintah di belakang atau di background. Perintah $ yes & ini berjalan pada job background yang kita buat tadi.kita dapat menghentikan prosesnya, dengan kita harus memindahkan poses ini menjadi foreground dengan menggunakan Ctrl +Z. Beberapa perintah yang digunakan untuk menjalankan banyak job dalam satu waktu, tampilkan hasil dari beberapa perintah di atas adalah sama, karena pada perintah-perintah di atas untuk menjalankan job harus meletakkan job pada foreground atau background dengan memberikan job



ID. Perintah $ fg % dan $bg % 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). Perintah percobaan 4 langkah 6 digunakan untuk mengembalikan proses yang tadinya dihentikan menggunakan perintah Ctrl+Z agar berjalan kembali pada foreground. Namun karena tidakada proses yang dihentikan sementara maka ada pesan no such job berarti tidak ada job yang dilakukan. Perintah $ ps –fae digunakan untuk menampilkan secara lengkap seluruh proses yang sedang berjalan beserta detailnya yang terdiri dari delapan kolom. Terdiri dari UID,PID,PPID,C,STIME,TTY,TIME dan CMD. Perintah $ kill -9 digunakan untuk menghentikan atau terminate suatu proses dengan memasukkann nomor PID sebagai pengenal prosesnya. $ kill -9 1 perintah ini digunakan untuk menghentikan proses sesuai dengan nomor PID yang dimasukkan. Pada percobaan 6 langkah 3, ditampilkan tiga terminal yang terbuka dalam 1 layar terminal. Saya menggunakan perintah Ctrl+Shift+T untuk membuka ketiga terminal ini. Dan pada terminal pertama telah login sebagai root dengan menggunakan perintah $ sudo su. Perintah $ PS1=”\w:” diatas bertujuan untuk masuk ke directory home dari user root. Sedangkan perintah $ pwd digunakan untuk mengetahui lokasi aktif kita sekarang. Pada setiap terminal setelah saya ketikan perintah PS1 = ” \w:” pada terminal yang login sebagai root muncul tampilan /home/user yang menandakan bahwa kita sedang berada pada path home, selanjutnya terminal kedua dan ketiga muncul tanda ~: . jadi fungsi “w:” adalah menampilkan path pada direktori home. Kemudian setelah itu diketikan perintah pwd pada semua terminal maka hasilnya adalah /home/user yang menjelaskan bahwa seluruh terminal berada dalam direktori home.



Gambar hasil percobaan 6 langkah 6 merupakan hasil dari perintah top untuk melihat semua proses yang aktif kemudian di ketikan perintah I yang digunakan untuk melihat proses yang aktif. Gambar yang di tampilkan pada terminal keempat di langkah 6



adalah hasil dari



mengetikan perintah lmt sehingga seluruh keterangan top yang ada dibagian atas hilang. Pada terminal nomor 3 saya mengetikan renice 19 5230 dan hasilnya menampilkan proses dari id5230 adalah prioritas 0 dan terganti menjadi 19 hal ini berarti mengganti penjadwalan prioritas dari proses ke 19. Setelah menunggu beberapa saat pada terminal keempat dapat kita lihat memorynya lebih besar dari 0 dan lebih lambat. Program top pada linux disini berfungsi seperti task manager pada windows, yaitu untuk mengetahui 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. Dua proses yang sama akan menggunakan sumber daya yang sama (mendekati), misalkan dua program $ yes pada praktikum ini, keduanya menggunakan sumber daya sama besarnya, namun PID dari kedua proses akan berbeda. Perintah $ renice 19 2546 berarti mengganti penjadwalan prioritasdari proses ke 19. Setelah prioritasnya diubah menjadi 19, proses 2546 berjalan lebih lambat dari proses 2547. Program top juga memiliki fungsi yang sama dengan program renice. Jadi kita dapat mengubah konfigurasi proses melalui program renice maupun top. Setelah priorits proses 2546 diubah menjadi -19, proses 2546 menjadi lebih cepat daripada 2547. Dari kedua praktik diatas didapati bahwa semakin kecil prioritas dari suatu proses, akan semakin cepat proses tersebut berjalan. Perintah $ nice –n -10 yes merupakan untuk membuat proses baru, dan opsi -10 merupakan penentuan prioritas dari proses tersebut. Dan kita ketahui juga bahwa PID nya adalah 2665. 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 tadi, salah satu alasannya asalah proses 2665 berjalan pada prioritas yang tinggi. Kita dapat mengubah konfigurasi suatu proses melalui perintah – perintah yang terdapat pada proses top. Dan ternyata setelah proses 2665 diubah prioritasnya menjadi 0, penggunaan sumber daya oleh terminal top menjadi lebih stabil (tidak banyak perubahan) walaupun mouse digerakkan ke sekeliling screen.



Perintah $ ps –j format job berisi PID, PGID, SID, TTY, TIME, CMD. Dan hasilnya berupa format job (biasanya hanya dipenuhi oleh angka, karena lebih cenderung menampilkan ID dimana proses sedang bekerja). Perintah $ ps j format job control merupakan format job yang memiliki hasil lebih mendetail. Perintah $ sp l berupa daftar memanjang yang



berisi



F,



PID,PPID,PRI,NI,VSZ,RS,S,WCHAN,STAT,TTY,TIME



UID, COMMAND.



Perintah $ ps s format sinyal biasanya angka yang muncul banyak, berisi UID, PID, PENDING, BLOCKED, IGNORED, CAUGHT, STAT, TTY, TIME, COMMAND. Dan ini berupa format sinyal. Untuk menghentikan sementara proses menggunakan perintah kill, harus memasukkan perintah kill -1 [job number] seperti pada sub latihan f. Perintah killall sleep pada soal latihan sub g memerintahkan pada system untuk menghentikan semua proses yang dalam namanya terdapat kata “sleep”. Perintah ps -aeH hanya mengarahkan pada proses yang dimasukan setelah grep, contohnya ps -aeH | grep terminal, berarti ps –aeH hanya mengarahkan pada semua proses yang bernama terminal, ps -fae | grep terminal, berarti ps –fae hanya mengarahkan pada semua proses yang bernama terminal. Pada saat



melakukan Log Off, semua proses yang dijalankan oleh user tersebut akan berhenti, sehingga program sleep 300 juga berhenti. Dan ketika melakukan Log in ulang, system hanya akan menjalankan program – program dasar dan program start up. Setiap kali instruksi atau perintah yang diberikan pada Shell Linux, kernel secara otomatis akan menciptakan proses- id. Proses ini disebut juga dalam terminologi UNIX sebagai JOB. Proses - proses sistem terbagi dalam tiga tipe utama, yaitu : a. Interactive : Diprakarsai oleh sebuah shell dan berjalan dalam foreground dan background. b. Batch : Secara tipical merupakan sebuah seri dari proses-proses yang dijadwalkan untuk dieksekusi pada suatu waktu tertentu. c. Daemon : Secara tipikal diinisialisasi saat boot untuk membentuk fungsi-fungsi sistem yang dibutuhkan, seperti LPD, NFS dan DNS KESIMPULAN Dari praktikum diatas dapat disimpulkan bahwa kita dapat mengubah tampilan system, berbasis GUI (Graphical Unit Interface) ataupun TUI (Text Unit Interface). Semua proses atau perintah dapat dijalankan baik dengan basis GUI ataupun TUI. Dalam sistem operasi Linux terdapat berbagai macam perintah yang digunakan untuk menjalankan, mengatur, dan menghentikan proses secara manual.