Misplaced Pages

History of IBM mainframe operating systems

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.

The history of IBM mainframe operating systems is significant within the history of mainframe operating systems , because of IBM 's long-standing position as the world's largest hardware supplier of mainframe computers . IBM mainframes run operating systems supplied by IBM and by third parties.

#825174

150-468: The operating systems on early IBM mainframes have seldom been very innovative, except for TSS/360 and the virtual machine systems beginning with CP-67 . But the company's well-known reputation for preferring proven technology has generally given potential users the confidence to adopt new IBM systems fairly quickly. IBM's current mainframe operating systems, z/OS , z/VM , z/VSE , and z/TPF , are backward compatible successors to those introduced in

300-428: A system call to perform a block I/O write operation, then the system call might execute the following instructions: While the writing takes place, the operating system will context switch to other processes as normal. When the device finishes writing, the device will interrupt the currently running process by asserting an interrupt request . The device will also place an integer onto the data bus. Upon accepting

450-558: A 32-bit architecture with 16 general-purpose registers, but most of the System/360 implementations use hardware that implements a much simpler underlying microarchitecture; for example, the System/360 Model 30 has 8-bit data paths to the arithmetic logic unit (ALU) and main memory and implemented the general-purpose registers in a special unit of higher-speed core memory , and the System/360 Model 40 has 8-bit data paths to

600-491: A CPU) into a less complex programming challenge. To take advantage of this, a CPU is divided into several parts: There may also be a memory address register and a memory data register , used to access the main computer storage . Together, these elements form an " execution unit ". Most modern CPUs have several execution units. Even simple computers usually have one unit to read and write memory, and another to execute user code. These elements could often be brought together as

750-404: A CPU. Microcode can be characterized as horizontal or vertical , referring primarily to whether each microinstruction controls CPU elements with little or no decoding (horizontal microcode) or requires extensive decoding by combinatorial logic before doing so (vertical microcode). Consequently, each horizontal microinstruction is wider (contains more bits) and occupies more storage space than

