A Service Request Block ( SRB ) is a data structure of MVS/370 and successor versions of IBM mainframe operating systems employed mainly, but not exclusively, by the Start Input/Output interface.
59-556: An SRB may be considered, in the abstract, to be a highly optimized Task Control Block (TCB), one which has few, if any, associated resources other than access to the processor itself. All system resources which are utilized under an SRB must be accessed through the use of "branch entries", some of which are new entries to traditional system services which were formerly accessed exclusively using SVC instructions (which an SRB may not employ for any purpose other than abnormally terminating itself in which case SVC 13, ABEND, may be used, however
118-616: A Cross-system Coupling Facility (XCF) and a hardware component called a Hardware Coupling Facility (CF or Integrated Coupling Facility, ICF, if co-located on the same mainframe hardware). Multiple sysplexes can be joined via standard network protocols such as IBM's proprietary Systems Network Architecture (SNA) or, more recently, via TCP/IP . The z/OS operating system (MVS' most recent descendant) also has native support to execute POSIX and Single UNIX Specification applications. The support began with MVS/SP V4R3, and IBM has obtained UNIX 95 certification for z/OS V1R2 and later. The system
177-660: A "branch entry" to the POST system service (which is normally SVC 2, but in this special case would be a call to the address contained in CVT0PT01), and specifying the ECB which is associated with its SRB, and possibly a "message" to the TCB. The "message", should it be present, is often placed in the lowest 24 bits of the ECB, and which is otherwise unused. The highest eight bits are used by the system. Disk device access and network device access
236-525: A "current directory" concept), and RACF supports setting up access controls based on filename patterns, analogous to access controls on directories on other platforms. As with other members of the OS family, MVS' data sets are record-oriented . MVS inherited three main types from its predecessors: Sequential and ISAM datasets could store either fixed-length or variable length records, and all types could occupy more than one disk volume. All of these are based on
295-576: A 4 KiB granularity (for SVS), and the requests came out of a 16MiB address space even if physical storage was smaller. As in OS/360 MVT, TSO users in SVS are assigned to a TSO region during login processing and competed with other users assigned to the same region, with essentially the same swap-in and swap-out logic as TSO in MVT. In the mid-1970s IBM introduced MVS, which not only supported virtual storage that
354-441: A Local SRB (priority over only the local address space TCBs); and MVS's dispatcher must manage all of these with absolute consistency across as many as two processors (MVS/370) and as many as sixteen processors (successor systems). More than sixteen processors are available on some z/System models. z/System support for zIIP has dramatically increased the use of SRBs (over and above their traditional Start Input/Output usage). An SRB
413-452: A TCB to be dispatched, the dispatcher loads registers from the TCB and loads the PSW from the top RB of the TCB, thereby dispatching the unit of work. OS/360 has the following types of request blocks An RB contains several fields, among them an old PSW, old general registers, a PSW and a wait count. The Dispatcher is a routine in the nucleus that selects the work to be dispatched. It selects
472-476: A control program and given processing cycles. Unlike a single-programming operating system, these systems maximize the use of the processing potential by dividing processing cycles among the instructions associated with several different concurrently running programs. This way, the control program does not have to wait for the I/O operation to complete before proceeding. By executing the instructions for multiple programs,
531-453: A hierarchy of error-handling programs, in system (kernel/'privileged') mode, called Functional Recovery Routines, and in user ('task' or 'problem program') mode, called "ESTAE" (Extended Specified Task Abnormal Exit routines) that are invoked in case the system detected an error (hardware processor or storage error, or software error). Each recovery routine made the 'mainline' function reinvokable, captured error diagnostic data sufficient to debug
590-468: A hierarchy whose levels are separated with dots, e.g. "DEPT01.SYSTEM01.FILE01". Each level in the hierarchy can be up to eight characters long. The total filename length is a maximum of 44 characters including dots. By convention, the components separated by the dots are used to organize files similarly to directories in other operating systems. For example, there are utility programs that performed similar functions to those of Windows Explorer (but without
649-628: A major design jump, to assume that despite the very best software development and testing techniques, that 'problems WILL occur.' This profound assumption was pivotal in adding great percentages of fault-tolerance code to the system and likely contributed to the system's success in tolerating software and hardware failures. Statistical information is hard to come by to prove the value of these design features (how can you measure 'prevented' or 'recovered' problems?), but IBM has, in many dimensions, enhanced these fault-tolerant software recovery and rapid problem resolution features, over time. This design specified
SECTION 10
#1732794119754708-570: A number of free Incremental Change Releases (ICRs) and Selectable Units (SUs) and chargeable program products and field developed programs that IBM eventually bundled as part of z/OS. These include: In the late seventies and early eighties IBM announced: DF/DS added new device support, and IBM announced that it would no longer add device support to the free base. DF/EF added the Improved Catalog Structure (ICF) as an alternative to VSAM catalogs and Control Volumes (CVOLs), but it
767-479: A result of later hardware enhancements one instance of an operating system (either MVS, or VM with guests, or other) could also occupy a Logical Partition (LPAR) instead of an entire physical system. Multiple MVS instances can be organized and collectively administered in a structure called a systems complex or sysplex , introduced in September, 1990. Instances interoperate through a software component called
826-479: A result, MVS was able to address the business problems brought on by the need to process large amounts of data. Multiprocessing systems are either loosely coupled, which means that each computer has access to a common workload, or tightly coupled , which means that the computers share the same real storage and are controlled by a single copy of the operating system . MVS retained both the loosely coupled multiprocessing of Attached Support Processor (ASP) and
885-424: A session to create diagnostic procedures, or invoke already-stored procedures. The procedures trapped special events, such as the loading of a program, device I/O, system procedure calls, and then triggered the activation of the previously defined procedures. These procedures, which could be invoked recursively, allowed for reading and writing of data, and alteration of instruction flow. Program Event Recording hardware
944-503: A shared virtual area used for various purposes, including inter-job communication. IBM promised that application areas would always be at least 8MB. This made MVS the perfect solution for business problems that resulted from the need to run more applications. MVS maximized processing potential by providing multiprogramming and multiprocessing capabilities. Like its MVT and OS/VS2 SVS predecessors, MVS supported multiprogramming ; program instructions and associated data are scheduled by
1003-402: A single virtual address space , shared by all jobs. OS/VS1 is OS/360 MFT within a single virtual address space; OS/VS2 SVS was OS/360 MVT within a single virtual address space. So OS/VS1 and SVS in principle had the same disadvantages as MFT and MVT, but the impacts are less severe because jobs and operators could request much larger partitions with a 2 KiB granularity (for OS/VS1) or regions with
1062-684: A user can allocate a Unix file as though it were a dataset, with some restrictions. The Hierarchical File System (HFS) (not to be confused with Apple's Hierarchical File System ) uses a unique type of dataset, while the newer z/OS File System (zFS) (not to be confused with Sun's ZFS ) uses a VSAM Linear Data Set (LDS). Programs running on network-connected computers (such as the IBM AS/400 ) can use local data management interfaces to transparently create, manage, and access VSAM record-oriented files by using client-server products implemented according to Distributed Data Management Architecture (DDM). DDM
1121-595: A valid reportable failure. Also, if a recovery routine failed to collect significant diagnostic data such that the original problem was solvable by data collected by that recovery routine, IBM standards dictated that this fault was reportable and required repair. Thus, IBM standards, when rigorously applied, encouraged continuous improvement. IBM continued to support the major serviceability tool Dynamic Support System (DSS) that it had introduced in OS/VS1 and OS/VS2 Release 1. This interactive facility could be invoked to initiate
1180-422: Is command line , although facilities, such as ISPF , were added later for form-driven interfaces. MVS took a major step forward in fault-tolerance, built on the earlier STAE facility, that IBM called software recovery . IBM decided to do this after years of practical real-world experience with MVT in the business world. System failures were now having major impacts on customer businesses, and IBM decided to take
1239-463: Is a highly-optimized instance of a Process control block in these MVS/370 and successor systems. A TCB is a general-purpose instance of a Process control block in these OS/360 and successor systems. Task Control Block The Task Control Block ( TCB ) contains the state of a task in, e.g., OS/360 and successors on IBM System/360 architecture and successors. In OS/360 , OS/VS1 , SVS , MVS/370 , MVS/XA , MVS/ESA , OS/390 and z/OS ,
SECTION 20
#17327941197541298-501: Is also the base architecture for the MVS DB2 server that implements Distributed Relational Database Architecture (DRDA). MVS includes a facility called Virtual I/O (VIO), with which temporary datasets can be stored in simulated tracks on the paging datasets, eliminating the overhead of allocation but adding some processing overhead. In addition to new functionality that IBM added with releases and sub-releases of OS/VS2, IBM provided
1357-518: Is available to SRBs using the "improved control interval processing" feature of VSAM and the "fast path" feature of VTAM, respectively. With the introduction of MVS/370 and successor systems, a whole new environment was introduced: the Service Request Block (SRB), which generally has a higher priority than any TCB, and, indeed, which itself has two distinct priorities: a Global SRB (priority over all local address space SRBs and TCBs) and
1416-455: Is available. This is a significant advance over MFT's memory management, but has some weaknesses: if a job allocates memory dynamically (as most sort programs and database management systems do), the programmers has to estimate the job's maximum memory requirement and pre-define it for MVT. A job step that contains a mix of small and large programs wastes memory while the small programs run. Most seriously, memory can become fragmented , i.e.,
1475-464: Is the most commonly used operating system on the System/370 , System/390 and IBM Z IBM mainframe computers . IBM developed MVS, along with OS/VS1 and SVS , as a successor to OS/360 . It is unrelated to IBM's other mainframe operating system lines, e.g., VSE , VM , TPF . First released in 1974, MVS was extended by program products with new names multiple times, retaining the term MVS in
1534-556: Is typically used in business and banking, and applications are often written in COBOL . COBOL programs were traditionally used with transaction processing systems like IMS and CICS . For a program running in CICS, special EXEC CICS statements are inserted in the COBOL source code. A preprocessor (translator) replaces those EXEC CICS statements with the appropriate COBOL code to call CICS before
1593-530: The GUI and usually in batch processing mode) - adding, renaming or deleting new elements and reporting all the contents of a specified element. However, unlike in many other systems, these levels are not usually actual directories but just a naming convention (like the original Macintosh File System , where folder hierarchy was an illusion maintained by the Finder). TSO supports a default prefix for files (similar to
1652-484: The Input/Output Supervisor (IOS). IBM's use of "OS/VS2" emphasized upwards compatibility: application programs that ran under MVT did not even need recompiling to run under MVS. The same Job Control Language files could be used unchanged; utilities and other non-core facilities like TSO ran unchanged. IBM and users almost unanimously called the new system MVS from the start, and IBM continued to use
1711-500: The VTOC disk structure. Early IBM database management systems used various combinations of ISAM and BDAM datasets - usually BDAM for the actual data storage and ISAM for indexes. In the early 1970s IBM's virtual memory operating systems introduced a new file management component, VSAM , which provided similar facilities: These VSAM formats became the basis of IBM's database management systems , IMS/VS and DB2 - usually ESDS for
1770-408: The interactive time-sharing interface, which was mainly used to run development tools and a few end-user information systems. ISPF is a TSO application for users on 3270-family terminals (and later, on VM as well), which allows the user to accomplish the same tasks as TSO's command line but in a menu and form oriented manner, and with a full screen editor and file browser. TSO's basic interface
1829-473: The "branch entry" to ABTERM is really more appropriate). When employed by the Start Input/Output interface, an SRB is always paired with an Input/Output Supervisor Block (IOSB). When otherwise employed, an SRB facilitates inter - address-space communication in general, and inter - application communication in particular. SRBs may also be employed for intra -address-space processes, where
Service Request Block - Misplaced Pages Continue
1888-462: The SRBs performing almost all of the work in the address space, and the TCB merely synchronizing the SRBs and responding to communications from the system operator. For purposes of such synchronization, the TCB will usually issue a WAITR, SVC 1, specifying a list of Event Control Blocks (ECBs; one ECB per SRB, plus one for the system operator), and each SRB will indicate its completion to the TCB by using
1947-460: The TCB contains, among other data, non-dispatchability flags and the general and floating point registers for a task that is not currently assigned to a CPU. A TCB provides an anchor for a linked list of other, related request blocks (RBs); the top-linked RB for a TCB contains the Program status word (PSW) when the task is not assigned to a CPU. When the control program's dispatcher selects
2006-406: The actual data storage and KSDS for indexes. VSAM also included a catalog component used for user catalogs and MVS' master catalog. Partitioned data sets (PDS) are sequential data sets subdivided into "members" that could each be processed as sequential files in their own right (like a folder in a file system). The most important use of PDSes was for program libraries - system administrators used
2065-425: The causing problem, and either 'retried' (reinvoke the mainline) or 'percolated' (escalated error processing to the next recovery routine in the hierarchy). Thus, with each error the system captured diagnostic data, and attempted to perform a repair and keep the system up. The worst thing possible was to take down a user address space (a 'job') in the case of unrepaired errors. Though it was an initial design point, it
2124-675: The computer is able to switch back and forth between active and inactive programs. Early editions of MVS (mid-1970s) are among the first of the IBM OS series to support multiprocessor configurations, though the M65MP variant of OS/360 running on 360 Models 65 and 67 had provided limited multiprocessor support. The 360 Model 67 had also hosted the multiprocessor capable TSS/360 , MTS and CP-67 operating systems. Because multiprocessing systems can execute instructions simultaneously, they offer greater processing power than single-processing system. As
2183-404: The fact that processing progresses despite an error can overwrite the tracks. Early data capture at the time of the error maximizes debugging, and facilities exist for the recovery routines (task and system mode, both) to do this. IBM included additional criteria for a major software problem that required IBM service. If a mainline component failed to initiate software recovery, that was considered
2242-404: The highest possible performance is required, and in this case the necessary resources are first acquired under a TCB (usually the "job step" TCB), before the SRBs are SCHEDULEd (i.e., are presented to the system dispatcher to compete for processor resources). It is conceivable that an address space may have but one TCB (again, the "job step" TCB) but tens or hundreds or even thousands of SRBs, with
2301-423: The highest priority task that: The system maintains a pair of TCB pointers known as TCB old and TCB new. A TCB new pointer of zero causes the dispatcher to search for an eligible task. When the dispatcher finds an eligible task, it sets the old and new TCB pointers. loads the registers from the TCB and loads the PSW from the top RB. If the dispatcher fails to find eligible work, it enters an enabled wait. With
2360-466: The information to one program - each collecting program created a new generation of the file and the final program read the whole group as a single sequential file (by not specifying a generation in the JCL ). Modern versions of MVS (e.g., z/OS) use datasets as containers for Unix filesystems along with facilities for partially integrating them. That is, Unix programs using fopen() can access an MVS dataset and
2419-625: The introduction of MVS/370 and successor systems, a whole new environment was introduced: the Service Request Block (SRB), which generally has a higher priority than any Task Control Block, and, indeed, which itself has two distinct priorities: a Global SRB (priority over all local address space SRBs and TCBs) and a Local SRB (priority over only the local address space TCBs); and MVS's dispatcher must manage all of these with absolute consistency across as many as two processors (MVS/370) and as many as sixteen processors (successor systems). MVS Multiple Virtual Storage , more commonly called MVS ,
Service Request Block - Misplaced Pages Continue
2478-497: The main PDS as a way to allocate disk space to a project and the project team then created and edited the members. Other uses of PDSs are libraries of frequently used job control procedures (PROCs), and "copy books" of programming language statements such as record definitions used by several programs. Generation Data Groups (GDGs) are groups of like named data sets, which can be referenced by absolute generation number, or by an offset from
2537-461: The memory not used by current jobs could be divided into uselessly small chunks between the areas used by current jobs, and the only remedy was to wait until some current jobs finished before starting any new ones. In the early 1970s IBM sought to mitigate these difficulties by introducing virtual memory (which IBM called "virtual storage"), which allowed programs to request address spaces larger than physical memory. The original implementations had
2596-443: The most recent generation. They were originally designed to support grandfather-father-son backup procedures - if a file was modified, the changed version became the new "son", the previous "son" became the "father", the previous "father" became the "grandfather" and the previous "grandfather" was deleted. But one could set up GDGs with more than 3 generations and some applications used GDGs to collect data from several sources and feed
2655-557: The nomenclature: and then extended At first IBM described MVS as simply a new release of OS/VS2 , but it is, in fact a major rewrite. OS/VS2 release 1 is an upgrade of OS/360 MVT that retained most of the original code and, like MVT, is mainly written in assembly language . The MVS core is almost entirely written in Assembler XF , although a few modules were written in PL/S , but not the performance-sensitive ones, in particular not
2714-522: The operating system component JES3 allowed managing the whole group from one console. This provided greater resilience and let operators decide which processor should run which jobs from a central job queue. MVS JES3 gave users the opportunity to network together two or more data processing systems via shared disks and Channel-to-Channel Adapters (CTCA's). This capability eventually became available to JES2 users as Multi-Access SPOOL (MAS). MVS originally supported 24-bit addressing (i.e., up to 16MB). As
2773-503: The other finished and vacated the large partition. OS/360 R19 added MFT sub-tasking ( multitasking ), the ability for a job to dynamically create new tasks with the ATTACH macro. OS/360 MVT (Multiprogramming with a Variable number of Tasks) was an enhancement that further refined memory use. Instead of using fixed-size memory partitions, MVT allocates memory to regions for job steps as needed, provided enough contiguous physical memory
2832-1157: The past with a 3270 terminal, is now done through the Hardware Management Console (HMC) and, increasingly, Web interfaces. Operator consoles are provided through 2074 emulators, so you are unlikely to see any S/390 or zSeries processor with a real 3270 connected to it. The native character encoding scheme of MVS and its peripherals is EBCDIC , but the TR instruction made it easy to translate to other 7- and 8-bit codes. Over time IBM added hardware-accelerated services to perform translation to and between larger codes, hardware-specific service for Unicode transforms and software support of, e.g., ASCII , ISO/IEC 8859 , UTF-8 , UTF-16 , and UTF-32 . The software translation services take source and destination code pages as inputs. Files, other than Unix files, are properly called data sets in MVS. Names of those files are organized in catalogs that are VSAM files themselves. Data set names (DSNs, mainframe term for filenames) are organized in
2891-668: The program is compiled — not altogether unlike SQL used to call DB2 . Applications can also be written in other languages such as C , C++ , Java , assembly language , FORTRAN , BASIC , RPG , and REXX . Language support is packaged as a common component called "Language Environment" or "LE" to allow uniform debugging, tracing, profiling, and other language independent functions. MVS systems are traditionally accessed by 3270 terminals or by PCs running 3270 emulators. However, many mainframe applications these days have custom web or GUI interfaces. The z/OS operating system has built-in support for TCP/IP . System management, done in
2950-413: The shared virtual area, but this imposed a significant overhead since all such communications had transmit via the operating system.) The main user interfaces to MVS are: Job Control Language (JCL), which was originally designed for batch processing but from the 1970s onwards was also used to start and allocate resources to long-running interactive jobs such as CICS ; and TSO (Time Sharing Option),
3009-472: The term MVS in the naming of later major versions such as MVS/XA. OS/360 MFT (Multiprogramming with a Fixed number of Tasks) provides multiprogramming : several memory partitions , each of a fixed size, are set up when the operating system is installed and when the operator redefines them. For example, there could be a small partition, two medium partitions, and a large partition. If there were two large programs ready to run, one would have to wait until
SECTION 50
#17327941197543068-465: The tightly coupled multiprocessing of OS/360 Model 65 Multiprocessing . In tightly coupled systems, two CPUs shared concurrent access to the same memory (and copy of the operating system) and peripherals, providing greater processing power and a degree of graceful degradation if one CPU failed. In loosely coupled configurations each of a group of processors (single and / or tightly coupled) had its own memory and operating system but shared peripherals and
3127-566: The underlying hardware progressed, it supported 31-bit (XA and ESA; up to 2048MB) and now (as z/OS) 64-bit addressing. The most significant motives for the rapid upgrade to 31-bit addressing were the growth of large transaction-processing networks, mostly controlled by CICS , which ran in a single address space—and the DB2 relational database management system needed more than 8MB of application address space to run efficiently. (Early versions were configured into two address spaces that communicated via
3186-481: Was larger than the available real storage, as did SVS, but also allowed an indefinite number of applications to run in different address spaces. Two concurrent programs might try to access the same virtual memory address, but the virtual memory system redirected these requests to different areas of physical memory. Each of these address spaces consisted of three areas: an operating system (one instance shared by all jobs), an application area unique for each application, and
3245-589: Was not until the most recent MVS version (z/OS), that recovery program was not only guaranteed its own recovery routine, but each recovery routine now has its own recovery routine. This recovery structure was embedded in the basic MVS control program, and programming facilities are available and used by application program developers and 3rd party developers. Practically, the MVS software recovery made problem debugging both easier and more difficult. Software recovery requires that programs leave 'tracks' of where they are and what they are doing, thus facilitating debugging—but
3304-713: Was optional, but MVS/Extended Architecture Data Facility Product (5665-284) was a corequisite for MVS/SP Version 2 (MVS/XA). In addition to enhancing data management facilities, DFP replaced free versions of the linkage editor and utilities. DFP is no longer available as a separate product, but has become part of Data Facility Storage Management Subsystem , under the name DFSMSdfp . MVS has now evolved into z/OS; older MVS releases are no longer supported by IBM and, since 2007, only 64-bit z/OS releases are supported. z/OS supports running older 24-bit and 31-bit MVS applications alongside newer 64-bit applications. MVS releases up to 3.8j (24-bit, released in 1981) were freely available and it
3363-508: Was performed by the enhancement of the diagnostic SLIP command with the introduction of the PER support (SLIP/Per) in SU 64/65 (1978). Multiple copies of MVS (or other IBM operating systems) could share the same machine if that machine was controlled by VM/370 . In this case VM/370 was the real operating system, and regarded the "guest" operating systems as applications with unusually high privileges. As
3422-403: Was riddled with reliability problems. When IBM announced MVS/SP Version 2 (MVS/XA), it also announced Data Facility Product™ (DFP™) as a replacement for and upgrade to the other five products above, which it said would be withdrawn from marketing, effective December 1, 1984. DFP/370 Release 1 (program number 5665-295), announced June 7, 1983, was for MVS/SP Version 1, MVS/SE and OS/VS2 R3.8, and
3481-495: Was used. IBM dropped support for DSS with Selectable Unit 7 (SU7), an update to OS/VS2 Release 3.7 required by the program product OS/VS2 MVS/System Extensions (MVS/SE), Program Number 5740-XEl. The User group SHARE passed a requirement that IBM reinstate DSS, and IBM provided a PTF to allow use of DSS after MVS/SE was installed. IBM again dropped support for DSS with SU64, an update to OS/VS2 Release 3.8 required by Release 2 of MVS/SE. Program-Event Recording (PER) exploitation
#753246