290 likes | 409 Views
Evaluating the performance of wait-free snapshots in real-time systems. Björn Allvin Andreas Ermedahl Hans Hansson Marina Papatriantafilou Håkan Sundell Philippas Tsigas. What are we evaluating How did we do the evaluation Evaluation platform Analysis Experiments Conclusions
E N D
Evaluating the performance of wait-free snapshots in real-time systems Björn Allvin Andreas Ermedahl Hans Hansson Marina Papatriantafilou Håkan Sundell Philippas Tsigas
What are we evaluating How did we do the evaluation Evaluation platform Analysis Experiments Conclusions Future work Schedule
Snapshot A consistent momentous state of a set of several shared variables One reader Reads the whole set of variables in one atomic step Many writers Writes to only one variable each time What are we evaluating
Synchronization methods Lock Uses semaphores, spinning, disabling interrupts Negative Blocking Priority inversion Risk of deadlock Positive Execution time guarantees easy to do What are we evaluating Take lock ... do operation ... Release lock
Synchronization methods Lock-free Retries until not interfered by other operations Usually uses some kind of shared flag variable What are we evaluating Write flag ... do operation ... Check flag and maybe retry
Synchronization methods Lock-free Negative No execution time guarantees, can continue forever - thus can cause starvation Positive Avoids blocking and priority inversion Avoids deadlock Fast execution when low contention What are we evaluating
Synchronization methods Wait-free Uses atomic synchronization primitives Uses shared memory Negative Complex algorithms Memory consuming What are we evaluating Test&Set Compare &Swap Copying Helping Announcing Split operation ???
Synchronization methods Wait-free Positive Execution time guarantees Fast execution Avoids blocking and priority inversion Avoids deadlock Avoids starvation Same implementation on both single- and multiprocessor systems What are we evaluating
Wait-free snapshot algorithm Several register copies Uses Test&Set for synchronization Used by reader Used by writer What are we evaluating
Analytically Single-processor system Measured schedulability How did we do the evaluation
Experimentally Single-processor system Measured schedulability Multi-processor system with CAN-bus Measured snapshot response time How did we do the evaluation
Hardware CAN-bus , 1 Mhz Nodes 1 processor , Motorola 68020 , 20 MHz Single wait-state memory CAN-controller Evaluation platform
Software RTOS Device tasks (interrupts) Updater tasks Local snapshot tasks System snapshot task Evaluation platform
Additional parameters Snapshot algorithm timings from WCET analysis Cross-compiling Cycle counting CAN-bus timing from estimation Evaluation platform
Parameters 10 tasks 15 devices Snapshot of 5 components Analysis
Response time formulas Analysis Ri Ri = Ci + Cj Tj jhp(i) ... ...
Generation of 100 random scenarios for each of 31 different CPU loads Each scenario schedulable without any synchronization method Analysis
Results Analysis
Simulation RT-simulator in Erlang Fixed priority preemptive scheduler Execution time Semaphores Memory Messages Experiments
Single-node Parameters 10 tasks 15 devices Snapshot of 5 components Experiments
Single-node Simulator programming Using subset of scenarios used for the analysis Lock Execution and semaphores Lock-free Execution and shared memory Wait-free Execution Experiments
Single-node Results Experiments
Multi-node CAN-simulation Sending Execution Receiving Execution of highest priority task Execution Experiments
Multi-node Parameters 10 nodes 10 tasks on each node 15 devices on each node Local snapshot of 24 components on each node 1 super snapshot task on last node Experiments
Multi-node Simulator programming Using subset of scenarios used for the analysis Lock Execution, semaphores and messages Lock-free Execution, shared memory and messages Wait-free Execution and messages Experiments
Multi-node Results Experiments
Multi-node Results Experiments
Wait-free is always better than lock Lock-free mostly performs better than lock Single-node Lock-free performs best in practice Wait-free performs very good Multi-node Lock-free performs poor Wait-free performs best Conclusions
Investigations of other wait-free synchronization methods Implementations in RTOS kernels, by Enea and NRTG WARPing project - http://www.cs.chalmers.se/~phs/warp Future work