Global Resource Serialization

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.

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:
 * GRS Ring - each of the systems (LPARs) are connected with channel-to-channel adapters (CTCAs) in a ring configuration. The GRS software sends messages around the ring to ensure the integrity of the complex and to arbitrate correct succession of ownership.
 * Basic Sysplex - each of the systems in the sysplex has complete connectivity to every other system via CTCAs or ESCON CTCAs, managed by the XCF (Cross System Coupling Facility) component. The GRS component utilizes the Messaging and Group Services provided by XCF to replace and augment the function through the GRS managed CTCAs.
 * GRS Star (Parallel Sysplex) - Rather than using a message passing protocol to manage resource ownership succession, GRS uses the locking services provided by the XES (Cross System Extended Services) component of MVS. Use of locking services requires a lock structure (called ISGLOCK) to be created in a Coupling Facility (CF).

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.