Steve Lewis
-
Upload
elvis-young -
Category
Documents
-
view
15 -
download
3
description
Transcript of Steve Lewis
![Page 1: Steve Lewis](https://reader036.fdocuments.in/reader036/viewer/2022071807/56812d54550346895d925ba8/html5/thumbnails/1.jpg)
TECHNIQUES FOR EFFICIENTLY RECORDING TECHNIQUES FOR EFFICIENTLY RECORDING STATE CHANGES OF A COMPUTER ENVIRONMENT STATE CHANGES OF A COMPUTER ENVIRONMENT
TO SUPPORT REVERSIBLE DEBUGGINGTO SUPPORT REVERSIBLE DEBUGGING
Steve Lewis
![Page 2: Steve Lewis](https://reader036.fdocuments.in/reader036/viewer/2022071807/56812d54550346895d925ba8/html5/thumbnails/2.jpg)
Outline of PresentationOutline of Presentation
Introduction to Reversible DebuggingRelated WorkState History Recording TechniquesFuture WorkJ.I.M.S. Demonstration
![Page 3: Steve Lewis](https://reader036.fdocuments.in/reader036/viewer/2022071807/56812d54550346895d925ba8/html5/thumbnails/3.jpg)
IntroductionIntroduction What is reversible
debugging?– Reverse Execution– Undo
Why is it useful?– Learning tool– Reduce debugging time– Parallel Programs
![Page 4: Steve Lewis](https://reader036.fdocuments.in/reader036/viewer/2022071807/56812d54550346895d925ba8/html5/thumbnails/4.jpg)
Related WorkRelated Work EXDAMS (Balzer)
– Flowback Analysis, History Tape IGOR (Fieldman, Brown)
– Incremental Checkpoints, Modified Memory Pages SPYDER (Agrawal, DeMillo, Spafford)
– Execution-History Backtracking vs. Structured Backtracking LEONARDO (Demetrescu, Finocchi)
– Reversible virtual CPU, virtual O/S, history recording Bidirectional Debugging (Bob Boothe)
– Event counters which facilitate re-execution
![Page 5: Steve Lewis](https://reader036.fdocuments.in/reader036/viewer/2022071807/56812d54550346895d925ba8/html5/thumbnails/5.jpg)
History Logging TechniquesHistory Logging Techniques
Data Representation of State ChangesCheckpoint CreationWhen to Create CheckpointsCheckpoint Culling Algorithm
![Page 6: Steve Lewis](https://reader036.fdocuments.in/reader036/viewer/2022071807/56812d54550346895d925ba8/html5/thumbnails/6.jpg)
Data Representation of State ChangesData Representation of State Changes
Checkpoints record the entire state of the machine at some time index t.
State change records record incremental changes to the state of the machine.
![Page 7: Steve Lewis](https://reader036.fdocuments.in/reader036/viewer/2022071807/56812d54550346895d925ba8/html5/thumbnails/7.jpg)
Data Representation of State ChangesData Representation of State Changes
![Page 8: Steve Lewis](https://reader036.fdocuments.in/reader036/viewer/2022071807/56812d54550346895d925ba8/html5/thumbnails/8.jpg)
Data Representation of State ChangesData Representation of State Changes
![Page 9: Steve Lewis](https://reader036.fdocuments.in/reader036/viewer/2022071807/56812d54550346895d925ba8/html5/thumbnails/9.jpg)
Checkpoint CreationCheckpoint Creation
![Page 10: Steve Lewis](https://reader036.fdocuments.in/reader036/viewer/2022071807/56812d54550346895d925ba8/html5/thumbnails/10.jpg)
Checkpoint CreationCheckpoint Creation
![Page 11: Steve Lewis](https://reader036.fdocuments.in/reader036/viewer/2022071807/56812d54550346895d925ba8/html5/thumbnails/11.jpg)
When to Create CheckpointsWhen to Create CheckpointsCompromise between…
– Space conserved by using checkpoints– Distance between checkpoints
![Page 12: Steve Lewis](https://reader036.fdocuments.in/reader036/viewer/2022071807/56812d54550346895d925ba8/html5/thumbnails/12.jpg)
When to Create CheckpointsWhen to Create CheckpointsIf (StateHistorySize >= K * CheckpointSize) Then createCheckpoint()
Requires estimating size of next checkpoint Perform every cycle? What is a good value for K? Larger values of K…
– Decrease the growth rate of state history– Increase the distance between checkpoints
![Page 13: Steve Lewis](https://reader036.fdocuments.in/reader036/viewer/2022071807/56812d54550346895d925ba8/html5/thumbnails/13.jpg)
Checkpoint Culling AlgorithmCheckpoint Culling Algorithm
Motivation– Maintain the condition that the time to go
backwards u steps is proportional to u.– Reduce state history growth rate from a linear
function to a logarithmic function.
![Page 14: Steve Lewis](https://reader036.fdocuments.in/reader036/viewer/2022071807/56812d54550346895d925ba8/html5/thumbnails/14.jpg)
Checkpoint Culling AlgorithmCheckpoint Culling Algorithm
![Page 15: Steve Lewis](https://reader036.fdocuments.in/reader036/viewer/2022071807/56812d54550346895d925ba8/html5/thumbnails/15.jpg)
Checkpoint Culling AlgorithmCheckpoint Culling Algorithm
![Page 16: Steve Lewis](https://reader036.fdocuments.in/reader036/viewer/2022071807/56812d54550346895d925ba8/html5/thumbnails/16.jpg)
State History GrowthState History GrowthByte Size of State History Over Time (SORT program)
4000
9000
14000
19000
100 1100 2100 3100 4100 5100 6100 7100 8100 9100 10100
Cycle Index
Siz
e o
f S
tate
His
tory
(byte
s)
Byte Size of State History
Byte Size of State History Over Time (FACTOR program)
5000
6000
7000
8000
9000
1 3 5 7 9 11
13
15
17
19
21
23
25
27
29
31
Cycle Index (x1000)
Siz
e o
f S
tate
His
tory
(byte
s)
Byte Size of State History
![Page 17: Steve Lewis](https://reader036.fdocuments.in/reader036/viewer/2022071807/56812d54550346895d925ba8/html5/thumbnails/17.jpg)
Future WorkFuture Work Merging checkpoints
– Save space by storing checkpoint deltas and still be able to use the Checkpoint Culling Algorithm
Investigate alternative methods for deciding when to create checkpoints
Implement circular state history record buffer– Necessary to maintain O(u) runtime for undo operation
More work on JIMS– More authentic simulation (e.g. memory mapped I/O)– Improved GUI (threads, exceptions)
Case study – To find patterns regarding the use of undo.