Praktikum 4B Proses dan Manajemen Proses
Praktikum 4 B
Proses dan Manajemen Proses
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 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 dibe rikan 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
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 :
|
No Sinyal |
Nama |
Deskripsi |
|
1 |
SIGHUP |
Hangup, sinyal
dikirim bila proses terputus, misalnya
melalui putusnya hubungan modem |
|
2 |
SIGINT |
Sinyal interrupt, melalui ^C |
|
3 9 |
SIGQUIT SIGKILL |
Sinyal Quit, melalui ^\ Sinyal Kill,
menghentikan proses |
|
15 |
SIGTERM |
Sinyal terminasi software |
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 diper untukkan 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 seme ntara 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
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 sistem UNIX adalah perintah killall. Perintah ini akan menghentikan proses sesuai PID atau job number proses.
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
2. Untuk restart job pada foreground , gunakan perintah fg. $ 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 . $ bg 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. $ fg
4. Job pada background dapat digunakan untuk menampilkan teks pada terminal, dimana dapat diabaikan jika mencoba mengerjakan job lain. $ yes & Untuk menghentikannya tidak dapat menggunakan Ctrl-C. Job harus dipindah 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
7. Lihat job dengan perintah ps -fae dan tekan Enter. Kemudian hentikan proses dengan perintah kill. $ ps -fae $ kill -9 <NomorPID>
8. Logout dan tekan Alt+F7 untuk kembali ke mode grafis.
Percobaan 6 : Percobaan dengan Penjadwalan Prioritas
1. Login sebagai root.
2. Buka 3 terminal, tampilkan pada screen yang sama.
Analisa : Membuka 3 window yang berbeda
3. Pada setiap terminal, ketik PS1 = ” \w:” diikuti Enter. \w menampilkan path pada direktori home.
Analisa : Perintah PS1=”\W:” berfungsi untuk masuk ke direktori home dari user root
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.
Analisa : Perintah /pwd berfungsi untuk mengetahui lokasi aktif kita.
5. Buka terminal lagi (keempat), atur posisi sehingga keempat terminal terlihat pada screen.
![]() |
6. Pada terminal keempat, ketik 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 je ndela Top
Analisa : program top disini seperti task manager pada windows yang berfungsi untuk mengetahui semua rincian proses yang berjalan dan beberapa fungsi lainnya. Dengan mengetik i pada window top akan menampilkan proses yang sedang aktif. Ketik Imt berfungsi untuk menghilangkan / tidak menampilkan informasi pada bagian atas window.
7. Pada terminal 1, bukalah program executable C++ dengan mengetik program yes dan tekan Enter.
Analisa : Peintah $yes akan membuat sebuah proses baru.
8. Ulangi langkah 7 untuk terminal 2.
![]() |
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 (lebih lambat) dari 0. Proses 3149 berjalan lebih cepat.
Analisa : Penjadwalan prioritas untuk proses 3148 lebih besar (lebih lambat) dari 0.
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 (ingat bahwa anda harus mengganti 3148 dengan PID anda sendiri) dan tekan Enter. Program top memberikan prompt Renice PID 3148 to value: tekan -19 dan tekan Enter.
Analisa : Program top mempunyai fungsi yang sama dengan program renice. Kita dapat mengubah konfigurasi proses melalui program renice atau top. Semakin kecil prioritas dari suatu proses, semakin cepat proses itu berjalan.
12. Tunggu beberap saat sampai top berubah dan lihat nilai %CPU pada kedua proses. Sekarang proses 3148 lebih cepat dari proses 3149. Kolom status menunjukan < pada proses 3148 yang menunjukan penjadwalan prioritas lebih rendah (lebih cepat) dari nilai 0
Analisa : Pengubahan jadwal prioritas
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. Misalnya PID nya 4107. Opsi -10 berada pada kolom NI (penjadwalan prioritas)
Analisa : Perintah diatas merupakan proses untuk membuat proses baru dan opsi -10 adalah penentuan prioritas dari proses tersebut.
14. Jangan menggunakan mouse dan keyboard selama sepuluh detik.Program top akan menampilkan proses yang aktif selain program yes. Maka akan terlihat proses top terdaftar tetapi %CPU kecil dan konsisten. Juga terlihat proses berhubungan dengan desktop grafis seperti X, panel dll
Analisa : Ketika mouse dan keyboard diam, penggunaan sumber daya oleh program top kecil. Tetapi Ketika mouse mulai digerakkan maka proses top memakan sumber daya lebih banyak daripada saat diam.
15. Pindahkan mouse sehingga kursor berubah pada screen dan terlihat apa yang terjadi pada tampilan top. Proses tambahan akan muncul nilai %CPU akan berubah. Pilih jendela top ketik r. PID to renice : muncul prompt. Ketik PID terminal dan tekan enter. Kemudian ketik 0 dan tekan enter.
Analisa : Kita dapat mengubah konfigurasi proses melalui perintah – perintah yang terdapat pada proses top. Setelah proses PID diubah prioritasnya menjadi 0, penggunaab sumber daya oleh terminal top menjadi lebih stabil (tidak banyak perubahan) walaupun mouse digerakkan.
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:$ ls untuk melihat isi dari directory yang aktif
$ sh , Bourne shell (sh) shell (command interpreter) default dari unix
$ ps untuk melihat proses yang sedang berjalan
f. Sebutkan PID yang paling besar dan kemudian buat urut-urutan proses sampai ke PPID=1.
![]() |
Analisa : Menampilkan proses dengan format job yang lebih detail
d. l daftar memanjang
Analisa : Me
e. s format sinyal
Analisaa : Menampilkan proses dengan format sinyal, terdiri dai UID, PID, PENDING, BLOCKED, IGNORED, CAUGHT, STAT, TTY, TIME, COMMAND.
f. v format virtual memory
Analisa : Menampilkan proses yang berjalan dengan virtual memory yang digunakan
g. X format register i386
Analisa : Menampilkan proses yang sedang berjalan dengan format register i386, terdiri dari
3. Lakukan urutan pekerjaan berikut :
a. Gunakan perintah find ke seluruh direktori pada system, belokkan output sehingga daftar direktori dialihkan ke file directories.txt dan daftar pesan error dialihkan ke file errors.txt
Analisa : Membelokkan directory dan error kedalam dua file.
b. Gunakan perintah sleep 5. Apa yang terjadi dengan perintah ini
Analisa : Perintah tersebut digunakan untuk menghentikan proses selama 5 detik.
c. Jalankan perintah background dengan perintah &
Analisa : Menampilkan hasil dari proses background yang disertai dengan PID
d. Jalankan sleep 15 pada foreground, hentikan sementara dengan Ctrl-Z kemudia letakkan pada background dengan bg. Ketikkan jobs, ps . Kembalikan job ke foreground dengan perintah fg
e. Jalankan sleep 15 pada background menggunakan & kemudian gunakan perintah kill untuk menghentikan proses diikuti job number.
Analisa : Pada percobaan ini saya 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.
Analisa : Perintah killall sleep menghentikan semua job sleep yang ada dengan satu perintah.
h. Gunakan perintah ps, w dan top untuk menunjukan semua proses yang sedang dieksekusi
Analisa : ps menampilkan kondisi proses yang sedang berjalan, lalu w melihat proses yang sedang berjalan pada user. Sedangkan top berfungsi untuk menampilkan semua proses yang sedang aktif
i. Gunakan perintah ps -aeH untuk menampilkan hierarki proses. Carilah unit proses. Apakah anda bisa identifikasi system daemon yang penting? Dapatkah anda identifikasi shell dan subproses?
Analisa : Proses pada tampilan memiliki nama system yang berfungsi sebagai root/parent dari semua proses.
j. Kombinasikan ps -fae dan grep, apa yang anda lihat?
Analisa : Perintah $ ps -fae untuk melihat proses namun difilter menggunakan grep budgie-daemon untuk menampilkan proses yang mengandung budgie-daemon.
k. Jalankan proses sleep 300 pada background. Log off computer dan log ini Kembali. Lihat daftar sema proses yang berjalan. Apa yang terjadi pada proses sleep?
Berdasarkan praktikum percobaan yang sudah dilakukan, kesimpulan yang didapat pada OS Linux yang telah kita dapat lakukan sebagai berikut :
1. Menampilkan status proses : Proses adalah program yang sedang berjalan atau sebuah kinerja yang dijalankan dalam komputer yang sedang dieksekusi, dimana setiap kali kita membuat atau menjalankan sebuah proses maka akan dibuatkan sebuah tanda terhadap proses yang kita jalankan tersebut, tanda yang dijalankan dapat berupa nomor id, nama dari proses itu sendiri, jumlah kapasitas penyimpanan yang digunakan dan waktu yang digunakan untuk mengaksesnya.
2. Menampilkan status proses dengan berbagai format :
3. Mengontrol proses pada shell : s
4. Menghentikan dan memulai Kembali job :
5. Percobaan dan Penjadwalan Prioritas
6. Menampilkan beberapa cara menampilkan hubungan proses parent dan child






























Komentar
Posting Komentar