Concurrent Programming: Some Concurrent Programming Methods
Douik, Samir · eScholarship@McGill (McGill) · 1990
Cited by 0
Read the abstract, see who wrote it and who cites it, and get the citation in APA, MLA, Chicago or Harvard.
About 6,384 papers for “concurrent programming”
Douik, Samir · eScholarship@McGill (McGill) · 1990
Cited by 0
Hassan Gomaa · Wiley Encyclopedia of Computer Science and Engineering · 2007
Abstract Concurrent programming refers to the development of programs that address the parallel execution of several tasks. A process or task represents the execution of a sequential program or a sequential component in a concurrent program. Each task deals with one sequential thread of execution; thus, no concurrency is allowed within a task. However, overall system concurrency is obtained by having multiple tasks executing in parallel. The tasks often execute asynchronously (i.e., at different speeds) and are relatively independent of each other for significant periods of time. From time to time, the tasks need to communicate and synchronize their operations with each other. Concurrent programming has been applied extensively in the development of operating systems, database systems, real‐time systems, interactive systems, and distributed systems.
Cited by 1
Antoine Miné · 2013
Cited by 0
Gehani, Narain, McGettrick, Andrew D · CERN Document Server (European Organization for Nuclear Research) · 1988
Cited by 0
Purdue University Press eBooks · 2013
Cited by 253
Bryant, Randal E., Dennis, Jack B. · Caltech Library · 1982
In this paper the main approaches to constructing concurrent programs will be presented and compared. As a basis for comparison. two examples of systems incorporating concurrent operations have been chosen. and programs for these examples will be presented using the different approaches to concurrent programming. Of particular interest are the semantic issues in language design. i.e. how the computation is expressed. rather than the detailed syntax of the languages. Hence. in the interest of uniformity. the example programs will be written in PASCAL [22] modified to include the necessary constructs. As will be seen. the different approaches to concurrent programming differ greatly in their expressive power. clarity of expression. and ease and efficiency of implementation.
Cited by 0Open access
Eric Vennaro · Apress eBooks · 2023
Concurrent programming is essential to application development; it allows your iOS application to perform multiple operations simultaneously while allowing the user to interact with the application seemlessly. However, with great power comes great responsibility, as concurrent programming presents some of the most challenging aspects of application development. To mitigate some of the challenges when using concurrent programming, it is crucial to have a well-designed system that considers the fundamental concepts of concurrent programming and the capabilities of the iOS ecosystem.
Cited by 0
Jill Hewitt, Raymond J. Frank · 1989
In the previous chapters we have discussed object-oriented program design, emphasising the need to write down an informal strategy to solve the problem. The informal strategy provides us with a basis of a solution since the nouns can provide us with object classes and the verbs their messages or methods. The object classes have been implemented in software using standard Modula-2 language components. These components each possess a clearly defined interface. The complete program consists of all these components assembled together with each component communicating with the others only through these interfaces. However, all the problems we have solved have been essentially sequential in nature. The computer generates a colour, then we attempt to guess it, then it gives us a hint and so on.
Cited by 21
2017
This chapter discusses implementation side of real-time embedded software, with the focus being placed on the mechanisms of intertask synchronization and communication. The chapter gives the POSIX threads, or Pthreads as an example to show the issues and their solutions in concurrent programming. The chapter explains the concepts of race conditions and critical sections and then introduces the various solutions to process synchronization. The mutex, condition variable, and semaphore approaches are only suitable for synchronization between threads of a single process. One way to synchronize data sharing between processes is to use named semaphores. The chapter further introduces widely used real-time signals and timer, and discusses how to use the kernel facilities to implement periodic tasks. A periodic task can be implemented with a process or a thread, depending on the computation complexity of the task.
Cited by 12
André Schiper · 1989
Cited by 1
Trilok Vyas, Yujie Liu, Michael Spear · 2013
The addition of transactional memory (TM) support to existing languages provides the opportunity to create new software from scratch using transactions, and also to simplify or extend legacy code by replacing existing synchronization with language-level transactions. In this paper, we describe our experiences transactionalizing the memcached application through the use of the GCC implementation of the Draft C++ TM Specification. We present experiences and recommendations that we hope will guide the effort to integrate TM into languages, and that may also contribute to the growing collective knowledge about how programmers can begin to exploit TM in existing production-quality software.
Cited by 0
Steven Taylor · 1996
Abstract : Proposed at a time when the community was primarily concerned with statically structured problems in scientific computing, the Scalable Concurrent Programming Project was motivated by the following general perceptions: (1) For much of this century, scientific computing has been dominated by large regular problems and their associated computational techniques. This has been a direct result of relatively poor uniprocessor performance, simplistic software tools, and the associated education from previous generations; (2) Device technology is rapidly approaching the physical limits of CMOS technology. During the next decade vast improvements in uniprocessor performance will be increasingly difficult and expensive to obtain. Concurrency is the door to the future; Scalability is the key; and (3) As performance improves, we will not solve the same problems faster, but rather we will solve completely new and more realistic computational problems. These irregular problems will combine computations in structures, materials, fluids, and electromagnetics. They will be three-dimensional in nature, involve complex moving boundaries, and resolve transient effects. They will become the cornerstone of design, test, and manufacturing in a broad range of industries currently dominated by empiricism.
Cited by 0
Caromel, Denis, Centre National de la Recherche Scientifique (CNRS), 54 - Vandoeuvre-les-Nancy (France). Centre de Recherche en Informatique de Nancy (CRIN), Nancy-1 Univ., 54 - Vandoeuvre-les-Nancy (France). Centre de Recherche en Informatique de Nancy (CRIN) et al. · OpenGrey (Institut de l'Information Scientifique et Technique) · 1990
Dans : Proceedings TOOLS PACIFIC'90 (Technology of Object-Oriented Languages and Systems), Sydney (Australie), novembre 1990
Cited by 6
Per Brinch Hansen · ACM Computing Surveys · 1973
This paper describes the evolution of language features for multiprogramming from event queues and semaphores to critical regions and monitors. It suggests \nthat the choice of language concepts should be guided by two simple principles: First, it should be possible to understand a concurrent program in time-independent \nterms by an effort proportional to its size; secondly, it should be possible to state assumptions about invariant relationships among program components and have these assumptions checked automatically. The central \nproblems of multiprogramming are illustrated by annotated algorithms written in a well-structured programming language.
Cited by 151
Vijay A. Saraswat, Martin Rinard · 1990
Cited by 302
Michael B. Feldman, Michael B. Feldman · 1990
Cited by 0
R. H. Perrott · Lecture notes in computer science · 1982
Cited by 1
Seán Matthews · 1993
Cited by 0
Vijay Saraswat · The MIT Press eBooks · 1993
Concurrent Constraint Programming introduces a new and rich class of programming languages based on the notion of computing with partial information, or constraints, that synthesize and extend work on concurrent logic programming and that offer a promising approach for treating thorny issues in the semantics of concurrent, nondeterministic programming languages. Saraswat develops an elegant and semantically tractable framework for computing with constraints, emphasizing their importance for communication and control in concurrent, programming languages. He describes the basic paradigm, illustrates its structure, discusses various augmentations, gives a simple implementation of a concrete language, and specifies its connections with other formalisms. In this framework, concurrently executing agents communicate by placing and checking constraints on shared variables in a common store. The major form of concurrency control in the system is through the operations of Atomic Tell—an agent may instantaneously place constraints only if they are consistent with constraints that have already been placed—and Blocking Ask—an agent must block when it checks a constraint that is not yet known to hold. Other operations at a finer granularity of atomicity are also presented. Saraswat introduces and develops the concurrent constraint family of programming languages based on these ideas, shows how various constraint systems can naturally realize data structures common in computer science, and presents a formal operational semantics for many languages in the concurrent constraint family. In addition, he provides a concrete realization of the paradigm on a sequential machine by presenting a compiler for the concurrent constraint language Herbrand and demonstrates a number of constraint-based concurrent programming techniques that lead to novel presentations of algorithms for many concurrent programming problems.
Cited by 572
Bonan Liu · Apress pocket guides. · 2025
Guides present concise summaries of cutting-edge developments and working practices throughout the tech industry.Shorter in length, books in this series aim to deliver quick-to-read guides that are easy to absorb, perfect for the time-poor professional.
Cited by 0Open access