Concurrent control with “readers” and “writers”

  title={Concurrent control with “readers” and “writers”},
  author={Pierre-Jacques Courtois and F. Heymans and David Lorge Parnas},
  journal={Commun. ACM},
The problem of the mutual exclusion of several independent processes from simultaneous access to a “critical section” is discussed for the case where there are two distinct classes of processes known as “readers” and “writers.” The “readers” may share the section with each other, but the “writers” must have exclusive access. Two solutions are presented: one for the case where we wish minimum delay for the readers; the other for the case where we wish writing to take place as early as possible. 

Figures from this paper

Concurrent reading and writing with replicated data objects
Two solutions are presented based on the use of replicated versions of the data object that solve a potential starvation problem persistent in previously reported solutions and eliminates synchronization requirements between “Readers” and “Writers" by incorporating an optimized retry mechanism.
Process Synchronization with Readers and Writers Revisited
  • J. Kawash
  • Computer Science
    J. Comput. Inf. Technol.
  • 2005
This paper presents and proves correct a third semaphore-based solution to the readers-writers problem, which is starvation-free for both reader and writer processes and is the first fair semaphorean solution that at the same time allows several readers to access the resource simultaneously.
A reply to comments on “A comparison of two synchronizing concepts”
The original solution to the readers and writers problem includes the following refinement: when a writer decides to make a request, as few readers as possible should be able to complete a request ahead of it.
Concurrent reading and writing
Two general theorems are proved, and some algorithms are presented to illustrate their use, including a solution to the general problem in which a read is repeated if it might have obtained an incorrect result, and two techniques for transmitting messages between processes.
Concurrent Reading While Writing
The problem of asynchronous processes reading shared data while the data are being modified by another process is considered and the number of copies used by all algorithms is shown to be the best possible.
Concurrent reading while writing II: The multi-writer case
  • G. Peterson, J. Burns
  • Computer Science
    28th Annual Symposium on Foundations of Computer Science (sfcs 1987)
  • 1987
An algorithm is given for the multi-writer version of the Concurrent Reading While Writing (CRWW) problem. The algorithm solves the problem of allowing simultaneous access to arbitrarily sized shared
Comments on “A comparison of two synchronizing concepts by P.B. Hansen”
The solutions offered by Hansen [4] to the second of the "Readers and Writers" problems which were originally posed in [t] call for a few comments. I t was stated in [t] that "once a writer is ready
Reader-Writer Exclusion Supporting Upgrade and Downgrade with Reader-Priority
The Reader-Writer Exclusion problem [1] seeks to provide a lock that protects some critical section of code for two classes of processes, readers and writers, where multiple readers are permitted to
Constant RMR solutions to reader writer synchronization
This work presents the first constant RMR complexity algorithms for all three versions of the Reader-Writer Exclusion problem - one where writers have priority over readers, another where readers have priority, and the last where neither class has priority over the other and no process may starve.
Analysis and solution of non-preemptive policies for scheduling readers and writers
This paper considers non-preemptive scheduling policies for solving the readers-writers problem and defines scheduling points and items and presents their semaphore-based solutions with a common style.


The structure of the “THE”-multiprogramming system
A multiprogramming system is described in which all activities are divided over a number of sequential processes, in each of which one or more independent abstractions have been implemented.
Solution of a problem in concurrent programming control
A number of mainly independent sequential-cyclic processes with restricted means of communication with each other can be made in such a way that at any moment one and only one of them is engaged in
The structure of the “THE”-multiprogramming system
A multiprogramming system is described in which all activities are divided over a number of sequential processes, in each of which one or more independent abstractions have been implemented.
Additional comments on a problem in concurrent programming control
The structure of the “THE”-multiprogrnmming system
  • Comm. ACM 11,
  • 1968
Communications October ACM Number
  • Communications October ACM Number
  • 1971