A time-partitioned system for accounting for processor time consumed by
operating system services provided on behalf of an application runs in a
real-time environment. The time utilized by the operating system is
treated as application processing time, rather than viewing the resultant
processor time consumed as an operating system overhead. Each application
consists of one or more threads. A time budget is assigned to each thread
and to each interrupt. The processor time consumed by the operating
system when executing on behalf of a thread or interrupt is charged back
to the application or interrupt as part of the application's time budget.
Operating system overheads and processor interrupts are thus accounted
for accurately enough to determine a schedule for the applications that
is enforceable by the operating system at run time.