CONTENTS
1. OVERVIEW OF SOFTWARE PERFORMANCE ENGINEERING = 1
1.1 History of Performance-oriented software Design = 4
1.2 Software Performance Engineering Approach = 10
1.3 The software Performance Engineering Process = 14
1.3.1 SPE Activities for Each Assessment = 15
1.3.2 Assessments Throughout the Lifecycle = 19
1.3.3 the Models for Performance Assessment = 22
1.4 SPE Goals and Requirements = 25
1.5 Introduction of Case Studies = 29
1.6 Summary = 30
Exercises = 31
2. PRINCIPLES FOR CREATING RESPONSIVE SOFTWARE = 33
2.1 Basis for the Principles = 37
2.2 General Principles = 40
2.2.1 Fixing-Point Principle = 40
2.2.2 Locality-Design Principle = 44
2.2.3 Processing Versus Frequency Tradeoff Principle = 49
2.2.4 Shared-Resource Principle = 52
2.2.5 Parallel Processing Principle = 54
2.2.6 Centering Principle = 56
2.2.7 Instrumenting Principle = 59
2.2.8 Late Lifecycle Principles = 60
2.3 Applying the Principles = 61
2.3.1 User-Interface Design = 61
2.3.2 Data Organization = 76
2.3.3 Information Hiding = 82
2.3.5 Data Availability = 89
2.4 Simplicity = 100
2.4.1 Conceptual Integrity = 102
2.4.2 reject Unnecessary Features = 103
2.5 Strategy for Effective Use of the Principles = 105
2.6 Case studies = 108
2.7 Summary and conclusions = 108
Exercises = 109
3. SPE DATA GATHERING = 111
3.1 Model Specifications = 113
3.1.1 Performance Goals = 113
3.1.2 workload Specification = 115
3.1.3 Software Execution Structure = 117
3.1.4 Execution Environment = 121
3.1.5 Resource Usage = 123
3.2 techniques for information Capture = 126
3.2.1 Performance Walkthrough = 127
3.2.2 Successful Design and Code Walkthrought = 129
3.2.3 Agenda Activity Rationale = 131
3.2.4 Specifying Resource Usage = 132
3.2.5 Communicating Results = 133
3.2.6 Adaptive Data Collection = 136
3.2.7 Verification and Validation = 137
3.3 Specifications for the Case Studies = 138
3.3.1 Computer-Aided Design User Software : DRAWMOD = 138
3.3.2 Engineering Data Management system ; FIND and RETRIEVE = 142
3.3.3 Network Operating System Interprocess Communication ; SYS_EXEC = 147
3.3.4 Execution Environment for the Case Studies = 152
3.3.5 Case Study Relationship = 152
3.4 Summary = 154
Exercises = 155
4. SOFTWARE EXECUTION MODELS = 157
4.1 Execution Graph Model Definition = 158
4.1.1 Graph Notation = 158
4.1.2 Graph Restrictions = 168
4.1.3 Modeling with Execution Graphs = 168
4.2 Case Study Execution Graphs = 170
4.3 software Model Analysis = 174
4.3.1 Graph Analysis Algorithms = 175
4.3.2 Analysis Procedures = 182
4.3.3 Data Dependency = 189
4.4 software Model Analysis for Case Studies = 198
4.4.1 SYS_EXEC Analysis = 198
4.4.2 EDMS Analysis = 202
4.4.3 DRAWMOD Analysis = 208
4.5 Software Execution Model Options = 213
4.5.1 Software Execution Models Versus Historical Methods = 213
4.5.2 Software Execution Modeling Tools = 215
4.5.3 Research Tools for Software Execution Models = 217
4.6 Summary = 221
Exercises = 222
5. ELEMENTARY SYSTEM EXECUTION MODELS
5.1 System Execution Model Concepts = 227
5.2 Elementary Information Processing Graphs = 238
5.3 Using the Elementary System Execution Model for APE = 244
5.3.1 Elementary JPG Modeling Procedure = 244
5.3.2 System Execution Model for Case Studies = 263
5.4 System Execution Model for Case Studies = 265
5.5 System Execution Model Options = 271
5.5.1 Tool Differences = 271
5.5.2 APE Tool Requirements = 273
5.5.3 Alternatives = 274
5.5.4 Research Tools = 276
5.6 Summary = 279
Exercises = 280
6. SOFTWARE PERFORMANCE EVALUATION = 283
6.1 Report Results = 284
6.2 Identify and Evaluate Alternatives = 290
6.2.1 Ape Process Review = 290
6.2.2 Bottleneck Identification = 291
6.2.3 Alternatives = 293
6.3 Case Studies = 294
6.3.1 Review of Software Models = 295
6.3.2 Identify Problems = 300
6.3.3 Identify and Evaluate Alternatives = 301
6.3.4 EDMS Analysis = 311
6.3.5 Summary of software Alternatives = 315
6.3.6 System Execution Model = 317
6.4 Summary = 320
Exercises = 320
7. APE PERFORMANCE MEASUREMENT = 323
7.1 Measurements Needed = 325
7.2 Performance Measurement concepts = 328
7.3 Measurement Tools = 330
7.4 Instrumenting Software Systems = 333
7.4.1 Instrumentation Design considerations = 335
7.4.2 Implementation Alternatives = 336
7.4.3 Data Reporting = 336
7.5 Performance Benchmarks = 337
7.6 SPE Data Storage and Retrieval = 341
7.6.1 Measurement Data Library = 341
7.6.2 SPE Database = 342
7.7 Ideal Performance Measurement Support = 344
7.8 Summary = 345
Exercises = 346
8. ADVANCED SYSTEM EXECUTION MODELS = 347
8.1 Advanced Information Processing Graphs = 349
8.2 Advanced IPG Modelling Techniques = 356
8.2.1 Processing Phases = 357
8.2.2 Surrogate Delay Servers = 359
8.2.3 Flow-Equivalent Servers = 360
8.2.4 Shadow Servers = 360
8.2.5 Advanced IPG Modelling Strategy = 365
8.3 Serialization Delays = 366
8.3.1 Exclusive use of Resources = 367
8.3.2 Resource Sharing and Locking = 379
8.3.3 Lock Mechanism Design Evaluation = 393
8.3.4 Further Reading = 394
8.4 Parallel and Distributed Processing = 394
8.4.1 Remote Data accesses = 396
8.4.2 Messages for Interprocess Communication = 416
8.4.3 Process Structure and Allocation = 428
8.4.4 Summary and Further Reading = 442
8.5 Using Advanced Pigs for APE = 443
8.5.1 Software Development Topics = 444
8.5.2 Computer Environment challenges = 454
8.6 Intricate Processing Models = 461
8.6.1 Timed Petri Nets = 461
8.6.2 Simulation IPGs = 446
8.7 Solution Tool Options = 469
8.8 Summary = 471
Exercises = 471
9. MEMORY MANAGEMENT OVERHEAD = 474
9.1 Memory Overhead Representation = 476
9.1.1 Maximum Concurrent Users = 478
9.1.2 Swapping Overhead = 481
9.1.3 Overhead for Paging or Segmenting - 484
9.1.4 Adaptations for Segmentation = 489
9.1.5 Summary = 490
9.2 Memory Design Assessment = 491
9.2.1 Lifecycle questions and Evaluations = 491
9.2.2 analysis to Obtain Answers = 493
9.2.3 Data Requirements = 493
9.2.4 Assessment 1 : Does This Design Have Critical Memory Requirements? = 496
9.2.5 Assessment 2 : What Are the Software Localities, and Do They fit in the A vailable Memory Without Thrashing? = 506
9.2.6 Assessment 3 : Should Additional Memory Be Acquired and, If So, How Much? = 513
9.2.7 Assessment 4 : Which Component sizes Are Critical? = 515
9.2.8 Assessment 5 : Should we Impose Size Constraints on components? = 516
9.2.9 Assessment 6 : How Should Memory Be Organized? = 516
9.3 Memory Design Issues = 517
9.3.1 Early Lifecycle Locality Design = 517
9.3.2 Middle Lifecycle Locality Design = 519
9.4 Summary and further Reading = 522
Exercises = 523
10. SPE ENVIRONMENT = 525
10.1 SPE Review = 525
10.2 SPE Integration = 526
10.2.1 SPE Compatibility = 526
10.2.2 Effectiveness Is Overriding = 530
10.2.3 When Is SPE Appropriate? = 531
10.2.4 Cost, Benefits, and Risks = 532
10.2.5 How Should SPE Be Organized? = 534
10.2.6 Summary = 535
10.3 SPE Adoption = 535
10.4 Successful SPE = 537
10.5 The Future of SPE = 539
BIBLIOGRAPHY = 543
INDEX = 559