900-645: A computer even if they are not compatible with the base operating system. A library operating system (libOS) is one in which the services that a typical operating system provides, such as networking, are provided in the form of libraries and composed with a single application and configuration code to construct a unikernel : a specialized (only the absolute necessary pieces of code are extracted from libraries and bound together ), single address space , machine image that can be deployed to cloud or embedded environments. The operating system code and application code are not executed in separated protection domains (there

1050-505: A concept akin to a conditional in computer software. His initial implementation consisted of a pair of matrices: the first one generated signals in the manner of the Whirlwind control store, while the second matrix selected which row of signals (the microprogram instruction word, so to speak) to invoke on the next cycle. Conditionals were implemented by providing a way that a single line in the control store could choose from alternatives in

1200-507: A curious pattern: when the ISA presented multiple versions of an instruction, the compiler almost always used the simplest one, instead of the one most directly representing the code. They learned that this was because those instructions were always implemented in hardware, and thus run the fastest. Using the other instruction might offer higher performance on some machines, but there was no way to know what machine they were running on. This defeated

1350-488: A data communications facility that was primitive and hard to use by today's standards. But BTAM could communicate with almost any type of terminal, which was a big advantage at a time when there was hardly any standardization of communications protocols. But DOS/360 had significant limitations compared with OS/360 , which was used to control most larger System/360 machines: IBM expected that DOS/360 users would soon upgrade to OS/360, but despite its limitations, DOS/360 became

1500-517: A development contract with American Airlines for the development of a computerized reservations system, which became known as SABRE . The first experimental system went live in 1960 and the system took over all booking functions in 1964 – in both cases using IBM 7090 mainframes. In the early 1960s IBM undertook similar projects for other airlines and soon decided to produce a single standard booking system, PARS , to run on System/360 computers. In SABRE and early versions of PARS there

1650-585: A development of MULTICS for a single user. Because UNIX's source code was available, it became the basis of other, incompatible operating systems, of which the most successful were AT&T 's System V and the University of California 's Berkeley Software Distribution (BSD). To increase compatibility, the IEEE released the POSIX standard for operating system application programming interfaces (APIs), which

SECTION 10

#1732772794826

1800-484: A large legal settlement was paid. In the twenty-first century, Windows continues to be popular on personal computers but has less market share of servers. UNIX operating systems, especially Linux, are the most popular on enterprise systems and servers but are also used on mobile devices and many other computer systems. On mobile devices, Symbian OS was dominant at first, being usurped by BlackBerry OS (introduced 2002) and iOS for iPhones (from 2007). Later on,

1950-436: A level that was unsustainable, and were reducing sales by deterring customers from upgrading. So in 1964, the company announced System/360 , a new range of computers which all used the same peripherals and most of which could run the same programs. IBM originally intended that System/360 should have only one batch-oriented operating system, OS/360. There are at least two accounts of why IBM later decided it should also produce

2100-442: A library with no protection between applications, such as eCos . A hypervisor is an operating system that runs a virtual machine . The virtual machine is unaware that it is an application and operates as if it had its own hardware. Virtual machines can be paused, saved, and resumed, making them useful for operating systems research, development, and debugging. They also enhance portability by enabling applications to be run on

2250-447: A malformed machine instruction . However, the most common error conditions are division by zero and accessing an invalid memory address . Users can send messages to the kernel to modify the behavior of a currently running process. For example, in the command-line environment , pressing the interrupt character (usually Control-C ) might terminate the currently running process. To generate software interrupts for x86 CPUs,

2400-492: A mechanism for maintaining a queue of jobs. These operating systems run only on a few processor models and are suitable only for scientific and engineering calculations. Other IBM computers or other applications function without operating systems. But one of IBM's smaller computers, the IBM 650 , introduced a feature which later became part of OS/360 , where if processing is interrupted by a "random processing error" (hardware glitch),

2550-450: A microcoded EBox unit to be executed, and the VAX 8800 has both a microcoded IBox and a microcoded EBox. A high-level programmer, or even an assembly language programmer, does not normally see or change microcode. Unlike machine code, which often retains some backward compatibility among different processors in a family, microcode only runs on the exact electronic circuitry for which it

2700-401: A more general-purpose OS. ACP had by then incorporated a hypervisor module (CHYR) which supported a virtual OS (usually VS1 , but possibly also VS2 ) as a guest, with which program development or file maintenance could be accomplished concurrently with the online functions. In some instances, production work was run under VS2 under the hypervisor, including, possibly, IMS DB. The Model 20

2850-528: A multiprogramming version of OS (MFT) as soon as possible. PCP, MFT, and MVT had different approaches to managing memory (see below), but provided very similar facilities: Experience indicated that it was not advisable to install OS/360 on systems with less than 256 KB of memory, which was a common limitation in the 1960s. When installing MFT , customers would specify up to four partitions of memory with fixed boundaries, in which application programs could be run simultaneously. MFT Version II (MFT-II) raised

3000-455: A particular application's memory is stored, or even whether or not it has been allocated yet. In modern operating systems, memory which is accessed less frequently can be temporarily stored on a disk or other media to make that space available for use by other programs. This is called swapping , as an area of memory can be used by multiple programs, and what that memory area contains can be swapped or exchanged on demand. Virtual memory provides

3150-411: A pattern of diodes and gates to decode the instruction and produce a sequence of signals, whereas the other encodes the signals as microinstructions that are read in sequence to produce the same results. The critical difference is that in a custom logic design, changes to the individual steps require the hardware to be redesigned. Using microcode, all that changes is the code stored in the memory containing

SECTION 20

#1732772794826

3300-503: A program does not interfere with memory already in use by another program. Since programs time share, each program must have independent access to memory. Cooperative memory management, used by many early operating systems, assumes that all programs make voluntary use of the kernel 's memory manager, and do not exceed their allocated memory. This system of memory management is almost never seen any more, since programs often contain bugs which can cause them to exceed their allocated memory. If

3450-408: A program fails, it may cause memory used by one or more other programs to be affected or overwritten. Malicious programs or viruses may purposefully alter another program's memory, or may affect the operation of the operating system itself. With cooperative memory management, it takes only one misbehaved program to crash the system. Memory protection enables the kernel to limit a process' access to

3600-440: A program tries to access memory that is not accessible memory, but nonetheless has been allocated to it, the kernel is interrupted (see § Memory management ) . This kind of interrupt is typically a page fault . When the kernel detects a page fault it generally adjusts the virtual memory range of the program which triggered it, granting it access to the memory requested. This gives the kernel discretionary power over where

3750-419: A programmer to define the table of bits symbolically. Because of its close relationship to the underlying architecture, "microcode has several properties that make it difficult to generate using a compiler." A simulator program is intended to execute the bits in the same way as the electronics, and allows much more freedom to debug the microprogram. After the microprogram is finalized, and extensively tested, it

3900-647: A set of hardware-level instructions that implement the higher-level machine code instructions or control internal finite-state machine sequencing in many digital processing components. While microcode is utilized in Intel and AMD general-purpose CPUs in contemporary desktops and laptops, it functions only as a fallback path for scenarios that the faster hardwired control unit is unable to manage. Housed in special high-speed memory, microcode translates machine instructions, state machine data, or other input into sequences of detailed circuit-level operations. It separates

4050-470: A significant amount of CPU time. Direct memory access (DMA) is an architecture feature to allow devices to bypass the CPU and access main memory directly. (Separate from the architecture, a device may perform direct memory access to and from main memory either directly or via a bus.) When a computer user types a key on the keyboard, typically the character appears immediately on the screen. Likewise, when

4200-433: A simpler transaction processing system which a group of IBM's staff had developed for a customer. IMS was only available for OS/360 and its successors, but CICS was also available for DOS/360 and its successors. For many years this type of product was known as a "TP (teleprocessing) monitor". Strictly speaking TP monitors were not operating system components but application programs which managed other application programs. In

4350-574: A simpler batch-oriented operating system, DOS/360 : System/360's operating systems were more complex than previous IBM operating systems for several reasons, including: This made the development of OS/360 and other System/360 software one of the largest software projects anyone had attempted, and IBM soon ran into trouble, with huge time and cost overruns and large numbers of bugs . These problems were only magnified because to develop and test System/360 operating systems on real hardware, IBM first had to develop Basic Programming Support/360 (BPS/360). BPS

4500-433: A single chip. This chip comes in a fixed width that would form a "slice" through the execution unit. These are known as " bit slice " chips. The AMD Am2900 family is one of the best known examples of bit slice elements. The parts of the execution units and the whole execution units are interconnected by a bundle of wires called a bus . Programmers develop microprograms, using basic software tools. A microassembler allows

4650-477: A single machine instruction, thus avoiding multiple instruction fetches. Architectures with instruction sets implemented by complex microprograms included the IBM System/360 and Digital Equipment Corporation VAX . The approach of increasingly complex microcode-implemented instruction sets was later called complex instruction set computer (CISC). An alternate approach, used in many microprocessors ,

History of IBM mainframe operating systems - Misplaced Pages Continue

4800-441: A slow microprogram would result in a slow machine instruction and degraded performance for related application programs that use such instructions. Microcode was originally developed as a simpler method of developing the control logic for a computer. Initially, CPU instruction sets were hardwired . Each step needed to fetch, decode, and execute the machine instructions (including any operand address calculations, reads, and writes)

4950-622: A slower CPU clock. Some vertical microcode is just the assembly language of a simple conventional computer that is emulating a more complex computer. Some processors, such as DEC Alpha processors and the CMOS microprocessors on later IBM mainframes System/390 and z/Architecture , use machine code, running in a special mode that gives it access to special instructions, special registers, and other hardware resources unavailable to regular machine code, to implement some instructions and other functions, such as page table walks on Alpha processors. This

5100-402: A specific moment in time. Hard real-time systems require exact timing and are common in manufacturing , avionics , military, and other similar uses. With soft real-time systems, the occasional missed event is acceptable; this category often includes audio or multimedia systems, as well as smartphones. In order for hard real-time systems be sufficiently exact in their timing, often they are just

5250-468: A tape-based operating system whose sole purpose was to compile FORTRAN programs. In fact, FMS and the FORTRAN compiler were on the same tape. MIT 's Fernando Corbató produced the first experimental time-sharing systems, such as CTSS , from 1957 to the early 1960s, using slightly modified IBM 709 , IBM 7090 , and IBM 7094 mainframes; these systems were based on a proposal by John McCarthy . In

5400-405: A time, but MFT (" Multiprogramming with a Fixed number of Tasks") and MVT (" Multiprogramming with a Variable number of Tasks") were used until at least the late 1970s, a good five years after their successors had been launched. It is unclear whether the divisions among PCP, MFT and MVT arose because MVT required too much memory to be usable on mid-range machines or because IBM needed to release

5550-566: A two-dimensional lattice, where one dimension accepts "control time pulses" from the CPU's internal clock, and the other connects to control signals on gates and other circuits. A "pulse distributor" takes the pulses generated by the CPU clock and breaks them up into eight separate time pulses, each of which activates a different row of the lattice. When the row is activated, it activates the control signals connected to it. In 1951, Maurice Wilkes enhanced this concept by adding conditional execution ,

5700-417: A user moves a mouse , the cursor immediately moves across the screen. Each keystroke and mouse movement generates an interrupt called Interrupt-driven I/O . An interrupt-driven I/O occurs when a process causes an interrupt for every character or word transmitted. Devices such as hard disk drives , solid-state drives , and magnetic tape drives can transfer data at a rate high enough that interrupting

5850-453: A variation of the classic reader/writer problem . The writer receives a pipe from the shell for its output to be sent to the reader's input stream. The command-line syntax is alpha | bravo . alpha will write to the pipe when its computation is ready and then sleep in the wait queue. bravo will then be moved to the ready queue and soon will read from its input stream. The kernel will generate software interrupts to coordinate

6000-426: A vertical microinstruction. "Horizontal microcode has several discrete micro-operations that are combined in a single microinstruction for simultaneous operation." Horizontal microcode is typically contained in a fairly wide control store; it is not uncommon for each word to be 108 bits or more. On each tick of a sequencer clock a microcode word is read, decoded, and used to control the functional elements that make up

6150-460: A wide range of cost and performance, while making them all architecturally compatible. This dramatically reduces the number of unique system software programs that must be written for each model. A similar approach was used by Digital Equipment Corporation (DEC) in their VAX family of computers. As a result, different VAX processors use different microarchitectures, yet the programmer-visible architecture does not change. Microprogramming also reduces

History of IBM mainframe operating systems - Misplaced Pages Continue

6300-418: Is interrupted by it. Operating systems are found on many devices that contain a computer – from cellular phones and video game consoles to web servers and supercomputers . In the personal computer market, as of September 2024 , Microsoft Windows holds a dominant market share of around 73%. macOS by Apple Inc. is in second place (15%), Linux is in third place (5%), and ChromeOS

6450-562: Is remote direct memory access , which enables each CPU to access memory belonging to other CPUs. Multicomputer operating systems often support remote procedure calls where a CPU can call a procedure on another CPU, or distributed shared memory , in which the operating system uses virtualization to generate shared memory that does not physically exist. A distributed system is a group of distinct, networked computers—each of which might have their own operating system and file system. Unlike multicomputers, they may be dispersed anywhere in

6600-484: Is a change away from the currently running process. Similarly, both hardware and software interrupts execute an interrupt service routine . Software interrupts may be normally occurring events. It is expected that a time slice will occur, so the kernel will have to perform a context switch . A computer program may set a timer to go off after a few seconds in case too much data causes an algorithm to take too long. Software interrupts may be error conditions, such as

6750-626: Is a descendant of ACP , the system which IBM initially developed to support high-volume airline reservations applications. DOS/VS is the successor to DOS/360 , and offers similar facilities, with the addition of virtual memory. In addition to virtual memory DOS/VS provided other enhancements: DOS/VS was followed by significant upgrades: DOS/VSE and VSE/SP (1980s), VSE/ESA (1991), and z/VSE (2005). OS/VS1 succeeded MFT , with similar facilities, and adding virtual memory. IBM released fairly minor enhancements of OS/VS1 until 1983, and in 1984 announced that there would be no more. OS/VS1 and TSS/370 are

6900-529: Is common to find that only some portions of the CPU are used, with the remaining groups of bits in the microinstruction being no-ops. With careful design of hardware and microcode, this property can be exploited to parallelise operations that use different areas of the CPU; for example, in the case above, the ALU is not required during the first tick, so it could potentially be used to complete an earlier arithmetic instruction. In vertical microcode, each microinstruction

7050-505: Is connected to these lines instead, and these are turned on and off as the engine reads the microcode instructions in sequence. The microcode instructions are often bit encoded to those lines, for instance, if bit 8 is true, that might mean that the ALU should be paused awaiting data. In this respect microcode is somewhat similar to the paper rolls in a player piano , where the holes represent which key should be pressed. The distinction between custom logic and microcode may seem small, one uses

7200-422: Is designed, as it constitutes an inherent part of the particular processor design itself. Engineers normally write the microcode during the design phase of a processor, storing it in a read-only memory (ROM) or programmable logic array (PLA) structure, or in a combination of both. However, machines also exist that have some or all microcode stored in static random-access memory (SRAM) or flash memory . This

7350-399: Is differentiated by the micro prefix: microinstruction, microassembler, microprogrammer, etc. Complex digital processors may also employ more than one (possibly microcode-based) control unit in order to delegate sub-tasks that must be performed essentially asynchronously in parallel. For example, the VAX 9000 has a hardwired IBox unit to fetch and decode instructions, which it hands to

7500-422: Is difficult to define, but has been called "the layer of software that manages a computer's resources for its users and their applications ". Operating systems include the software that is always running, called a kernel —but can include other software as well. The two other types of programs that can run on a computer are system programs —which are associated with the operating system, but may not be part of

7650-896: Is in fourth place (2%). In the mobile sector (including smartphones and tablets ), as of September 2023 , Android's share is 68.92%, followed by Apple's iOS and iPadOS with 30.42%, and other operating systems with .66%. Linux distributions are dominant in the server and supercomputing sectors. Other specialized classes of operating systems (special-purpose operating systems), such as embedded and real-time systems, exist for many applications. Security-focused operating systems also exist. Some operating systems have low system requirements (e.g. light-weight Linux distribution ). Others may have higher system requirements. Some operating systems require installation or may come pre-installed with purchased computers ( OEM -installation), whereas others may run directly from media (i.e. live CD ) or flash memory (i.e. USB stick). An operating system

SECTION 50

#1732772794826

7800-443: Is only a single application running, at least conceptually, so there is no need to prevent interference between applications) and OS services are accessed via simple library calls (potentially inlining them based on compiler thresholds), without the usual overhead of context switches , in a way similarly to embedded and real-time OSes. Note that this overhead is not negligible: to the direct cost of mode switching it's necessary to add

