{{Short description|Operating system feature to reduce CPU idle time}} '''Timer coalescing''' is a computer system energy-saving technique that reduces central processing unit (CPU) power consumption by reducing the precision of software timers used for synchronization of process wake-ups, minimizing the number of times the CPU is forced to perform the relatively power-costly operation of entering and exiting idle states.<ref name=ars_technica_os_x/>
== Implementations of timer coalescing == *The Linux kernel gained support for deferrable timers in 2.6.22,<ref name=k_newb/><ref name=git_commit/> and controllable "timer slack" for threads in 2.6.28 allowing timer coalescing.<ref name="man page: time"/><ref name="man page: prctl"/> *Timer coalescing has been a feature of Microsoft Windows from Windows 7 onward.<ref>{{cite web |url=http://www.microsoft.com/whdc/system/pnppwr/powermgmt/TimerCoal.mspx |title=Windows Timer Coalescing |date=January 20, 2009 |accessdate=2009-04-21 |publisher=Microsoft }}</ref> *Apple's XNU kernel based OS X gained support as of OS X Mavericks.<ref name="Advanced Technologies"/><ref name="OS X Mavericks: Core Technologies Overview"/> *FreeBSD supports it since September 2010.<ref>{{cite web|url=https://lists.freebsd.org/pipermail/svn-src-all/2010-September/028792.html |title=Refactor timer management code |date=13 September 2010 }}</ref>
== See also == {{Div col}} * Advanced Configuration and Power Interface (ACPI) * Advanced Programmable Interrupt Controller (APIC) * High Precision Event Timer (HPET) * HLT (x86 instruction) * Interrupt coalescing * Programmable interval timer * Time Stamp Counter (TSC) {{Div col end}}
== References == {{reflist | 30em | refs= <ref name=ars_technica_os_x> {{cite web | url = https://arstechnica.com/apple/2013/06/how-os-x-mavericks-works-its-power-saving-magic/ | title = How OS X "Mavericks" works its power-saving magic | author = Anderson, Nate | publisher = Ars Technica | date = June 11, 2013 | accessdate=2014-03-22}}</ref> <ref name=git_commit> {{cite web|url=https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=6e453a67510a17f01b63835f18569e8c3939a38c | title = Add support for deferrable timers | date = 2007-05-08 | accessdate=2014-03-22}}</ref> <ref name=k_newb> {{cite web|url=http://kernelnewbies.org/Linux_2_6_22|title=Linux Kernel 2 6 22|publisher=kernelnewbies.org|accessdate=2014-03-22}}</ref> <ref name="Advanced Technologies"> {{cite web|url=https://www.apple.com/osx/preview/advanced-technologies.html|title=OS X Mavericks - Advanced Technologies |publisher=Apple Inc.|accessdate=2014-03-22}}</ref> <ref name="OS X Mavericks: Core Technologies Overview"> {{cite web |title = OS X Mavericks: Core Technologies Overview |url = https://images.apple.com/osx/preview/docs/OSX_Mavericks_Core_Technology_Overview.pdf |publisher = Apple, Inc. |date = June 10, 2013 |accessdate = 2013-06-10 |url-status = dead |archiveurl = https://web.archive.org/web/20130626042313/http://images.apple.com/osx/preview/docs/OSX_Mavericks_Core_Technology_Overview.pdf |archivedate = June 26, 2013 }}</ref> <ref name="man page: time">{{cite web|url=http://man7.org/linux/man-pages/man7/time.7.html |title=time(7) - Linux manual page |publisher=Man7.org |date= |accessdate=2014-03-24}}</ref> <ref name="man page: prctl">{{cite web|url=http://man7.org/linux/man-pages/man2/prctl.2.html |title=prctl(2) - Linux manual page |publisher=Man7.org |date= |accessdate=2014-03-24}}</ref> }}
{{compsci-stub}} Category:Operating system kernels Category:Synchronization