MVS
From Wikipedia, the free encyclopedia
MVS (Multiple Virtual Storage) was the most commonly used operating system on the System/370 and System/390 IBM mainframe computers. It is unrelated to IBM's other mainframe operating system called VM/CMS.
First released in 1974, MVS was later renamed by IBM, first to MVS/XA (eXtended Architecture), next to MVS/ESA (Enterprise Systems Architecture), then to OS/390 when UNIX System Services (USS) were added, and finally to z/OS when 64-bit support was added on the zSeries models. Its core remains fundamentally the same operating system. By design, programs written for MVS can still run on z/OS without modification.
MVS descends from SVS (Single Virtual Storage), which in turn descends from MVT, one of the original variants of OS/360. The first variant of OS/360, PCP (Primary Control Program), did not support multitasking: one job (i.e. program, or task) occupied the machine's entire memory.
Contents |
[edit] MVS types
OS/MFT (Multitasking with a Fixed number of Tasks) provided multitasking: several memory partitions (tasks), each of a fixed size, were set up when the machine was booted. For example, there might 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 on the other until it finished and vacated the partition.
OS/MVT (Multitasking with a Variable number of Tasks) was an enhancement which further refined memory usage. It allowed the memory partitions to be dynamically allocated as needed, in variable sizes, and in variable numbers. As in the previous example, both big jobs could run together if there were no other jobs occupying memory. However, each job would tie up the entire partition during its entire run.
To remedy this, virtual memory, referred to by IBM as "virtual storage", was used, allowing tasks to be placed in an address space larger than physical memory. The original implementation had a single virtual address space, with that address space being shared by all tasks. OS/VS1 was OS/MFT within a single virtual address space; OS/VS2 SVS was OS/MVT within a single virtual address space.
Finally, MVS was born. It allowed different tasks to run in different address spaces; thus each task could act as if it owned the machine's entire memory, or address space.
MVS originally supported 24-bit addressing. As the underlying hardware progressed it supported 31-bit (XA and ESA) and now (as z/OS) 64-bit addressing.
The main interfaces to MVS are Job Control Language (JCL), the batch processing interface, and TSO (Time Sharing Option), the interactive time-sharing interface, which originally was optional but is now a standard component. ISPF is an interface which allows the user to accomplish the same tasks as TSO but in a menu and form oriented manner.
The system 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 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 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 z/OS operating system also has native support to execute POSIX applications.
Files are called "data sets" in MVS. These files are organized in "catalogs." The native encoding scheme of MVS is Big Endian EBCDIC, but MVS provides hardware-accelerated services to perform translation and support of ASCII, Little Endian, and Unicode.
One instance of MVS can occupy an entire physical system, a "Logical Partition" (or "LPAR"), or a virtual machine under z/VM. Multiple MVS instances can be organized and collectively administered in a structure called a "Systems Complex" or "Sysplex," introduced in September, 1990. LPARs interoperate through a software component called a "Cross-system Coupling Facility" or "XCF" and a hardware component called a "Hardware Coupling Facility" or "CF" (or "ICF" if co-located on the same mainframe hardware). Multiple Sysplexes can be joined via standard network protocols such as TCP/IP or IBM's proprietary Systems Network Architecture (SNA). LPARs can also run other operating systems, such as Linux on zSeries, z/VSE, z/TPF, or z/VM.
[edit] MVS filesystem
MVS's classic filesystem is a record-oriented filesystem. Filenames are organized in a hierarchy, separated with dots. Each level in the hierarchy can be up to eight characters long. The total filename length is a maximum of 44 characters.
Generally, the components separated by the dots are used to organize files similarly to directories in other operating systems. For example, the higher level components generally represent project and user names. However, unlike other systems, these are not actual directories, just a naming convention (compare the original Macintosh File System, where folders were an illusion maintained by the Finder). TSO supports a default prefix for files (similar to a "current directory" concept), and RACF supports setting up access controls based on filename patterns, analogous to access controls on directories on other platforms.
Partitioned datasets are in some ways similar to single level directories. MVS supports a wide array of file access methods, mainly due to legacy needs. These include VSAM, BSAM, QSAM, and others. The MVS filesystem is based on the VTOC disk structure that IBM has used for many years.
Modern versions of MVS (i.e. z/OS) also support POSIX-compatible "slash" filesystems along with facilities for integrating the two filesystems. That is, the OS can make an MVS dataset appear as a file to a POSIX program, and an MVS dataset can be made to appear as a file to the POSIX subsystem. These newer filesystems include Hierarchical File System (HFS) (not to be confused with Apple's Hierarchical File System) and zFS (not to be confused with Sun's ZFS).
[edit] History and modernity
MVS is no longer supported by IBM. In fact, IBM is phasing out support for the 31-bit compatible versions of z/OS by 2007, so only the 64-bit z/OS versions will enjoy support after that date. z/OS continues to receive cutting edge improvements to extend its leadership as the flagship enterprise operating system. In addition to those enhancements mentioned above, others include:
- XML (Xerces-based toolkits for C/C++ and Java)
- network file systems
- TLS/SSL support throughout (including the TCP/IP stack level)
- removal of previous architectural limits (such as the number of I/O channels)
- encrypting file systems
- Workload Manager (WLM)
- special Java acceleration (zAAP support)
- Hipersockets
While z/OS continues to run older 24-bit MVS applications, it does so alongside just written 64-bit hardware-accelerated Java running with state-of-the-art security and Unicode XML data formats on protected filesystems with flexible mounting and long filenames, communicating across IPv6 Hipersocket virtual networks and/or high speed CFs to 64-bit geographically clustered relational databases that use the latest performance-enhancing SQL features including materialized query tables and cube views — for example.
[edit] See also
- Hercules a S/370, S/390, and zSeries emulator capable of running MVS
- Utility programs supplied with MVS (and successor) operating systems
[edit] References
- Bob DuCharme: "The Operating Systems Handbook, Part 06: MVS" (available online here)