7950-534: Is reduced or eliminated completely, and those circuits instead dedicated to things like additional registers or a wider ALU, which increases the performance of every program. When complex sequences of instructions are needed, this is left to the compiler, which is the entire purpose of using a compiler in the first place. The basic concept was soon picked up by university researchers in California, where simulations suggested such designs would trivially outperform even

8100-509: Is significantly encoded, that is, the bit fields generally pass through intermediate combinatory logic that, in turn, generates the control and sequencing signals for internal CPU elements (ALU, registers, etc.). This is in contrast with horizontal microcode, in which the bit fields either directly produce the control and sequencing signals or are only minimally encoded. Consequently, vertical microcode requires smaller instruction lengths and less storage, but requires more time to decode, resulting in

8250-444: Is sometimes termed a microprogram . Through extensive microprogramming, microarchitectures of smaller scale and simplicity can emulate more robust architectures with wider word lengths, additional execution units , and so forth. This approach provides a relatively straightforward method of ensuring software compatibility between different products within a processor family. Some hardware vendors, notably IBM and Lenovo , use

8400-421: Is sometimes used as the input to a computer program that constructs logic to produce the same data. This program is similar to those used to optimize a programmable logic array . Even without fully optimal logic, heuristically optimized logic can vastly reduce the number of transistors from the number needed for a read-only memory (ROM) control store. This reduces the cost to produce, and the electricity used by,

