Académique Documents
Professionnel Documents
Culture Documents
OS Latency
1
CPSC-663: Real-Time Systems Linux, Preemption, and Real-Time
Sources of OS Latency
Timer Resolution
2
CPSC-663: Real-Time Systems Linux, Preemption, and Real-Time
3
CPSC-663: Real-Time Systems Linux, Preemption, and Real-Time
Test Programs
• Measuring Ltimer:
– Run test task on lightly loaded system, to avoid Lnp.
– Set up a periodic signal (using itimer())
• Measuring Lnp:
– Run test task against background tasks
– Test Task:
• Read current time t1
• Sleep for a time T
• Read time t2, and compute Lnp = t2 - (t1 + T)
Measuring Lnp
• Memory Stress:
– Page fault handler invoked repeatedly.
• Console-Switch Stress:
– Console driver contains long non-preemptable paths.
• I/O Stress:
– Systems calls that move large amounts of data between user and
kernel space, or from kernel memory to hardware peripherals.
• Procfs Stress:
– Concurrent access to /proc file system must be protected by non-
preemptable sections.
• Fork Stress:
– New processes created inside non-preemptable section and requires
copying of large amounts of data.
– Overhead of scheduler increases as number of active processes
increases.
4
CPSC-663: Real-Time Systems Linux, Preemption, and Real-Time
Timer Latency
5
CPSC-663: Real-Time Systems Linux, Preemption, and Real-Time
Standard Linux
Low-Latency Kernel
6
CPSC-663: Real-Time Systems Linux, Preemption, and Real-Time
Preemptable Kernel
7
CPSC-663: Real-Time Systems Linux, Preemption, and Real-Time
8
CPSC-663: Real-Time Systems Linux, Preemption, and Real-Time
Latencies