#02 The Birth of the Resident Monitor: GM-NAA I/O, EXEC I, and EXEC II (1956–1962)
The second episode brings us to a breakthrough moment — when the computer stopped waiting for the operator and started managing itself.Between 1956 and 1962, three pioneering batch systems were created: GM-NAA I/O for the IBM 704, and later EXEC I and EXEC II for the UNIVAC 1107. They defined the concept of the resident monitor and introduced early forms of multiprogramming. Context: The Time Gap Between CPU and Operator By the late 1950s, the IBM 704 processor could perform over 12,000 floating-point operations per second – yet it took an operator minutes to load the next card deck. This waste of computing power forced developers to automate job queuing and I/O management. IBM 704 console with GM-NAA I/O being loaded by Lawrence Livermore National Laboratory, public domain. GM-NAA I/O (1956) – The First “True” Operating System Feature Value Significance Machine IBM 704 First computer with ferrite-core memory Memory 4,096 words (36-bit) Only 2 KB reserved for the monitor Key Function Automatic job chaining Eliminated idle CPU time Reach ≈40 installations Set a standard in mainframe environments Developers at General Motors and North American Aviation created a library of I/O routines and a small, resident code segment that never left memory.After one job finished, the monitor would read the next control cards (// JOB, // XEQ) and automatically load the next program. Innovations in GM-NAA I/O EXEC I (1962) – UNIVAC’s First Batch System with Multiprogramming UNIVAC 1107, equipped with thin-film memory (65,536 words), required an ambitious new OS. Parameter EXEC I Consequences Type Batch + limited multiprogramming Multiple jobs in memory → improved throughput Control Language RDL (Run Description Language) Prototype of JCL Max Logical Space 64K words per program Early memory segmentation Security No memory protection “Locks and trust” policy UNIVAC 1107 Thin-film Memory Computer – Uniservo 2A Knudsens Fotosenter, Creative Commons Attribution 4.0 Key EXEC I Modules EXEC II (1963) – When a Compiler Contract Spawns an OS Computer Sciences Corporation, under contract to develop COBOL for UNIVAC, needed a runtime environment before EXEC I was complete.Thus EXEC II was born – an OS created “in passing.” Attribute EXEC II Impact Developer CSC under UNIVAC contract Outsourced OS development Mode Single-stream batch + spooling Simpler but stable Reputation Ran the first COBOL-1107 compiler Brought COBOL into industry Legacy Code carried into EXEC 8 / OS 1100 Continued into Unisys Dorado Document downloaded from: https://www.fourmilab.ch/fourmilog/archives/2017-11/001731.html Comparison of the Three Pioneers Criterion GM-NAA I/O EXEC I EXEC II Release Year 1956 1962 1963 Platform IBM 704 UNIVAC 1107 UNIVAC 1107 Work Mode Batch-queue Batch + multiprog Batch + spooling Control Language // cards RDL RDL-Light Memory Protection None 64K segmentation None Legacy SHARE OS, MVT EXEC 8 → OS 1100 EXEC 8, OS 2200 Key Architectural Milestones Resident monitor – Permanent in-memory code, the kernel’s ancestor Segmentation – From EXEC I’s 0-bank/1-bank model to EXEC 8’s full relocator Spooling – Multi-threaded I/O buffering prototype, precursor to print/email spoolers Control language – // JOB, // XEQ → JCL → modern .yaml files in CI/CD systems Legacy and Impact Though GM-NAA I/O, EXEC I, and EXEC II vanished from production before 1970, their innovations live on in every modern OS.Kernel code, batch queues, memory relocation, and task scripting remain pillars of servers, clouds, and HPC clusters.In the next episode, we’ll see how IBM OS/360 and MULTICS evolved these ideas into full-fledged multi-user systems.