8550-499: Is supported by most UNIX systems. MINIX was a stripped-down version of UNIX, developed in 1987 for educational uses, that inspired the commercially available, free software Linux . Since 2008, MINIX is used in controllers of most Intel microchips , while Linux is widespread in data centers and Android smartphones. The invention of large scale integration enabled the production of personal computers (initially called microcomputers ) from around 1980. For around five years,

8700-487: Is taking up time that could be used to read and write the actual data. For this reason, it is common for non-RISC designs to have many different instructions that differ largely on where they store data. For instance, the MOS 6502 has eight variations of the addition instruction, ADC , which differ only in where they look to find the two operands. Using the variation of the instruction, or " opcode ", that most closely matches

8850-473: Is that they do not load user-installed software. Consequently, they do not need protection between different applications, enabling simpler designs. Very small operating systems might run in less than 10 kilobytes , and the smallest are for smart cards . Examples include Embedded Linux , QNX , VxWorks , and the extra-small systems RIOT and TinyOS . A real-time operating system is an operating system that guarantees to process events or data by or at

9000-417: Is the duty of the control unit , another unit within the processor. The basic idea behind microcode is to replace the custom hardware logic implementing the instruction sequencing with a series of simple instructions run in a "microcode engine" in the processor. Whereas a custom logic system might have a series of diodes and gates that output a series of voltages on various control lines, the microcode engine

9150-435: Is the part of the operating system that provides protection between different applications and users. This protection is key to improving reliability by keeping errors isolated to one program, as well as security by limiting the power of malicious software and protecting private data, and ensuring that one program cannot monopolize the computer's resources. Most operating systems have two modes of operation: in user mode ,

SECTION 60

#1732772794826

9300-437: Is to use one or more programmable logic array (PLA) or read-only memory (ROM) (instead of combinational logic) mainly for instruction decoding, and let a simple state machine (without much, or any, microcode) do most of the sequencing. The MOS Technology 6502 is an example of a microprocessor using a PLA for instruction decode and sequencing. The PLA is visible in photomicrographs of the chip, and its operation can be seen in

9450-455: Is traditionally denoted as writable control store in the context of computers, which can be either read-only or read–write memory . In the latter case, the CPU initialization process loads microcode into the control store from another storage medium, with the possibility of altering the microcode to correct bugs in the instruction set, or to implement new machine instructions. Microprograms consist of series of microinstructions, which control

9600-542: The CP/M (Control Program for Microcomputers) was the most popular operating system for microcomputers. Later, IBM bought the DOS (Disk Operating System) from Microsoft . After modifications requested by IBM, the resulting system was called MS-DOS (MicroSoft Disk Operating System) and was widely used on IBM microcomputers. Later versions increased their sophistication, in part by borrowing features from UNIX. Apple 's Macintosh

9750-504: The INT assembly language instruction is available. The syntax is INT X , where X is the offset number (in hexadecimal format) to the interrupt vector table . To generate software interrupts in Unix-like operating systems, the kill(pid,signum) system call will send a signal to another process. pid is the process identifier of the receiving process. signum is

9900-399: The Intel 80486 uses hardwired circuitry to fetch and decode instructions, using microcode only to execute instructions; register-register move and arithmetic instructions required only one microinstruction, allowing them to be completed in one clock cycle. The Pentium Pro 's fetch and decode hardware fetches instructions and decodes them into series of micro-operations that are passed on to

10050-463: The System/3 range of small business computers in 1969 and System/3 had a different internal design from the 360/20 and different peripherals from IBM's mainframes. The 360/44 is another processor that uses the System/360 peripherals but has a modified instruction set. It was designed for scientific computation using floating point numbers, such as geological or meteorological analyses. Because of

10200-521: The Zilog Z80 had instruction sets that were simple enough to be implemented in dedicated logic. By this time, the control logic could be patterned into the same die as the CPU, making the difference in cost between ROM and logic less of an issue. However, it was not long before these companies were also facing the problem of introducing higher-performance designs but still wanting to offer backward compatibility . Among early examples of microcode in micros

10350-448: The arithmetic logic unit (ALU) which performs instructions such as addition or comparing two numbers, circuits for reading and writing data to external memory, and small areas of onboard memory to store these values while they are being processed. In most designs, additional high-performance memory, the register file , is used to store temporary values, not just those needed by the current instruction. To properly perform an instruction,

10500-420: The transistor in the mid-1950s, mainframes began to be built. These still needed professional operators who manually do what a modern operating system would do, such as scheduling programs to run, but mainframes still had rudimentary operating systems such as Fortran Monitor System (FMS) and IBSYS . In the 1960s, IBM introduced the first series of intercompatible computers ( System/360 ). All of them ran

10650-429: The transistor -level simulation. Microprogramming is still used in modern CPU designs. In some cases, after the microcode is debugged in simulation, logic functions are substituted for the control store. Logic functions are often faster and less expensive than the equivalent microprogram memory. A processor's microprograms operate on a more primitive, totally different, and much more hardware-oriented architecture than

10800-433: The 1960s IBM's own laboratories created experimental time-sharing systems, using standard mainframes with hardware and microcode modifications to support virtual memory : IBM M44/44X in the early 1960s; CP-40 from 1964 to 1967; CP-67 from 1967 to 1972. The company even released CP-67 without warranty or technical support to several large customers from 1968 to 1972. CP-40 and CP-67 used modified System/360 CPUs , but

10950-569: The 1960s. IBM was slow to introduce operating systems. General Motors produced General Motors OS in 1955 and GM-NAA I/O in 1956 for use on its own IBM computers; and in 1962 Burroughs Corporation released MCP and General Electric introduced GECOS , in both cases for use by their customers. The first operating systems for IBM computers were written in the mid-1950s by IBM customers with very expensive machines at US$ 2,000,000 (equivalent to about $ 23,000,000 in 2023), which had sat idle while operators set up jobs manually, and so they wanted

