MVS™ controls
the flow of work through the system so that all programs obtain a
fair share of the processing. To make efficient use of the system,
you must understand the services that the system provides and observe
the programming conventions for their use.
Most services described in this information can be used by authorized
programs only. An authorized program is a program that runs with APF
authorization, or runs in supervisor state, or runs with a PSW key
of 0-7.
Some of the services can be used by any program, including those
that run without APF authorization, or in problem program state, or
with a PSW key of 8-F. Unless your program is authorized, you should
use these services only if you have the approval of your installation‘s
management.
The services, which you invoke by issuing macros or callable services,
are described in the following information:
- Subtask Creation and Control:
- Occasionally,
you can have your program executed faster and more efficiently by
dividing parts of it into subtasks that compete with each other and
with other tasks for execution time. This topic includes information
about task creation, using an internal START, and communication with a problem program.
- Program Management:
- You can use the system
to aid communication between segments of a program. This topic includes
information about the residency and addressing mode of a module, loading
a module, synchronous exits, checkpoint/restart, and re-entrant modules.
- Serialization:
- Portions of some tasks depend
on the completion of events in other tasks, which requires planned
task synchronization. Planning is also required when more than one
program uses a serially reusable resource. Locking, the must-complete
function, shared direct access storage devices, waiting for an event
to complete, and indicating event completion are discussed in this
topic. This topic also includes information about the global resource
serialization latch manager, which authorized programs can use to
serialize resources within an address space or within a single MVS system.
- Reporting System Characteristics:
- This
topic describes collecting information about resources and their requestors,
using the SRM reporting interface, and obtaining dispatchability data
about address spaces.
- Tracing Applications Using Component Trace:
- Component
trace provides common services for defining and collecting diagnostic
information about components, subsystems, or applications.
- Communication:
- This
information discusses several different forms of communication:
- Interprocessor communication
- Writing operator messages
- Issuing operator commands
- Routing operator commands in a sysplex environment
- Extended MCS consoles.
- Listening for System Events:
- The event notification facility (ENF) allows an authorized program
to listen for the occurrence of a specific system event. For example,
a program could listen for a software record being written to the
logrec data set. When the system writes the record to the logrec data
set, control passes to a specified listener user exit routine. For
a list of the system events that an authorized program can listen
for, see ENF event codes and meanings.
- Using a Service Request Block (SRB):
- Asynchronous
inter-address space communication is available through the use of
an SRB and its associated SRB routine. This topic describes how you
use the macros that initiate the running of an SRB routine and provide
its recovery. It also describes how you can serialize the processing
of an SRB routine and how to transfer control from an SRB to a TCB.
- Virtual Storage Management:
- Virtual
storage allows you to write large programs without the need for complex
overlay structures. This topic describes how to use the GETMAIN,
FREEMAIN, and STORAGE macros to allocate and free virtual storage.
It also includes descriptions of the VSM functions, available through
the use of the VSMLIST, VSMLOC, and VSMREGN macros.
- Accessing the Scheduler Work Area (SWA):
- The
SWA contains information about jobs that are currently in the system.
This topic explains how to write a program that can access the information
that the system stores in the SWA.
- Virtual Lookaside Facility (VLF):
- VLF is intended for use by authorized subsystems or major applications
that perform repeated DASD operations on behalf of end users. VLF
is a set of services that provide an alternate fast-path method of
making frequently used, named data objects available to many users.
This topic will help you decide whether to use VLF and will help
you plan your use of the VLF macros.
- Using the Cross-System Coupling Facility (XCF):
- This topic, which contains information about the cross-system
coupling facility, now appears in z/OS MVS Programming: Sysplex Services Guide.
- Data-In-Virtual:
- Data-in-virtual enables you to create, read, or update external
storage data without the traditional GET and PUT macros. The data,
which is not broken up into individual records, appears in your virtual
storage as a string of contiguous bytes. You can access the data
by using any instruction that you normally use to access data in your
virtual storage. This technique also provides better performance than
the traditional access methods for many applications.
- Sharing Application Data (Name/Token Callable Services):
- Name/token callable services allow a user to share data between
two programs running under the same task, or between two or more tasks
or address spaces. This topic includes descriptions of the levels
of name/token pairs, ownership and deletion of the pairs, description
of the levels for the cross memory uses of the name/token services,
and an example of using the services.
- Processor Storage Management:
- The system administers
the use of processor storage (that is, central and expanded storage)
and directs the movement of virtual pages among auxiliary, expanded,
and central storage in page size blocks. The services provided allow
you to release virtual storage contents, load virtual storage areas
into central storage, make virtual storage pages read-only or modifiable,
and page out virtual storage areas from central storage.
- Sharing Data in Virtual Storage (IARVSERV Macro):
- This
topic describes the IARVSERV macro, which provides services that allow
programs to share virtual storage in address spaces or data spaces.
The topic also includes information about the IARR2V macro, which
converts a central storage address to a virtual storage address.
- The Nucleus:
- This
topic includes descriptions of the functions available through the
use of the DATOFF and NUCLKUP macros.
- Providing Recovery:
- When
your program encounters an error, the program might end abnormally
unless you provide recovery. To recover from errors, you can write
routines called recovery routines that get control when the error
occurs. These routines can attempt to correct the error and allow
your program to resume normal processing. This topic explains recovery
concepts and how to write recovery routines.
- Processing Program Interruptions:
- The
system offers many services to detect and process abnormal conditions
during system processing. Some conditions encountered in a program
cause program interruptions or program exceptions. This topic includes
how to specify user exit routines, using the SPIE or ESPIE macros,
and function performed in user exit routines.
- Dumping Virtual Storage (SDUMPX and SDUMP Macros):
- This
topic describes how to obtain SVC dumps using the SDUMPX and SDUMP
macros. It includes deciding when to request a dump, using the SYS1.DUMPnn
data set, defining the contents of the dump, and suppressing duplicate
dumps.
- Protecting the System:
- This
topic includes the maintenance of system integrity, the use of the
authorized programming facility, the use of the resource access control
facility, changing system status, and protecting low storage.
- Exit Routines:
- This
topic contains information about asynchronous exit routines, timer
disabled interrupt exit routines, and dynamic exits services. Dynamic
exits services allow you to define exits and control their use within
a program using the CSVDYNEX macro.
- User-Written SVC Routines:
This
topic contains information needed to write SVC routines. It includes
the characteristics of the SVC routines, program conventions for SVC
routines, and ways to insert SVC routines into the control program.
- Accessing Unit Control Blocks (UCBs):
- This
topic describes how to obtain and use information about unit control
blocks (UCBs) and about configuration changes in the system.
- Dynamic Allocation:
- This
topic describes the functions provided by dynamic allocation. It describes
installation options you can use to control the processing of dynamic
allocation.
- Requesting Dynamic Allocation Functions:
- The topic includes a description of the parameter list used to
request dynamic allocation functions, the return codes, error codes,
and information codes.
- Dynamic Output:
- This topic explains how to use the JES2 and JES3 4.2.1 or later
dynamic output facility. This facility enables a program to dynamically
describe a system output data set's processing options and to dynamically
allocate that data set.
- Scheduler JCL Facility (SJF):
- This topic describes how to use the Scheduler JCL Facility to
manipulate text unit data that represents processing options for system
output (sysout) data sets.
- Processing User Trace Entries in the System Trace Table:
- This topic describes formatting a USRn trace table entry, interpreting
return codes from the formatter, and handling errors.
- Using the Unit Verification Service:
- This topic describes using the unit verification service to obtain
information from the eligible device table.
Note: IMPORTANT -------- READ THIS
Keep in mind how the information
uses the following terms: