Thus, the major drawback of round-robin synchronization is waiting time for
each process—the whole round to be wasted.
Another drawback of round-robin synchronization is wastage of critical
resource: no matter whether the process is in need or not the resource (slot of time)
is allocated and therefore ALL processes that requested synchronization will wait.
Timing of executing the right to have a slot of communication becomes costly for
all the rest. It is clear that it is worth trying to separate concerns—personal interests
and system interests are not always matching each other.
This round-robin approach was criticized, since Dijkstra as if time as a resource
is in shortage one SHOULD NOT USE time as a resource to arrange coexistence of
processes, their communication, and completion.
It means that WHILE and similar waiting constructions should be used very
carefully when it concerns a synchronization. Our personal opinion is that these
types of construction should be prohibited from concurrency management schemes.
Below some principles of concurrency handling are presented as they were
developed by computing society to achieve some decency in solving a synchronization problem.
12.3 Communication of Sequential Processes: Principles
of Synchronization
For successful communication (in philosophy—an interaction) of processes, the
system must provide race free condition; in other words, no matter which process
comes first this time rule of entering into interaction session must not depend upon
ordering of execution;
Processes interests are different in their own time and interacting time, thus there
is a reason to separate behavior of the processes as a thing for itself and thing for us
(more detail see E. Kant, Critic of pure reason) [6]. A section of the interaction of a
process with others using resources of the system was called a critical section.
Critical section, therefore, had to have the following required properties,
Fig. 12.4:
Figure 12.4 presents only obligatory conditions. Above them, one might introduce desirable properties of synchronization system as we have mentioned
PRE-smartness, for example. Thus, good concurrency system solution should be
(Fig. 12.5):
Let us consider several known solutions—well, fundamental ones, and check
how these rules—obligatory and desirable are implemented.
The first known solution of a problem of mutual exclusion for processes that
match the requirements above was done—to my best knowledge by Dekker [3, 6],
Fig. 12.6.
12.2 Concurrency Support for Resilient Computing
183
each process—the whole round to be wasted.
Another drawback of round-robin synchronization is wastage of critical
resource: no matter whether the process is in need or not the resource (slot of time)
is allocated and therefore ALL processes that requested synchronization will wait.
Timing of executing the right to have a slot of communication becomes costly for
all the rest. It is clear that it is worth trying to separate concerns—personal interests
and system interests are not always matching each other.
This round-robin approach was criticized, since Dijkstra as if time as a resource
is in shortage one SHOULD NOT USE time as a resource to arrange coexistence of
processes, their communication, and completion.
It means that WHILE and similar waiting constructions should be used very
carefully when it concerns a synchronization. Our personal opinion is that these
types of construction should be prohibited from concurrency management schemes.
Below some principles of concurrency handling are presented as they were
developed by computing society to achieve some decency in solving a synchronization problem.
12.3 Communication of Sequential Processes: Principles
of Synchronization
For successful communication (in philosophy—an interaction) of processes, the
system must provide race free condition; in other words, no matter which process
comes first this time rule of entering into interaction session must not depend upon
ordering of execution;
Processes interests are different in their own time and interacting time, thus there
is a reason to separate behavior of the processes as a thing for itself and thing for us
(more detail see E. Kant, Critic of pure reason) [6]. A section of the interaction of a
process with others using resources of the system was called a critical section.
Critical section, therefore, had to have the following required properties,
Fig. 12.4:
Figure 12.4 presents only obligatory conditions. Above them, one might introduce desirable properties of synchronization system as we have mentioned
PRE-smartness, for example. Thus, good concurrency system solution should be
(Fig. 12.5):
Let us consider several known solutions—well, fundamental ones, and check
how these rules—obligatory and desirable are implemented.
The first known solution of a problem of mutual exclusion for processes that
match the requirements above was done—to my best knowledge by Dekker [3, 6],
Fig. 12.6.
12.2 Concurrency Support for Resilient Computing
183