11100-431: The 1970s and 1980s, several third-party TP monitors competed with CICS (notably COM-PLETE, DATACOM/DC, ENVIRON/1, INTERCOMM, SHADOW II, TASK/MASTER and WESTI), but IBM gradually improved CICS to the point where most customers abandoned the alternatives. In the 1950s airlines were expanding rapidly but this growth was held back by the difficulty of handling thousands of bookings manually (using card files). In 1957 IBM signed

11250-402: The 1970s, CPU speeds grew more quickly than memory speeds and numerous techniques such as memory block transfer , memory pre-fetch and multi-level caches were used to alleviate this. High-level machine instructions, made possible by microcode, helped further, as fewer more complex machine instructions require less memory bandwidth. For example, an operation on a character string can be done as

11400-431: The 360 was a runaway success. By the end of the decade, the use of microcode was de rigueur across the mainframe industry. Early minicomputers were far too simple to require microcode, and were more similar to earlier mainframes in terms of their instruction sets and the way they were decoded. But it was not long before their designers began using more powerful integrated circuits that allowed for more complex ISAs. By

11550-589: The ALU and 16-bit data paths to main memory and also implemented the general-purpose registers in a special unit of higher-speed core memory. The Model 50 has full 32-bit data paths and implements the general-purpose registers in a special unit of higher-speed core memory. The Model 65 through the Model 195 have larger data paths and implement the general-purpose registers in faster transistor circuits. In this way, microprogramming enabled IBM to design many System/360 models with substantially different hardware and spanning

11700-420: The CPU at a very fundamental level of hardware circuitry. For example, a single typical horizontal microinstruction might specify the following operations: To simultaneously control all processor's features in one cycle, the microinstruction is often wider than 50 bits; e.g., 128 bits on a 360/85 with an emulator feature. Microprograms are carefully designed and optimized for the fastest possible execution, as

11850-410: The CPU for every byte or word transferred, and having the CPU transfer the byte or word between the device and memory, would require too much CPU time. Data is, instead, transferred between the device and memory independently of the CPU by hardware such as a channel or a direct memory access controller; an interrupt is delivered only when all the data is transferred. If a computer program executes

12000-560: The CPU itself ran. Proponents pointed out that simulations clearly showed the number of instructions was not much greater, especially when considering compiled code. The debate raged until the first commercial RISC designs emerged in the second half of the 1980s, which easily outperformed the most complex designs from other companies. By the late 1980s it was over; even DEC was abandoning microcode for their DEC Alpha designs, and CISC processors switched to using hardwired circuitry, rather than microcode, to perform many functions. For example,

12150-474: The CPU to re-enter supervisor mode , placing the kernel in charge. This is called a segmentation violation or Seg-V for short, and since it is both difficult to assign a meaningful result to such an operation, and because it is usually a sign of a misbehaving program, the kernel generally resorts to terminating the offending program, and reports the error. Windows versions 3.1 through ME had some level of memory protection, but programs could easily circumvent

12300-425: The CPU. In a typical implementation a horizontal microprogram word comprises fairly tightly defined groups of bits. For example, one simple arrangement might be: For this type of micromachine to implement a JUMP instruction with the address following the opcode, the microcode might require two clock ticks. The engineer designing it would write microassembler source code looking something like this: For each tick it

