Dalam proses terdapat:
1. Process ID (PID)
2. Data (variabel, stack, dll)
3. Status Proses (State), mendeskripsikan status dari suatu proses
4. Priority
5. dll
Hal ini disebut Process Control Block (PCB)
Kita dapat mendeskripsikan bagaimana sebuah process berjalan dengan melihat list instruksi apa saja yang dilakukan oleh process tersebut, list instruksi ini disebut sebagai sebuah Trace, Sebagai contoh gambar 3.3 ini adalah ilustrasi 3 buah trace
Nah pada gambar 3.3 diatas kita memiliki 3 buah trace dari 3 buah process yaitu process A, B dan C. sekarang kita akan mengirimkannya ke processor untuk dieksekusi.
Dalam gambar 3.2 terlihat ada 3 buah process yaitu process A, B dan C. dan ada 1 process kecil yaitu Dispatcher, dispatcher adalah program milik Operating System yang bertugas untuk mengirim instruksi – instruksi dari process menuju processor. Dispatcher juga bertugas untuk men-switch sebuah process menjadi process yang lain(untuk dikirim ke processor untuk diproses), hal ini berguna untuk mencegah sebuah process memonopoli resources processor. Dalam gambar 3.4 kita akan melihat bagaimana semua ini terjadi dari sudut pandang Processor.
Penjelasan gambar: Pertama-tama komputer akan menjalankan instruksi dari process A, lalu diambil alih oleh process Dispatcher karena time out. Yang dilakukan oleh process dispatcher (pada gambar processnya di shade) adalah mengirim state data (variable, stack, dll) didalam register kembali ke main memory, lalu mengcopy instruksi process B dan state datanya ke register processor, lalu memberikan processor ke process B. pada saat yang bersamaan, Process A akan kembali ke queue “Ready Process” untuk mendapat gilirannya diproses kembali. Hal ini diulang terus untuk semua process.
Penjelasan diatas adalah murni permisalan yang sudah di-simplified. Perlu diketahui bahwa pada kenyataanya sebuah process tidak pasti di timeout setelah 6 instruksi, dan sebelum process A sebenarnya didahului oleh process dispatcher yang digunakan untuk mengirim process A untuk diprocess, well anda pasti tahu maksud saya.
Dispatcher sebenarnya melakukan “switch”, yang salah satu alasannya adalah karena timeout (timeout ->switch…jika timeout maka switch…matematika diskrit), adapun alasan lainnya yaitu process selesai ataupun karena permintaan dari OS.
Dalam manajemen proses, ada beberapa hal penting yang harus dikuasai :
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
Untuk itu kita harus mempelajari Manajemen Proses pada Linux. Perintah inti dari proses manajemen proses di Linux adalah :
1. ps
2. kill
Tipe-tipe Proses dalam Linux
Dibagi menjadi tiga bagian:
Interactive : Proses yang diprakarsai oleh sebuah shell dan berjalan dalam foreground dan background. seperti : terminal, software running, dll.
Batch : Sebuah seri dari proses-proses yang dijadwalkan untuk dieksekusi pada suatu waktu tertentu, proses batch ini juga tidak berhubungan dengan terminal, tapi menunggu dieksekusi secara sekuensial.
Daemon : Proses yang diinisialisasi saat booting untuk membentuk suatu fungsi-fungsi sistem yang dibutuhkan, bila tidak ada request maka akan berada pada keadaan idle, seperti : LPD, NFS, dan DNS.
Identitas Proses
Berikut adalah beberapa identitas dari Proses yang ada di Linux :
1. PID ( Proccess ID )
adalah pengenalan unik suatu proses, dimana digunakan untuk menentukan proses-proses mana yang di bawa saat suatu aplikasi dijalankan atau melakukan proses pengiriman signal, mengubah, dan menunggu proses lainnya. PID sendiri merupakan bilangan 32 bit yang dibatasi oleh Linux dari range 0-32767 untuk menjamin kompatibilitas dengan UNIX tradisional.
2. Credentials ( Mandat )
adalah Pengaturan akses yang dipengaruhi oleh User ID dan Group ID. Jadi kita dapat mengatur hak akses atau Credetials setiap user, group, dll.
3. Personality
adalah sebuah hal yang cukup jarang ditemukan dalam sistem UNIX, namun sangat berpengaruh dalam proses system call dan pengiriman signal dari suatu aplikasi.
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 mem
bangunkan 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 di task_struct di task
vektor dan masih memegang sumber daya yang tidak digunakan lagi.
Trace & Dispatcher
Trace: adalah daftar urutan intruksi yang harus dijalankan
Dispatcher: bertugas menyeleksi sekumpulan trace yang mana yang harus dijalankan.
Eksekusi Proses
Sudut pandang proses:
Trace Process A : 5000, 5001, 5002, dst
Trace Process B : 8000, 8001, dst
Trace Process C : 12000, 12001, 12002, dst
Sudut pandang processor:
Melihat timeout (masing-masing proses mendapatkan jatah waktu)
Setiap pergantian proses, dispatcher berjalan kemudian berganti ke proses yang lain
ok min
ReplyDeleteAlat pemisah lcd