Time is used in several forms in operating systems and applications. Typically, applications need to deal with the following categories of time:
- Clock: The actual time and date, as you would read on your watch
- Time point: Processing time taken to profile, monitor, and troubleshoot an application's usage (for example, a processor or resource in general)
- Duration: Monotonic time, that is, the elapsed time for a certain event
In this chapter, we'll deal with all these aspects from both a C++ and POSIX point of view in order so that you have more tools available in your toolbox. The recipes in this chapter will teach you how to measure an event by using time points and why you should use a steady clock for that, as well as when the time overruns and how to mitigate it. You'll learn how to implement these concepts with both...