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.

Get the Android app

Or read this on Hacker News

Read more on:

Photo of harmony

harmony

Related news:

News photo

Show HN: A singing synthesizer for the browser with automatic 3-part harmony

News photo

AI orchestration: Crafting harmony or creating dependency?

News photo

Huawei's Harmony aims to end China's reliance on Windows, Android