1. What is Advanced Operating Systems

Part of the 22C:116 Lecture Notes for Fall 2002
by Douglas W. Jones
THE UNIVERSITY OF IOWA Department of Computer Science

General

Looking at the course title, Advanced Operating Systems, we can infer something about the content of the course:

Advanced
This is an advanced course, it has prerequisites! If you haven't had a prior course in the subject, you should be very hesitant about taking this course!

Appropriate prerequisites include courses with names such as Introduction to System Software and Introductory Operating Systems. The content of such courses is not well standardized, but you should know a fair amount about at least one operating system, and you should have at least a theoretical understanding of process management and interrupt-driven input/output.

Operating Systems
This is a course about operating systems. Not just about one operating system (imagine Advanced Windows, or Advanced Linux) but about advanced subjects in the field of operating systems.

Continuing this word-by-word breakdown, we can learn something about the subject of the course from the phrase operating systems.

Operating
The use of the word operating implies a subject (something that operates) and an object (something that is operated). What are these?

The object is clearly the computer. The operating system operates the computer.

The indirect subject is clear. The operating system operates on behalf of its human user or on behalf of its human user community.

The direct subject is less clear. Generally, the human users interact with applications programs of one kind or another, and the operating system, in turn, provides services to and operates on those applications.

Systems
The word systems says quite a bit. A system is composed of components of some kind, frequently not primitive components, but subsystems in their own right. What are these subsystems, and does the organization of the operating system relate to their ogranization?

What is an Operating System?

Posing the question "what is an operating system?" to a class typically generates the following kinds of responses:

To most users, the operating system remains a mysterious piece of expensive and often quirky software. Most users simply define the operating system as "the software that comes with the computer." More sophisticated users define the operating system as "the software that establishes the look and feel of the system", focusing on the user interface, and particularly on the organization of the display screen.

An Example

I visited the John Deere corporate data processing center in the fall of 2001. Here's a very rough idea of the kind of system they run, giving an idea of the kind of environment in which modern operating systems are expected to run.

In operation, this system serves basically two purposes. First, some fraction of the Windows NT machines were used as E-mail servers, both gateway machines and machines that could respond by E-mail to specially formatted E-mail from remote application software to deliver information services to off-web users.

Second, some fraction o the machines served as dial-up hosts for remote sites that dial directly into the corporate system. Apparently, these were mostly at dealerships that don't yet use the internet.

Third, most of the Windows NT and Unix power is providing web service, to both public corporate web sites, private corporate sites accessed over the public internet, and private corporate sites accessed over the corporate intranet. Most new applications seem to be web-based, with various server-side applications (both Unix and Windows NT based) providing the required access to corporate resources. Many of these services, in turn, submit jobs on the mainframes to do the actual operatons on corporate databases. The mainframes are, in effect, back-end database machines, although they also run a number of purely mainframe-based applications.

So, the fun puzzle is, how do you design operating systems to run in this kind of environment! This is very different from the world of the purely personal computer with a single CPU and one end user, yet the operating systems they use, Windows NT, a version of Unix, and a version of IBM's old VM system, are all systems that have also been used in single user settings (curiously, VM was even supported by one short-lived model in the PC family, the PC-XT/370).

WARNING

This is a hard class. The prerequisites for studying this subject include the following: