55 | | We did not spend less time accurately defining interface and duties of dispatcher. In addition to the classic implementation mentioned above, we decided to request it CPU time accounting. It has to measure both direct and indirect use of the CPU. We refer to the direct use when the CPU is busied with tasks _of_ the process; indirect use qualifies the complex of tasks performed _for_ a process by the nucleus. Dispatcher itself could perform direct CPU time measure trivially, so we opted to request it also the indirect time accounting. In fact the two functions added to dispatcher interface, `play()` and `pause()`, achieve this purpose. See the diagram right above to deep understand interactions between scheduler, dispatcher and the remaining sections of the nucleus. |
| 55 | We did not spend less time accurately defining interface and duties of dispatcher. In addition to the classic implementation mentioned above, we decided to request it CPU '''time accounting'''. It has to measure both direct and indirect use of the CPU. We refer to the direct use when the CPU is busied with tasks ''of'' the process; indirect use qualifies the complex of tasks performed ''for'' a process by the nucleus. Dispatcher itself could perform direct CPU time measure trivially, so we opted to request it also the indirect time accounting. In fact the two functions added to dispatcher interface, `play()` and `pause()`, achieve this purpose. See the diagram right above to deep understand interactions between scheduler, dispatcher and the remaining sections of the nucleus. |