Sebaliknya, bila proses dari sebuah program tidak memiliki jendela yang aktif, maka proses itu disebut background process—tapi bukan hanya itu saja; proses yang non-interaktif (tidak mempunyai jendela dan tidak menerima masukan dari user) juga disebut background process. Contoh dari proses non-interaktif adalah program yang dijalankan sebagai Windows service maupun yang dijalankan oleh Task Scheduler.
Karena secara definisi hanya ada satu foreground process pada satu saat, maka akan terjadi persaingan yang tidak seimbang antara foreground process dengan banyak background process dalam penggunaan resource komputer (CPU, Memory, Disk I/O). Sebagai user, anda tentunya tidak mau program yang sedang anda gunakan menjadi lelet/tidak responsif karena background process. Salah satu solusi Windows untuk mengatasi masalah ini adalah dengan memberikan perlakuan istimewa kepada foreground process.
Windows versi client/non-server (Windows Vista, 7, 8, dan 10) secara default memberikan tambahan prioritas CPU (Priority Boost) kepada foreground process. Karena Priority Boost inilah foreground process akan selalu diprioritaskan oleh sistem dalam penggunaan CPU. Setting-an yang mengatur ini adalah Processor scheduling yang dapat anda temukan pada Control Panel > System > Advanced system settings > Performance pada tab Advanced. Bila Processor scheduling di-set pada Programs maka foreground process akan mendapatkan priority boost dari sistem.
Anda dapat menyaksikan sendiri "detik-detik terjadinya" priority boost pada foreground process dengan menggunakan Process Explorer. Ikuti langkah-langkah berikut:
- Pastikan Processor scheduling di-set pada Programs seperti pada gambar di atas.
- Jalankan Process Explorer dan program Notepad.
- Klik dua kali proses Notepad pada Process Explorer untuk menampilkan dialog Properties, kemudian pilih tab Threads.
- Ketika posisi jendela Notepad berada di background anda dapat melihat proses Notepad memiliki nilai Dynamic Priority sebesar 10.
- Aktifkan jendela Notepad agar posisinya berada di foreground, tapi usahakan agar jendelanya tidak menutupi dialog Properties.
- Pada saat posisi jendela Notepad di foreground, anda dapat melihat sistem memberi tambahan prioritas CPU sebesar 2 sehingga nilai Dynamic Priority-nya menjadi 12.
- Bila anda aktifkan dialog Properties (sehingga posisi jendela Notepad kembali ke background), nilai Dynamic Priority dari Notepad akan turun kembali ke 10.
Selain memberikan prioritas utama kepada foreground process, Windows juga menyediakan fungsi-fungsi Application Programming Interface (API) yang dapat digunakan oleh program untuk menurunkan CPU Priority, I/O Priority dan Memory Priority yang dimilikinya. Fungsi-fungsi ini dapat digunakan oleh program agar prosesnya dapat berjalan di background tanpa mengganggu proses-proses yang memiliki Priority lebih tinggi. Sebagai contoh, dalam gambar berikut anda dapat melihat perbandingan antara proses Notepad yang berjalan pada Priority Normal dan proses SearchFilterHost yang berjalan pada Priority Background.
Secara default proses berjalan pada Priority Normal dan memiliki nilai prioritas CPU, I/O dan Memory seperti pada dialog Properties Notepad di atas. Apabila sebuah proses ingin berjalan di background tanpa mengganggu proses yang berjalan pada Priority Normal, maka proses tersebut dapat menurunkan nilai prioritas CPU, I/O dan Memory seperti pada dialog Properties SearchFilterHost. Sistem akan lebih mendahulukan proses yang memiliki level CPU Priority dan I/O Priority tinggi untuk mengakses CPU dan Disk. Sedangkan level Memory Priority yang rendah akan mengakibatkan memori yang digunakan proses tersebut diambil alih lebih awal oleh sistem (Memory Manager) untuk memenuhi permintaan memori dari proses-proses lain.
Process Explorer juga memanfaatkan API ini untuk menyediakan fitur "Background Priority" yang dapat anda gunakan untuk menurunkan priority dari proses yang anda pilih ke level background agar proses tersebut dapat berjalan tanpa mengganggu jalannya proses-proses yang memiliki priority level normal.
Demikian artikel tentang foreground dan background process dalam Windows. Dengan informasi ini anda dapat mencari apa yang salah dengan tips yang diberikan oleh artikel ini (Hint: gunakan Process Explorer).
Tidak ada komentar:
Posting Komentar