Anda di halaman 1dari 16

Sistem Operasi Pertemuan 12

● Konsep Proses
● Status Proses
Process Control Block
● Thread
● Proses dasar linux
● Monitoring Proses
● Tipe Proses
● Job Kontrol

Manajemen Proses dan Job Kontrol


Konsep Proses
Suatu proses adalah unit kerja di sebagian besar sistem. Komponen dari sistem merupakan
proses-proses berkumpul menjadi satu kesatuan yang terdiri dari sistem code dan user code.
Proses sistem operasi melakukan eksekusi terhadap kode sistem. dan proses pengguna
melakukan eksekusi terhadap kode sistem, dan proses pengguna melakukan eksekusi
terhadap kode pengguna. Semua proses ini memungkinkan untuk berjalan secara bersamaan.
Meskipun secara tradisional, sebuah proses hanya berisi satu thread terkontrol pada saat ia
berjalan. Apakah yang dimaksud thread ? Thread merupakan jalur eksekusi dalam suatu
proses. isi dari thread terdiri dari : ID Thread, Program Counter, Register dan Stack. Thread
juga sering disebut sebagai lightweight (proses ringan). Kebanyakan sistem operasi modern
sekarang mendukung proses yang memiliki banyak thread.
Hubungan antara proses dengan sistem operasi dapat dianalisa dengan cara sistem operasi
menjalankan atau mengeksekusi proses. Sistem operasi melakukan eksekusi pada proses
dengan dua cara yaitu:
1. batch system yang mengeksekusi jobs.
2. Time-Shared system yang mengatur pengeksekusian program pengguna (user) atau
tasks
Pada sistem operasi Microsoft windows dan Mac OS yang mana sistem pengguna tunggal
atau single user, seorang pengguna (user) dapat menjalankan beberapa program pada saat
bersamaan, sperti spreadsheet, web browser, dan web email.
Contoh: beberapa pengguna, atau pengguna (user) yang sama dapat melakukan banyak copy
dari program text editor.

Status Proses
Pada saat proses dijalankan, ia mengubah status. Pada saat proses-proses tersebut dieksekusi,
maka akan terjadi perubahan status. Perubahan status pada proses tersebut dapat dikatakan
sebagai aktivitas suatu proses yang sedang berlangsung pada waktu itu, seperti yang
diperlihatkan pada gambar berikut ini
Satu buah proses dapat memiliki tiga status utama yaitu:
1. Running: Posisi running adalah posisi status yang dimiliki oleh proses pada saat
intruksi-intruksi dari sebuah proses tersebut dieksekusi. Ini akan terjadi jika sebuah
proses dipilih oleh scheduler, maka proses yang dipilih tersebut akan merubah statusnya
dari ready menjadi running. Hingga proses yang berstatus running ini akan menguasai
prosesor dengan sepenuhnya.
2. Waiting: Posisi waiting adalah posisi status proses yang dimilikinya, pada saat proses
menunggu suatu event seperti proses I/O. Contoh: suatu proses yang sedang menunggu
event tertentu, misalkan penekanan dari keyboard oleh user gerak (klik) mouse sebagai
inputan untuk melanjutkan eksekusi. Jika event yang ditunggu sudah dilakukan atau
event yang ditunggu tadi telah selesai, maka rutin akan memindahkan status proses yang
tadinya blocked atau waiting ke antrian dengan status ready. Perlu dicatat bahwa proses
dengan status blocked dan waiting tidak bisa langsung dieksekusi dan berubah menjadi
status running, tapi harus dialihkan menjadi status ready terlebih dahulu.
3. Ready : Posisi ready adalah status yang dimiliki pada saat proses siap untuk dieksekusi
oleh prosesor. Proses yang telah selesai dan berhasil dilakukan inisiasi, maka proses
tersebut akan diizinkan untuk mengantri dalam penjadwalan prosesor.

