Книга: Real-Time Concepts for Embedded Systems
11.5.1 Possible Processing Delays
11.5.1 Possible Processing Delays
The first delay is the event-driven, task-scheduling delay. As shown in the previous example, the maintenance of soft timers is part of ISR_timeout_fn and involves decrementing the expiration time value by one. When the expiration time reaches zero, the timer expires and the associated function is invoked. Because ISR_timeout_fn is part of the ISR, it must perform the smallest amount of work possible and postpone major work to a later stage outside the context of the ISR. Typical implementations perform real work either inside a worker task that is a dedicated daemon task or within the application that originally installed the timer. The minimum amount of work completed within the ISR by the installed function involves triggering an asynchronous event to the worker task, which typically translates into the kernel call event_send, should one exist. Alternatively, the triggering can also translate into the release of a semaphore on which the worker task is currently blocked. The notification delay caused by event generation from the ISR to the daemon task is the first level of delay, as shown in Figure 11.6. Note that the hypothetical kernel function event_send and the semaphore release function must be callable from within an ISR.
Figure 11.6: Level 1 delays-timer event notification delay.
The second delay is the priority-based, task-scheduling delay. In a typical RTOS, tasks can execute at different levels of execution priorities. For example, a worker task that performs timer expiration-related functions might not have the highest execution priority. In a priority-based, kernel-scheduling scheme, a worker task must wait until all other higher priority tasks complete execution before being allowed to continue. With a round-robin scheduler, the worker task must wait for its scheduling cycle in order to execute. This process represents the second level of delay as shown in Figure 11.7.
Figure 11.7: Level 2 delays-priority-based, task-scheduling delays.
Another delay is introduced when an application installs many soft timers. This issue is explored further in the next section when discussing the concept of timing wheels.
- Possible Resolutions
- Background Processing
- Apache Multiprocessing Modules
- ACID Compliance in Transaction Processing to Protect Data Integrity
- 5.3. Kernel Command Line Processing
- 10.5 Processing General Exceptions
- 8.5.4 Processing and Printing Text
- Элемент xsl:processing-instruction
- Inside of the central processing unit (CPU)
- 12. They Called It LISP for a Reason: List Processing
- CeLog Event Tracking and Processing
- ProcessingInstruction