Monday, December 29, 2008

Linux Timer

Oke, kali ini saya ingin membahas timer di Linux. Linux memperbolehkan proses di user mode untuk mengakses spesial timer yang disebut dengan interval timer. Timer ini mengakibatkan signal UNIX dikirimkan secara periodik ke proses. Kita juga bisa mengaktifkan interval timer agar dikirim sebagai satu signal setelah beberapa waktu tertentu (periodik). Setiap interval timer dikelompokkan secara:

- Frekuensi dimana signal tersebut di keluarkan (emit), atau nilai null jika hanya ada satu signal yang dihasilkan.
- Waktu yang tersisa sampai signal berikutnya dihasilkan.

Masalah timer adalah akurasinya, timer dijamin berjalan setelah waktu yang ditentukan telah berakhir, tapi tidak mungkin untuk memperkirakan dengan pasti kapan akan dikirim.

Interval timer diaktifkan dengan POSIX setitimer( ) system call. Parameter pertama fungsi ini adalah aturan (policy) yang akan digunakan sebagai berikut:

ITIMER_REAL: Waktu yang telah berjalan, proses menerima signal SIGALRM.

ITIMER_VIRTUAL: Waktu yang dihasilkan proses di user mode, proses tersebut menerima signal SIGVTALRM.

ITIMER_PROF: Waktu yang dihasilkan baik di user mode dan kernel mode, proses ini menerima signal SIGPROF.