Terdapat 2 status tambahan dalam perubahan status proses ini, yaitu saat pembentukan dan
terminasi /selesai:
1. New : Posisi new adalah status yang dimiliki pada saat proses baru saja dibuat. Sistem
operasi akan meng-create sebuah proses atas permintaan dari program aplikasi atau
instruksi dari pengguna. Kondisi yang dapat menimbulkan penciptaan proses baru
dapat diindikasikan dengan penjabaran berikut:
a. Jika pengguna menggunakan Linux, maka user akan melakukan login ke sistem
operasi tersebut, kemudian sistem operasi akan meng-create proses user interface
(shell)
b. Permintaan dan eksekusi program yang dilakukan oleh pengguna melalui media
berupa aplikasi user interface (shell).
c. Aplikasi akan meng-create child proses atau anak proses.
d. Penciptaan proses baru merupakan bagian dari eksekusi batch.

2. Terminated : Posisi terminated adalah status yang dimiliki pada saat proses telah selesai
dieksekusi. Status terminated atau exit merupakan status yang dihentikan eksekusinya.
Baik secara normal ataupun tidak normal. Ketika proses telah terminated atau selesai,
maka memori yang ditempatinya tadi akan dihapuskan/dibersihkan.

Process Control Block (PCB)


Masing-masing dari proses digambarkan oleh sistem operasi dengan menggunakan proses
control block (PCB) atau di sebut dengan task control block, representasinya seperti gambar
di bawah ini

Gambar Proses Control Block (PCB)

Process control block hanya berfungsi sebagai repository penyimpanan informasi dan
informasi yang diberikan bermacam-macam antara satu dengan proses yang lainnya. Terdapat
banyak informasi yang diberikan pada gambar proses kontrol blok yang meliputi:
Status Proses : Status new, ready, running, waiting, halted, dan masih banyak lainya.
Program Counter : Counter mengindikasikan alamat dari instruksi berikutnya yang
dieksekusi proses tersebut.
CPU Register : Register memiliki variasi dalam jumlah dan jenis, bergantung pada
rancangan komputer, register tersebut termasuk accumulator, register indeks, stack pointer,
general-purpose register, ditambah beberapa kondisi dari code information. Selama
berjalannya program counter, informasi pada status ini harus disimpan ketika terjadi
interupsi.
Informasi Penjadwalan-CPU : informasi ini mencakup prioritas dari suatu proses, pointer
ke antrian penjadwalan, dan parameter-parameter lainnya pada penjadwalan.
Informasi manajemen Memory: Informasi ini berisikan nilai dasar (basis), limit register
dan page table atau segment table bergantung pada sistem memori yang dipakai oleh sistem
operasi.
Informasi Accounting : Informasi ini termasuk jumlah CPU dan waktu rill yang digunakan,
batas waktu, jumlah akun, jumlah atau proses, dll.
Informasi Status I/O : Informasi berisikan daftar dari perangkat I/O yang digunakan untuk
alokasi proses tersebut. Terdapat deretan daftar files (berkas-berkas) yang sedang diakses dll.

Tahapan Perpindahan CPU ( Proses Switching)

Gambar Perpindahan CPU dari proses satu ke proses yang lainnya

Pada Gambar diatas menunjukan bahwa terjadinya perpindahan CPU dari satu proses ke
proses lainnya atau disebut dengan proses switching. dijabarkan sebagai berikut

1. Sistem Operasi melakukan penyimpanan terhadap konteks prosesor yang berisi seluruh
register prosesor, running process yang ditunjukan dengan proses (P0) menuju PCB yaitu
PCB0 (save state to PCB0)
2. Kemudian sistem operasi melakukan pembaharuan terhadap isi PCB proses tersebut
(save state to PCB0), termasuk mengubah status eksekusinya menjadi status blocked atau
status ready.
3. PCB yaitu (save state into PCB0), dipindahkan pada antrian yang sesuai, apakah akan
ditempatkan pada status antrian ready jika proses telah siap, atau kesalah satu antrian
input output, jika proses tersebut beralih pada status blocked.
4. Setelah itu, sistem operasi melakukan dispatch ke proses lain yaitu P1, dengan
memperbarui PCB proses baru P1 (reload stat from PCB1), termasuk mengubah status
proses eksekusinya menjadi berjalan (running).
5. Lalu sistem operasi mempebaharui isi struktur data manajemen memory yang terkait
dengan proses baru yaitu P1.
6. Sistem operasi akan menyalin kembali atau merestore konteks prosesor yang disimpan
pada PCB proses baru (PCB1) ke prosesor dan mulai mengeksekusi kode instruksi proses
P1.
7. Jika alokasi yang diberikan untuk melakukan eksekusi proses P1 telah selesai, dan tidak
ada proses lain yang mengikutinya selain P0, maka prosesor akan mengembalikan P0 dan
mengikuti alur/tahapan langkah diatas.

