> On Mar 10, 2023, at 1:38 PM, Chuck Guzis via cctalk <cctalk@classiccmp.org>
> wrote:
>
> On 3/10/23 10:20, Bill Gunshannon via cctalk wrote:
>
>> The first mainframe I worked on was single user, single tasking.
>
> S/360 DOS provided for one "background" memory partition and two
> "foreground" ones. Batch submissions would be background, with some
> installations using the smaller foreground ones for interactive use.
You mean DOS/360 as opposed to OS/360? I don't know that one. But OS/360 came
in three flavors: PCP, MFS, and MVS. PCP was strictly single user with unit
record I/O direct from/to the devices (no spooling). If you had enough memory
you could run the multi-tasking OS variants, MFS or MVS. On the 360 model 44
we used in college we didn't have enough memory so we were stuck with PCP.
It was interesting to realize IBM stuck people with the rough analog of RT-11
on a 128 kB machine -- twice the memory size that on a PDP-11 would support a
16 user timesharing system.
Apart from the lack of concurrency and no spooling, PCP also didn't have
timers. We ran a lot of WATFIV (successor of WATFOR, a fast Fortran compiler
for educational use), but that would run a whole stack of programs as a single
OS job, using the timer to limit individual program. PCP wouldn't support that
so a stuck student program would force the canceling of the whole job, then
finding where in the stack of cards to resume and reload. Ugh.
I figured out how to hook to the interrupt vector of the "interrupt" button on
the operator console panel (using a simple security defect in ECXP appendages),
then tied that to the timer expiration in WATFIV. With that, the operator
could kill a stuck student program with a single button push and WATFIV would
go on to the next.
paul