Proses adalah Program yang sedang dieksekusi. Setiap kali menjalankan suatu program, Sistem UNIX melakukan suatu fork, yaitu melakukan beberapa urutan operasi untukmem buat 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? Karenaselainkitamengetahui proses di Windows, kita harus tahu proses di Linux dan dengan penguasaan manajemen proses 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
TIPE PROSES
Terdapat beberapa tipe proses yang dikenal dalam OS berbasis Linux padaumumnya, antara lain:
Interactive : proses yang dimulai (dan dikontrol oleh) shell[i][i][i]. Bisa tampak di luar (foreground) ataupun hanya di dalam (background).
Batch : proses yang tidak berhubungan dengan terminal, tetapi menunggu untuk dieksekusi secara berurutan (sekuensial).
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 tigabagian, yakni: Identitas Proses, Lingkungan, dan Konteks.
IDENTITAS PROSES
Identitas proses memuat beberapa hal penting berikut:
Process ID (PID) → pengenal unikuntuk proses; digunakan untuk menentukan proses-proses mana yang dibawa kedalam OS saat suatu aplikas imembuat system call untuk mengirimsinyal, 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 memilik isebuah user ID dan satu ataul ebih group ID yang menentukan hak proses untuk mengakses sumber daya sistemd an file.
Personality → tidakditemukan 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 dikenalidalam Linux
Task Running : Proses yang siap untuk dieksekusi CPU
Task Interruptable : Proses yang menunggu sebuah kondisi. Interupsi, Sinyal dan aktifitas lain akan membangunkan proses.
Task Uninterruptable : Proses yang sedang sleep, dan tidakdapat di interrupt oleh signal.
Task Stopped : Proses yang dihentikan
Task Zombie : Proses telah berhenti, namun masih memiliki struktur data ditask_struct di task vektor dan masih memegang sumberdaya yang tidak digunakan lagi.
Linux process state
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 sumberdaya yang digunakan termasuk PID dibebaskan kembali.
Proses dibuat menggunakan system call fork() yang sering disebut forking proses
System call fork() mengkopi proses pemanggil sehingga akanter dapat 2 proses yaitu :
1. Proses pemanggil disebut PARENT
2. Proses hasilkopian disebut CHILD
Proses CHILD identik dengan proses PARENT- nya tetapi memiliki PID yang berbeda.
Setelah proses baru (child) berhasil dibuatek sekusi 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 memungkin kanterdapat banyak proses CHILD yang dieksekusi.
Proses CHILD dapat melakukan forking proses sepertihalnya PARENT sehingga dapat terbentukstruktur pohon proses.
Sedangkan pada proses penghentian pada OS linux, jika telah menyelesaikan pernyataan terakhir, dan meminta pada sistem operasi untuk menghapusnya denganmenggunakan system call exit. Proses mengembalikans emua data (output) ke parent proses melalui system call wait. Kemudian proses dihapus dari list atauta belsistem, dilanjutkan dengan menghapus PCB.
Penghapusan proses ini akan menjadi sangat kompleks jikaternyata proses yang akan dihentikan tersebut membuat proses-proses yang lain. Pada beberapa sistem, proses-proses anak akan dihentikan secara otomatisjika proses indukny aberhenti. 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 sumberdaya melampaui batas
Tugas child tidakdibutuhkan lebih lanjut
Parent berhenti, karena system operasi tidak mengijinkan child untukmelanjutkan jika parent berhenti dan terminasi dilanjutkan.