Chapter 4 Support for Processes

Objectives

To show the concrete implementation of the process abstraction. To show how processes are scheduled to run on processors. To introduce the special requirements of multiprocessor and real-time systems.

Points to emphasise

Processes provide and invoke these functions - processes make things happen.

Possible difficulties

The basic material on implementing and scheduling processes should not present any difficulties. There are tricky questions like "what executes the process management module" which one should be prepared for but are rarely asked.

One could spend a great deal of time on sophisticated scheduling algorithms with associated performance analysis, but I feel this is best done in the context of an advanced course on specific types of system. For example, real-time systems have special requirements which are only hinted at here. Future systems which support continuous media will handle scheduling quite differently from current systems. One shouldn’t be dogmatic about the way things are and must be.

Teaching hints

Chapter 4 continued

Support for processes in language systems (Sections 4.12 through 4.16) and integration of language system, operating system support (Section 4.17).

Objectives

To show how concurrency is supported at the language level. To show the possible relationships between language level processes and operating system processes.

Points to emphasise

When it would be appropriate to use each.

 

Possible difficulties

Some students may not have experience of a concurrent programming language or an operating system which supports dynamic process creation.

Students tend to find it difficult to see the differences between co-routines and processes.

Teaching hints