Get the latest tech news
Concurrent Programming with Harmony
Table of Contents - Chapter 1: On Concurrent Programming - Chapter 2: Hello World! - Chapter 3: The Problems with Concurrent Programming - Chapter 4: The Harmony Virtual Machine - Chapter 5: Critical Sections - Chapter 6: Harmony Methods and Pointers - Chapter 7: Specifying a Lock - Chapter 8: Lock Implementations - Chapter 9: Concurrent Data Structures - Chapter 10: Testing: Checking Behaviors - Chapter 11: Debugging - Chapter 12: Conditional Waiting - Chapter 13: Condition Variables - Chapter 14: Starvation - Chapter 15: Deadlock - Chapter 16: Actors and Message Passing - Chapter 17: Barrier Synchronization - Chapter 18: Advanced Barrier Synchronization - Chapter 19: Example: A Concurrent File Service - Chapter 20: Interrupts - Chapter 21: Non-Blocking Synchronization - Chapter 22: Alternating Bit Protocol - Chapter 23: Leader Election - Chapter 24: Transactions and Two Phase Commit - Chapter 25: Chain Replication - Chapter 26: Working with Actions - Chapter 27: Replicated Atomic Read/Write Register - Chapter 28: Distributed Consensus - Chapter 29: Paxos - Chapter 30: Needham-Schroeder Authentication Protocol - - Bibliography - - Appendix A: Harmony Language Reference - Section A.1: Value Types and Operators - Section A.2: Statements - Section A.3: Harmony is not object-oriented - Section A.4: Constants, Global and Local Variables - Section A.5: Operator Precedence - Section A.6: Tuples, Lists, and Pattern Matching - Section A.7: Dynamic Allocation - Section A.8: Comments - Section A.9: Type Checking - Appendix B: Modules - Section B.1: The action module - Section B.2: The alloc module - Section B.3: The bags module - Section B.4: The hoare module - Section B.5: The lists module - Section B.6: The sets module - Section B.7: The synch module - Section B.8: The thread module - Appendix C: The Harmony Virtual Machine - Section C.1: Machine Instructions - Section C.2: Addresses and Method Calls - Section C.3: Contexts and Threads - Section C.4: Formal Specification - Appendix D: How Harmony Works - Section D.1: Compiler - Section D.2: Model Checker - Section D.3: Automata Conversion - Section D.4: Model Checker Output Analysis - Appendix E: Simplified Grammar - Appendix F: Directly checking linearizability - Appendix G: Manual Pages - Appendix H: Peterson's Algorithm - Appendix I: Split Binary Semaphores - - Acknowledgments - - Index - Glossary List of Figures Chapter 1. On Concurrent Programming Programming with concurrency is hard.
Michael Ben-Or,"Another Advantage of Free Choice (Extended Abstract): Completely Asynchronous Agreement Protocols", in Proceedings of the 2nd Annual ACM Symposium on Principles of Distributed Computing, 1983. Robbert van Renesse and Fred B. Schneider,"Chain Replication for Supporting High Throughput and Availability", in 6th Symposium on Operating System Design and Implementation (OSDI 2004), San Francisco, California, USA, December 6-8, 2004, 2004. The following people contributed by making comments on or finding bugs in early drafts of the book: Alex Chang, Anneke van Renesse, Brendon Nguyen, CJ Lee, Harshul Sahni, Hartek Sabharwal, Heather Zheng, Jack Rehmann, Jacob Brugh, Liam Arzola, Lorenzo Alvisi, Maria Martucci, Melissa Reifman, Nalu Concepcion, Phillip O'Reggio, Saleh Hassen, Sunwook Kim, Terryn Jung, Trishita Tiwari, Xiangyu Zhang, Yidan Wang, Zach Garcia, Zhuoyu Xu, and Zoltan Csaki.
Or read this on Hacker News