Global Resource Serialization Explained

Global Resource Serialization (GRS) is the component within the IBM z/OS operating system responsible for enabling fair access to serially reusable computing resources, such as datasets and tape drives or virtual resources, such as lists, queues, and control blocks. Programs can request exclusive access to a resource (which means that program and all subsequent requesting programs are blocked until that program is given access to the resource), usually requested when a program needs to update the resource or shared access (which means that multiple programs can be given access to the resource), usually requested when a program only needs to query the state of the resource. GRS manages all requests in FIFO (first in/first out) order.[1]

Scoping

GRS manages resources at three different levels of scoping:

  1. STEP - this level is for resources that exist within a single MVS address space. Only threads (tasks) within that address space can request access to the resource.
  2. SYSTEM - this level is for resources that exist within a single MVS instance. Any thread running on the system can request access to the resource.
  3. SYSTEMS - also known as GLOBAL, these resources are accessible by multiple MVS instances. Any thread running on a system in the GRS complex can request access to the resource.

Clustering

In order for GRS to serialize resources between multiple systems, the systems must be clustered. There are several options to enable this clustering:

Similar

CA, Inc. licenses a product called "Multi-Image Manager" (CA-MIM) which contains a component called "Multi-Image Integrity" (MII) which can be used to implement similar functions to GRS.

Notes and References

  1. IBM Knowledge Center: https://www.ibm.com/docs/en/zos/2.5.0?topic=ieasysxx-grs