General Points
{spec}Two possible projects for Gnosis would be to provide virtual 370's or to provide virtual Gnosis's.
Constructing another Gnosis is of less interest because Gnosis, unlike the 370, already multiplexes its facilities among clients.
There are several reasons why one substitutes synthetic things for the "real" ones. Virtual 370's are less expensive than real ones. Virtual 370's may have more core than the real 370. {MVS will run on a virtual 370 under CP on a 135, but MVS will not run on a 135 without CP.} A virtual 370 may have logical features unavailable on the real machine such as channel to channel adapters, printers and such. Virtual 370's may have features that are designed and added by the installation such as DICOM. VIO {virtual I/O} in MVS is usually faster and less expensive than the real I/O that it replaces.
Another aspect of this question is "why should the synthetic things mimic the 'real' ones?". There are two answers here: there are programs available that may have been designed with the real facility in mind; it is convenient to have the same program run in those cases where the real facility is available and has appropriate attributes and also run, perhaps less efficiently, when a real facility must be replaced by a synthetic one.
This section lists some "synthesizable" facilities of Gnosis.
The ability of the segment keeper to monitor stores into the segment allows the segment keeper to signal someone else of this fact. Given two 370's in different cities each running Gnosis and connected by a network, it is possible to build one logical segment that appears to simultaneously exist in the two cities. This is accomplished as follows: A segment node is created in each system with segment keepers that communicate with each other. A given page of the segment is either: {1} in just one city with read-write access there or {2} in both cities with read only access there. The segment keepers can adjust the state of each page in accordance with the page faults registered for the real segments. For example, if a program in one city tries to store into a page that is read only there, that program is stopped until the segment keeper in the remote city has removed the page from the remote segment. The segment keeper will have to send portions of pages over the communications lines to make the illusion whole. This technique is similar to what Tymshare now uses to make copies of the master user directory available to the network supervisors in various cities.
An elaboration in another direction is to provide a function like the RPG function on the DEC-10. RPG insures that one does not use the relocatable form of a program when the symbolic form has been modified since the compiler or assembler was applied to the program. RPG invokes the compiler or assembler to insure the timeliness of the relocatable file. In Gnosis we postulate two segments, the symbolic and the relocatable. These two segments share the same segment keeper. When the symbolic program is written into, by the editor perhaps, the segment keeper invalidates all of the pages of the relocatable. When the relocatable is referenced for read access the segment keeper changes the symbolic segment back to read-only and invokes the compiler. The effect is to invoke the compiler when RPG would have.
A synthetic domain is made of two domains, X and Y. The synthetic domain key is really a start key to X. The domain X remembers the state of the synthetic domain. X holds a domain key to Domain Y. When X is requested to produce a start key for the synthetic domain, X causes Y to be like the synthetic domain except, perhaps, for the trap key. X now provides a start key to Y to serve the function of a start key to the synthetic domain.