# OS/VS2 (SVS)

Single Virtual Storage (SVS) refers to Release 1 of Operating System/Virtual Storage 2 (OS/VS2); it is the successor system to the MVT 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.
SVS provides a single 16MiB address space which is shared by all tasks in the system, regardless of the size of physical memory.

## 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.
OS/360 loads error recovery and transient SVC routines from SYS1.SVCLIB into small transient areas. SVS loads these routine from SYS1.LPALIB into the Pageable Link Pack Area (PLPA) during an IPL with the Create LPA (CLPA) option; there are no transient areas.
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) (replacing Assembler (F)) 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 are authorized, that is 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 has a facility called Direct SYSOUT (DSO) whereby specific output classes can be diverted to data sets on tape instead of normal SPOOL datasets. As DASD prices dropped, the facility dropped from use, and SVS does not provide it.
OS/360 provides 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 2250 from a batch job using Graphics Access Method (GAM) and Graphics Subroutine Package (GSP) remains supported. OS/360 includes a batch debugging facility named TESTRAN; it is 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 does 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 can 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 is searched in turn.
   * The installation can specify a list of modules to be loaded into the Fixed Link Pack Area (FLPA). These are loaded into V=R storage at IPL time.
   * The installation can specify a list of load modules to be loaded into the Modified Link Pack Area (MLPA) at IPL time. These modules are subject to normal paging.
   * SVS uses a dedicated paging data set to back up the Permanent Link Pack Area (PLPA). In a normal IPL, SVS will simply allow modules in the existing PLPA paging data set to be paged in at need, but the operator can 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 has support for a multiprocessor version of the 360/65. SVS provide no equivalent support; customers wanting to run a multiprocessor System/370 have to use MVS.
OS/360 introduced Telecommunications Access Method (TCAM) as the successor to Queued Telecommunications Access Method (QTAM). SVS does not include QTAM.
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 are loaded into 1 KiB areas known as SVC Transient Areas, and a considerable amount of code is required to manage them. In SVS, all SVC routines are preloaded into virtual storage and there are no SVC Transient Areas.
While SVS retains the SPOOL support of OS/360, most shops used ASP or HASP, the precursors of JES3 and JES2, respectively.

## Storage Management

Storage management 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 corresponding 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 and 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

I/O channels on S/370 (and successors) 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 in Real Storage (EXCVR) SVC for privileged applications that do their own paged fixing and build their own IDA lists.

## Independent Component Releases (ICRs)

IBM provided several enhancements to SVS that were not shipped with SVS initially. These included:
* Telecommunications Access Method (TCAM) Release 10
* Virtual Sequential Access Method (VSAM)
* Virtual Telecommunications Access Method (VTAM) Release 2