ArticleslgStudy

computer science

THE multiprogramming system

THE multiprogramming system is a computer science topic covered in the lgStudy science library. This page brings together a partial reference excerpt, illustrations, worked examples, real-world applications and a short study plan, so you can understand THE multiprogramming system rather than just read about it. In short: The THE multiprogramming system (THE OS) was a computer operating system designed by a team led by Edsger W. Dijkstra, described in monographs in 1965-66 and published in 1968.

Key takeaways

  • THE multiprogramming system belongs to computer science; place it in that map before memorising details.
  • Learn the definition first, then one example that makes the definition concrete.
  • Connect THE multiprogramming system to a quantity you can measure, compute or draw — that is where exam questions come from.
  • Reproduce the core statement of THE multiprogramming system from memory before moving on to harder problems.

Reference excerpt

The THE multiprogramming system (THE OS) was a computer operating system designed by a team led by Edsger W. Dijkstra, described in monographs in 1965-66 and published in 1968. Dijkstra never named the system; "THE" is simply the abbreviation of "Technische Hogeschool Eindhoven", then the name (in Dutch) of the Eindhoven University of Technology of the Netherlands. The THE system was primarily a batch system that supported multitasking; it was not designed as a multi-user operating system. It was much like the SDS 940, but "the set of processes in the THE system was static". The THE system apparently introduced the first forms of software-based paged virtual memory (the Electrologica X8 did not support hardware-based memory management), freeing programs from being forced to use physical locations on the drum memory. It did this by using a modified ALGOL compiler (the only programming language supported by Dijkstra's system) to "automatically generate calls to system routines, which made sure the requested information was in memory, swapping if necessary". Paged virtual memory was also used for buffering input/output (I/O) device data, and for a significant portion of the operating system code, and nearly all the ALGOL 60 compiler. In this system, semaphores were used as a programming construct for the first time.

Design The design of the THE multiprogramming system is significant for its use of a layered structure, in which "higher" layers depend on "lower" layers only:

Layer 0 was responsible for the multiprogramming aspects of the operating system. It decided which process was allocated to the central processing unit (CPU), and accounted for processes that were blocked on semaphores. It dealt with interrupts and performed the context switches when a process change was needed. This is the lowest level. In modern terms, this was the scheduler. Layer 1 was concerned with allocating memory to processes. In modern terms, this was the pager. Layer 2 dealt with communication between the operating system and the system console. Layer 3 managed all I/O between the devices attached to the computer. This included buffering information from the various devices. Layer 4 consisted of user programs. There were 5 processes: in total, they handled the compiling, executing, and printing of user programs. When finished, they passed control back to the schedule queue, which was priority-based, favoring recently started processes and ones that blocked because of I/O. Layer 5 was the user; as Dijkstra notes, "not implemented by us". The constraint that higher layers can only depend on lower layers was imposed by the designers in order to make reasoning about the system (using quasi-formal methods) more tractable, and also to facilitate building and testing the system incrementally. The layers were implemented in order, layer 0 first, with thorough testing of the abstractions provided by each layer in turn. This division of the kernel into layers was similar in some ways to Multics' later ring-segmentation model. Several subsequent operating systems have used layering to some extent, including Windows NT and macOS, although usually with fewer layers. The code of the system was written in assembly language for the Dutch Electrologica X8 computer. This computer had a word size of 27 bits, 48 kilowords of core memory, 512 kilowords of drum memory providing backing store for the LRU cache algorithm, paper tape readers, paper tape punches, plotters, and printers.

See also RC 4000 Multiprogramming System Ring (computer security) Timeline of operating systems

References

External links Source code is available

Worked examples

Example 1 — a first encounter with THE multiprogramming system

Start with the simplest possible case. Write down what THE multiprogramming system claims or describes in one sentence, then invent the smallest concrete situation in which that sentence is true. In computer science, the smallest case is usually a single object, a single equation or a single measurement. Check that every symbol or term in your sentence has a meaning in that case.

Example 2 — changing one variable

Take the situation from Example 1 and change exactly one quantity: double it, halve it, or set it to zero. Predict what should happen to THE multiprogramming system before you calculate. Comparing your prediction with the result is the fastest way to find out whether you understand the idea or only the words.

Example 3 — an exam-style question

Typical questions about THE multiprogramming system ask you to (a) state it precisely, (b) apply it to given data, and (c) explain a limitation. Practise writing all three answers in under five minutes; the third part is what separates a full-mark answer from an average one.

Applications of THE multiprogramming system

In research
THE multiprogramming system appears in computer science research whenever the underlying quantities have to be modelled precisely. Papers usually cite it as a starting assumption and then explore where it breaks down.
In technology and industry
Engineering practice reuses THE multiprogramming system in design rules, simulations and safety margins. Knowing the idea lets you read a specification sheet and understand why the numbers look the way they do.
In the classroom
THE multiprogramming system is common in secondary-school and first-year university syllabi. It links to neighbouring topics 1968 software, Computer science in the Netherlands, Discontinued operating systems, so understanding it makes those chapters shorter.
In everyday life
Look for THE multiprogramming system outside the textbook — in sport, cooking, traffic, electronics or the sky above you. An example you found yourself is remembered far longer than one you were given.
Ask Teacher Smith questions about this articleOpens your AI tutor with a question about “THE multiprogramming system” →

Affiliate

Preply — study more efficiently by working with a personal tutor. 50% off.

How to study THE multiprogramming system in 20 minutes

  1. Read the reference excerpt below once, without taking notes.
  2. Close the page and write down what THE multiprogramming system means in your own words.
  3. Compare your version with the excerpt and mark what you missed.
  4. Work through the three examples above with pen and paper.
  5. Explain THE multiprogramming system out loud to somebody else — or to Teacher Smith in the lgStudy chat.

Frequently asked questions

What is THE multiprogramming system in simple terms?

The THE multiprogramming system (THE OS) was a computer operating system designed by a team led by Edsger W. Dijkstra, described in monographs in 1965-66 and published in 1968.

Why does THE multiprogramming system matter?

Because it connects several computer science ideas at once: it gives you a definition you can apply, a quantity you can calculate, and a way to check whether a result is plausible.

How should I study THE multiprogramming system?

Read the excerpt, restate it from memory, then work through the examples and applications listed on this page. The five-step study plan above takes about twenty minutes.

What does this page cover?

It gives you a compact reference excerpt plus original lgStudy explanations, examples, applications and study material on THE multiprogramming system.

Tags

  • 1968 software
  • Computer science in the Netherlands
  • Discontinued operating systems
  • Dutch inventions
  • Edsger W. Dijkstra
  • Information technology in the Netherlands
  • Software programmed in assembly language

Keep exploring