ArticleslgStudy

engineering

Harmony (operating system)

Harmony (operating system) is a engineering 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 Harmony (operating system) rather than just read about it. In short: Harmony is an experimental computer operating system (OS) developed at the National Research Council Canada in Ottawa. It is a second-generation message passing system that was also used as the basis for several research projects, including robotics sensing and graphical workstation development.

Key takeaways

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

Reference excerpt

Harmony is an experimental computer operating system (OS) developed at the National Research Council Canada in Ottawa. It is a second-generation message passing system that was also used as the basis for several research projects, including robotics sensing and graphical workstation development. Harmony was actively developed throughout the 1980s and into the mid-1990s.

History Harmony was a successor to the Thoth system developed at the University of Waterloo. Work on Harmony began at roughly the same time as that on the Verex kernel developed at the University of British Columbia. David Cheriton was involved in both Thoth and Verex, and would later go on to develop the V System at Stanford University. Harmony's principal developers included W. Morven Gentleman, Stephen A. MacKay, Darlene A. Stewart, and Marceli Wein. Early ports of the system existed for a variety of Motorola 68000-based computers, including ones using the VMEbus and Multibus backplanes and in particular the Multibus-based Chorus multiprocessor system at Waterloo. Other hosts included the Atari 520 or 1040 ST. A port also existed for the Digital Equipment Corporation VAX. Harmony achieved formal verification in 1995.

Features Harmony was designed as a real-time operating system (RTOS) for robot control. It is a multitasking, multiprocessing system. It is not multi-user. Harmony provided a runtime system (environment) only; development took place on a separate system, originally an Apple Macintosh. For each processor in the system, an image is created that combines Harmony with the one multitask program for that processor at link time, an exception being a case where the kernel is programmed into a read-only memory (ROM). Although the term did not appear in the original papers, Harmony was later referred to as a microkernel. A key in Harmony is its use of the term task, which in Harmony is defined as the "unit of sequential and synchronous execution" and "the unit of resource ownership". It is likened to a subroutine, but one that must be explicitly created and which runs independently of the task that created it. Programs are made up of a number of tasks. A task is bound to a specific processor, which may be different from that of the instantiating task and which may host many tasks. All system resources are owned and managed by tasks. Intertask communication is provided mostly by synchronous message passing and four associated primitives. Shared memory is also supported. Destruction of a task closes all of its connections. Input/output uses a data stream model. Harmony is connection-oriented in that tasks that communicate with each other often maintain state information about each other. In contrast with some other distributed systems, connections in Harmony are inexpensive.

Applications and tools An advanced debugger called Melody was developed for Harmony at the Advanced Real-Time Toolset Laboratory at Carleton University. It was later commercialized as Remedy. The Harmony kernel underpinned the Actra project — a multiprocessing, multitasking Smalltalk. Harmony was used in the multitasking, multiprocessor Adagio robotics simulation workstation. Concepts from both Harmony and Adagio influenced the design of the Smalltalk-based Eva event driven user interface builder. Harmony was used as the underlying OS for several experimental robotic systems.

Commercial Harmony was commercialized by the Taurus Computer Products division of Canadian industrial computer company Dy4. When Dy4 closed down their software division, four of Taurus' former developers founded Precise Software Technologies and continued developing the OS as Precise/MPX, the predecessor to their later Precise/MQX product. Another commercial operating system derived from Harmony is the Unison OS from Rowebots Research Inc.

References

Further reading James, J.; Rowe, K.; Gray, L.; Vishnubhatla, B.; Wan, C. F.; Wilson, M. (1985). "Experience Porting the Harmony Operating System.". Proceedings of the 6th IEEE Real-Time Systems Symposium (RTSS '85). San Diego, California, USA.: IEEE Computer Society. pp. 88–99. ISBN 0-8186-0675-4. Forsey, David R. (1985). Harmony in transposition: A toccata for Vax and Motorola 68000 (Technical report). Parr, R. K. (1986). TCP/IP Ethernet Support for the Harmony Operating System. University of Waterloo (Technical report). Riese, H. M. (1986). Towards Harmony on Sylvan. University of Waterloo (Technical report). Wong, Wai Victoria (1987). Concordia Cum Vaxen: Porting Harmony to the VAX-11/750 (Technical report). Roth, G.; O'Hara, D. (May 1987). "A Holdsite Method for Parts Acquisition Using a Laser Rangefinder Mounted on a Robot Wrist". Proceedings of IEEE Conference on Robotics and Automation. Raleigh, NC. pp. 1517–1523. Barry, B. M.; Thomas, D. A.; Altoft, J. R.; Wilson, M. (4–8 October 1987). "Using Objects to Design and Build Radar ESM Systems". Proceedings of the Conference on Object Oriented Programming Systems, Languages and Applications. Vol. 22. Orlando FL. pp. 192–201. O'Hara, D. H. (2–4 February 1988). Multiprocessor Robot Control for Assembly: A Demonstration with Tactile Feedback for Prismatic Shaped Block Insertion. 7th International conference on Robot Vision and Sensory Controls. Zurich, Switzerland. Gentleman, W.; MacKay, S.; Stewart, D. (1988). An Introduction to the Harmony Realtime Operating System (Technical report). Thoreson, D. V. P. (May 1988). Harmony Multi-Tasking Runtime Support for the Ada Rendezvous. Royal Military College of Canada (Technical report). Kingston, Ontario. Archibald, C. C.; Gentleman, W. M.; O'Hara, D. H. (14–16 June 1988). "Realtime Feedback Control Using a Laser Range Finder and Harmony". Proceedings of the 7th Canadian CAD/CAM and Robotics Conference. Toronto, Ontario. O'Hara, D. H.; Kurtz, R. Prismatic-shaped Block Insertion: an Application of a Multiprocessor Robot Controller using Harmony. National Research Council of Canada (Technical report). Ottawa, Ontario. MacKay, S. A.; Gentleman, W. M.; Stewart, D. A.; Wein, M. (26–27 September 1988). "Harmony as an Object-Oriented Operating System". Proceedings of the ACM SIGPLAN Workshop on Object-Oriented Concurrent Programming. Vol. 24. San Diego. pp. 201–203.

Worked examples

Example 1 — a first encounter with Harmony (operating system)

Start with the simplest possible case. Write down what Harmony (operating system) claims or describes in one sentence, then invent the smallest concrete situation in which that sentence is true. In engineering, 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 Harmony (operating 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 Harmony (operating 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 Harmony (operating system)

In research
Harmony (operating system) appears in engineering 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 Harmony (operating 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
Harmony (operating system) is common in secondary-school and first-year university syllabi. It links to neighbouring topics Microkernel-based operating systems, National Research Council (Canada), Operating system families, so understanding it makes those chapters shorter.
In everyday life
Look for Harmony (operating 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 “Harmony (operating system)” →

Affiliate

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

How to study Harmony (operating system) in 20 minutes

  1. Read the reference excerpt below once, without taking notes.
  2. Close the page and write down what Harmony (operating 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 Harmony (operating system) out loud to somebody else — or to Teacher Smith in the lgStudy chat.

Frequently asked questions

What is Harmony (operating system) in simple terms?

Harmony is an experimental computer operating system (OS) developed at the National Research Council Canada in Ottawa. It is a second-generation message passing system that was also used as the basis for several research projects, including robotics sensing and graphical workstation development.

Why does Harmony (operating system) matter?

Because it connects several engineering 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 Harmony (operating 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 Harmony (operating system).

Tags

  • Microkernel-based operating systems
  • National Research Council (Canada)
  • Operating system families
  • Real-time operating systems
  • Robot operating systems

Keep exploring