- Alpern, B. and Schneider, F.B. Defining liveness. Information Processing Letters 21, 4 (1985), 181--18.Google ScholarCross Ref
- Attiya, H., Bar-Noy, A., and Dolev, D. Sharing memory robustly in message-passing systems. JACM 42, 1 (1995), 121--132.Google ScholarDigital Library
- Attiya, H., Ellen, F. and Morrison, A., Limitations of highly-available eventually-consistent data stores. IEEE Trans. Parallel Distributed Systems 28, 1 (2017), 141--155.Google ScholarDigital Library
- Attiya, H. and Welch, J. Distributed Computing: Fundamentals, Simulations and Advanced Topics, (2nd Edition), Wiley, 2004.Google ScholarCross Ref
- Ben-Or, M. Another advantage of free choice: completely asynchronous agreement protocols. In Proc. 2nd ACM Symp. on Principles of Distributed Computing, (1983), 27--30.Google Scholar
- Brinch, H.P. (Ed.). The Origin of Concurrent Programming. Springer, (2002).Google Scholar
- Cachin, C. State machine replication with Byzantine faults. Replication. Springer LNCS 5959, (2011), 169--184.Google ScholarCross Ref
- Chandra, T.D., Hadzilacos, V., and Toueg, S. The weakest failure detector for solving consensus. JACM 43, 4 (1996), 685--722.Google ScholarDigital Library
- Calciu, I., Sen, S., Balakrishnan, M., and Aguilera, M. How to implement any concurrent data structure for modern servers. ACM Operating Systems Rev. 51, 1 (2017), 24--32.Google ScholarDigital Library
- Castañeda, A., Rajsbaum, S., and Raynal, M. Unifying concurrent objects and distributed tasks: Interval-linearizability. JACM 65, 6 (2018), Article 45.Google Scholar
- Dijkstra, E.W. Solution of a problem in concurrent programming control. Comm. ACM 8, 8 (Sept. 1965), 569.Google ScholarDigital Library
- Dijkstra, E.W. Cooperating sequential processes. Programming Languages. Academic Press, 1968, 43--112.Google Scholar
- Dijkstra, E.W. Hierarchical ordering of sequential processes. Acta Informatica 1, 1 (1971), 115--138.Google ScholarDigital Library
- Dolev, D., Dwork, C., and Stockmeyer, L. On the minimal synchronism needed for distributed consensus. JACM 34, 1 (1987), 77--97.Google ScholarDigital Library
- Fatourou, P. and Kallimanis, N.D. Highly-efficient wait-free synchronization. Theory of Computing Systems 55 (2014), 475--520.Google ScholarDigital Library
- Fischer, M.J., Lynch, N.A., and Paterson, M.S. Impossibility of distributed consensus with one faulty process. JACM 32, 2 (1985), 374--382.Google ScholarDigital Library
- Gilbert, S. and Lynch, N. Brewer's conjecture and the feasibility of consistent, available, partition-tolerant web services. SIGACT News 33, 2 (2002), 51--59.Google ScholarDigital Library
- Hadzilacos, V. and Toueg, S. A modular approach to fault-tolerant broadcasts and related problems. TR 94-1425. Cornell Univ. (1994)Google Scholar
- Herlihy, M.P. Wait-free synchronization. ACM Trans. on Prog. Languages and Systems 13, 1 (1991), 124--149.Google ScholarDigital Library
- Herlihy, M.P. and Moss, J.E.B. Transactional memory: Architectural support for lock-free data structures. In Proc. 20th ACM Int'l Symp. Computer Architecture. ACM Press, 1993, 289--300.Google ScholarDigital Library
- Herlihy, M. and Shavit, N. The Art of Multiprocessor Programming. Morgan Kaufmann, ISBN 978-0-12-370591-4 (2008).Google Scholar
- Herlihy, M.P. and Wing, J.M. Linearizability: A correctness condition for concurrent objects. ACM Trans. Programming Languages and Systems 12, 2 (1990), 463--492.Google ScholarDigital Library
- Lamport, L. A new solution of Dijkstra's concurrent programming problem. Commun. ACM 17, 8 (1974), 453--455.Google ScholarDigital Library
- Lamport, L. Concurrent reading and writing. Commun. ACM 20, 11 (Nov. 1977), 806--811.Google ScholarDigital Library
- Lamport, L. Time, clocks, and the ordering of events in a distributed system. Commun. ACM 21, 7 (Sept. 1978), 558--565.Google ScholarDigital Library
- Lamport, L. On interprocess communication, Part I: Basic formalism. Distributed Computing 1, 2 (1986), 77--85.Google ScholarCross Ref
- Lamport, L. A fast mutual exclusion algorithm. ACM Trans. Computer Systems 5, 1 (1987), 1--11.Google ScholarDigital Library
- Lamport, L. The part-time parliament. ACM Trans. Computer Systems 16, 2 (1998), 133--169.Google ScholarDigital Library
- Mostéfaoui, Rajsbaum, S. and Raynal, M. Conditions on input vectors for concensus solvability in asynchronous distributed systems. JACM 50, 6 (2003, 922--954.Google ScholarDigital Library
- Nakamoto, S. Bitcoin: A peer-to-peer electronic cash system. Unpublished manuscript (2008).Google Scholar
- Pease, M., Shostak, R. and Lamport, L. Reaching agreement in the presence of faults. JACM 27 (1980), 228--234.Google ScholarDigital Library
- Peterson, G.L. Myths about the mutual exclusion problem. Information Processing Letters 12, 3 (1981), 115--116.Google ScholarCross Ref
- Peterson, G.L. Concurrent reading while writing. ACM Trans. on Prog. Languages and Systems (1983), 5:46--5:55.Google Scholar
- Rabin, M. Randomized Byzantine generals. Proc. 24th IEEE Symp. Foundations of Computer Science. IEEE Computer Society Press, 1983, 116--124.Google ScholarDigital Library
- Raynal, M. Concurrent Programming: Algorithms, Principles and Foundations. Springer, 2013, ISBN 978-3-642-32026-2.Google ScholarDigital Library
- Raynal, M. Distributed Algorithms for Message-Passing Systems. Springer, 2013, ISBN 978-3-642-38122-5.Google ScholarCross Ref
- Raynal, M. Fault-Tolerant Message-Passing Distributed Systems: An Algorithmic Approach. Springer, 2018, ISBN 978-3-319-94140-0.Google ScholarCross Ref
- Stearns, R.C., Lewis, P.M. and Rosenkrantz, D.J. Concurrency control for database systems. In Proc. 16th Conf. Found. Comp. Sci., (1976), 19--32.Google ScholarDigital Library
- Schneider, F.B. Implementing fault-tolerant services using the state machine approach. ACM Computing Surveys 22, 4 (1990), 299--319.Google ScholarDigital Library
- Shavit, N. and Touitou, D. Software transactional memory. Distributed Computing 10, 2 (1997), 99--116.Google ScholarCross Ref
Index Terms
- Mastering concurrent computing through sequential thinking
Recommendations
60 Years of Mastering Concurrent Computing through Sequential Thinking
Modern computing systems are highly concurrent. Threads run concurrently in shared-memory multi-core systems, and programs run in different servers communicating by sending messages to each other. Concurrent programming is hard because it requires to ...
Transactions for concurrent object-oriented programming systems
OOPSLA/ECOOP '88: Proceedings of the 1988 ACM SIGPLAN workshop on Object-based concurrent programmingConcurrent object-oriented programming systems (COOPS) require support for fault tolerance, concurrency control, consistent commitment of changes and program-initiated rollback. It is sometimes suggested that the classical transaction processing model ...
Verifying concurrent programs against sequential specifications
ESOP'13: Proceedings of the 22nd European conference on Programming Languages and SystemsWe investigate the algorithmic feasibility of checking whether concurrent implementations of shared-memory objects adhere to their given sequential specifications; sequential consistency, linearizability, and conflict serializability are the canonical ...
Comments