PART I BACKGROUND AND FUNDAMENTALS
Chapter 2 System structure and dynamic execution
Objectives
To set up the concepts relating to modular software structure and its dynamic execution by processes. To show that OS support-functions are fundamental.
Points to emphasise
- We use the concepts of modules, abstract data types and objects that students study in PL and SE as a basis for studying and reasoning about the structure of all software systems.
- Important concepts are interface and implementation; information hiding and encapsulation of data. I have also touched on the "meaning" of any module.
- We need something in addition to modular structure in order to comprehend the behaviour of a system in time. Hence the concepts of process and protocols for defining the sequences of actions of processes.
- We focus on operating system (OS) structure not because the course is just about OS but because an OS is a concurrent system, it contains concurrent subsystems and it may support applications which are concurrent systems. Knowledge of what OS’s do is fundamental. Although a concurrent system, such as a process control system, may not run on a conventional, general purpose OS such as MS-DOS it needs certain basic support functions that operating systems provide. That is, we focus in Part I on the basic functions provided by any OS.
- A modular approach allows us to configure or distribute a system (microkernel + required services) we need for any application.
Possible difficulties
The students may have a conceptual model of a general purpose operating system. Some may be pleased at being a UNIX or MS-DOS guru and may have taken the course because it’s something they feel good at already. They may even look down on an instructor who doesn’t know every detail of every aspect of the locally used OS! It’s important to set up a basis for reasoning about OS which is not based on detailed factual knowledge of one of them.
Teaching hints
- Relate the discussion of modules to whatever the students have studied in PL and SE. There is no point in this being the first place they hear about advanced type systems. The concept of interface and implementation is what we shall build upon. This can be reinforced by many everyday examples of black boxes with knobs on the outside for invoking functions. A UK example is the BBC (Black Box Company).
- Ask then to think up more analogies, similar to "a book and reading it" of a static specification and dynamic processing. Dream up some bizarre ones.
- Justify the need for a protocol. You should invoke write to put data into a file before you invoke read. Your system may have the protocol open, read/write, close as the protocol for file access. Think of everyday analogies.
- The discussion of microkernels may help to give an up-to-date feel to the course. Microkernel design is an active research area.