Chapter 1 Introduction: Examples and Requirements

Examples

1-1 What is a real-time system?

A system in which the timing constraints are dictated by the environment.

Why is it useful to distinguish "hard" from other real time systems?

In hard RTS the timing requirements MUST be met. Failure to meet such a timing requirement means that special actions, such as "catastrophe" procedures, are invoked. Other systems are more likely to carry on with degraded performance.

In what ways do operating systems which support real time systems differ from those which support single user workstations and multi-user, timesharing systems?

In general, in the area of process scheduling, see Chapter 6.

Soft real time systems: may be similar, many new application areas are under research such as multimedia in general purpose systems.

Hard real-time systems: it is often possible to devise a schedule for the whole system statically. Processes typically need processor time periodically.

1-2 Classify the following as hard real-time, soft real-time or non-real-time systems:

An embedded computer system which controls the fuel mixture in a car engine. HRTS

A robot controller for a car production assembly line. HRTS

An on-line library catalogue system. NO

A single user workstation which supports graphics, digitised voice and video. SRTS

A world-wide electronic mail (email) system. NO

A network of computers for a banking system. SRTS

A hospital patient monitoring and control system. HRTS

An on-line medical record system. NO

A weather forecasting system based on a model of the earth’s atmosphere. RTS at a coarse time grain.

An international stock exchange computer system. NO

Do any of the above systems have to handle concurrent activities? All do.

1-3 Give examples of monitoring and control activities in real time and non real-time systems.

This is designed to draw on the students’ experience. A few examples are:

from real-time monitoring and control:

Military "command and control" systems have to monitor to detect, for example, incoming missiles, and to control anti-missile missiles in response.

Hospital patient monitoring systems must detect danger levels in heart function etc and take appropriate action.

Procedures to detect the build up of congestion, for example in computer networks, and to invoke control procedures to avert disaster, for example to divert traffic to a different route to avoid the congestion.

1-4 Define three general models for concurrent algorithms.

Parallel execution of the same code, in components of a distributed system for example, operating on partitioned data. An example is bank accounts partitioned by branch.

Pipeline: partitioned code, data flows past the code phases.

Divide and conquer.

On what kinds of hardware could you run a concurrent algorithm and expect to achieve better performance than on a uniprocessor? Are any new overheads introduced for the hardware you mention?

Basically, you need to exploit more than one CPU. Shared memory multiprocessors and distributed systems are the obvious examples. The new overheads are associated with the co-ordination that has to be done in a non-sequential algorithm.

1-5 What is a concurrent system? See Section 1.4.

Can a concurrent system run on a uniprocessor computer? Give examples to justify your answer.

YES. Many small scale multi-user timesharing operating systems, such as UNIX systems. Single-user systems may be able to carry out many activities in parallel. A simple word processor with interactive edit is a concurrent system, for example.

Components of process control systems.

1-6 What is a shared memory multiprocessor? Are any of the approaches for devising concurrent algorithms particularly suited to this kind of architecture?

A number of processors see a single shared memory.

All the processors can access all the data in memory. The processors can execute the same copy of the code at the same time. It is most suited to algorithms which require fine-grained co-operation, rather than independent working on partitions of large volumes of data.

1-7 What is the difference between communications handling for a multicomputer system with hardware-controlled connections between specific computers and a network-based multicomputer system?

In the former we have hardware-controlled routing of data from a source to a destination, determined by the system topology, and error checking and recovery similar to that in an internal bus. In the latter, communication (from anywhere in the network) is handled by (a large amount of) software.