12450-463: The G4 processor, and z/Architecture CPUs use millicode to implement some instructions. Each microinstruction in a microprogram provides the bits that control the functional elements that internally compose a CPU. The advantage over a hard-wired CPU is that internal CPU control becomes a specialized form of a computer program. Microcode thus transforms a complex electronic design challenge (the control of

12600-554: The M44/44X was based on the IBM 7044 , an earlier generation of CPU which was very different internally. These experimental systems were too late to be incorporated into the System/360 series which IBM announced in 1964 but encouraged the company to add virtual memory and virtual machine capabilities to its System/370 mainframes and their operating systems in 1972: In 1968 a consulting firm called Computer Software Systems used

12750-418: The ability to submit batch jobs, be notified of their completion, and view the results without waiting for printed reports. TSO communicated with terminals by using TCAM ( Telecommunications Access Method ), which eventually replaced the earlier Queued Telecommunications Access Method (QTAM). TCAM's name suggests that IBM hoped it would become the standard access method for data communications, but in fact, TCAM

12900-538: The application program, which then interacts with the user and with hardware devices. However, in some systems an application can request that the operating system execute another application within the same process, either as a subroutine or in a separate thread, e.g., the LINK and ATTACH facilities of OS/360 and successors . An interrupt (also known as an abort , exception , fault , signal , or trap ) provides an efficient way for most operating systems to react to

13050-399: The assembly instructions visible to normal programmers. In coordination with the hardware, the microcode implements the programmer-visible architecture. The underlying hardware need not have a fixed relationship to the visible architecture. This makes it easier to implement a given instruction set architecture on a wide variety of underlying hardware micro-architectures. The IBM System/360 has

13200-408: The attempt to apply scientific principles to the development of software, and the management of software projects . Frederick P. Brooks , who was a senior project manager for the whole System/360 project and then was given specific responsibility for OS/360 (which was already long overdue), wrote an acclaimed book, The Mythical Man-Month , based on the problems encountered and lessons learned during

13350-412: The complex series of instructions needed for this task in low cost memory. But the real value in the 360 line was that one could build a series of machines that were completely different internally, yet run the same ISA. For a low-end machine, one might use an 8-bit ALU that requires multiple cycles to complete a single 32-bit addition, while a higher end machine might have a full 32-bit ALU that performs

13500-453: The computer's memory. Various methods of memory protection exist, including memory segmentation and paging . All methods require some level of hardware support (such as the 80286 MMU), which does not exist in all computers. In both segmentation and paging, certain protected mode registers specify to the CPU what memory address it should allow a running program to access. Attempts to access other addresses trigger an interrupt, which causes

13650-466: The cost of field changes to correct defects ( bugs ) in the processor; a bug can often be fixed by replacing a portion of the microprogram rather than by changes being made to hardware logic and wiring. In 1947, the design of the MIT Whirlwind introduced the concept of a control store as a way to simplify computer design and move beyond ad hoc methods. The control store is a diode matrix :

13800-471: The details of how interrupt service routines behave vary from operating system to operating system. However, several interrupt functions are common. The architecture and operating system must: A software interrupt is a message to a process that an event has occurred. This contrasts with a hardware interrupt — which is a message to the central processing unit (CPU) that an event has occurred. Software interrupts are similar to hardware interrupts — there

13950-454: The early 1960s with the introduction of mass-produced core memory and core rope , which was far less expensive than dedicated logic based on diode arrays or similar solutions. The first to take real advantage of this was IBM in their 1964 System/360 series. This allowed the machines to have a very complex instruction set, including operations that matched high-level language constructs like formatting binary values as decimal strings, storing

14100-422: The environment. Interrupts cause the central processing unit (CPU) to have a control flow change away from the currently running program to an interrupt handler , also known as an interrupt service routine (ISR). An interrupt service routine may cause the central processing unit (CPU) to have a context switch . The details of how a computer processes an interrupt vary from architecture to architecture, and

14250-432: The execution unit, which schedules and executes the micro-operations, possibly doing so out-of-order . Complex instructions are implemented by microcode that consists of predefined sequences of micro-operations. Some processor designs use machine code that runs in a special mode, with special instructions, available only in that mode, that have access to processor-dependent hardware, to implement some low-level features of

14400-556: The fastest conventional designs. It was one such project, at the University of California, Berkeley , that introduced the term RISC. The industry responded to the concept of RISC with both confusion and hostility, including a famous dismissive article by the VAX team at Digital. A major point of contention was that implementing the instructions outside of the processor meant it would spend much more time reading those instructions from memory, thereby slowing overall performance no matter how fast

14550-410: The hardware checks that the software is only executing legal instructions, whereas the kernel has unrestricted powers and is not subject to these checks. The kernel also manages memory for other processes and controls access to input/output devices. The operating system provides an interface between an application program and the computer hardware, so that an application program can interact with

14700-493: The hardware only by obeying rules and procedures programmed into the operating system. The operating system is also a set of services which simplify development and execution of application programs. Executing an application program typically involves the creation of a process by the operating system kernel , which assigns memory space and other resources, establishes a priority for the process in multi-tasking systems, loads program binary code into memory, and initiates execution of

14850-418: The indirect pollution of important processor structures (like CPU caches , the instruction pipeline , and so on) which affects both user-mode and kernel-mode performance. The first computers in the late 1940s and 1950s were directly programmed either with plugboards or with machine code inputted on media such as punch cards , without programming languages or operating systems. After the introduction of

15000-402: The instruction set. The DEC Alpha, a pure RISC design, used PALcode to implement features such as translation lookaside buffer (TLB) miss handling and interrupt handling, as well as providing, for Alpha-based systems running OpenVMS , instructions requiring interlocked memory access that are similar to instructions provided by the VAX architecture. CMOS IBM System/390 CPUs, starting with

15150-428: The internal differences and the specialized type of work for which it was designed, the 360/44 has its own operating system, PS/44. An optional feature allows a System/360 emulator to run in hidden storage and implement the missing instructions in order to run OS/360. The 360/44 and PS/44 have no direct successors. System/370 was announced in 1970 with essentially the same facilities as System/360 but with about 4 times

15300-404: The interrupt request, the operating system will: When the writing process has its time slice expired, the operating system will: With the program counter now reset, the interrupted process will resume its time slice. Among other things, a multiprogramming operating system kernel must be responsible for managing all system memory which is currently in use by the programs. This ensures that

15450-528: The job by allowing much of the processor's behaviour and programming model to be defined via microprogram routines rather than by dedicated circuitry. Even late in the design process, microcode could easily be changed, whereas hard-wired CPU designs were very cumbersome to change. Thus, this greatly facilitated CPU design. From the 1940s to the late 1970s, a large portion of programming was done in assembly language ; higher-level instructions mean greater programmer productivity, so an important advantage of microcode

15600-431: The kernel—and applications—all other software. There are three main purposes that an operating system fulfills: With multiprocessors multiple CPUs share memory. A multicomputer or cluster computer has multiple CPUs, each of which has its own memory . Multicomputers were developed because large multiprocessors are difficult to engineer and prohibitively expensive; they are universal in cloud computing because of

15750-422: The limit to 52. MVT was considerably larger and more complex than MFT and therefore was used on the most powerful System/360 CPUs. It treated all memory not used by the operating system as a single pool from which contiguous "regions" could be allocated as required by an indefinite number of simultaneous application programs. This scheme was more flexible than MFT's and in principle used memory more efficiently, but

15900-512: The machine automatically resumes from the last checkpoint instead of requiring the operators to restart the job manually from the beginning. General Motors Research division produced GM-NAA I/O for its IBM 701 in 1956 (from a prototype, GM Operating System, developed in 1955), and updated it for the 701's successor. In 1960 the IBM user association SHARE took it over and produced an updated version, SHARE Operating System . Finally IBM took over

16050-411: The machine instructions from the underlying electronics , thereby enabling greater flexibility in designing and altering instructions. Moreover, it facilitates the construction of complex multi-step instructions, while simultaneously reducing the complexity of computer circuits. The act of writing microcode is often referred to as microprogramming , and the microcode in a specific processor implementation

16200-400: The memory allocated to a different one. Around the same time, teleprinters began to be used as terminals so multiple users could access the computer simultaneously. The operating system MULTICS was intended to allow hundreds of users to access a large computer. Despite its limited adoption, it can be considered the precursor to cloud computing . The UNIX operating system originated as

16350-517: The microcode. This makes it much easier to fix problems in a microcode system. It also means that there is no effective limit to the complexity of the instructions, it is only limited by the amount of memory one is willing to use. The lowest layer in a computer's software stack is traditionally raw machine code instructions for the processor. In microcoded processors, fetching and decoding those instructions, and executing them, may be done by microcode. To avoid confusion, each microprogram-related element

16500-467: The mid-1960s IBM's standard operating systems ( DOS/360 and OS/360 ) were batch -oriented and could not handle large numbers of short transactions quickly enough; even its transaction monitors IMS and CICS , which run under the control of standard general-purpose operating systems, are not fast enough for handling reservations on hundreds of flights from thousands of travel agents. The last "public domain" version of ACP, hence its last "free" version,

16650-467: The mid-1970s, most new minicomputers and superminicomputers were using microcode as well, such as most models of the PDP-11 and, most notably, most models of the VAX , which included high-level instruction not unlike those found in the 360. The same basic evolution occurred with microprocessors as well. Early designs were extremely simple, and even the more powerful 8-bit designs of the mid-1970s like

16800-523: The most vulnerable parts of IBM's market. To prevent sales of System/360 from collapsing, IBM released four stop-gap operating systems: When IBM announced the S/360-67 it also announced a timesharing operating system, TSS/360 , that would use the new virtual memory capabilities of the 360/67. TSS/360 was late and early releases were slow and unreliable. By this time the alternative operating system CP-67 , developed by IBM's Cambridge Scientific Center ,

16950-408: The need to use it. A general protection fault would be produced, indicating a segmentation violation had occurred; however, the system would often crash anyway. The use of virtual memory addressing (such as paging or segmentation) means that the kernel can choose what memory each program may use at any given time, allowing the operating system to use the same memory locations for multiple tasks. If

17100-457: The new operating systems are distinguished from their predecessors by the presence of "/VS" in their names. "VS" stands for "Virtual Storage". IBM avoided the term "virtual memory", allegedly because the word "memory" might be interpreted to imply that IBM computers could forget things. All modern IBM mainframe operating systems except z/TPF are descendants of those included in the "System/370 Advanced Functions" announcement – z/TPF

17250-596: The only IBM System/370 operating systems that do not have modern descendants. The Special Real Time Operating System (SRTOS), Programming RPQ Z06751, is a variant of OS/VS1 extended to support real-time computing . It was targeted at such industries as electric utility energy management and oil refinery applications. Operating system An operating system ( OS ) is system software that manages computer hardware and software resources, and provides common services for computer programs . Time-sharing operating systems schedule tasks for efficient use of

17400-408: The open-source Android operating system (introduced 2008), with a Linux kernel and a C library ( Bionic ) partially based on BSD code, became most popular. The components of an operating system are designed to ensure that various parts of a computer function cohesively. With the de facto obsoletion of DOS , all user software must interact with the operating system to access hardware. The kernel

17550-421: The piping. Signals may be classified into 7 categories. The categories are: Input/output (I/O) devices are slower than the CPU. Therefore, it would slow down the computer if the CPU had to wait for each I/O to finish. Instead, a computer may implement interrupts for I/O completion, avoiding the need for polling or busy waiting. Some computers require an interrupt for each character or word, costing

17700-406: The processor speeds of similarly-priced System/360 CPUs. Then in 1972 IBM announced "System/370 Advanced Functions", of which the main item was that future sales of System/370 would include virtual memory capability and this could also be retro-fitted to existing System/370 CPUs. Hence IBM also committed to delivering enhanced operating systems which could support the use of virtual memory. Most of

17850-401: The programmer or the user with the perception that there is a much larger amount of RAM in the computer than is really there. Microcode In processor design , microcode serves as an intermediary layer situated between the central processing unit (CPU) hardware and the programmer-visible instruction set architecture of a computer, also known as its machine code . It consists of

18000-540: The project and supplied an enhanced version called IBSYS with the IBM 7090 and IBM 7094 computers. IBSYS required 8 tape drives —fewer if one or more disk drives are present. Its main components are a card -based Job Control language, which is the main user interface; compilers for FORTRAN and COBOL ; an assembler ; and various utilities including a sort program. In 1958, the University of Michigan Executive System adapted GM-NAA I/O to produce UMES , which

18150-633: The project, two of which were: While OS/360 was the preferred operating system for the higher-end System/360 machines, DOS/360 was the usual operating system for the less powerful machines. It provided a set of utility programs , a macro assembler , and compilers for FORTRAN and COBOL . Support for RPG came later, and eventually a PL/I subset. And it supported a useful range of file organizations with access methods to help in using them: Sequential and ISAM files could store either fixed-length or variable-length records, and all types could occupy more than one disk volume. DOS/360 also offered BTAM ,

18300-452: The purpose of using microcode in the first place, which was to hide these distinctions. The team came to a radical conclusion: "Imposing microcode between a computer and its users imposes an expensive overhead in performing the most frequently executed instructions." The result of this discovery was what is today known as the RISC concept. The complex microcode engine and its associated ROM

18450-413: The released version of CP-67 to set up a commercial time-sharing service. The company's technical team included 2 recruits from MIT (see CTSS above), Dick Orenstein and Harold Feinleib. As it grew, the company renamed itself National CSS and modified the software to increase the number of paying users it could support until the system was sufficiently different that it warranted a new name, VP/CSS . VP/CSS

18600-463: The same addition in a single cycle. These differences could be implemented in control logic, but the cost of implementing a completely different decoder for each machine would be prohibitive. Using microcode meant all that changed was the code in the ROM. For instance, one machine might include a floating point unit and thus its microcode for multiplying two numbers might be only a few lines line, whereas on

18750-454: The same machine without the FPU this would be a program that did the same using multiple additions, and all that changed was the ROM. The outcome of this design was that customers could use a low-end model of the family to develop their software, knowing that if more performance was ever needed, they could move to a faster version and nothing else would change. This lowered the barrier to entry and

18900-418: The same operating system— OS/360 —which consisted of millions of lines of assembly language that had thousands of bugs . The OS/360 also was the first popular operating system to support multiprogramming , such that the CPU could be put to use on one job while another was waiting on input/output (I/O). Holding multiple jobs in memory necessitated memory partitioning and safeguards against one job accessing

19050-400: The second matrix. This made the control signals conditional on the detected internal signal. Wilkes coined the term microprogramming to describe this feature and distinguish it from a simple control store. Microcode remained relatively rare in computer design as the cost of the ROM needed to store the code was not significantly different than using a custom control store. This changed through

19200-400: The signal number (in mnemonic format) to be sent. (The abrasive name of kill was chosen because early implementations only terminated the process.) In Unix-like operating systems, signals inform processes of the occurrence of asynchronous events. To communicate asynchronously, interrupts are required. One reason a process needs to asynchronously communicate to another process solves

19350-400: The size of the machine needed. The different CPUs often need to send and receive messages to each other; to ensure good performance, the operating systems for these machines need to minimize this copying of packets . Newer systems are often multiqueue —separating groups of users into separate queues —to reduce the need for packet copying and support more concurrent users. Another technique

19500-442: The system and may also include accounting software for cost allocation of processor time , mass storage , peripherals, and other resources. For hardware functions such as input and output and memory allocation , the operating system acts as an intermediary between programs and the computer hardware, although the application code is usually executed directly by the hardware and frequently makes system calls to an OS function or

19650-543: The systems 68,000 gates were part of the microcode system. While companies continued to compete on the complexity of their instruction sets, and the use of microcode to implement these was unquestioned, in the mid-1970s an internal project in IBM was raising serious questions about the entire concept. As part of a project to develop a high-performance all-digital telephone switch , a team led by John Cocke began examining huge volumes of performance data from their customer's 360 (and System/370 ) programs. This led them to notice

19800-433: The term microcode interchangeably with firmware . In this context, all code within a device is termed microcode, whether it is microcode or machine code. For instance, updates to a hard disk drive 's microcode often encompass updates to both its microcode and firmware. At the hardware level, processors contain a number of separate areas of circuitry, or "units", that perform different tasks. Commonly found units include

19950-402: The ultimate operation can reduce the number of instructions to one, saving memory used by the program code and improving performance by leaving the data bus open for other operations. Internally, however, these instructions are not separate operations, but sequences of the operations the units actually perform. Converting a single instruction read from memory into the sequence of internal actions

20100-423: The values into one register, the second into another, call the addition function in the ALU, and then write the result back out to memory. As the sequence of instructions needed to complete this higher-level concept, "add these two numbers in memory", may require multiple instructions, this can represent a performance bottleneck if those instructions are stored in main memory . Reading those instructions one by one

20250-408: The various circuits have to be activated in order. For instance, it is not possible to add two numbers if they have not yet been loaded from memory. In RISC designs, the proper ordering of these instructions is largely up to the programmer, or at least to the compiler of the programming language they are using. So to add two numbers, for instance, the compiler may output instructions to load one of

20400-446: The world's most widely used operating system because: DOS/360 ran well on the System/360 processors which medium-sized organizations could afford, and it was better than the "operating systems" these customers had before. As a result, its descendant z/VSE is still widely used today, as of 2005. OS/360 included multiple levels of support, a single API, and much shared code. PCP was a stop-gap version that could run only one program at

20550-473: The world. Middleware , an additional software layer between the operating system and applications, is often used to improve consistency. Although it functions similarly to an operating system, it is not a true operating system. Embedded operating systems are designed to be used in embedded computer systems , whether they are internet of things objects or not connected to a network. Embedded systems include many household appliances. The distinguishing factor

20700-488: Was ACP 9.2, which was distributed on a single mini-reel with an accompanying manual set (about two dozen manuals, which occupied perhaps 48 lineal inches of shelf space) and which could be restored to IBM 3340 disk drives and which would, thereby, provide a fully functional ACP system. ACP 9.2 was intended, primarily, for bank cards like MasterCard and other financial applications, but it could also be utilized for airline reservation systems, too, as by this time ACP had become

20850-454: Was better suited to the large number of small jobs created by students. UMES was used until 1967 when it was replaced by the MTS timesharing system. Bell Labs produced BESYS (sometimes referred to as BELLMON) and used it until the mid-1960s. Bell also made it available to others without charge or formal technical support. Before IBSYS, IBM produced for its IBM 709 , 7090 and 7094 computers

21000-455: Was controlled directly by combinational logic and rather minimal sequential state machine circuitry. While such hard-wired processors were very efficient, the need for powerful instruction sets with multi-step addressing and complex operations ( see below ) made them difficult to design and debug; highly encoded and varied-length instructions can contribute to this as well, especially when very irregular encodings are used. Microcode simplified

21150-627: Was labeled as part of the System/360 range because it could be connected to some of the same peripherals, but it was a 16-bit machine and not entirely program-compatible with other members of the System/360 range. Three operating systems were developed by IBM's labs in Germany, for different 360/20 configurations; DPS—with disks (minimum memory required: 12 KB); TPS—no disk but with tapes (minimum memory required: 8 KB); and CPS—punched-card-based (minimum memory required: 4 KB). These had no direct successors since IBM introduced

21300-508: Was liable to fragmentation  – after a while one could find that, although there was enough spare memory in total to run a program, it was divided into separate chunks none of which was large enough. In 1971 the Time Sharing Option (TSO) for use with MVT was added. TSO became widely used for program development because it provided: an editor, debuggers for some of the programming languages used on System/360, and

21450-452: Was no separation between the application and operating system components of the software, but in 1968 IBM divided it into PARS (application) and ACP (operating system). Later versions of ACP were named ACP / TPF and then TPF (Transaction Processing Facility) as non-airline businesses adopted this operating system for handling large volumes of online transactions. The latest version is z/TPF . IBM developed ACP and its successors because: in

21600-426: Was running well enough for IBM to offer it "without warranty" as a timesharing facility for a few large customers. CP-67 would go on to become VM/370 and eventually z/VM . IBM ultimately offered three releases of a TSS/370 PRPQ as a migration path for its TSS/360 customers, and then dropped it. The traumas of producing the System/360 operating systems gave a boost to the emerging discipline of software engineering ,

21750-487: Was the Intel 8086 . Among the ultimate implementations of microcode in microprocessors is the Motorola 68000 . This offered a highly orthogonal instruction set with a wide variety of addressing modes , all implemented in microcode. This did not come without cost, according to early articles, about 20% of the chip's surface area (and thus cost) is the microcode system. and later estimates suggest approximately 23,000 of

21900-558: Was the delivery mechanism for National CSS' services until the early 1980s, when it switched to IBM's VM/370 (see below). Universities produced three other S/360 time-sharing operating systems in the late 1960s: Up to the early 1960s, IBM's low-end and high-end systems were incompatible, so programs could not easily be transferred from one to another, and the systems often used completely different peripherals such as disk drives. IBM concluded that these factors were increasing its design and production costs for both hardware and software to

22050-406: Was the first popular computer to use a graphical user interface (GUI). The GUI proved much more user friendly than the text-only command-line interface earlier operating systems had used. Following the success of Macintosh, MS-DOS was updated with a GUI overlay called Windows . Windows later was rewritten as a stand-alone operating system, borrowing so many features from another ( VAX VMS ) that

22200-399: Was the relative ease by which powerful machine instructions can be defined. The ultimate extension of this are "Directly Executable High Level Language" designs, in which each statement of a high-level language such as PL/I is entirely and directly executed by microcode, without compilation. The IBM Future Systems project and Data General Fountainhead Processor are examples of this. During

22350-499: Was used almost entirely for TSO and was largely superseded by VTAM from the late 1970s onwards. System/360's hardware and operating systems were designed for processing batch jobs which in extreme cases might run for hours. As a result, they were unsuitable for transaction processing , in which there are thousands of units of work per day and each takes between 30 seconds and a very few minutes. In 1968 IBM released IMS to handle transaction processing, and in 1969 it released CICS ,

22500-493: Was used to develop the tools needed to develop DOS/360 and OS/360, as well as the first versions of tools it would supply with these operating systems – compilers for FORTRAN and COBOL , utilities including Sort , and above all the assembler it needed to build all the other software. IBM's competitors took advantage of the delays in OS/360 and the System/360 to announce systems aimed at what they thought were

#825174