Although computer science is constantly evolving and new programming
techniques are proposed frequently, several techniques have become
standard. Since the discussion of our environment will depend on these
techniques, will present them early on in our text. The reader
familiar with these techniques can jump this chapter without risking
to miss something of our presentation.
Computer systems manage two major scarce resources: the storage space
and the CPU time. Other scarce resources include network and disk
bandwidth. If a program has to output its results within well-defined
time delays, it is called real-time. Real-time programs, in
collaboration with the operating system, have to balance their CPU
usage carefully. Section 1.1 discusses some issues
in the design of real-time systems. Programs whose storage needs vary
during the execution must take special measures to prevent the
exhaustion of memory space. Section 1.2 is dedicated to
techniques of dynamic memory management. The number of tasks that a
computer system can handle truly simultaneously is equal to the number
of CPU's in the system. Section 1.3 discusses how the
system can simulate concurrent activities with the use of processes
and threads.
1.1 Hard versus soft real-time applications
1.2 Dynamic memory management
1.3 Multi-tasking