Note: In this topic, the term program refers
to a task or service request block (SRB) routine.
In a multi-tasking, multi-processing environment, resource serialization
is needed to coordinate access to resources that are used by more
than one program. An example of why resource serialization is needed
occurs when one program is reading from a data set and another program
needs to write to the data set. To maintain data integrity, the program
that needs to write must wait until the program that is reading the
data set is finished. Both programs need serialization to coordinate
access to the data set.
z/OS® provides resource serialization
services that programs can use to serialize access to resources. The
following examples describe other situations that require serialization:
- Using data in subpools that are shared between programs
- Using data that is referenced by more than one program (for example,
attached tasks can execute at the same time as the attaching task
on different processors)
- Accessing data sets that are shared among programs in the same
address space, if the programs update the data
- Concurrent queue manipulation by programs.
In addition to the serialization function, some of the serialization
services provided on MVS™ can
be used to:
- Synchronize the execution of programs that depend on the completion
of events in other programs
- Synchronize the execution of programs with minimal overhead.
- Ensure that a routine that owns a critical resource can complete
processing of the resource without interruptions that could cause
the routine to end.
This information describes the resource serialization services
that are available on MVS and
the functions that each service performs, and provides guidelines
for choosing a serialization service that is appropriate for your
application.