The basics of initialization and termination
- Process
- A collection of resources (code and data).
- Enclave
- A collection of program units consisting of at least one main routine.
- Thread
- The basic unit of execution.
The z/OS UNIX System Services (z/OS UNIX) program management model differs somewhat from the Language Environment program management model. Refer to Mapping the POSIX program management model to the Language Environment program management model for more information. For more detailed definitions of program management and other Language Environment terms, see Program management model.
When you run a routine, Language Environment initializes the runtime environment by creating a process, an enclave, and an initial thread. You can modify initialization by running a user exit, written either in assembler or in an HLL.
During termination, threads (either single or multiple, depending on whether your application is POSIX-conforming), enclaves, and processes are terminated. Through the runtime options of Language Environment and callable services for termination, you can control how a thread, enclave, or process terminates. For example, you can control whether an abend or a return code is generated from an application that terminates with an unhandled condition of severity 2 or greater. See Termination behavior for unhandled conditions.
- ABTERMENC
- Specifies whether an enclave terminates with an abend or with a return code and a reason code when there is an unhandled condition of severity 2 or greater
- TERMTHDACT
- Specifies the level of information that you want to receive after an unhandled condition of severity 2 or greater causes a thread to terminate
- CEE3ABD
- Terminates an enclave with or without clean-up and the value of clean-up specifies which dumps to take during termination.
- CEE3AB2
- Terminates an enclave with or without clean-up, whose value specifies which dumps to take during termination, and a user specified reason code.
- CEE3GRC
- Returns the user enclave return code to your routine. Along with CEE3SRC, it allows you to use return code-based programming techniques.
- CEE3PRM
- Returns to your routine the parameter string specified when your application was invoked. Use CEE3PR2 for parameter strings greater than 80 characters.
- CEE3PR2
- Returns to the calling routine the argument string and its associated length, specified at program invocation.
- CEE3SRC
- Sets the user enclave return code, which is used to calculate the final enclave return code at termination
- CEEBXITA
- An assembler user exit for enclave initialization, and enclave and process termination
- CEEBINT
- An HLL user exit (written in C, C++ (with C linkage), Enterprise PL/I for z/OS or PL/I for MVS & VM, or Language Environment-conforming assembler) called at enclave initialization
- CEEPIPI
- CEEPIPI performs various initialization functions
See Using preinitialization services for more information about the preinitialization interface.
See z/OS Language Environment Programming Reference for syntax information about runtime options and callable services.