Selasa, 07 Juni 2016

Foreground dan Background Process dalam Windows

Foreground process adalah proses dari sebuah program yang sedang berinteraksi dengan user. Program berinteraksi dengan user secara output dengan menampilkan window atau teks pada monitor, dan secara input dengan menerima masukan dari user melalui keyboard, mouse, atau perangkat input lainnya. Sebuah proses disebut foreground process bila jendelanya dalam keadaan aktif. Hanya ada satu jendela yang aktif pada satu saat, dan hanya jendela inilah yang dapat menerima masukan dari keyboard. Windows membedakan antara jendela yang aktif dan yang tidak de­ngan memberi warna yang berbeda pada title bar-nya jendela, seperti pada gambar di bawah ini.

Window title bar

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 di­sebut 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 fore­ground process.

Windows versi client/non-server (Windows Vista, 7, 8, dan 10) secara default membe­rikan tambahan prioritas CPU (Priority Boost) kepada foreground process. Karena Pri­o­ri­ty Boost inilah foreground process akan selalu diprioritaskan oleh sistem dalam penggunaan CPU. Setting-an yang mengatur ini adalah Processor scheduling yang da­pat anda temukan pada Control Panel > System > Advanced system settings > Per­for­mance pada tab Advanced. Bila Processor scheduling di-set pada Programs maka fore­ground process akan mendapatkan priority boost dari sistem.

Performance Options dialog

Anda dapat menyaksikan sendiri "detik-detik terjadinya" priority boost pada foreground process dengan menggunakan Process Explorer. Ikuti langkah-langkah berikut:
  1. Pastikan Processor scheduling di-set pada Programs seperti pada gambar di atas.
  2. Jalankan Process Explorer dan program Notepad.
  3. Klik dua kali proses Notepad pada Process Explorer untuk menam­pilkan dialog Properties, kemudian pilih tab Threads.
  4. Ketika posisi jendela Notepad berada di background anda dapat melihat proses Notepad memiliki nilai Dynamic Priority sebesar 10.
  5. Aktifkan jendela Notepad agar posisinya berada di foreground, tapi usahakan agar jendelanya tidak menutupi dialog Properties.
  6. Pada saat posisi jendela Notepad di foreground, anda dapat melihat sistem memberi tam­bahan prioritas CPU sebesar 2 sehingga nilai Dyna­mic Priority-nya menjadi 12.
  7. 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 me­nye­diakan fungsi-fungsi Application Programming Interface (API) yang dapat di­gu­na­kan oleh program untuk menurunkan CPU Priority, I/O Priority dan Memory Priority yang dimilikinya. Fungsi-fungsi ini dapat digunakan oleh program agar prosesnya da­pat berjalan di background tanpa mengganggu proses-proses yang memiliki Priority le­bih tinggi. Sebagai contoh, dalam gambar berikut anda dapat melihat perbandingan antara proses Notepad yang berjalan pada Priority Normal dan proses Search­Filter­Host yang berjalan pada Priority Background.

Process priority level

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 pro­ses ingin berjalan di background tanpa mengganggu proses yang berjalan pada Pri­o­ri­ty Normal, maka proses tersebut dapat menurunkan nilai prioritas CPU, I/O dan Me­mory seperti pada dialog Properties SearchFilterHost. Sistem akan lebih men­da­hu­lu­kan proses yang memiliki level CPU Priority dan I/O Priority tinggi untuk meng­ak­ses CPU dan Disk. Sedangkan level Memory Priority yang rendah akan meng­a­ki­bat­kan me­mori yang digunakan proses tersebut diambil alih lebih awal oleh sistem (Me­mo­ry 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 ja­lan­nya proses-proses yang memiliki priority level normal.


Demikian artikel tentang foreground dan background process dalam Win­dows. De­ngan informasi ini anda dapat mencari apa yang salah dengan tips yang diberikan oleh artikel ini (Hint: gunakan Process Explorer).

Tidak ada komentar:

Posting Komentar