Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Special pages
Niidae Wiki
Search
Search
Appearance
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
MVS
(section)
Page
Discussion
English
Read
Edit
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
View history
General
What links here
Related changes
Page information
Appearance
move to sidebar
hide
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Evolution of MVS== [[OS/360 and successors#MFT|OS/360 MFT]] (Multiprogramming with a Fixed number of Tasks)<ref name="os-360-concepts-and-facilities">{{cite manual|url=http://bitsavers.org/pdf/ibm/360/os/R19_Jun70/GC28-6535-7_OS_Concepts_and_Facilities_Rel_19_Jun70.pdf|title=IBM System/360 Operating System: Concepts and Facilities|id=GC28-6535-7|edition=Seventh|date=June 1970|page=16|publisher=[[IBM]]}}</ref> provides [[multiprogramming]]: several [[Memory management (operating systems)#Partitioned allocation|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 the other finished and vacated the large partition. OS/360 R19 added MFT sub-tasking ([[computer multitasking|multitasking]]), the ability for a job to dynamically create new tasks with the ATTACH macro. [[Multiprogramming with a Variable number of Tasks|OS/360 MVT]] (Multiprogramming with a Variable number of Tasks)<ref name="os-360-concepts-and-facilities" /> 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]] is available. This is a significant advance over MFT's memory management, but has some weaknesses: if a job allocates memory [[Dynamic memory allocation|dynamically]] (as most [[Sorting algorithm|sort]] programs and [[database management system]]s 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 [[Fragmentation (computer)|fragmented]], i.e., 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 space]]s larger than physical memory. The original implementations had 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 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. {| cellpadding="5" cellspacing="0" align="right" | align="center" | '''MVS address spaces - global view''' {| border="1" cellpadding="5" cellspacing="0" | colspan="3" align="center" | MVS (shared part of all address spaces) |- | align="center" | App 1 | align="center" | App 2 | align="center" | App 3 |- | colspan="3" align="center"| Shared virtual area (controlled by MVS) |} |- |align="center" | '''One application's view''' {| border="1" cellpadding="5" cellspacing="0" |- | align="center" | MVS |- | align="center" | App 1 |- | align="center" | Shared virtual area |- |} |} In the mid-1970s IBM introduced MVS, which not only supported virtual storage that was larger than the available real storage,<ref group=NB>Some processors could take more physical storage than the size of a single address space, but still much smaller than the aggregate size of a typical workload's virtual storage.</ref> 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 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.<ref>{{Cite manual |publisher=IBM |title=OS/VS2 MVS Overview |id=GC28-0984-0 |url=http://www.bitsavers.org/pdf/ibm/370/OS_VS2/Release_3.7_1976/GC28-0984-0_OS_VS2_MVS_Overview_Rel_3.7_Jun78.pdf |version=First Edition |date=June 1978}}</ref> Like its [[Multiprogramming with a Variable number of Tasks|MVT]] and [[OS/VS2 (SVS)|OS/VS2 SVS]] predecessors, MVS supported [[multiprogramming]]; program instructions and associated data are scheduled by 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, 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 [[IBM System/360 Model 67|67]] had provided limited multiprocessor support. The 360 Model 67 had also hosted the multiprocessor capable [[TSS/360]], [[Michigan Terminal System|MTS]] and [[CP-67]] operating systems. Because multiprocessing systems can execute instructions simultaneously, they offer greater{{Clarify|date=November 2007}} processing power than single-processing system. As 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 Systems|tightly coupled]], which means that the [[computers]] share the same [[real storage]] and are controlled by a single copy of the [[operating system]].{{Clarify|date=November 2007}}<!-- are both models used in MVS/370, or one of them? --> MVS retained both the loosely coupled [[multiprocessing]] of [[Attached Support Processor]] (ASP)<ref group=NB>Via Job Entry Subsystem 3 (JES3)</ref> and the tightly coupled multiprocessing of [[OS/360 and successors#M65MP|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 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 [[Computer network|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).{{Citation needed|date=November 2007}} MVS originally supported [[24-bit computing|24-bit]] addressing (i.e., up to 16MB). As the underlying hardware progressed, it supported [[31-bit computing|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 [[IBM DB2|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 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 [[Time Sharing Option|TSO]] (Time Sharing Option), 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 [[IBM 3270|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 is [[command line]], although facilities, such as [[ISPF]], were added later for form-driven interfaces.<ref>{{Cite book|first=Bob|last=DuCharme|title=The Operating System Handbook or, Fake Your Way Through Minis and Mainframes|chapter=MVS|url=http://www.snee.com/bob/opsys.html}}</ref> 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 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 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 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 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 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 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<ref>{{cite manual | title = OS/VS Dynamic Support System | id = GC28-0640-1 | date = November 1973 | edition = Second | publisher = IBM | url = http://bitsavers.org/pdf/ibm/370/OS_VS2/Release_2_1973/GC28-0640-1_OS_VS_Dynamic_Support_System_Nov73.pdf }} </ref> (DSS) that it had introduced in OS/VS1 and OS/VS2 Release 1. This interactive facility could be invoked to initiate 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 was used. <!-- DSS had no impact on performance when it wasn't in use. --> 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 (computing)|SHARE]] passed a requirement that IBM reinstate DSS, and IBM provided a [[Program temporary fix|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 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 a result of later hardware enhancements one instance of an operating system (either MVS, or VM with guests, or other) could also occupy a [[LPAR|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 ''[[IBM Parallel Sysplex|sysplex]]'', introduced in September, 1990. Instances interoperate through a software component called a [[IBM XCF|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.<ref>{{cite web|url=http://www.opengroup.org/openbrand/register/brand3470.htm|title=IBM Corporation - UNIX 95|publisher=[[The Open Group]]|access-date=7 October 2015}}</ref> 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 [[Information Management System|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 [[IBM DB2|DB2]]. Applications can also be written in other languages such as [[C (programming language)|C]], [[C++]], [[Java (programming language)|Java]], [[assembly language]], [[FORTRAN]], [[BASIC programming language|BASIC]], [[RPG programming language|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 [[IBM 3270|3270 terminals]] or by PCs running 3270 emulators. However, many mainframe applications these days have custom [[World Wide Web|web]] or [[Graphical user interface|GUI]] interfaces. The z/OS operating system has built-in support for [[Internet protocol suite|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 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.
Summary:
Please note that all contributions to Niidae Wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Encyclopedia:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Search
Search
Editing
MVS
(section)
Add topic