gelfand@valid.UUCP (Brooks Gelfand) (10/09/86)
References: <455@valid.UUCP> <653@glasgow.glasgow.UUCP> <494@sunybcs.UUCP> <336@comp.lancs.ac.uk> <432@argus.UUCP> <344@comp.lancs.ac.uk> <598@valid.UUCP> <3018@mit-eddie.MIT.EDU> > >... This is like pulling the power cord on a > >real machine. Not much chance to do any recovery or go down gracefully. > > I'll bet the real IBM 370 has a power-fail interrupt. Does the virtual > 370 have this? It seems like just the thing to use when the user aborts > a program. > -- > Barry Margolin > ARPA: barmar@MIT-Multics > UUCP: ..!genrad!mit-eddie!barmar You are correct. The real 370 does have a power fail interrupt. It is part of the Machine-Check Handling system. A power interrupt is indicated by setting bit 8, the warning bit, in the MCIC (Machine Check Interrupt Code) found at location X'E8' (232-239) in real storage. The current PSW is stored at location X'30' and the New Machine Check PSW is loaded from location X'70'. For a full discussion of the actions the real hardware takes during a Machine Check, you are referred to Chapter 11 of IBM Systems/370 Principles of Operation (GA22-7000-9), affectionately known as the POO. In a virtual machine running CMS loading the PSW at location X'70' places the machine in a wait state with all interrupts, save the Machine Check Interrupt, disabled. In the real machine, which is running CP, control is passed to module DMKMCH, when the PSW at location X'70' is loaded. Since the warning bit is not one of the conditions that this module wants to deal with, the entire system is placed in a wait state with all interrupts disabled. This is as far as I can to take the description fo what happens during a power failure. Perhaps some more knowledgeable net users from IBM or Amdahl could elaborate further. Brooks Gelfand