GM-NAA I/O

Uncategorized

#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.

Uncategorized

#01 From Punch Cards to Batch Systems – The Birth of Modern Operating Systems (1887–1958)

The first 70 years of computing history led from a punched hole in a card to the first real operating system.This chapter shows how, from a chaotic world of manually sorted cards, the concept of automated batch processing was born. Why these years? Between 1887 and 1958, four pillars of modern OS emerged: Punched Cards – The Prehistory of Data Storage Herman Hollerith reduced the U.S. census time from 10 years to 2.Since 1928, a standard IBM card held 80 characters – 80 bytes of data. At a production rate of 10 million cards per day, this generated 870 MB of data – the “cloud” of the Great Depression era.Punched cards became a common language between hardware and programmers, and the 80-column format survives in today’s terminal width limits. 80-column IBM punched card by Harke, license CC BY-SA 3.0. Computers Without OS – Manual Control of Giants ENIAC (1945)Weighed 27 tons, contained 18,000 vacuum tubes, consumed 150 kW. Reprogramming required manually rewiring – it took days. ENIAC console (U.S. Army Photo, public domain) UNIVAC I (1951)The first commercial computer, famously predicted the 1952 U.S. election result.Used magnetic tape for storage, reducing dependence on cards. IBM 650 (1954)The first mass-produced computer – 2,000 units sold at $150,000 each.Used a magnetic drum spinning at 12,500 RPM as RAM. IBM 650 panel by Mike Cowlishaw, GNU FDL/CC BY-SA 3.0. The Performance Problem: CPU vs Operator The IBM 704 could perform 4,000 floating-point operations per second, while an operator needed minutes to load another card deck.To eliminate idle time, developers introduced spooling: reading the card deck onto tape or drum so the CPU could run continuously. The Birth of the Resident Monitor GM-NAA I/O (1956)Developed by Robert Patrick (General Motors) and Owen Mock (North American Aviation), this was a set of I/O routines that automatically launched the next program after one finished – the first true batch processing system.Used in around 40 IBM 704 installations. EXEC I & II (1957–1962)UNIVAC’s systems for the 1107 introduced multiprogramming and parallel spooling with a single job stream. SHARE Operating System (1959)The SHARE user group enhanced GM-NAA I/O with better buffer management and ported it to IBM 709/7090. IBM 704 console loading GM-NAA I/O, Bitsavers.org, public domain license. FORTRAN Monitor System and Early JCL The monitor loaded the compiler, linked the program, and routed output automatically – these control cards were the prototype of the JCL language. Early Monitor Computer RAM Key Innovation GM-NAA I/O IBM 704 4,096 words Auto-start of next job EXEC I UNIVAC 1107 65,536 words Batch multiprogramming FMS IBM 709/7090 32,768 words Integrated compile-link-run chain Early Programming Languages Limitations and Challenges of the Batch Era Legacy of the 1950s Conclusion From Hollerith cards to GM-NAA I/O took less than 70 years.During this time, data formats, commercial computers, programming languages, and OS foundations emerged. These breakthroughs turned computers into general-purpose machines and paved the way for MULTICS, UNIX, and modern cloud systems.Without punched cards, ENIAC’s tubes, and IBM 704’s monitor, there would be no Linux servers or Android phones today.

Passionate about bringing retro computers back to life — Apple, Commodore, Atari, Amiga, and more.

Policies

© 2025 RetroComp. All rights reserved.

Scroll to Top