Source program is a sequence of bits, each with a value of 0 or 1, organized in 8-bit chunks called bytes.
In order to run hello.c on the system, the individual C statements must be translated by other programs into a sequence of low-level machine-language instructions. These instructions are then packaged in a form called an executable object program and stored as a binary disk file. Object programs are also referred to as executable object files.
The programs that perform the four phases (preprocessor, compiler, assembler, and linker) are known collectively as the compilation system.
1.#include <stdio.h> command in line 1 of hello.c tells the preprocessor to read the contents of the system header file stdio.h and insert it directly into the program text. 2.C compilers and Fortran compilers both generate output files in the same assembly language. 3. the assembler (as) translates hello.s into machine language instructions, packages them in a form known as a relocatable object program. The hello.o file is a binary file whose bytes encode machine language instructions rather than characters.
Buses are typically designed to transfer fixed-sized chunks of bytes known as words.
Each I/O device is connected to the I/O bus by either a controller or an adapter.
Physically, main memory consists of a collection of dynamic random access memory (DRAM) chips. Logically, memory is organized as a linear array of bytes, each with its own unique address (array index) starting at zero.
A processor appears to operate according to a very simple instruction execution model, defined by its instruction set architecture.
The operating system primary purposes: (1) to protect the hardware from misuse by runaway applications, and (2) to provide applications with simple and uniform mechanisms for manipulating complicated and often wildly different low-level hardware devices
The operating system keeps track of all the state information that the process needs in order to run. This state, which is known as the context, includes information such as the current values of the PC, the register file, and the contents of main memory.
We use the term concurrency to refer to the general concept of a system with multiple, simultaneous activities, and the term parallelism to refer to the use of concurrency to make a system run faster.
Multi-core processors have several CPUs (referred to as “cores”) integrated onto a single integrated-circuit chip. CPU cores, each with its own L1 and L2 caches but sharing the higher levels of cache as well as the interface to main memory.
Hyperthreading, sometimes called simultaneous multi-threading, is a technique that allows a single CPU to execute multiple flows of control. It involves having multiple copies of some of the CPU hardware, such as program counters and register files, while having only single copies of other parts of the hardware, such as the units that perform floating-point arithmetic.
Processors that can sustain execution rates faster than one instruction per cycle are known as superscalar processors.