Recent from talks
Knowledge base stats:
Talk channels stats:
Members stats:
ICL 2900 Series
The ICL 2900 Series was a range of mainframe computer systems announced by the British manufacturer International Computers Limited on 9 October 1974. The company had started development under the name "New Range" immediately on its formation in 1968. The range was not designed to be compatible with any previous machines produced by the company, nor for compatibility with any competitor's machines: rather, it was conceived as a synthetic option, combining the best ideas available from a variety of sources.
In marketing terms, the 2900 Series was superseded by Series 39 in the mid-1980s; however, Series 39 was essentially a new set of machines implementing the 2900 Series architecture, as were subsequent ICL machines branded "Trimetra".
When ICL was formed in 1968 as a result of the merger of International Computers and Tabulators (ICT) with English Electric Leo Marconi and Elliott Automation, the company considered several options for its future product line. These included enhancements to either ICT's 1900 Series or the English Electric System 4, and a development based on J. K. Iliffe's Basic Language Machine. The option finally selected was the so-called Synthetic Option: a new design conceptualized from scratch.
As the name implies, the design was influenced by many sources, including earlier ICL machines. The design of Burroughs mainframes was influential, although ICL rejected the concept of optimising the design for one high-level language. The Multics system provided other ideas, notably in the area of protection. However, the biggest single outside influence was probably the MU5 machine developed at Manchester University.
The 2900 Series architecture uses the concept of a virtual machine as the set of resources available to a program. The concept of a virtual machine in the 2900 Series architecture differs from the term as used in other environments. Because each program runs in its own virtual machine, the concept may be likened to a process in other operating systems, while the 2900 Series process is more like a thread.
The most obvious resource in a virtual machine is the virtual store (memory). Other resources include peripherals, files, and network connections.
In a virtual machine, code can run in any of sixteen layers of protection, called access levels (or ACR levels, after the Access Control Register which controls the mechanism). The most-privileged levels of operating system code (the kernel) operate in the same virtual machine as the user application, as do intermediate levels such as the subsystems that implement filestore access and networking. System calls thus involve a change of protection level, but not an expensive call to invoke code in a different virtual machine. Every code module executes at a particular access level, and can invoke the functions offered by lower-level (more privileged) code, but does not have direct access to memory or other resources at that level. The architecture thus offers a built-in encapsulation mechanism to ensure system integrity.
Segments of memory can be shared between virtual machines. There are two kinds of shared memory: public segments used by the operating system (which are present in all virtual machines), and global segments used for application-level shared data: this latter mechanism is used only when there is an application requirement for two virtual machines to communicate. For example, global memory segments are used for database lock tables. Hardware semaphore instructions are available to synchronise access to such segments. A minor curiosity is that two virtual machines sharing a global segment use different virtual addresses for the same memory locations, which means that virtual addresses cannot safely be passed from one VM to another.
Hub AI
ICL 2900 Series AI simulator
(@ICL 2900 Series_simulator)
ICL 2900 Series
The ICL 2900 Series was a range of mainframe computer systems announced by the British manufacturer International Computers Limited on 9 October 1974. The company had started development under the name "New Range" immediately on its formation in 1968. The range was not designed to be compatible with any previous machines produced by the company, nor for compatibility with any competitor's machines: rather, it was conceived as a synthetic option, combining the best ideas available from a variety of sources.
In marketing terms, the 2900 Series was superseded by Series 39 in the mid-1980s; however, Series 39 was essentially a new set of machines implementing the 2900 Series architecture, as were subsequent ICL machines branded "Trimetra".
When ICL was formed in 1968 as a result of the merger of International Computers and Tabulators (ICT) with English Electric Leo Marconi and Elliott Automation, the company considered several options for its future product line. These included enhancements to either ICT's 1900 Series or the English Electric System 4, and a development based on J. K. Iliffe's Basic Language Machine. The option finally selected was the so-called Synthetic Option: a new design conceptualized from scratch.
As the name implies, the design was influenced by many sources, including earlier ICL machines. The design of Burroughs mainframes was influential, although ICL rejected the concept of optimising the design for one high-level language. The Multics system provided other ideas, notably in the area of protection. However, the biggest single outside influence was probably the MU5 machine developed at Manchester University.
The 2900 Series architecture uses the concept of a virtual machine as the set of resources available to a program. The concept of a virtual machine in the 2900 Series architecture differs from the term as used in other environments. Because each program runs in its own virtual machine, the concept may be likened to a process in other operating systems, while the 2900 Series process is more like a thread.
The most obvious resource in a virtual machine is the virtual store (memory). Other resources include peripherals, files, and network connections.
In a virtual machine, code can run in any of sixteen layers of protection, called access levels (or ACR levels, after the Access Control Register which controls the mechanism). The most-privileged levels of operating system code (the kernel) operate in the same virtual machine as the user application, as do intermediate levels such as the subsystems that implement filestore access and networking. System calls thus involve a change of protection level, but not an expensive call to invoke code in a different virtual machine. Every code module executes at a particular access level, and can invoke the functions offered by lower-level (more privileged) code, but does not have direct access to memory or other resources at that level. The architecture thus offers a built-in encapsulation mechanism to ensure system integrity.
Segments of memory can be shared between virtual machines. There are two kinds of shared memory: public segments used by the operating system (which are present in all virtual machines), and global segments used for application-level shared data: this latter mechanism is used only when there is an application requirement for two virtual machines to communicate. For example, global memory segments are used for database lock tables. Hardware semaphore instructions are available to synchronise access to such segments. A minor curiosity is that two virtual machines sharing a global segment use different virtual addresses for the same memory locations, which means that virtual addresses cannot safely be passed from one VM to another.