Thread
Thread adalah unit dasar dari penggunaan CPU utilization. Thread terdiri dari ID thread,
sebuah program counter, set register dan stack. Thread berbagi dan bekerjasama dengan
thread lain dalam hal bagian kode (code section), bagian data (data section), dan sumber daya
sistem operasi lainnya, seperti open file dan sinyal. Pada proses tradisional (heavyweight)
memiliki satu thread kontrol. Jika suatu proses memiliki multi thread kontrol, maka dapat
melakukan lebih dari satu tugas dalam satu waktu. Gambar di bawah ini ilustrasi perbedaan
single thread dan multi thread.

Gambar Ilustrasi Single Thread dan Multi Thread


Pada kondisi tertentu, satu aplikasi mungkin diperlukan untuk melakukan beberapa tugas
serupa. Misalnya, web server menerima permintaan klien untuk halaman web, gambar, suara
dan sebagainya. Tetapi beda halnya dengan web server yang sibuk, web server yang sibuk
memiliki beberapa klien bahkan sampai ribuan yang mengakses secara bersamaan. Jika web
server hanya menjalankan single thread makan hanya dapat melayani satu klien pada satu
waktu saja, dan klien mungkin harus menunggu waktu yang sangat lama supaya
permintaanya di layani.
Solusinya adalah dengan menjalankan server sebagai satu proses yang menerima permintaan.
Ketika server menerima permintaan, maka server menciptakan proses terpisah untuk
melayani permintaan tersebut. Metode penciptaan proses seperti ini umum digunakan
sebelum thread populer. Proses penciptaan memakan waktu dan sumber daya yang intensif,
namun umumnya lebih efisien jika menggunakan satu proses yang berisi beberapa multi
threads. Jika proses multithreaded web server, maka server akan membuat thread yang
terpisah, dan mendengarkan apa yang menjadi permintaan klien. Daripada membuat proses
lain, lebih baik server membuat thread baru untuk melayani permintaan dan melanjutkan
pelayanan. Hal ini diilustrasikan seperti gambar dibawah

Gambar Arsitektur Multithread Server

Keuntungan Multithreading
Multiprocessing adalah suatu sistem yang memungkinkan sistem operasi menggunakan dua
tatu lebih centra processing unit (CPU) dalam sebuah sistem komputer, sehingga komputer
dalam memproses data dapat dilakukan dengan sangat cepat

Multitasking merupakan metode untuk menjalankan tugas ganda atau lebih dari satu proses
dimana terjadi pembagian sumber daya seperti CPU.

Multithreading adalah cara pengeksekusian yang mengizinkan beberapa thread yang terjadi
pada sebuah proses, saling berbagi sumber data dan dijalankan secara independen.

keuntungan dari sistem yang menerapkan multithreading dapat dikategorikan menjadi empat
bagian:
1. Responsif : Multithreading merupakan aplikasi interaktif yang memungkinkan suatu
program dapat terus berjalan, walaupun bagiannya sendiri diblokir atau sedang
melakukan operasi panjang, sehingga meningkatkan respon terhadap pengguna. Kualitas
ini sangat berguna dalam merangcang antarmuka pengguna. Misalkan : sebuah thread
dari web browser dapat melayani permintaan user sedangkan thread yang lain berusaha
untuk menampilkan gambar.
2. Berbagi sumber daya : Beberapa thread yang melakukan proses yang sama akan
berbagi sumber daya. Teknik berbagi sumber daya melalui shared memory (pengguna
memori bersama) dan pengiriman pesan. Manfaatnya adalah memungkinkan sebuah
aplikasi untuk mempunyai beberapa thread yang berbeda dari aktivitas dalam ruang
alamat yang sama.
3. Ekonomis : Pembuatan sebuah proses membutuhkan pengalokasian memori dan sumber
daya. Karena thread berbagi sumber daya dari proses yang menjadi milik mereka, ini
lebih efisien (ekonomis) untuk membuat thread dan context switch thread. Akan sudah
mengukur perbedaan waktu antara thread dan switch, tetapi secara umum pembuatan dan
pengaturan proses akan memakan waktu lebih lama dibandingkan dengan thread. Pada
Solaris, pembuatan proses memakan waktu 30 kali lebih lama dibandingkan pembuatan
thread sedangkan proses context switch 5 kali lebih lama dibandingkan context switching
thread.
4. Utilisasi arsitektur multiprocessor : Keuntungan dari multithreading dapat sangat
meningakt pada arsitektur multiprosesor, dimana setiap thread dapat berjalan secara
pararl diatas prosesor yang berbeda. Pada arsitektur prosesor tunggal, CPU menjalankan
setiap thread secara bergantian tetapi hal ini berlangsung sangat cepat sehingga sulit
menciptakan ilusi paralel, tetapi kenyataanya hanya satu thread yang dijalankan CPU
pada satu-satuan waktu.

