Affiliation:
1. Instituto de Matemáticas, UNAM, Mexico
2. Univ. Rennes IRISA, 35042 Rennes, France
Abstract
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 cope with many possible, unpredictable behaviors of the processes, and the communication media. The article argues that right from the start in 1960's, the main way of dealing with concurrency has been by reduction to sequential reasoning. It traces this history, and illustrates it through several examples, from early ideas based on mutual exclusion (which was initially introduced to access shared physical resources), passing through consensus and concurrent objects (which are immaterial data), until today distributed ledgers. A discussion is also presented, which addresses the limits that this approach encounters, related to fault-tolerance, performance, and inherently concurrent problems.
Publisher
Association for Computing Machinery (ACM)
Cited by
4 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Assessing Distributed Consensus Performance on Mobile Cyber-Physical System Swarms;2023 International Wireless Communications and Mobile Computing (IWCMC);2023-06-19
2. Exponential Organizations;Advances in Business Information Systems and Analytics;2023-04-28
3. Loose Coupling: An Invisible Thread in the History of Technology;IEEE Access;2023
4. FIFO and Atomic broadcast algorithms with bounded message size for dynamic systems;2021 40th International Symposium on Reliable Distributed Systems (SRDS);2021-09