Proses adalah Program
yang sedang dieksekusi. Setiap kali menjalankan suatu program, Sistem UNIX
melakukan suatu fork, yaitu melakukan beberapa urutan operasi untuk membuat
suatu proses konteks dan kemudian mengeksekusi program tersebut dalam konteks
yang sudah dibuat. Oleh karena itu kita harus menguasai Manajemen Proses Linux.
Manajemen Proses Linux adalah salah satu hal yang sangat penting yang harus
dikuasai oleh seorang Teknisi Komputer. Kenapa? Karena selain kita mengetahui
proses di Windows, kita harus tahu proses di Linux dan dengan penguasaan
manajemen prose ini kita bisa mengetahui proses apa saja yang running pada
setiap user. Atau dalam suatu jaringan juga kita bisa melakukan controlling
terhadap proses setiap client.
Dalam Manajemen proses
beberapa hal penting yang harus dikuasai, yaitu :
1. Mengetahui proses yang terjadi Linux
2. Dapat melakukan proses controlling terhadap proses di Linux
3. Menghentikan proses yang tidak dibutuhkan dan mengurangi performa Linux
1. Mengetahui proses yang terjadi Linux
2. Dapat melakukan proses controlling terhadap proses di Linux
3. Menghentikan proses yang tidak dibutuhkan dan mengurangi performa Linux
TIPE PROSES
Terdapat beberapa tipe proses yang dikenal dalam OS berbasis Linux pada umumnya, antara lain:
Terdapat beberapa tipe proses yang dikenal dalam OS berbasis Linux pada umumnya, antara lain:
1. Interactive : proses yang dimulai (dan
dikontrol oleh) shell[i][i][i]. Bisa tampak di luar (foreground) ataupun hanya
di dalam (background).
2. Batch : proses yang tidak berhubungan
dengan terminal, tetapi menunggu untuk dieksekusi secara berurutan
(sekuensial).
3. Daemon : proses yang dimulai ketika
Linux booting dan berjalan secara background. Proses ini menunggu permintaan
dari proses lainnya, bila tidak ada request, maka berada dalam keadaan ‘idle’.
Dalam Linux,
sifat-sifat proses dibagi menjadi tiga bagian, yakni: Identitas Proses,
Lingkungan, dan Konteks.
IDENTITAS PROSES
Identitas proses
memuat beberapa hal penting berikut:
·
Process ID (PID) → pengenal unik untuk proses; digunakan untuk menentukan
proses-proses mana yang dibawa ke dalam OS saat suatu aplikasi membuat system
call untuk mengirim sinyal, mengubah, atau menunggu proses
lainnya. PID adalah 32-bit bilangan yang mengidentifikasikan setiap proses
dengan unik. Linux membatasi PID sekitar 0-32767 untuk menjamin kompatibilitas
dengan sistem UNIX tradisional.
·
Mandat (Credentials) → setiap proses harus memiliki sebuah user ID dan
satu atau lebih group ID yang menentukan hak proses untuk
mengakses sumber daya sistem dan file.
·
Personality → tidak ditemukan dalam sistem UNIX, namun dalam Linux setiap proses
memiliki sebuah pengenal pribadi (personality) yang dapat (sedikit)
mengubah system call tertentu secara semantic.
Terutama digunakan oleh library emulation agar system
call dapat kompatibel dengan bentuk tertentu UNIX.
Status Proses yang
dikenali dalam Linux
1. Task Running : Proses yang siap untuk
dieksekusi CPU
2. Task Interruptable : Proses yang
menunggu sebuah kondisi. Interupsi, Sinyal dan aktifitas lain akan membangunkan
proses.
3. Task Uninterruptable : Proses yang
sedang sleep, dan tidak dapat di interrupt oleh signal.
4. Task Stopped : Proses yang dihentikan
5. Task Zombie : Proses telah
berhenti, namun masih memiliki struktur data ditask_struct di task vektor
dan masih memegang sumber daya yang tidak digunakan lagi.
Konsep
Pembuatan dan Penghentian Proses
Konsep pembuatan
proses pada sistem operasi linux :
·
Setiap proses diberi nomor khusus sebagai identifikasi yang disebut process
identification atau PID berupa angka integer unik.
·
Jika proses selesai (Terminated) maka semua sumber daya yang digunakan
termasuk PID dibebaskan kembali.
·
Proses dibuat menggunakan system call fork() yang sering disebut forking proses
·
System call fork() mengkopi proses pemanggil sehingga akan terdapat 2 proses
yaitu:
1. Proses pemanggil
disebut PARENT
2. Proses hasil kopian
disebut CHILD
·
Proses CHILD identik dengan proses PARENT-nya tetapi memiliki PID yang
berbeda.
·
Setelah proses baru (child) berhasil dibuat eksekusi dilanjutkan secara
normal di masing –masing proses pada aris setelah pemanggilan system call
fork().
·
Proses pemanggil (PARENT) dapat melakukan forking proses lebih dari satu
kali sehingga memungkinkan terdapat banyak proses CHILD yang dieksekusi.
·
Proses CHILD dapat melakukan forking proses seperti halnya PARENT sehingga
dapat terbentuk struktur pohon proses.
Sedangkan pada proses
penghentian pada OS linux, jika telah menyelesaikan pernyataan terakhir,
dan meminta pada sistem operasi untuk menghapusnya dengan menggunakan system
call exit. Proses mengembalikan semua data (output) ke parent
proses melalui system call wait. Kemudian proses dihapus dari list
atau tabel sistem, dilanjutkan dengan menghapus PCB.
Penghapusan proses ini
akan menjadi sangat kompleks jika ternyata proses yang akan dihentikan tersebut
membuat proses-proses yang lain. Pada beberapa sistem, proses-proses anak akan
dihentikan secara otomatis jika proses induknya berhenti. Namun, ada beberapa
sistem yang menganggap bahwa proses anak ini terpisah dengan induknya, sehingga
proses anak tidak ikut dihentikan secara otomatis pada saat proses induk
dihentikan.
Parent dapat
menghentikan eksekusi proses child dengan menggunakan system call abort.
Proses anak dihentikan parent karena beberapa alasan, antara lain :
·
Child mengalokasikan sumber daya melampaui batas
·
Tugas child tidak dibutuhkan lebih lanjut
·
Parent berhenti, karena system operasi tidak mengijinkan child untuk
melanjutkan jika parent berhenti dan terminasi dilanjutkan
0 komentar:
Posting Komentar