Proses Dasar pada Linux


Proses adalah program yang sedak dieksekusi. Linux menciptakan proses setiap kali program
launched / diluncurkan, baik oleh user atau oleh linux itu sendiri. Setiap user hanya dapat
memanipulasi proses yang hanya menjadi miliknya. Proses yang dimanipulasi user memiliki
PID atau proses ID dengan nomor unik yang dapat digunakan untuk berinteraksi dengan
proses bersangkutan. Proses pertama kali di created atau diciptakan di Linux disebut sebagai
init. Konsep proses di linux memiliki kemiripan dengan konsep file permission. Berikut
adalah rangkaian atau tahapan boot-up pada sistem operasi linux.
1. Pada saat kita menghidupkan PC, awalnya chip BIOS, menginisiasi sistem perangkat
keras, seperti PCI bus, menampilkan perangkat driver, dan sebagainya.
2. Kemudian BIOS mengeksekusi boot loader program
3. Boot loader program kemudian menyalin kernel ke dalam memori, dan melakukan
pengecekan, kemudian melakukan pemanggilan fungsi kernel yang disebut
start_kernel().
4. Kernel kemudian memulai OS dan menciptakan proses pertama yang disebut init.
5. Anda dapat memeriksa keberadaan proses ini dengna perintah beriktu : $ Ps -ef
6. Setiap proses di OS memiliki satu identifikasi numerik yang berkaitan. Hal ini disebut ID
Proses. Proses ID dari proses ini adalah 1. Proses ini adalah proses induk dari semua user
space proses.
7. Pada sistem operasi, setiap proses yang baru dibuat oleh system call disebut fork()
8. Setiap proses memiliki proses ID dan parent ID proses.
9. Perintah pada terminal untuk melihat pohon proses lengkap menggunakan perintah
berikut : $ pstree.
fahmi@Fahmi-ubuntu:~$ pstree
systemd─┬─ModemManager───2*[{ModemManager}]
├─NetworkManager───2*[{NetworkManager}]
├─accounts-daemon───2*[{accounts-daemon}]
├─acpid
├─avahi-daemon───avahi-daemon
├─bluetoothd
├─colord───2*[{colord}]
├─cron
├─cups-browsed───2*[{cups-browsed}]
├─cupsd
├─dbus-daemon
├─fwupd───4*[{fwupd}]

