This chapter has introduced key fundamental concepts of computing and real-time computing, while framing the target system for the lab exercises as a feedback control system design problem. In addition, we have extended our understanding of the C programming language and the UI to be designed in chapters 1 to 3. The following points summarize the chapter:
Computer architectures are models of the structure of a computer system, ignoring details of the implementation. The most common computer architecture includes five components: a processor control unit, a processor datapath, memory, input, and output.
Computers are realized and packaged in many ways. The T1 target computer, the NI myRIO 1900, is a single-board computer with an ARM instruction set architecture.
An operating system manages resources for multiple running programs called processes, each of which contains one or more threads or tasks.
Positional numeral systems encode numbers in symbols called numerals, combined with their relative positions. The base of a system is its number of numerals. The most common numeral systems for computing are the base-10 Hindu-Arabic, the base-2 binary, and the base-16 hexadecimal.
For computational efficiency, a negative base-\(b\) number is usually encoded as a \(b\)'s complement of its absolute value.
Memory is not content-specific. Its contents are indexed by corresponding addresses. For a multibyte number, in the little-endian convention, the least-significant byte, which represents the lower powers of \(2\), is at a lower address than the most significant byte, which represents the higher powers of \(2\). The big-endian convention is just the opposite.
A noninteger decimal number is usually encoded in memory as a floating-point number, which represents it with a sign, significand, and exponent.
Characters and symbols are encoded in memory with character codes; the most common is ASCII.
A paper computer can be used to trace the execution of a program at the level of the processor and memory. Our ARM emulator is a virtual paper computer, available in the "Online Resources" section of this page: https://rtcbook.org/yp.
Real-time computing is computing that must interact with its environment—an environment with time-dependent dynamics.
Scheduling real-time tasks requires consideration of both precedences and deadlines. Deadlines can be hard, firm, or soft, depending on the consequences of failure to meet them.
Tasks that occur at regular intervals are periodic; other tasks are aperiodic.
For mechanical engineers, real-time computing is especially important for applications in feedback control and measurement.
We will design and implement a feedback control target system for the motion control of a mechanical load. We begin with the UI and will return to feedback control in later chapters.
The pointer is a key concept in the C programming language.