Dr. Dobb's is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.


Channels ▼
RSS

The QNX Operating System


September 1991/The QNX Operating System/Sidebar

Operating Systems


Operating System Architecture

Operating system architectures of interest in the microcomputer area can be divided into three general classes: monolithic, layered and server based. This section will briefly describe each of these. If additional information regarding operating system architectures interests you, then I highly recommend you read Andrew S. Tanenbaum's book called "Operating Systems, Design and Implementation."

Monolithic Systems

The monolithic system derives its name from the fact that the operating system is a one large collection of procedures. To construct the executable code of this type of operating system, one compiles all the separate files containing the procedures that comprise the operating system, and then binds them all together into one monolithic program using a linker.

The system calls provided by such an operating system are requested by putting parameters in registers and then executing a kernel (system) call via an interrupt. This interrupt transfers control of the computer to the operating system. The operating system then examines which system call is to be carried out by examining the parameters passed to it. The appropriate service procedure is called and control of the machine is returned to the user program upon completion of the service procedure.

The simplest organization of a monolithic operating system is one "blob" of code that carries out all the operating system functions and has no real structure. An improvement over this is a monolithic operating system which is structured logically into layers.

Layered Systems

The layered operating system model is typically depicted by a figure that looks like a laminated block or a series of concentric rings. The different rings and layers represent a well defined hierarchy of functions that the different layers of the operating system provide. The lower layers (or inner rings) usually concern themselves with task scheduling, memory allocation, I/O management, etc. The outer layers are where the user programs run. If the hardware permits, the lowest layers (or inner rings) run in a more privileged mode than the higher layers (or outer rings). The sidebar entitled "Real Mode vs. Protected Mode Operation" describes real mode and protected mode operation.

MS-DOS and PC-DOS fall in a category somewhere between the monolithic and layered operating system types.

UNIX and OS/2 fall into the layered category.

Server-Based Systems

The server based operating system is a radical departure from the monolithic and layered type of designs. Where the monolithic and layered types of designs have a large kernel that looks after all the housekeeping of memory management, task scheduling, file I/O, timer services and inter-task communication, the server based model has a minimal kernel and leaves the provision of the previously mentioned services to discrete "server" tasks which run in the "user" space of the machine as opposed to the operating system space. All the kernel does in the server based operating system, is handle the message based communication between client tasks (which request services) and the server tasks (which process the requests).

This modular architecture has a number of advantages: Since each server task only handles one aspect of the total operating system services, each server is small and manageable. It becomes possible to reconfigure or extend the operating system more easily. If one of the servers crashes, this will not bring down the whole machine. Another, and perhaps the most significant advantage of this architecture, is that it is a perfect architecture for implementing distributed systems. After all, when a client task communicates with a server task by sending messages, the client task does not need to know where the server task is. The server task could be on the same (local) machine, or it could be on a remote machine with the two of them connected via a network. All the client task is concerned with is that it sent a message to a server task requesting a service and that it received a reply. Similarly, a server task does not need to know where a client task is. The operating system looks after the routing of the messages between the two.


Related Reading


More Insights






Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

 
Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.