├─gdm3─┬─gdm-session-wor─┬─gdm-x-session─┬─Xorg───9*[{Xorg}]
│ │ │
├─gnome-session-b─┬─ssh-agent
│ │ │ │
└─2*[{gnome-+
│ │ │
└─2*[{gdm-x-session}]
│ │ └─2*[{gdm-session-wor}]
│ └─2*[{gdm3}]
├─geoclue───2*[{geoclue}]
├─gnome-keyring-d───3*[{gnome-keyring-d}]
├─irqbalance───{irqbalance}
├─2*[kerneloops]
├─networkd-dispat
├─packagekitd───2*[{packagekitd}]
├─polkitd───2*[{polkitd}]
├─rsyslogd───3*[{rsyslogd}]
├─rtkit-daemon───2*[{rtkit-daemon}]
├─snapd───18*[{snapd}]
├─switcheroo-cont───2*[{switcheroo-cont}]
├─systemd─┬─(sd-pam)
│ ├─at-spi-bus-laun─┬─dbus-daemon
│ │ └─3*[{at-spi-bus-laun}]
│ ├─at-spi2-registr───2*[{at-spi2-registr}]
│ ├─chrome─┬─2*[cat]
│ │ ├─chrome───chrome───10*[{chrome}]
│ │
├─chrome─┬─chrome─┬─chrome───5*[{chrome}]
│ │ │ │
├─chrome───14*[{chrome}]
│ │ │ │
├─chrome───21*[{chrome}]
│ │ │ │
├─chrome───22*[{chrome}]
│ │ │ │
├─chrome───12*[{chrome}]
│ │ │ │
└─chrome───17*[{chrome}]
│ │ │ └─nacl_helper
│ │ ├─chrome───12*[{chrome}]
│ │ ├─2*[chrome───5*[{chrome}]]
│ │ └─35*[{chrome}]
│ ├─chrome_crashpad───2*[{chrome_crashpad}]
│ ├─chrome_crashpad───{chrome_crashpad}
│ ├─dbus-daemon
│ ├─dconf-service───2*[{dconf-service}]
│ ├─evolution-addre───5*[{evolution-addre}]
│ ├─evolution-calen───9*[{evolution-calen}]
│ ├─evolution-sourc───3*[{evolution-sourc}]
│ ├─gjs───10*[{gjs}]
│ ├─gnome-calculato───2*[{gnome-calculato}]
│ ├─gnome-calendar───5*[{gnome-calendar}]
│ ├─gnome-control-c───2*[{gnome-control-c}]
│ ├─gnome-keyring-d───2*[{gnome-keyring-d}]

├─gnome-session-b─┬─evolution-alarm───5*[{evolution-alarm}]
│ │
├─gsd-disk-utilit───2*[{gsd-disk-utilit}]
│ │ └─3*[{gnome-session-b}]
│ ├─gnome-session-c───{gnome-session-c}

├─gnome-shell─┬─ibus-daemon─┬─ibus-engine-sim───2*[{ibus-engi
+
│ │ │
├─ibus-extension-───3*[{ibus-exte+
│ │ │
├─ibus-memconf───2*[{ibus-memconf+
│ │ │
└─2*[{ibus-daemon}]
│ │ └─16*[{gnome-shell}]
│ ├─gnome-shell-cal───5*[{gnome-shell-cal}]
│ ├─gnome-terminal-─┬─bash───pstree
│ │ └─5*[{gnome-terminal-}]
│ ├─goa-daemon───3*[{goa-daemon}]
│ ├─goa-identity-se───2*[{goa-identity-se}]
│ ├─gsd-a11y-settin───3*[{gsd-a11y-settin}]
│ ├─gsd-color───3*[{gsd-color}]
│ ├─gsd-datetime───3*[{gsd-datetime}]
│ ├─gsd-housekeepin───3*[{gsd-housekeepin}]
│ ├─gsd-keyboard───3*[{gsd-keyboard}]
│ ├─gsd-media-keys───3*[{gsd-media-keys}]
│ ├─gsd-power───3*[{gsd-power}]
│ ├─gsd-print-notif───2*[{gsd-print-notif}]
│ ├─gsd-printer───2*[{gsd-printer}]
│ ├─gsd-rfkill───2*[{gsd-rfkill}]
│ ├─gsd-screensaver───2*[{gsd-screensaver}]
│ ├─gsd-sharing───3*[{gsd-sharing}]
│ ├─gsd-smartcard───4*[{gsd-smartcard}]
│ ├─gsd-sound───3*[{gsd-sound}]
│ ├─gsd-usb-protect───3*[{gsd-usb-protect}]
│ ├─gsd-wacom───2*[{gsd-wacom}]
│ ├─gsd-wwan───3*[{gsd-wwan}]
│ ├─gsd-xsettings───3*[{gsd-xsettings}]
│ ├─gvfs-afc-volume───3*[{gvfs-afc-volume}]
│ ├─gvfs-goa-volume───2*[{gvfs-goa-volume}]
│ ├─gvfs-gphoto2-vo───2*[{gvfs-gphoto2-vo}]
│ ├─gvfs-mtp-volume───2*[{gvfs-mtp-volume}]
│ ├─gvfs-udisks2-vo───3*[{gvfs-udisks2-vo}]
│ ├─gvfsd─┬─gvfsd-google───3*[{gvfsd-google}]
│ │ ├─gvfsd-trash───2*[{gvfsd-trash}]
│ │ └─2*[{gvfsd}]
│ ├─gvfsd-fuse───5*[{gvfsd-fuse}]
│ ├─gvfsd-metadata───2*[{gvfsd-metadata}]
│ ├─ibus-portal───2*[{ibus-portal}]
│ ├─ibus-x11───2*[{ibus-x11}]
│ ├─nautilus───6*[{nautilus}]
│ ├─org.gnome.Chara───11*[{org.gnome.Chara}]
│ ├─pulseaudio───3*[{pulseaudio}]
│ ├─seahorse───3*[{seahorse}]
│ ├─snap-store───4*[{snap-store}]
│ ├─tracker-miner-f───4*[{tracker-miner-f}]
│ ├─xdg-desktop-por───5*[{xdg-desktop-por}]
│ ├─xdg-desktop-por───3*[{xdg-desktop-por}]
│ ├─xdg-document-po───6*[{xdg-document-po}]
│ └─xdg-permission-───2*[{xdg-permission-}]
├─systemd-journal
├─systemd-logind
├─systemd-resolve
├─systemd-timesyn───{systemd-timesyn}
├─systemd-udevd
├─thermald───{thermald}
├─udisksd───4*[{udisksd}]
├─unattended-upgr───{unattended-upgr}
├─upowerd───2*[{upowerd}]
├─whoopsie───2*[{whoopsie}]
└─wpa_supplicant
fahmi@Fahmi-ubuntu:~$

User dapat melihat output pada terminal dengan menggunakan perintah $ pstree bahwa
proses pertama merupakan init. Setiap proses memiliki hubungan proses beruap induk proses
dan anak proses (parent dan child proses), dengan menggunakan perintah $ Ps -ef . Maka
kita dapat melihat bahwa proses init dimiliki oleh root dan ID proses induknya adalah 0. Hal
ini menandakan bahwa tidak parent untuk init. Pada tahun 2015, sejumlah besar distribusi
linux telah mengikuti parent linux distribusi seperti red hat untuk mengadopsi systemd
sebagai default system init. Systemd adalah sistem init yang digunakan dalam distribusi
linux. Salah satu tujuan utama systemd adalah untuk menyatukan konfigurasi linux dasar dan
pelayanan. semua proses lainnya diciptakan oleh beberapa proses lainnya, kecuali proses ini.
Proses init dibuat oleh kernel itu sendiri.

fahmi@Fahmi-ubuntu:~$ ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 22:09 ? 00:00:01 /sbin/init splash
root 2 0 0 22:09 ? 00:00:00 [kthreadd]
root 3 2 0 22:09 ? 00:00:00 [rcu_gp]
root 4 2 0 22:09 ? 00:00:00 [rcu_par_gp]
root 5 2 0 22:09 ? 00:00:00 [kworker/0:0-mm_percpu_wq]
root 6 2 0 22:09 ? 00:00:00 [kworker/0:0H-events_highpri]
root 8 2 0 22:09 ? 00:00:00 [kworker/u16:0-events_power_efficient]
root 9 2 0 22:09 ? 00:00:00 [mm_percpu_wq]
root 10 2 0 22:09 ? 00:00:00 [rcu_tasks_rude_]
root 11 2 0 22:09 ? 00:00:00 [rcu_tasks_trace]
root 12 2 0 22:09 ? 00:00:00 [ksoftirqd/0]
root 13 2 0 22:09 ? 00:00:00 [rcu_sched]
root 14 2 0 22:09 ? 00:00:00 [migration/0]

Flag dan Kode Status Proses


Daemon Tipe Proses
Bebeapa tipe proses seperti daemon merupakan proses yang menunggu request atau
permintaan dari proses lainnya dan menjalankan tugasnya sesuai dengan permintaan tersebut.
Bila tidak ada permintaan atau request, maka program ini akan berada dalam suatu kondisi
“idle” dan tidak menggunakan waktu hitung CPU. Biasanya nama proses daemon pada UNIX
diakhiri dengan huruf d. misalnya : inetd, maed, popd dll.

Ada beberapa process stat (status Proses) yang dikenal dalam sistem linux, antara lai sebagai
berikut
● Task Running : Proses sendang ataupun siap dieksekusi oleh CPU.
● Task interruptible : Proses sedang menunggu sebuah kondisi interupsi, sinyal, ataupun
pelepasan sumber daya yang akan membangunkan proses.
● Task Uninterruptible : Proses sedna tidur dan tidak dapat dibangunkan oleh suatu
sinyal.
● Task Stopped : Proses dihentikan
● Task Zombie : Proses telah berhenti, namun masih memiliki struktur data pada
task_struct di task vektor dan masih memegang sumber daya yang sudah tidak digunakan
lagi.

Monitoring Proses
Tools monitoring dibagi menjadi dua kategori utama yaitu dengan real time dan log-based.
Tool monitor dengan teknik real time berkaitan dengan pengukuran status sistem informasi
pada saat ini (saat berlangsung) dan memberikan informasi terkini tentang kinerja sistem.
Alat pemantauan berbasis log mencatat informasi kinerja sistem untuk pasca-pemrosesan dan
analisis dan untuk menemukan tren dalam kinerja sistem.
Semetara itu, tak manager dan kinerja monitor merupakan alat pemantauan kineral real-time
yang plaing terkenal di sistem Windows. Sedangkan status pross (ps) merupakan alat
pemantauan kinerja yang pling banyak digunakan untuk sistem berbasis Unix. Perintah ps
menyediakan informasi rinci dan statistik kienrja tentang proes yang berjalan seperti nama
dan ID proes serta pengguna CPU saat ini. Perintah ps adalah salah satu alat pengukurna
kinerja tertua untuk sistem Unix yang masih digunakan secara luas hingga saat ini, memiliki
sejumlah besar opsi dan parameter yang dapat ditampilkan. beberapa parameter untuk
perintah ps yang paling berguna untuk memantai kinerjak proses meliputi:
● pcpu - Persentase CPU yang sednag digunakna proses saat ini
● etime - waktu yang berlalu sejak proses dimulai
● time - waktu cpu yang digunakan oleh proses

Monitoring Proses dengan Top


Perintah top pada linux adalah perintah yang digunakan untuk memantau kinerja. Perintah ini
sering digunakan oleh banyak administrator sistem untuk memantau kinerja linux / unix.
Perintah tersebut berjalan pada sistem dan bersifat real-time aktif dan update secara teratur,
yang ditampilkannya berupa penggunaa, CPU, penggunaan memori, Swap memory, ukuran
cache,buffer size, proses PID, pengguna, perintah dan lain-lain. ini juga menunjukan memori
yang tinggi dan pemanfaatan cpu dari proses yang berjalan. Perintah top jauh berguna untuk
administrator sistem dalam memonitoring.
Gambar Monitoring Proses dengan top
Dari gambar diatas terdapat banyak informasi yang diberikan terhadap sistem yang berjalan

Deskripsi dari gambar tersebut menunjukan tentang


● current time
● system uptime
● jumlah user yang login
● load average 1,22,2,88,0,77

pada gambar diatas menunjukan banyaknya task/ tugas, jumlah total semua proses, yang
meliputi : running, sleeping , stopped dan zombie.
pada gambar diatas menunjukan informasi bahwa presentasi dalam penggunaan CPU.
● *us(user) : penggunaan CPU dalam % untuk running (un-niced) user processes.
● *sy(system) : penggunaan CPU dalam % untuk running kernel processes.
● *ni(niced): penggunaan CPU dalam % untuk running niced user processes.
● *wa(IO wait): Penggunaan CPU dalam % untuk waiting I/O completion.
● *hi(hardware interrupts): penggunaan CPU dalam % untuk serving hardware
interrupts.
● *si(software interrupts): penggunaan CPU dalam % untuk serving software interrupts.
● *st(time stolen) : penggunaan CPu dalam % untuk time stolen vm oleh hypervisor.

pada gambar diatas memberikan informasi tentang penggunaan memori secara keseluruhan.
memori fisik yang digunakan , free dan penggunaan buffer, baris berikutnya menunjukan
informasi tentang swap memory, free dan yang digunakan.

pada gambar diatas menampilkan tabel monitoring proses yang menjelaskan tentang:
● PID : ID sebuah proses
● USER : menunjukan bahwa user adalah owner dari proses.
● PR : priority dari proses.
● NI : “ NICE “ nilai dari sebuah proses.
● VIRT : virtual memory yang digunakan oleh proses.
● RES : physical memory yang digunakan oleh proses.
● SHR : shared memory dari proses.
● S : mengindikasikan status dari proses apakah S= sleep, R = running, Z = zombie
● %CPU : menunjukan presentasi (%) dari CPU yang digunakan proses.
● %MEM : menunjukan presentasi (%) dari RAM yang digunakan proses.
● TIME+ : total keseluruhan waktu dari aktivitas ini
● COMMAND : merupakan nama dari proses

Monitoring dengan Iostat


Melihat statistik CPU dan pemanfaatan perangkat I/O menggunakan perintah $ iostat
● % user : Menunjukan persentase pemanfaatan CPU yang terjadi sementara.
Mengeksekusi pada tingkat pengguna (aplikasi).
● % nice : Menunjukan persentase pemanfaatan CPU terjadi sementara, mengeksekusi
pada tinggkat pengguna dengan prioritas.
● %sys : Menunjukan persentase pemanfaatan CPU yang terjadi sementara,
mengeksekusi pada tingkat sistem (kernel).
● %iowait : Menampilkan persentasi waktu CPU, apakah CPU wait/menganggur selama
sistem memiliki permintaan I/O.
● %idle : menampilkan persentase waktu CPU. apakah sistem CPU wait/menganggur
ketika tidak ada permintaan I/O.

Monitoring dengan Vmstat


Fungsi dari perintah $ vmstat ialah untuk melihat statistik memori virtual, login terlebih
dahulu untuk menggunakan perintah ini. vmstat merupakan salah satu tool untuk monitoring
komputer untuk memberikan informasi tentang memori, proses yang sedang berjalan.
interupsi, paging dan I/O yang real time dan bisa dikatakan interaktif.

Tipe Proses
Pada dasarnya ada dua jenis proses di Linux yaitu proses foreground dan proses background.
Proses foreground sering disebut sebagai proses yang interaktif. Proses ini diinisialisasi dan
dikontrol melalui terminal. Dengan kata lain, harus ada pengguna yang terhubung ke sistem
untuk memulai proses tersebut. Proses foreground tidak bisa melakukan fungsi/layanan
sistem secara otomatis. Proses background disebut juga sebagai proses
non-interaktif/otomatis merupakan proses yang tidak terhubung ke terminal. Proses
background tidak mengharapkan masukan dari pengguna.

Job Kontrol
Ada beberapa perintah yang dapat digunakan untuk mengontrol proses, diantaranya adalah
● ps - daftar proses berjalan.
● kill - mengirim sinyal ke satu atau lebih proses (mematikan/membunuh proses).
● jobs - daftar proses anda/yang sedang aktif.
● bg - menempatkan proses di background.
● fg - menempatkan proses di foreground.
Sinyal Process
Mengirim sinyal proses merupakan salah satu sarana untuk berkomunikasi antar proses satu
dengan proses lainnya, dengan memberitahukan proses yang sedang berjalan bawah ada
sesuatu yang harus dikendalikan. berdasarkan sinyal yang dikirim, supaya proses dapat
dilakukan aktivitas proses, aka administrator/programmer dapat menentukan aktivitas atau
reaksi tersebut. Proses dapat mengirim sinyal ataupun menerima sinyal dari dan proses
lainnya. Sebelum mengirim sinyal melalui instruksi “kill” dengan format : kill [nomor sinyal]
PID. Nomor sinyal : 1 s/d banyaknya nomor sinyal yang didefinisikan oleh system standar
nomor sinyal. Definisi jenis sinya pada proses dapat dilihat dengan menggunakan perintah
kill -l, berikut beberapa daftar sinyal yang penting untuk diketahui:
Nomor Nama Sinyal Deskripsi Sinyal
Sinyal

1 SIGHUP Hang up sinyal : sinyal dikirim bila proses terputus. misal terputus
koneksi modem

2 SIGINT interrupt sinyal : melalui ^c

15 SIGTERM Termination sinyal : terminal software

9 SIGKILL Kill Sinyal : menghentikan proses

Anda mungkin juga menyukai