History of Computers and Computing, Birth of the modern computer, Electronic computer, Atlas computer
The remarkable Atlas computer, developed in the period 1956–1962 by a team led by Professor Tom Kilburn (one of the creators of another remarkable computer, SSEM) at the University of Manchester, reckoned to be the world’s most powerful computer in early 1960s and pioneered many software concepts still in common use today, including the Atlas Supervisor, considered by many to be the first recognizable modern operating system, as well as virtual memory and paging techniques.
Atlas was a second-generation machine, using discrete germanium transistors. It had a 48-bit word size and instruction pipelining. Main memory (RAM) was 16K words of core store (equivalent to 96 KB) and 96K words of drum store (eqv. to 576 KB). It had a capability for the addition of (for the time) sophisticated new peripherals such as magnetic tape.
Manchester University Atlas CPU, doors removed (© Manchester University)
The concept of virtual memory was initially developed by a German physicist—Fritz-Rudolf Güntsch (1925-2012) at the Technische Universität Berlin in 1956 in his doctoral thesis, Logical Design of a Digital Computer with Multiple Asynchronous Rotating Drums and Automatic High Speed Memory Operation. The thesis described a machine with 6 100-word blocks of primary core memory (introduced by J. Forrester in Whirlwind computer) and an address space of 1000 100-word blocks, with hardware automatically moving blocks between primary core memory and secondary drum memory.
From their beginnings in the late 1940s, electronic computers had two-level storage systems. In the 1950s, main memory (today it is RAM) was usually magnetic cores, while the secondary memory was usually magnetic drums. The processor could address only the main memory. A major part of a programmer’s job was to devise a good way to divide a program into blocks and to schedule their moves between the levels. The blocks were called “segments” or “pages” and the movement operations “overlays” or “swaps”. The designers of the first operating systems in the 1950s dreamt of relieving the programming burden by automating all this storage management.
After the pioneering work of Fritz-Rudolf Güntsch it became pretty obvious to the designers of operating systems that automatic storage allocation could significantly simplify programming and thus appeared Atlas with the first working prototype of a virtual memory (they called it one-level storage system). At the heart of their idea was a radical innovation—a distinction between “address” and “memory location”. It led them to three inventions.
1. They built hardware that automatically translated each address generated by the processor to its current memory location.
2. They devised demand paging, an interrupt mechanism triggered by the address translator that moved a missing page of data into the main memory.
3. They built a replacement algorithm, a procedure to detect and move the least useful pages back to secondary memory.
Tom Kilburn in front of Manchester Atlas computer console in 1962