The ChorusOS operating system provides the following time management features:
Interrupt-level timing
General interval timing
Time of day (universal time)
System time
Thread execution timing
Benchmark timing
The interrupt-level timing feature is always available and provides a traditional, one-shot time-out service. Time-outs and the time-out granularity are based on a system-wide clock tick.
When the timer expires, a caller provided handler is executed directly at the interrupt level. This is generally on the interrupt stack, if one exists, and with thread scheduling disabled; therefore, the execution environment is restricted accordingly.
The TIMER
feature implements a high-level interval timing service for both user and supervisor actors. It includes one-shot and periodic timers. The time-out notification is achieved through user-provided handler threads which are woken up in the application actor. Handler threads may invoke any kernel or subsystem system call.
For more details, see TIMER(5FEA).
The virtual time option provides a number of functions that are typically used by higher-level operating systems for controlling and accounting thread-execution.
Virtual time-outs can be set on:
Individual threads, to support subsystem-level timers.
Entire actors (that is, multiple threads), to support process CPU limits.
A virtual time-out handler is entered as soon as one or more designated threads have consumed the specified amount of execution time.
Execution accounting may be limited to execution within the home actor of the thread (internal execution time) or may be extended to include cross-actor invocations, such as system calls (total execution time).
For more details, see VTIMER(5FEA).
The DATE
feature maintains the time of day expressed in Universal Time, which is defined as the interval since 1st January 1970. Since the concept of local time is not supported directly by the operating system, time-zones and local seasonal adjustments must be handled by libraries outside the kernel.
For more details, see DATE(5FEA).
The RTC
feature indicates whether a real-time clock (RTC) device is present on the target machine. When this feature is set, and an RTC is present on the target, the DATE
feature will retrieve time information from the RTC. If the RTC
feature is not set, indicating an RTC is not present on the target, the DATE
feature will emulate the RTC in software.
For more information, see RTC(5FEA).