||This article needs additional citations for verification. (August 2010)|
|Company / developer||IBM|
|Latest stable release||Release 1.7|
|Available language(s)||Assembler (XF), CLIST|
|Succeeded by||OS/VS2 (MVS)|
Single Virtual Storage (SVS) refers to Release 1 of Operating System/Virtual Storage 2 (OS/VS2); it is the successor system to the MVT[nb 1] option of Operating System/360. OS/VS2 (SVS) was a stopgap measure pending the availability of MVS, although IBM provided support and enhancements to SVS long after shipping MVS.
Differences from MVT 
OS/360 used the Interval Timer feature for providing time of day and for triggering time-dependent events. The support for S/370 made limited use of new timing facilities, but retained a dependency on the Interval Timer. SVS uses the TOD Clock, Clock Comparator and CPU Timer exclusively.
In the wake of the Applied Data Research lawsuit IBM decided to develop chargeable versions of several applications, mostly language processors, although it's not clear whether the lawsuit was actually the deciding factor. As a result, SVS does not include a sort/merge program or any language processor other than the new Assembler (XF),[nb 2] which is required for the system generation process.
Authorized Program Facility (APF) is a new facility that limited use of certain dangerous services to programs that were link edited with AC(1) and were loaded from the link list, LPA, or SYS1.SVCLIB. In MVS IBM enhanced the facility to allow the installation to designate additional data sets as authorized.
Because the Reader/Interpreter in SVS runs in pageable storage, there is much less benefit to the Automatic SYSIN Batching (ASB) Reader, and SVS does not include it. OS/360 had a facility called Direct SYSOUT (DSO) whereby specific output classes could be diverted to data sets on tape instead of normal SPOOL datasets. As DASD prices dropped, the facility dropped from use, and SVS did not provide it.
OS/360 provided limited interactive facilities in Conversational Remote Job Entry (CRJE), Graphic Job Processing (GJP), Interactive Terminal Facility (ITF) and Satellite Graphic Job Processing (SGJP) prior to the Time Sharing Option (TSO), but IBM did not carry those forward to SVS. TSO continues to provide equivalent facilities, except that it does not support use of a 2250 as a terminal. Use of a 2250 from a batch job using Graphics Access Method (GAM) and Graphics Subroutine Package (GSP) remains supported. OS/360 included a batch debugging facility named TESTRAN; it was clumsier than the equivalent facility in IBSYS/IBJOB, and was not used much. With the advent of TSO TESTRAN became even less relevant, and SVS did not include it.
Dynamic Support System (DSS) was a new OS/VS debugging facility for system software. It remained available until Selectable Unit 64 and MVS/System Extensions Release 2.
The storage key facility of System/360 and System/370 keeps track of when a page frame has been modified. The Machine Check Handler (MCH) in SVS can correct a parity or ECC error in an unmodified page by unassigning the damaged page frame and marking the page table entry to cause a pagein operation into a newly assigned page table. This replaces the special handling of refreshable transient SVC routines in OS/360.
SVS expands the size of the Error Recovery Procedure (ERP) transient area.
None of the processors on which SVS runs have an equivalent to the 2361 Large Core Storage (LCS), and thus there is no need for Hierarchy support, which SVS does not provide. SVS also dropped support for some obsolete I/O equipment.
In OS/360 load modules could be permanently loaded at Initial Program Load (IPL) time into an area of real storage known as the Link Pack Area (LPA). In SVS the LPA was split into three areas, each of which was searched in turn.
- The installation could specify a list of modules to be loaded into the Fixed Link Pack Area (FLPA). These were loaded into V=R storage at IPL time.
- The installation could specify a list of load modules to be loaded into the Modified Link Pack Area (MLPA) at IPL time. These modules were subject to normal paging.
- SVS used a dedicated paging data set to back up the Permanent Link Pack Area (PLPA). In a normal IPL, SVS would simply allow modules in the existing PLPA paging data set to be paged in at need, but the operator could specify the CLPA option to load all of the load modules from SYS1.LPALIB into the PLPA and write the new PLPA into the PLPA paging data set.
OS/360 had support for a multiprocessor version of the 360/65. SVS provide no equivalent support; customers wanting to run a multiprocessor System/370 had to use MVS.
SVS does not include Remote Job Entry (RJE). However, ASP and HASP provide comparable facilities.
Because of the larger (16 MiB) address space that SVS provides, there is less external fragmentation than in MVT, and Rollin/Rollout would provide less of a benefit. SVS does not include it.
In OS/360, transient SVC routines were loaded into 1 KiB areas known as SVC Transient Areas, and a considerable amount of code was required to manage them. In SVS, all SVC routines are preloaded into virtual storage[nb 3] and there are no SVC Transient Areas.
Storage Management 
Storage managemdent in SVS is similar to that in MVT, with a few notable differences. The description below is somewhat simplified; it glosses over some special cases.
SVS has 16MiB of addressable storage in a single address space, regardless of the size of physical memory. The Nucleus and the FLPA are Virtual=Real (V=R), meaning that each virtual address in that area is mapped to the same physical address.
A job step in SVS can request V=R storage; all assigned pages in a V=R region are mapped to the corresponding real page frames.
When a program check occurs with an interrupt code of 16 or 17, SVS checks whether a page has been assigned to the virtual address. If it has, SVS will assign a page frame and read the contents of the page into it. If no page has been assigned, SVS causes an Abnormal End (ABEND) with the same ABEND code (0C4) that MVT would have used for a protection violation.
SVS provides services for page fixing an unfixing. When a page is fixed, its page frame is not subject to page stealing. The primary purpose of page fixing is I/O.
I/O channels on S/370 do not have the ability to do address translation. However, as part of the support for virtual storage operating systems IBM has provided the Indirect Data Address (IDA) feature. A Channel Control Word (CCW) with the IDA bit set points to an IDA list (IDAL) rather than directly to the I/O buffer.
SVS provides a CCW translation service as part of the Execute Channel Program (EXCP) SVC. EXCP will do any necessary page fixing, allocate storage for IDA lists, translate virtual addresses to real, put the translated addresses into the appropriate IDA words and put the real addresses of the IDA lists into the translated CCW's. When an I/O completes, EXCP reverses the process, freeing storage and translating status back into virtual.
In addition, SVS provides the Execute Channel Program Real (EXCPVR) SVC for privileged applications that do their own paged fixing and build their own IDA lists.
Incremental Change Releases 
IBM provided several enhancements to SVS that were not shipped as part of it. These included
- Telecommunications Access Method (TCAM) Release 10
- Virtual Sequential Access Method (VSAM)
- Virtual Telecommunications Access Method (VTAM) Release 2
- IBM, OS/VS2 Single Virtual Storage Features Supplement, GC20-1753.
- IBM, OS/VS2 Planning And Use Guide, GC28-0600.
- IBM, OS/VS & VM/370 Assembler Language: VS2 Rel 1.6, 1.7, GT33-4010.
- IBM, OS/VS Dynamic Support System: VS2 Release 1.6, 1.7 (GC28-0640-0), GT28-0640.
- IBM, IBM System/360 and System/370 Asymmetric Multiprocessing System: General Information Manual, Program Number 360A-CX-15X, GH20-1173.
- IBM, OS/VS2 HASP II Version 4 System Programmer's Guide Program 370H-TX-001, GC27-6992.
- But not 65MP
- Replacing Assembler (F)
- either in the Nucleus, in FLPA, in MLPA or in PLPA.